Monthly Archives: June 2011

Treasure Trove of Ideas Re: Homebrew CPUS

Dieter Muller has an amazingly interesting collection of interesting ideas about building homebrew cpus with TTL logic. I’m sure to old school logic designers, most of these are old hat, but to the nearly crazed home experimenter, they are quite illuminating. His hints on ALU design are what brought me to the site, so I’m leaving this breadcrumb on my blog so I can find it again easily.

Dieter’s Homepage..

Recordings of High Frequency Beacons…

It’s been quite some time since I’ve hunted for any beacons, and I’ve never really payed much attention to HF pirate beacons. Typically these are solar powered beacons which are deployed somewhere in the deserts of the American Southwest, and charge during the day and transmit simple sequences of Morse characters once the sun goes down. While they are technically illegal, the amount of power they emit is so low that they could hardly be said to interfering with anything, and besides: they are almost certainly so cheap that if you took the trouble to direction find one down, the creator could simply erect another one the following week. In any case, I found this website which details some of the beacons you can find on HF:

High Frequency Beacon – HF Underground

Armed with the list, I decided to take my trust SDR-IQ and see if I could hear some of them tonight. With just a brief scan, I determined that I could hear three of them that are in the vicinity of 4.096Mhz. I made brief minute long recordings of them, and these are still in WAV format rather than putting them through an MP3 compressor which might remove the signal entirely.

Signal around 4.089Mhz, reportedly from Death Valley
“Dasher” signal around 4.0963Mhz, from Joshua Tree National Park
“Dasher” signal around 4.0966Mhz, from Mojave National Preserve

The Death Valley signal is easier to hear, the Dasher signals were fading in and out, but should still be reasonably legible. You should be able to tell the difference in speed between them.

Here’s a screendump of Spectravue spectrum display, centered around the two Dasher beacons:

Perhaps this isn’t too exciting, but it was fun to see if I could find these. I’ll try hunting down some more of these, as well as some more unusual signals from time to time.

Short wave listeners and hams: what’s the most unusual thing you’ve heard lately? Feel free to chime in below. Bonus points for things that other SWL’s can listen for.

What is your blog’s business plan? Does it really need one?

It was a convenient time to renew my blog’s hosting plan over the weekend, so I made my payment and you can be assured that the brainwagon blog (which as many as a dozen of you inexplicably read) will be available for another 12 months. It got me thinking about the many bloggers I know who work on authoring and popularizing content as part of a business (or at least, a plan for business). I just spent $83 on hosting for the year, I got to thinking: what’s my business plan?

Well, the fact of the matter is, I don’t have one. It’s actually more than that: not only do I not have a plan, I have planned explicitly to not think of my blog as a business opportunity. It’s an expense, and isn’t expected to pay any financial dividends. Total costs in terms of name registration and hosting amount to about $100 a year or so.

So, why do I do it? Well, why do you plant flowers in front of your house? Sure, it probably does have some effect on the value of your house, but that’s only likely if you are going to sell your house in the near future. Yes, maybe it keeps a home owner’s association from complaining to you. But the real reason most people plant flowers is they like to garden, and it makes the place where they live a better, more beautiful place. You can thus view it as an investment of sorts, but not in the purely rational, economic sense of the word. It’s an investment in ourselves as well rounded and happy individuals.

The primary reason that I blog is entirely personal: I write about the things that interest me, and my blog serves as a diary of sorts. By reading my own posts in the “On this day…” sidebar, I can see what I was thinking about a year ago, and this often stimulates new explorations in the topics that I was interested in.

But there is another ulterior motive: I don’t see very many people blogging about these kinds of topics on a regular basis. I blog at least in part as a challenge and inspiration to others: if you’ve read my blog and found something neat, or like the approach that I take, my hope is that you will go ahead and start your own blog, on whatever topics you like.

I’m trying to inspire people to plant their own gardens on the Internet. Think of it as planting flowers.

