Flutterby™! : Microcontroller madness

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

Microcontroller madness

2008-04-02 14:21:32.631593+00 by Dan Lyke 3 comments

Since I'll be spending my day tweaking code on this particular platform: Over at Brainwagon, Mark had an entry embedding this video of a "how much can you squeeze into 8k of ROM and 1k of RAM" demo on a microcontroller, with all video signals and timing done in software.

Complete schematics and source code for doing this with your own ATMega88.

[ related topics: Hardware Hackery Open Source Software Engineering Embedded Devices Video ]

comments in ascending chronological order (reverse):

#Comment Re: made: 2008-04-02 15:55:19.730513+00 by: ebradway

Cool. Makes you wonder what you could do with four 2.4Ghz 64-bit CPUs and 4GB of RAM... Oh... Maybe barely run Vista?

I always found the limitations of hardware to increase creativity.

#Comment Re: made: 2008-04-02 18:22:51.703113+00 by: mvandewettering

I didn't have time yesterday to look up the schematics and source code yesterday. Thanks Dan, for bringing it to my attention. As it happens, I have a couple of ATMEGA 88's sitting in a bag next to my desk, so this project would be pretty easy to do.

Overall, the project reminds me a lot of my excursion into programming the Atari 2600, except that instead of a 1.something megahertz 6507 and only 128 bytes of ram which takes 2-5 cycles (or more) to execute a single instruction, you have a 20Mhz processor with 32 8 bit registers, nearly all of which execute in a single cycle. Of course, you don't have the TIA timing chip or any of the sound or player missile hardware, but obviously, you can get away with a lot given the extra cpu capabilities.

I particularly liked the "oscilloscope" display toward the end, which also displays a low resolution version of the Julia set. It's really all quite clever.

#Comment Re: made: 2008-04-04 20:19:57.351689+00 by: ebradway

I got the feeling that the demo was basically encoded audio and video burned into the ROM at low-res (probably with the audio encoded as a series of frequency deltas). But still impressive.

32 8-bit registers is pretty darn sweet. Is there as separate ADDR register or can any of those be used as data/code pointers?

The 2600 only had 128 bytes of RAM? That feels downright claustrophobic!