Bare Metal Programming With Only Three Buttons

For anyone who’s seen a 1970’s era microcomputer like the Altair 8800 doing its thing, you’ll know the centerpiece of these behemoths is the array of LEDs and toggle switches used as input and output. Sure, computers today are exponentially more capable, but there’s something undeniably satisfying about developing software with pen, paper, and the patience to key it all in.

If you’d like to get a taste of old school visceral programming, but aren’t quite ready to invest in a 40 year old computer, then [GClown25] might have the answer for you. He’s developed a pocket sized “computer” he’s calling the BIT4 that can be programmed with just three tactile switches. In reality it’s an ATMega4809 running C code, but it does give you an idea of how the machines of yesteryear were programmed.

In the video after the break, [GClown25] demonstrates the BIT4 by entering in a simple binary counter program. With a hand-written copy of the program to use as a reference, he steps through the memory addresses and enters in the command and then the value he wishes to operate on. After a few seconds of frantic button pushing, he puts the BIT4 into run mode and you can see the output on the array of LEDs along the top edge of the PCB.

All of the hardware and software is open source for anyone who’s interested in building their own copy, or perhaps just wants to take a peak at how [GClown25] re-imagined the classic microcomputer experience with modern technology. Conceptually, this project reminds us of the Digirule2, but we’ve got to admit the fact this version isn’t a foot long is pretty compelling.

Continue reading “Bare Metal Programming With Only Three Buttons”

New Part Day: ATMegas With Programmable Logic

Since Microchip acquired Atmel, the fields of battle have fallen silent. The Crusaders have returned home, or have been driven into the sea. The great microcontroller holy war is over.

As with any acquisition, there is bound to be some crossover between two product lines. Both Atmel’s AVR platform and Microchip’s PICs have their adherents, and now we’re beginning to see some crossover in the weird and wonderful circuitry and design that goes into your favorite microcontroller, whatever that might be. The newest part from Microchip is an ATMega with a feature usually found in PICs. This is a Core Independent Peripheral. What is it? Well, it’s kinda like a CPLD stuck in a chip, and it’s going to be in the new Arduino board.

The ATMega4809 is the latest in a long line of ATMegas, and has the features you would usually expect as the latest 8-bit AVR. It runs at 20MHz, has 48 K of Flash, 6 K of SRAM, and comes in a 48-pin QFN and TQFP packages. So far, everything is what you would expect. What’s the new hotness? It’s a Core Independent Peripheral in the form of Configurable Custom Logic (CCL) that offloads simple tasks to hardware instead of mucking around in software.

So, what can you do with Configurable Custom Logic? There’s an application note for that. The CCL is effectively a look-up table with three inputs. These inputs can be connected to I/O pins, driven from the analog comparator, timer, UART, SPI bus, or driven from internal events. The look-up table can be configured as a three-input logic gate, and the output of the gate heads out to the rest of the microcontroller die. Basically, it’s a tiny bit of programmable glue logic. In the application note, Microchip provided an example of debouncing a switch using the CCL. It’s a simple enough example, and it’ll work, but there are a whole host of opportunities and possibilities here.

Additionally, the ATMega4809, “has been selected to be the on-board microcontroller of a next-generation Arduino board” according to the press release I received. We’re looking forward to that new hardware, and of course a few libraries that make use of this tiny bit of custom programmable logic.