It need not be expensive. In fact, I urge you to do it as cheaply as possible. As the saying goes, it’s no virtue to do with more what can be done with less. Every dollar you spend blogging about your interests is a dollar that you aren’t spending on what truly interests you, so minimizing the amount you spend on Internet means you can maximize what you spend on the good stuff. The $100 yearly expense I pay is about two cups of Starbucks per month, which seems entirely reasonable to me, but maybe times are tough for you, and you can’t swing that. You could do without your own domain name, and use free blog hosting like WordPress.com or Blogger, and link to videos that you host on YouTube or blip.tv. Host audio and podcasts on sites like OurMedia.

There is a slightly disturbing trend I’ve noticed where every interaction with our fellow man seems to be viewed as a business opportunity. Let’s face it: we can’t all make our livings selling our opinions to one another. I don’t view my readers as consumers or potential ad clicks. I seek to inspire and to be inspired by them. The payment I receive is in new thoughts and new ideas.

This is not meant to say that you shouldn’t monetize your blog. If you can make that model work, by all means, pursue that and good luck. But there are lots of ordinary people who seem to think that if they can’t make money on their blog, then they shouldn’t do it. My plea is ask people to think of their blog not as an economic opportunity, but an opportunity for communication, for inspiration, and for sharing.

What’s your blog’s business plan? Does it need one? I’d love to hear some different ideas (or even agreement).

Debugging an RFI problem on Field Day…

I spent most of the week in New York, so Field Day snuck up on me without me making any serious plans. But since Jeri has been homebrewing her own SDR I’ve been thinking more about that, and thought that I would dust off my SDR-IQ receiver and at least make some recordings of the crowded bands for field day.

So, I hooked it up, downloaded the latest version of Spectravue, and fired it up. And immediately found that there was some periodic high intensity noise, about 30khz wide and at intervals of around 160khz, all up and down the range covered by the receiver. Tuning down to the bottom, I found that there was indeed a sharper louder noise peak centered around 81Khz, and that we we were seeing mostly odd (but some even) harmonics all the way up to 30Mhz.

It seemed likely that it was a local noise source, so I immediately went around the house and checked all my fluorescent fixtures to make sure they are turned off. I knew from experience that the one in my garage can emit some pretty ugly hash, but switching them all off didn’t seem to help. I remembered that I had an air purifier upstairs turned on, so I switched that off. No help. I turned off TVs (which had never presented a problem before, so I couldn’t see why they would cause an issue now) but they also didn’t help.

I strained my brain: I had never seen this kind of noise before, it was probably local. What has changed in the electrical environment of my house? I couldn’t figure it out. I mused that maybe I had some bad connection in my antenna (which is probably not adequately weather proofed with coax seal) and that it was rectifying some local noise source. I contemplated tearing it down, and putting up another antenna.

I needed a break. Carmen and I took a walk down to W6CUS’s Field Day operations near the Berkeley Marina, and then went to Home Depot and bought ourselves a new replacement screen door for our patio. When we tried to get it in the Honda, it wouldn’t fit, so I sent her home to get the Expedition and waited, mulling it over.

When I got home, I was thinking of a different problem: the design of a VLF loop antenna. I disconnected my laptop and moved to the couch, where I dug up a copy of some loop antenna design software and played with some numbers for a while.

After an hour or so, I got bored, and decided to give the SDR-IQ a try. I went back to my antenna hookup, plugged in the SDR-IQ to my laptop, and fired up Spectravue. And… miracle of miracle… the RFI was gone!

Perhaps, think I, it was something like a motor in an air conditioning unit that had switched off. But huzzah! I could at least tune around and listen. So, I put the laptop back on the table. And.. the RFI is back.

Take it off. It’s gone. Put it back. It’s on.

Alright Mark, think. What the heck is going on?

