It’s a truism that a computer must boot before it begins to operate. Nowadays that bootstrapping process is automatic, but in the case of the very first home computers, it was very much a hands-on affair. That’s what all those switches and blinkenlights are for on the front panel of the Altair 8800 — laboriously flicking each bit into memory as required to get your program going.
[Linus Åkesson] missed those very early days, and wanted to see what it was like, and clicking virtual switches on an emulator wasn’t going to cut it. He realized that he could set up an ATmega88 for front-panel booting, and proceeded to do just that.
The article linked above goes into good detail; for those of you who prefer video, we’ve embedded his presentation below. They say the book is always better, but to get the full story, you’ll really want both in this case. The video contains a lot more context and build details, but neglects to mention some issues he had with programming that are detailed in the text. In short, the Write Page bit needs to be written to the Command register to use the page buffer. Which does make sense, but tripped [Linus] up at first.
Then again, this use case isn’t exactly detailed in the datasheet. ATmega88 is an old chip, but not Intel 8008 old, so that’s no surprise. Which is exactly what makes this a good hack! The only thing lacking is blinkenlights to allow one to see the contents of the registers. [Linus] discusses the idea of putting them in, but is apparently happy with this more minimalist approach.
We’ve seen the doughty Atmel chip hacked into everything from web-servers to washing machines, and even things that don’t start with “W”. As for the redoubtable [Linus], he’s most famous around these parts for his musical inventions and adventures with the Commodore 64.

That is cool.
Looks like we may have taken his site down, there is an Archive.org backup: https://web.archive.org/web/20251024110521/https://linusakesson.net/hardware/frontpanel/index.php
Pretty cool
I hope he doesn’t have to enter in the bootloader by switches to get the site back up!
Cool! Do need a row or two of lights though to verify what you have toggled in and step through it before hitting the execute button. Like the PiDPs. and Altair computers!
I feel like it would be OK to use a tiny OLED screen or LED matrix (8×8 MAX7219?) for that 😆
That would work too :) .
I tend to like multi-options.
1 row of lights for cthe urrent memory address and a matrix or screen that acts as a “window” that scrolls up and down in the total memory
But to do that you’ll probably need something bigger than the ATmega88 it’s designed to drive: while I’m no stranger to large computers having small computers handling their boot sequence and being available as a maintenance aid, switching their roles would be a bit of a… perversion.
However, it might be feasible to design a generic front panel using something like a Tang Nano FPGA board, which could drive a wide selection of backend processors. This could include generating DRAM refresh while the CPU is inactive, toggling boot code etc. into RAM, and allowing the CPU to execute the code with cycle-by-cycle monitoring using the memory bus’s RDY line.
The font on the panel is too modern, I think.
Yup, too thin. Needs to be heavier and in all upper-case.
Needs mehr Fraktur!
I too missed that early stage of computing by not being born yet.
I was not born so early as to miss the rotary phone.
Many years ago now, but after rotary phones were gone from all but the stubbornest of grandparent’s houses I bought one and put it in the living room mostly as a conversation piece.
I tried making calls on it. Wow! Drove me NUTS how long dialing 10 or ever 7 digits took!
I don’t think I would have done very well in those early days.
I meant “not born so late”