My students in Intro CS this year have decided they want to build a tabletop arcade game for their final project. They picked this because they had heard about the Raspberry Pi, and wanted to do something cool with it. I swear that I had no influence on them choosing this project (though my personal collection of arcade games may have influenced my willingness to allow them to do something of this scale).
First up, I ordered the Raspberry Pi. This ended up being much more complicated than expected. At the time, Amazon had the Raspberry Pi in stock – but for $90! Considering this was supposed to be a “$35 computer,” I wasn’t interested in that. I found the American distributor is a company called Newark, and I was able to order directly from them. Unfortunately, I had to pay a rather exorbitant amount for shipping and the thing was backordered. It arrived just a few days before school started back up after spring break.
Device and adapter cables in hand, I excited brought the Pi to my students. I had done a little bit of reading of the quick-start guide (and I’m familiar with Linux), but I decided I wanted them to do most of the prep work. I showed them the Pi, and explained what each of the important ports was for, along with a variety of cables and an SD card, and from that point on I let them take the lead.
First they plugged everything in, including the SD card. They did this without reading any instructions whatsoever. The Pi powered on, but nothing appeared on the screen. At this point, they were stumped. I suggested they actually read the quick start guide that I had pointed them to. They had only looked at the first page! Kids these days…
They soon discovered they needed to put an “image” on the SD card. I offered to download it for them with my faster internet connection, if they could tell me what file to download. They found the “Raspbian wheezy” image file, and I commenced downloading while we discussed the origins of that very silly-sounding name.
So after writing the image to the SD card, we started it up again. This time, a green light started blinking – that looked good! Unfortunately, nothing came up on the monitor we had connected via an HDMI to DVI converter.
I suggested rebooting, which they did by unplugging the USB power source. Unfortunately, the screen was still blank.
At this point, I suggested that we plug it in to the overhead projector using an ancient composite video connection, and Eureka, we had a picture! The students logged in using the default credentials (by this point, they had learned that they should actually read, and not just skim). At this point, class ended, but I promised to investigate the video issues.
So I set out to figure out the video issues. I tried using a different video adapter (HDMI to VGA), but this gave me the same result. I plugged in to a TV that had an HDMI connection, and that worked fine, so it seemed like it was not properly detecting the existence of the monitor.
I found mention of changing some config.txt settings, so I put the SD card back in my Windows 7 computer. Uh oh. The card was showing up as a 55 MB unformatted partition, and I couldn’t see any of the files!
I should note that I have a Dell Latitude E6410 laptop, with a built-in Ricoh SD Card reader. It appears that this was actually the culprit. I tried a bunch of futzing around, attempting to hook the SD card reader up to a virtual machine running Ubuntu, but nothing would get the computer to recognize anything other than a small RAW partition.
I decided to try an external SD card reader, and this solved my troubles. Now I was able to see a FAT partition, including files! So, note to wary travelers: if you’re having trouble working with the files on your SD card, try using a different card reader!
Next up was to actually make some changes to the config. First off, you should use a multi-platform-aware editor, such as Notepad++, to work with the config files. Regular old notepad will not show the line endings properly.
I opened up config.txt, and tried a bunch of little changes, going back and forth between the computer and the RPi. The one setting that actually made a difference was
I uncommented it by removing the “#” from the beginning of the line, and then the RPi was able to boot connected to a Dell monitor over DVI! This appeared to be the only setting change necessary to get a picture to show up (although we may decide to change the resolution to suit our needs later).
Hopefully this helps someone having similar problems. Or even me next year when I forget all this.