I am operating on battery power. I wasn’t before. The power supply? But it’s not even plugged in. It’s just sitting there, it’s little plug dangling on the desktop next to where I put my laptop down…

Sure enough, even proximity to the power supply was enough to bring back the hash. Then I remembered, this laptop power supply was a replacement (an OEM replacement) for the original that I had used previously. That could explain why I had never seen it before. My wife’s laptop has the same kind of power supply, so I swapped that in. Silent as a church mouse. No problem at all.

Problem solved! And with that, I could go ahead and listen (and see, using Spectravue) the traffic on Field Day. By then it was 10:00PM, a couple of hours beyond sunset, but 20M was still open:

20M on Field Day, June 25, 2011

I recorded a half an hour of the full band for later experimentation, and then moved down to 40m, where you could see both the CW and voice portions of the band.

Anyway, it points out to me that the hardest part of debugging is to figure out what is relevant and what is not, what is changed and what has not. I had a preconceived notion that since I had used this computer before, nothing related to it could possibly have anything to do with it. But of course something had changed. In retrospect, noise from switching power supplies should always be on my mind when debugging these things.

Hope everyone had a good Field Day!

The Duo Adept, another 8 bit computer built from TTL logic…

In a previous blog post about a year ago, I pointed you at Jack Eisenmann’s 4 bit computer built from TTL chips. It was cool, made entirely on breadboards tucked away inside a big plastic container. Or, I used to think it was cool, until I saw what he’s been up to: an 8 bit computer, complete with video interface. All done on an ungodly number of breadboards. It takes a certain kind of obsessive lunacy to make one of these, and I can appreciate it.



His web page detailing the Duo Adept..

Bit banger

Anyone who has seen my projects on the Atari 2600 might reasonably conclude that I have a thing for retro computing. The saying goes “it is no virtue to do with more, what can be done with less” and I can’t think of someone whose projects have embodied that more than demo coder Linus Akesson (lft). His latest demo runs on the tiniest of tiny Atmel processors, the ATTINY15. It has just 32 bytes of memory (just the registers, really) and room for 512 instructions. Yet, lft made a cool demo that runs on it, generating both video and sound. Oh, and he’s only running it at 1.6 Mhz (yes, 1.6 Megahertz). Very cool!


More details about Bit banger, and how he did it..

Andrew Holme’s projects

Most of the websites that I link to are related to specific topics or projects. But every once in a while, you find one that has a bunch of good stuff that matches some of your esoteric interests, and you wonder how one person could do it all. Inspired by Jeri Ellsworth’s latest video showing her Spartan 6 FPGA board which reconfigures itself to generate the VFO, I thought I’d try to figure out what magic that entailed, with the idea of maybe doing something similar with my (as yet sorely underutilized) BASYS-2 board. That sent me to Andrew Holme’s project page:

Andrew Holme’s projects

He’s got some projects on Fractional-N frequency synthesizers, which I don’t think are exactly what we want, but what a treasure trove of cool projects. An experiment using core memory, a microcoded FORTH machine built from discrete logic, a homebrew spectrum analyzer, and an experimental GPS receiver! Too cool. Lots of good stuff.

The Gyrator VLF receiver…

Back on June 7, there was a spectacular coronal mass ejection on the sun:



Yes, I did mention this event and gave some links to VLF receivers at the time, but I’ve been thinking about this some more.

As an astronomy/telescope buff, I have built simple telescopes for looking at the sun, but I haven’t done much of that lately, and I have only recently become interested in observing the sun’s effect on the Earth’s radio environment. I’ve also had a fairly longstanding interest in VLF communications, and so the prospect of building a radio system for monitoring radio for SIDs (Sudden Ionospheric Disturbances) seems like a good project. I recall that Mark Spencer, WA8SME whom I’ve had the pleasure of meeting at Pacificon and even chatted with via the AO-51 satellite had published some articles on designing such radios for amateur and educational construction.

