[HN Gopher] Front-Panel Booting an ATmega88 Microcontroller
       ___________________________________________________________________
        
       Front-Panel Booting an ATmega88 Microcontroller
        
       Author : robin_reala
       Score  : 42 points
       Date   : 2025-10-24 09:43 UTC (4 days ago)
        
 (HTM) web link (www.linusakesson.net)
 (TXT) w3m dump (www.linusakesson.net)
        
       | cameron_b wrote:
       | This is the way.
       | 
       | I've seen a lot of hand-waving explanations of how boot-strapping
       | happens (and granted it is very implementation-specific) but this
       | is delightfully complete without veering off into the rough.
       | Interface schematic            Architecture reference AND AVR
       | Binary output reference for programming            Achievable
       | Fun!
        
       | jack_tripper wrote:
       | Finally, a programing job that AI won't be able to replace.
       | 
       | We had devices like those in university, left from previous
       | generations where they'd manually program Z80s ROM by hand
       | through switches and see the output on LEDs.
       | 
       | Then programing(not the correct term) CPLDs via obscure
       | programming languages and some MS-DOS tool via the parallel port.
        
         | jecel wrote:
         | > Finally, a programing job that AI won't be able to replace.
         | 
         | Well, at the recent VCF (vintage computer festival) Midwest
         | they showed a robot using the Altair's front panel to toggle in
         | a game:
         | 
         | https://techav.net/post/796938975198707712
        
       | kurtoid wrote:
       | Looks down for me.
       | https://web.archive.org/web/20251024110521/https://www.linus...
        
         | mzs wrote:
         | the video from that page:
         | https://www.youtube.com/watch?v=S-2adBkW7Xo
        
       | Fwirt wrote:
       | I kind of wonder if the designers of the Atmega8 series had this
       | in mind when they designed the parallel interface. I always
       | wondered if there were any modern devices left other than say,
       | EPROM where programming by hand was still possible. The fact that
       | you can do this means you could use an Atmega8 to bootstrap a
       | larger computer that was dependent on a serial interface. Always
       | thought it would be interesting to see someone program a desktop
       | "from nothing" starting with just hardware and no software (other
       | than boot ROMs and firmware) and end up with a usable OS like
       | that UEFI FORTH implementation.
        
         | grishka wrote:
         | The main problem seems to be that the only way the BIOS can
         | boot an OS is a mass storage device with executable code in the
         | boot sector, in contrast to older computers that had some sort
         | of monitor/debugger in their ROM. I haven't researched disk
         | drive interfaces, but trying to hook up a floppy drive to some
         | toggle switches so I could write a boot disk would be my first
         | step. But then modern motherboards don't have floppy drive
         | controllers -\\_(tsu)_/-
         | 
         | Of course you can also try to reprogram the BIOS ROM on the
         | motherboard, but you're likely to need a full OS to first
         | reverse engineer it enough to know where to stick your debugger
         | code.
        
           | vdupras wrote:
           | I think the broad idea isn't to directly, for example,
           | program a floppy disk drive (to boot a PC from BIOS) driver
           | from such a front panel (a gargantuan task), but to gradually
           | bootstrap your way up there.
           | 
           | For example, you could build yourself a makeshift hex
           | keyboard and load a driver for that keyboard onto an ATmega.
           | Good! from that point on, you can enter bytes faster.
           | 
           | Then, you hook a few seg7 together to have some kind of
           | display. Even better!
           | 
           | ... and so on, until you can drive that FDD.
        
             | grishka wrote:
             | Or emulate one. Yeah, right.
        
         | dragontamer wrote:
         | I'm fairly certain that any simple MCU with static clock (ie:
         | supports 0.01 Hz clock, or 100seconds per clock and slower)
         | will suffice as a human level bootstrap.
         | 
         | ATmega8 happens to satisfy those requirements. It's also not
         | too hard to program microcontrollers that would support human
         | level inputs.
         | 
         | In practice, the bootstrap device will be like a Windows7
         | laptop we've got squirreled away somewhere. It's probably
         | cheaper to buy up a ton of used / old laptops that are
         | sufficient for bootstrapping rather than trying to build
         | methodologies that bootstrap from scratch.
        
       | jonjacky wrote:
       | _I wasn 't planning to use the front panel extensively because,
       | as mentioned in the video, front-panel booting is not a practical
       | way to start a computer._
       | 
       | The next step up is to use a hex keypad to enter 16 bits at a
       | time. Some single board computers from the 1970's provided this.
       | It was marginally practical - I used to enter programs of a
       | couple of hundred bytes into a KIM-1 this way, it only took a few
       | minutes.
       | 
       | Those computers did provide a simple monitor in ROM to support
       | this, but that code was very small - Steve Wozniak's Wozmon
       | monitor for the Apple I was 256 bytes. You could probably design
       | some circuitry not much more complicated than in this article to
       | replace its row of switches with a keypad.
        
       ___________________________________________________________________
       (page generated 2025-10-28 23:02 UTC)