HackerBox 0101: Archives
Welcome to HackerBox 0101 where we will be opening the archives of computing machinery to discover the Kenbak-1. Designed in 1970, it is widely considered to be the world's first personal computer. We will use an ATmega328P-based Arduino Nano to assemble, test, and program a kit reproduction of the Kenbak-1 Computer. The Kenbakuino project perfectly emulates the Kenbak-1 using the Arduino integrated development environment. Assemble and experiment with a light-reactive firefly robot kit. Explore historical archives from the world of computer and electronics enthusiasts. Consider the future of GenAI prompting for visual artwork and more.
HackerBox is the original monthly subscription box for electronics, computer technology, and hacker culture. Each HackerBox is a discovery box, which means all members await and enjoy a new surprise each month. Tech, toys, knowledge, and fun. It's like having a hacker convention, your birthday, and the first day of school - every month - right in your mailbox.
There is a wealth of information for current and prospective members in the HackerBoxes FAQ. Almost all of the non-technical support emails that we receive are already answered there, so we'd really appreciate it if you can take a few minutes to read the FAQ.
Supplies
This Instructable contains information for getting started with HackerBox 0101. The full box contents are listed on the product page for HackerBox 0101 where the box is also available for purchase while supplies last. If you would like to automatically receive a HackerBox like this right in your mailbox each month, you can subscribe at HackerBoxes.com and join the party. Subscription members save at least $15 every month and automatically receive each new HackerBox shipped immediately off the production line.
A soldering iron, solder, and basic assembly tools are generally needed to work on the monthly HackerBox. A computer for running software tools is also required. Have a look at the HackerBox Workshops for tools and supplies along with a wide array of introductory activities and experiments.
The most import thing you will need is a sense of adventure, hacker spirit, patience, and curiosity. Building and experimenting with electronics, while very rewarding, can be tricky, challenging, and even frustrating at times. The goal is progress, not perfection. When you persist and enjoy the adventure, a great deal of satisfaction can be derived from this hobby. Take each step slowly, mind the details, and don't be afraid to ask for help.
WEAR SAFETY GLASSES WHEN SOLDERING, WHEN TRIMMING WIRE LEADS, OR WHEN CUTTING, DRILLING, ETC.
Kenbak-1
The Kenbak-1 is considered by the Computer History Museum, the Computer Museum of America, and the American Computer Museum to be the world's first personal computer. It was designed by John Blankenbaker of Kenbak Corporation in 1970. The first until sold in early 1971 for $750. Fewer than 50 machines were ever built and only 14 are known to still exist worldwide. Those 14 are in the hands of various collectors and museums. (Wikipedia)
Designed before the first microprocessor, the the Kenbak-1 did not have a one-chip CPU but was instead based purely on small-scale integration TTL chips. The 8-bit machine offered 256 bytes of memory. The clock speed was 1 MHz, but the program speed averaged below 1,000 instructions per second due the many clock cycles needed for each operation and slow access to serial memory.
The website kenbak.com has a wealth of documentation about the Kenbak-1 computer - it's history, how it is programmed, and how to build a hardware replica from just a bunch of 7400 chips.
The Kenbakuino from Mark Wilson avoids all those 7400 chips and instead emulates the Kenbak-1 using an Arduino microcontroller. Operation of Mark's Kenbakuino in the basis for the kit that we'll be assembling here.
ATmega328P Arduino Nano
The Arduino Nano is possibly the most common microcontroller (MCU) module currently in use. The Arduino Nano is a surface-mount, breadboard-friendly, miniaturized Arduino board with integrated USB. It is amazingly full-featured and easy to hack. The included variant is based on the ATmega328P MCU operating on 5V at 16Mhz. In includes an on-board USB-C port connected to a CH340 USB/Serial bridge chip.
First Connection (Before Soldering Anything)
Connect the Arduino Nano into a USB port of your computer. The power LED will come on and shortly after that, a second LED will start to blink slowly. This happens because the Nano is pre-loaded with the BLINK program, which is running on the brand new Arduino Nano.
Software
We will use the Arduino IDE to program and interface with the Arduino Nano.
- Download and install the Arduino IDE
- Connect the Arduino Nano to a USB port of your computer
- Run the Arduino IDE
- In the IDE, select Tools > Board > Arduino Nano
- Also select Tools > Processor > ATmega328P
- Also select Tools > Port > (the USB port connected to the Nano)
USB Troubleshooting
If there are multiple USB ports to select from, you can do a little test. One of the ports will disappear from the list when you unplug the USB cable from the Nano and then navigate back into the Tools dropdown menu again. That one that disappears is the port connected to the Nano.
If there are no USB ports to select (or at least there is no port that disappears when unplugged), you may need to install a driver for the USB chip on the Nano module. This chip is the CH340 which have a driver included in most modern operating systems, but there is more information here if you need it.
Example Code
Load up a piece of example code:
File->Examples->Basics->Blink
Blink is actually the code that was preloaded onto the Nano and should be running right now to slowly blink the onboard LED. Accordingly, if we load this example code, nothing will change. Instead, let's modify the code a little bit.
Looking closely, you can see that the program turns the LED on, waits 1000 milliseconds (one second), turns the LED off, waits another second, and then does it all again - forever.
Modify the code by changing both of the "delay(1000)" statements to "delay(100)". This modification will cause the LED to blink ten times faster, right?
Let's load the modified code into the Nano by clicking the UPLOAD button (the arrow icon) just above your modified code. Watch below the code for the status info: "compiling" and then "uploading". Eventually, the IDE should indicate "Uploading Complete" and your LED should be blinking faster.
If so, congratulations! You have just hacked your first piece of embedded code.
Once your fast-blink version is loaded and running, why not see if you can you change the code again to cause the LED to blink fast twice and then wait a couple of seconds before repeating? Give it a try! How about some other patterns? Once you succeed at visualizing a desired outcome, coding it, and observing it to work as planned, you have taken an enormous step toward becoming a competent hardware hacker.
KENBAK-1 Reproduction Front Panel Assembly
Start assembly with the white Front Panel PCB.
- Cut the male 2x40 pin SMD header into FOUR sections each having 2x10 pins
- Solder the four 2x10 pin sections onto the back side of the white PCB
- Mount the 15 momentary buttons onto the front side of the PCB (may be oriented either way)
- Trim the pins of the READ button as flush to the PCB as possible (to avoid shorting against RTC battery)
- Mount the 12 red LEDs onto the front side of the PCB
- LEDs must be properly oriented: Short Pin = Cathode (-) = Flat Edge = Square PCB Pad = Closest to buttons on PCB
We suggest arranging the white and black button caps as shown in the main image above.
KENBAK-1 Reproduction Main Board Assembly
For the black Main Board PCB, all of the components are mounted on the front side, and are soldered from the back side (with the HackerBoxes logo).
FIFTEEN 10K Resistors
- Positions R20-R34 (the beige resistors in the image above)
- Indemnify them as BEIGE resistors with stripes of brown, black, orange, gold
TWELVE 220 Ohm Resistors
- Positions R0-R11 (the blue resistors in the image above)
- May be BLUE with stripes of red, red, black, black, brown
- May be BEIGE with stripes of red, red, brown, gold
THREE DIP-16 Sockets with Chips
- Orient the three chip sockets by matching the semi-circular marking on the PCB to the notches on the socket
- Solder the three sockets into place
- Insert the 74HC595 chip into socket U1 matching up the chip notch to the socket notch
- Insert the 74HC165 chips into sockets U2 and U3, again matching up the notches
Arduino Nano Module
- Use the provided header pins to solder the Nano into place with the USB connector facing the PCB edge
DS1307 Real-Time Clock (TinyRTC) Module
- Locate the 1x40 male pin header with about 18 pins
- Snap off a section with1x7 pins and a section with 1x5 pins
- Use the two sections of header pins to solder the TinyRTC module into place with the battery holder facing up
- Insert one of the CR2032 coin cells into the TinyRTC module
FOUR Female 1x10 Pin Socket Headers
While soldering the four female headers into place, it is quite helpful to couple them onto the male headers between the two PCBs in their final position. This will hold all of the headers into perfect alignment while soldering. Note that only the outermost rows of the 2x10 male headers are used. The extra (inner) rows of pins are simply for stability and to strengthen the solder connection of the headers. Also, be sure that the J1 header of the black PCB is coupled to J1 of the white PCB. This will force, by symmetry, the J2-J4 headers to be coupled respectively.
Hardware Validation Sketch
Grab the Kenbak_HW_test.ino sketch attached here. Compile the sketch and push it to the Arduino Nano of your Reproduction KENBAK-1 Computer.
Open the Arduino serial monitor and set it to 9600 baud.
The LEDs on the Kenbak should scroll from left to right three times.
Be sure each LED lights individually to validate operation of the hardware.
Next, the states of the Kenbak buttons should show on the serial monitor.
Test each button one at a time to validate operation of the hardware.
Enclosure
A few folks have mentioned working on enclosure designs. Send us your link if you want it added here...
Downloads
Kenbakuino Emulation
Download the Kenbakuino Project files. Compile and upload to your Reproduction KENBAK-1 Computer.
Hit any of the 0-7 buttons (on the left side) and you'll notice that the wrong LEDs toggle.
Let's change that...
- Go into the sketch file tab LEDS.cpp
- Find the call to shiftOut on line 28
- Change the third parameter passed to shiftOut from LSBFIRST to MSBFIRST
Now the LEDs above the 0-7 buttons should work properly.
Predefined Counter Demo
Hit [STOP+0] (hold STOP and hit 0) load the predefined counter demo.
Hit [START] to run the predefined counter demo.
Hey, that's too fast!
Hit [STOP] to stop (no, really?).
Hit [5+STOP] (hold 5 and hit STOP) to add a 32ms (2^5 = 32) delay between each CPU cycle.
Hit [START] to run the predefined counter demo.
Now it should be slow enough to see.
Additional Kenbakuino Predefined Programs
Check out Mark Wilson's Kenbakuino Documentation to see all eight of the predefined programs, how to use the RTC, and several other cool features. Mark really did a great job implementing this emulation along with many nice additions.
Jamie (of Jamie's Hack Shack) inspired this HackerBox with his video demonstration of the nanoKENBAK-1. The nanoKENBAK-1 is based on the same Kenbakuino code we're using here. It can be found along with some other very cool projects over at Adwater & Stir.
Writing Programs for the Kenbak-1
The Kenbak-1 Registry has archived a lot of useful information including the Programming Reference Manual.
An introduction to Kenbak-1 Programming can also be found at kenbak.com.
Light-Reactive Firefly Robot Kit
On a more whimsical note, let's assemble this wacky little firefly robot.
This light-reactive, cybernetic arthropod uses two photoresistors to sense its environment.
Eight Resistors
- R2, R3: 430 Ohm have stripes: yellow, orange, black, black, brown
- R5, R11: 100 Ohm have stripes: brown, black, black, black, brown
- R6: 3.3K has stripes: orange, orange, black, brown, brown
- R7: 1.5K has stripes: brown, green, black, brown, brown
- R9, R10: 10K has stripes: brown, black, black, red, brown
DIP-8 Chip Socket and LM358 Chip
- Orient the chip socket by matching the semi-circular marking on the PCB to the notch on the socket
- Solder the sockets into place
- Insert the LM358 chip into socket matching up the chip notch to the socket notch
- The LM358 is a dual, high gain, operational amplifier (OpAmp) designed to operate from a single power supply
Electrolytic Capacitor
The capacitor is polarized and must be inserted in the correct orientation. The white (-) line on capacitor must line up with the hashed area on PCB silkscreen. The other pin of the capacitor is positive (+) and must align with the "+" marking on PCB.
Transistors
- Q1 and Q2 are S8550 PNP transistors
- Q3 is a S9014 NPN transistor
- Put the correct part numbers in the correct positions
- Orient each transistor to match the outline on the PCB silkscreen
Blue LED
Align the long pin of the LED with the positive "+" marking on PCB. Leave enough slack in the pins to bend the LED toward the PCB at approximately 90 degrees to form the bug's tail.
Trimmer Potentiometer
- Trimpot (R8) only fits one way, so do that
- R8 adjusts the flash rate of the LED tail
Power Switch
- Power switch (K) can be oriented either way
Photoresistors
R1 and R4 can be soldered in either orientation. Leave enough slack in the pins to bend the photosensors toward the PCB to form the bug's antennae/eyes/sensors as shown.
The shrink tubing can be trimmed down and shrunk into place as shown. The tubing is shrunk using heat, such as indirect application of a match or lighter. Light shields are thus formed to improve directional sensitivity of each sensor.
Vibration Motors
Wires from the two vibration motors are soldered to the terminals labeled M1 and M2. The orientation does not matter. Right angle header pins are provided, but it seems easier to solder the wires directly into the header vias of the PCB.
Battery Wires
The black and red wires are soldered to the terminals labeled DC3V. By convention, make the red wire positive and the black wire negative. Again, right angle header pins are provided, but it seems easier to solder the wires directly into the header vias of the PCB.
Solder the other ends of the black and red wires to the coin cell holder. The red pin goes on the side with the clip that touches the top (+ side) of the coin cell
Mechanical Assembly
- Peel the protective plastic sheet from the three legs
- Bend the three legs away from the center circle to form a table-like structure as shown
- Orient the three legs such that the one with the spade-like end is between the bug eyes and the two smooth legs are under the M1 and M2 markings on the PCB
- Peel a thick adhesive disc and place it between the center of the three legs and the bottom of the PCB
- Peel the other thick adhesive disc and place it between the center of the three legs and the bottom of the coin cell holder
- Peel the adhesive from each vibration motor and press the motor onto the leg below its solder terminal
Operation
Turn on power switch (K) and shine a flashlight into the photoresistors (R1 and R4) to experiment with how the firefly reacts to light. It is a random type of motion, but interesting to observe.
Open the Archives
The cultural archives of hackers, wireheads, and cyberpunks are truly fascinating. We are, as HackerBoxes as always insisted, the dreamers of dreams. Here are some interesting historical bits and bytes presented in no particular order...
Bulletin Board Systems (BBS)
The first dial-up computer BBSes appeared in the late 1970s. A board was simply a computer owned by the board's system operator or sysop. The computer would run software that allowed users to connect using a terminal program and a telephone modem. Once logged in, the user could perform functions such as uploading and downloading software and data, reading news and bulletins, and exchanging messages with other users through public message boards and sometimes via direct chatting. In the early 1980s, message networks such as FidoNet were developed to provide services such as NetMail, which is similar to internet-based email. In 1994, InfoWorld estimated that there were 60,000 BBSes serving 17 million users in the United States alone. In late 1994, BBS usage began a rapid collapsed thanks to the introduction of inexpensive dial-up internet service and the Mosaic web browser.
BBS The Documentary [Eight Video Episodes]
The BBS was a great trading post for text files (aka g-files, aka phreak files). Currently, the textfile directory archives many of these treasures. Browse into the "Hack" and "Phreak" categories for some truly special nuggets from our past.
A minimalistic BBS existing purely for the distribution of w4r3z was not an uncommon thing. These included AEs and CatFurs. Read more about the Subculutre of the Subcultures.
Byte Magazine
Byte Magazine "the small systems journal" first published in 1975 and was influential in the late 1970s and throughout the 1980s because of its wide-ranging editorial coverage. Byte started shortly after the first personal computers appeared as kits advertised in the back of electronics magazines. Byte covered developments in the entire field of "small computers and software", and sometimes other computing fields such as supercomputers and high-reliability computing. Coverage was in-depth with much technical detail, rather than user-oriented. The final issue was July 1998.
Amateur Radio
The origins of Amateur Radio can be traced to the late 19th century, but amateur radio as practiced today began in the early 20th century. The First Annual Official Wireless Blue Book of the Wireless Association of America, produced in 1909, contains a list of amateur radio stations. This radio callbook lists wireless telegraph stations in Canada and the United States, including 89 amateur radio stations.
Around the world, modern radio hackers continue to advance antenna technology, software defined radio (SDR), and some truly amazing digital modes.
Take a look at our very own HackerBox 0003 and HackerBox 0096.
Pre-Streaming
In 1993, Wax or the Discovery of Television Among the Bees was the first film streamed across the Internet. The New York Times declared the event "historic" despite comprising a mere two frames per second. Later that year, the hypermedia version of the film, Waxweb, was one of the first sites on the World Wide Web and thus is oft cited as a milestone of Internet Art.
The WELL
The Whole Earth 'Lectronic Link, normally shortened to The WELL, is a virtual community that was launched in 1985. It is one of the oldest continuously operating virtual communities. A 1997 feature in Wired magazine called it "The world's most influential online community." The original hardware for the WELL was a VAX 11/750, which cost "a quarter of a million dollars and required a closet full of telephone lines and modems." (Wikipedia)
In 1997, the almanac of Grateful Dead resources said the WELL "is to Deadheads what AOL is to the average American online." The WELL was the forum through which Grateful Dead lyricist John Perry Barlow, John Gilmore, and Mitch Kapor, the founders of the Electronic Frontier Foundation (EFF), first met. EFF was formed in 1990 and Mike Godwin, also a WELL member, was hired as the first on-staff attorney. Barlow and Kapor hosted the EFF conference on the WELL, which discussed topics related to free speech and internet regulation.
Well.com describes The WELL as a cherished destination for conversation and discussion. It is widely known as the primordial ooze where the online community movement was born - where Howard Rheingold first coined the term “virtual community.” Since long before the public Internet was unleashed, it has quietly captivated some accomplished and imaginative people.
Zines
High Frontiers was a proto-cyberdelia magazine founded in 1984. In 1988, editor R. U. Sirius was joined by hacker Jude Milhon (St. Jude) and the magazine was renamed Reality Hackers. In 1989, the name changed again to Mondo 2000 and took on its ultimate form as a glossy cyberculture magazine covering cyberpunk topics such as virtual reality and smart drugs. It was a more anarchic and subversive prototype for the later-founded Wired magazine. Browse issues on the Internet Archive. Mondo 2000 was relaunched as the blog Mondo2000.com in August 2017.
Computer Chronicles
The Computer Chronicles was an American half-hour television series broadcast from 1983 to 2002 on PBS (Public Broadcasting Service) television. The show documented various issues from the rise of the personal computer from its infancy to the global market at the turn of the 21st century.
Watch episodes on the Internet Archive.
Heathkit
Heathkit offered kits and other electronic products from 1947 until 1992. Over the decades, Heathkits have included electronic test equipment, high fidelity home audio equipment, television receivers, amateur radio equipment, robots, and the influential Heath H-8, H-89, and H-11 hobbyist computers, which were sold in kit form for assembly by the purchaser.
Heathkit mailorder catalogs arrived in a magazine format and were a true joy to browse. Some are available on the Internet Archive.
There are many more cool topics to explore about our history...
... stay tuned to HackerBoxes as we love weaving these stories into our monthly explorations of electronics, computer technology, and hacker culture.
GenAI
From the archives of computing machinery, let's dive back into right now...
Generative AI, also referred to as GenAI, allows users to input a variety of prompts to generate new content, such as text, images, videos, sounds, code, 3D designs, and other media. It “learns” and is trained on documents and artifacts that already exist online. (Coursera)
This visually provocative piece from Josh Wolf [@intellibotique] was actually prompted by a short poem:
When mainframes munch on LSD,
Punchcards become Pickaxes,
And intelligence turns artificial.
Rebranding mistakes as hallucinations.
Josh is a brand evangelist for Pickaxe. Their mission is to arm creatives and entrepreneurs for the new era of human-to-AI workflows and help small businesses personalize AI models with their own data, their own preferences, and their own creative spark.
Hack the Planet
We hope you are enjoying this month's HackerBox adventure into electronics, computer technology, and hacker culture. Reach out and share your success in the comments below or on other social media. Email support@hackerboxes.com anytime with questions or whenever you need some help.
Want more? Surf over to HackerBoxes.com and join us as a monthly HackerBox subscription member. You'll get a cool box of hackable gear delivered right to your mailbox every month and you'll enjoy a generous member discount.
Please consider sharing this free Instructable with others who may be interested in learning about these subjects. We really appreciate your support and "word of mouth advertising" is the greatest compliment that we can receive.