The most common way to monitor for SIDs is to try to detect the signal strength of the VLF station in Cutler, ME on 24Khz. Changes in signal strength can indicate the presence of solar flare activity as the ionosphere is bombarded by high energy particles. One common circuit that lots of people use is called The Gyrator VLF circuit, which you can find here:

The Original Gyrator Circuit (PDF)

I had never really looked at this circuit very carefully before, and looking at it tonight, I realized that it was actually fairly interesting and employs a technique which I hadn’t seen before. Instead of making a tuned front end using a (fairly large, because of the low frequency) inductor, they create an equivalent circuit using two op amps and a collection of resistors. This creates an inductor with very high Q, with the side effect that is easier to make, using operational amplifiers that you can still get at Radio Shack. I’ll probably try to simulate some of the basics with LTSpice to gain some intuition as to what’s going on, but it’s a simple enough circuit that just building it would be pretty easy.

The basic circuit has undergone a couple of iterations, and now the Gyrator III schematic is recommended by the AAVSO. You can check out the details here (and surf around, the AAVSO has lots of information on this stuff).

Software Defined Radio Links

I own an SDR-IQ software defined radio, a Funcube Dongle (more on that later) and have built a marginally operable Softrock Lite receiver, so you might say I’m interested in Software Defined Radios. But Jeri’s tinkering with her own software defined radio has rekindled my interest in homebrewing one. I was looking for Gerald Youngblood’s (AC50G) QEX article series entitled “A Software Defined Radio for the Masses”) and found that one good place to find it (and many other interesting articles) was unsurprisingly on the ARRL’s website.

Software Defined Radio

Jeri also pointed me at a an awesome presentation by Dan Tayloe, N7VE entitled “Very High Performance Image Rejecting Direct Conversion Receivers” that has lots of information that go well beyond my current understanding of receiver design and performance. Good reading, which will hopefully turn into a good project.

A Cree LED in my linear current LED Transmitter

I was away all weekend, so I didn’t get a chance to check out my LEDs that I got from Deal Extreme last week. Tonight, I just soldered a couple of clip leads and tried it out when hooked to the linear current modulator that I built (and blogged about) before. The transmitter in this video is set to pull an average of about 10ma average through the diode, with a peak of 20ma. That’s hardly enough to really get the cree going at all (I believe this one can go all the way to 350ma or so, and about 1W of output power) but it was enough to play with.



After I filmed this, I changed the current limiting resistor from 100 ohms to 16 ohms (by ganging two 32 ohm resistors together) and wired my multimeter in series with the supply to measure the power, and as expected it was 60ma, for an output of around 150mw or so (I didn’t measure the voltage drop, but I think it’s around 2.6 volts). It was quite a bit brighter, and was detectable even without any optical assistance at the other side of my room. To go much higher, I think I should probably swap the 2N3904 that I’m using to modulate it with something a bit beefier (like the IRF510s that I have lying around) and I’ll need some 1/2 watt current limiting resistors (probably around 3 ohms).

I’ll play with this some more in the next few weeks.

Some more simple test code for the Gameduino

Without explanation or screen dump, here’s a little program I hacked together.

Update: The syntax highlighter I was using is munging this stuff. So, here’s a link to a zip file containing the code.

#include
#include
#include

unsigned char h, m, s, f ;

