Like many things that I post, this is a long and rambling story that could be summarized like this: Wow, it sure is easier to set up a Raspberry Pi image today than it used to be!
…and now, the long version:
I began my current embedded C programming job in April 2012. This is what (indirectly) got me exposed to Arduino and Raspberry Pi. While I was certainly aware of both of them (and had even considered buying an Arduino UNO to play with), I had never actually used either. I have previously mentioned how getting to use an Arduino at work led me to using them for a local Halloween haunted house input controller project. I also ended up ordering a Raspberry Pi to have a cheap Linux-style system to learn on.
In July 2012, I ordered Raspberry Pi from Newark/Element14 and it arrived a month later. (I actually got mine sooner than a coworker who had ordered his as soon as RaspberryPi.org started taking pre-orders.) Getting this Pi going was cumbersome, and involved downloading special utilities that could format an SD card on a Mac in the Linux file format so it could then be booted on the Pi.
As I have mentioned in other posts, I have lately had an interest in retro gaming (a very affordable alternative when you can’t justify buying a $400 PlayStation 4). A friend of mine, that I will call Mike (because that is his name), informed me that a cheap $35 Raspberry Pi could be made in to a nice retro emulation system running MAME and other open source emulators (see the PiMAME project). If you are interested in this, all you need is a Raspberry Pi, an enclosure, USB power supply and an SD card. The whole thing could be bought for around $60.
Unfortunately, I couldn’t get all the emulators to recognize the controller I wanted to use, and Mike had to loan me a USB keyboard so I could navigate the menus since most of them didn’t accept joystick input. Plus, getting game ROMs on to the Pi was difficult since you couldn’t just take the Linux-formatted SD card out and copy games to it directly. Most folks just put their Pi on the home network and used FTP. That’s fine, but I had no ethernet available in the living room where my Pi was hooked to a TV. The Pi has two USB ports, but all the sites say you shouldn’t try to run a wireless adapter without using a powered hub. The end result would have ben a Pi with power supply, a USB hub with power supply, a USB keyboard, USB mouse, a WiFi dongle, plus a cable running to the joystick (if I could get it to work). (Mike used a hybrid keyboard/trackpad thing that cut down on cables a bit.)
Even without getting this far, and just playing games using the USB keyboard, I found that PiMAME wasn’t fast enough to some of the later games I tried. It was, like many open source projects, a clunky mess to get things all going and working together. I am told the PiMAME team is working on making a much nicer front end that would at least take care of the user interface challenges.
Thus, I gave up on PiMAME and switched over to a commercially available Ouya Anrdoid device (thank you, Amazon, for the chance to review this interesting product). The Ouya plays games that the Pi had trouble with, plus has WiFi built in, can read a PC-formatted drive, and also comes with a wireless controller. It still doesn’t seem to support the USB joystick I want to use, but it did recognize my Atari 2600 USB joystick just fine — great for the 2600 emulator!
So tonight I traded my original Pi to Mike, and I decided I would download a fresh Pi image and reset my PiMAME box back to stock Linus. Boy have things changed!
Today, you just go get an SD formatting utility (for Mac or Windows), use it to format the SD card, and then extract a zip file to the card. The Pi can boot off that, and then the rest of the install can be done via a keyboard/TV. There was even a smaller version of the zip that would download the rest over the internet.
I just tried it and it worked fine. One downside: If you choose the NOOBS image, a keyboard is required (but not a mouse; you can use arrow keys and hot keys to do the install). If you choose Raspberian directly, it starts up with SSH enabled so you can hook the Pi to a computer and ssh in to it and complete the install/setup without ever hooking up a monitor or keyboard. Thank goodness I forgot to return the USB keyboard to Mike tonight, else I would have been starting all over with that image. (I haven’t had a wired keyboard/mouse in ages.)
Good job, Pi team. This is so much easier than the first time around.
UPDATE: I have now learned that the “easy” part of this is the NOOBS distribution. If you want to directly install Rasperian, that still requires writing out a raw Linux disk image using special software. The Rasperian image has SSH enabled by default (I think) so you can just insert the SD card, and then plug the Pi up to your router and boot it. You can log in to your router to find the IP address the Pi is using, then ssh in to it to finish configuration. The NOOBS install is a front end to install an OS, so it has no remote capability enabled. Thus, you have to have an HDMI tv/monitor (or composite monitor) and USB keyboard to get it to install Rasperian (or other OS).
UPDATE 2: And, I have found out that my system no longer likes my Transcend 8GB SD card, which used to work fine. Previously, my system had locked up after a system update and I assumed it had just messed up and bricked the image. I never got around to restoring the SD card until the other night. While it boots NOOBS and installs, it hangs during the Raspberrian reboot with some disk error I find in numerous reports online… My card model appears on the compatible list, so perhaps it’s just going bad? Dunno. My Pi is dead for now, until I get the SD card issue figured out.
2014/12/31 UPDATE: The December 2014 release of NOOBS has fixed the issues and now that SD card boots just fine. Win!