static PROGMEM prog_uchar pacman_img[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 68, 68, 68, 68, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 68, 68, 68, 68, 68, 68, 68, 68, 0, 0, 0, 0,
0, 0, 0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0, 0, 0,
0, 0, 68, 68, 68, 17, 17, 68, 68, 68, 68, 17, 17, 68, 0, 0,
0, 0, 68, 68, 17, 17, 17, 17, 68, 68, 17, 17, 17, 17, 0, 0,
0, 0, 68, 68, 17, 17, 34, 34, 68, 68, 17, 17, 34, 34, 0, 0,
0, 68, 68, 68, 17, 17, 34, 34, 68, 68, 17, 17, 34, 34, 68, 0,
0, 68, 68, 68, 68, 17, 17, 68, 68, 68, 68, 17, 17, 68, 68, 0,
0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0,
0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0,
0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0,
0, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 0,
0, 68, 68, 4, 68, 64, 68, 4, 4, 68, 64, 68, 4, 68, 68, 0,
0, 64, 4, 4, 0, 64, 64, 4, 4, 64, 64, 0, 4, 4, 64, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 0,
0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0,
0, 0, 85, 85, 85, 17, 17, 85, 85, 85, 85, 17, 17, 85, 0, 0,
0, 0, 85, 85, 17, 17, 17, 17, 85, 85, 17, 17, 17, 17, 0, 0,
0, 0, 85, 85, 17, 17, 34, 34, 85, 85, 17, 17, 34, 34, 0, 0,
0, 85, 85, 85, 17, 17, 34, 34, 85, 85, 17, 17, 34, 34, 85, 0,
0, 85, 85, 85, 85, 17, 17, 85, 85, 85, 85, 17, 17, 85, 85, 0,
0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,
0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,
0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,
0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,
0, 85, 85, 5, 85, 80, 85, 5, 5, 85, 80, 85, 5, 85, 85, 0,
0, 80, 5, 5, 0, 80, 80, 5, 5, 80, 80, 0, 5, 5, 80, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 102, 102, 102, 102, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 0, 0, 0, 0,
0, 0, 0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 0, 0, 0,
0, 0, 102, 102, 102, 17, 17, 102, 102, 102, 102, 17, 17, 102, 0, 0,
0, 0, 102, 102, 17, 17, 17, 17, 102, 102, 17, 17, 17, 17, 0, 0,
0, 0, 102, 102, 17, 17, 34, 34, 102, 102, 17, 17, 34, 34, 0, 0,
0, 102, 102, 102, 17, 17, 34, 34, 102, 102, 17, 17, 34, 34, 102, 0,
0, 102, 102, 102, 102, 17, 17, 102, 102, 102, 102, 17, 17, 102, 102, 0,
0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 0,
0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 0,
0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 0,
0, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 0,
0, 102, 102, 6, 102, 96, 102, 6, 6, 102, 96, 102, 6, 102, 102, 0,
0, 96, 6, 6, 0, 96, 96, 6, 6, 96, 96, 0, 6, 6, 96, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 119, 119, 119, 119, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 119, 119, 119, 119, 119, 119, 119, 119, 0, 0, 0, 0,
0, 0, 0, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 0, 0, 0,
0, 0, 119, 119, 119, 17, 17, 119, 119, 119, 119, 17, 17, 119, 0, 0,
0, 0, 119, 119, 17, 17, 17, 17, 119, 119, 17, 17, 17, 17, 0, 0,
0, 0, 119, 119, 17, 17, 34, 34, 119, 119, 17, 17, 34, 34, 0, 0,
0, 119, 119, 119, 17, 17, 34, 34, 119, 119, 17, 17, 34, 34, 119, 0,
0, 119, 119, 119, 119, 17, 17, 119, 119, 119, 119, 17, 17, 119, 119, 0,
0, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 0,
0, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 0,
0, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 0,
0, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 0,
0, 119, 119, 7, 119, 112, 119, 7, 7, 119, 112, 119, 7, 119, 119, 0,
0, 112, 7, 7, 0, 112, 112, 7, 7, 112, 112, 0, 7, 7, 112, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

} ;

int px[4] = {0, 0, 0, 0} ;
int vx[4] = { 11, 12, 14, 16 } ;
int cnt = 0 ;

void
setup()
{
int i;

delay(2500) ;
GD.begin() ;

GD.ascii() ;

h = m = s = 0 ;

GD.copy(RAM_SPRIMG, pacman_img, sizeof(pacman_img)) ;
GD.copy(RAM_SPRIMG, pacman_img, sizeof(pacman_img)) ;
GD.wr16(PALETTE16A+0, TRANSPARENT) ;
GD.wr16(PALETTE16A+2, RGB(255,255,255)) ;
GD.wr16(PALETTE16A+4, RGB(0, 0, 64)) ;
GD.wr16(PALETTE16A+14, RGB(255, 0, 0)) ;
GD.wr16(PALETTE16A+12, RGB(0, 192, 192)) ;
GD.wr16(PALETTE16A+10, RGB(255, 128, 128)) ;
GD.wr16(PALETTE16A+8, RGB(255, 160, 0)) ;

GD.fill(RAM_PIC+22*64, 1, 64) ;
GD.wr16(RAM_CHR+16*1+0, 0) ;
GD.wr16(RAM_CHR+16*1+2, 0) ;
GD.wr16(RAM_CHR+16*1+4, 0) ;
GD.wr16(RAM_CHR+16*1+6, 0x4001) ;
GD.wr16(RAM_CHR+16*1+8, 0x4001) ;
GD.wr16(RAM_CHR+16*1+10, 0) ;
GD.wr16(RAM_CHR+16*1+12, 0) ;
GD.wr16(RAM_CHR+16*1+14, 0) ;
GD.wr16(RAM_PAL+8*1+0, TRANSPARENT) ;
GD.wr16(RAM_PAL+8*1+2, RGB(255,255,0)) ;

GD.putstr(15, 17, “It’s time for PacMan!”) ;

for (i=0; i<4; i++)
px[i] = random(-16*16, 400*16) ;

}

void
loop()
{
char timebuf[9] ;
int i ;

for (;;) {
for (i=0; i<4; i++) {
px[i] += vx[i] ;
if (vx[i] >= 400*16)
px[i] -= 401 * 16 ;
}

cnt = cnt + 1 ;
if (cnt >= 16) cnt = 0 ;
f ++ ;
if (f >= 72) {
f = 0 ;
s++ ;
if (s >= 60) {
s = 0 ;
m ++ ;
if (m >= 60) {
m = 0 ;
h++ ;
if (h >= 24) h = 0 ;
}
}
}
GD.waitvblank() ;
for (i=0; i<4; i++)
GD.sprite(i, px[i]/16, 180-8, i, 4+2*(cnt >= 8), 0, 0) ;
sprintf(timebuf, “%02d:%02d:%02d”, h, m, s) ;
GD.putstr(21, 19, timebuf) ;
}
}

Papilio – An Introductory FPGA Kit

My own explorations of FPGA have been, well, slow. Well, let’s be truthful: since buying a BASYS-2 board, I have done little more than ensure that it powers up. But I’m still interested in FPGAs, and so I thought I’d draw attention to a board that I saw for the first time at the Maker Faire: the Papilio. For $50, you can get a cute little board with a 250K gate Xilinx FPGA on board (similar to the Gameduino, but it is an empty slate, upon which any design can be imposed, and it is meant to stand alone, not be chained to an Arduino). Expansion is provided via a series of “wings”: little plugin boards (smaller than the traditional Arduino shields) that include things like a joystick interface and a VGA interface. For around $100, you can get Papilio and a set of wings that can enable you to recreate some of the classic arcade games like PacMan and Frogger.

FPGAs have a bit of a higher learning curve than something as simple as the Arduino, but ultimately much more powerful and flexible. Very cool, and at an attractive price point.

Papilio.

Gameduino Programming Examples?

I am going to be trying to post some code examples and demos using the Gameduino over the next few weeks. I have an idea for a crazy little demo project that I should be able to hack together in a few hours. I’m curious though: who else has got one, and what are you implementing? Let’s work on getting some examples and some inspiration. Try using the #gameduino hashtag on Twitter and letting us know about what you’ve accomplished. And let’s share code too! Particularly for the slightly crazy FORTH microcode, which looks too fun for words.