A while back – around X-mass I guess, I got a Raspberry Pi microcomputer. I played with it a bit and then put it aside to work on other stuff. But recently I started messing around with it a bit, trying to learn some programming and such.
That’s it in the picture below, on the left side of the keyboard. Completely self contained, about the size of an iPhone but maybe three times as thick in its case. 4 USB ports, ethernet, WiFi, even bluetooth, and no fans needed, just a little metal finned heat sink. It comes with an HDMI port which means it will plug into any modern TV, but I bought an HMDI-to-Monitor cable for it so it will work on my monitor. It runs off a USB port plug, or a cell phone charger at 2 amps! The black box on the right is a 1 Terabyte Hard Drive.
So, what can I do with the Pi? I’ve learned a tad bit of Python programming, mainly controlling what happens in a small version of Minecraft that comes with the computer. I’ve followed instructions online and built a practice morse code keyer, which will use a python program to read what you punch in, and print the letters back to you. Useful if you wanted to become a licensed ham operator I guess.
I’ve messed a bit with the GPS card I bought for it. It was cheap too. The problem is, I can’t get the GPS to initialize on it’s own. Oh I can get it to work pretty well, but every time I reboot the thing I have to type in a few complex Linux commands to restart the GPS software.
It should work, I shouldn’t have to drop into a terminal window and type
sudo gaps /dev/ttyUSB0 -F /var/run/gpsd.sock
to get a reading from the GPS. That’s just crazy.
Maybe I’ll figure it out sooner or later. There’s a nice series of instructions for encoding GPS signals and sending them to a wireless device, the type that people have been using to send weather balloons into the edge of space and recovering the camera and such later. Also useful if you wanted to track anything moving, like cars or something.
So I gave up on that after several hours of headaches, and decided to try something simple. Networking should be easy, right? I’m not a super computer geek, but I know a bit about Windows. It didn’t take me very long on Windows to share a hard drive across my home network, so I could copy music and movies and such back and forth. My wife got a Macbook and I did the same thing, so she can move files and fonts back and forth for her craft machine.
But no matter what youtube instructions I watched and what forums I read, I couldn’t get into the darn shared drive of my Raspberry. I could see it, but it wouldn’t let me in.
A word about drive space: The raspberry comes with very limited memory – only 8 or 16gb on a micro SD card, and a portion of that is taken up by the operating system. But – I got a bigger card (32gb) and copied the files over. So I have a little breathing room. With the USB ports, though, you can use flash drives or hard drives to greatly expand its storage. I found some instructions online about creating a cheap Network Attached Storage system. I wanted a central drive that I could put any files on and get them anywhere across the home network, plus it would be something I could take with me on a trip and watch movies on a TV or play music.
Raspberry comes with a simplistic windows-looking desktop (think windows 3.1, not windows 8) that lets you do some basic things graphically, although most of what you have to do with the thing involves using linux commands from the terminal window. If you have a Mac, the Mac Operating System is basically the same thing. You can open a Mac terminal and enter commands. Don’t: because if you type something wrong you could trash your computer. Linux is unforgiving. Once you type in your command and enter the password, it does exactly what you ask it to, as wrong as it was.
Raspberry’s free OS is a bit lacking in the help department, and everything I found online was telling me to do different things to share a drive. Finally I ran across a thread where someone said, “I messed with the raspberry for hours and hours and couldn’t make it work. I loaded Ubuntu and did it in 30 minutes”.
U what Bu? This was intriguing, anything had to be better than the Raspberry’s faux-Windows. I loaded Ubuntu onto the thing. Ubuntu is basically another linux-based operating system. It just looks a little different and is somewhat more user friendly. Oh yeah, and it’s free too. All this Linux stuff is free, which is nice, but because so many people program Linux stuff, you never know what might work and what might not work. Also, some things WONT work, like my Wacom Graphics tablet. There’s no Linux driver for it.
Unfortunately I loaded Ubuntu on the Raspberry FROM the Raspberry, which is a bit like trying to put your car in neutral and change the engine while it’s running. I crashed it something bad, pulled out the memory card and loaded everything on the card using the Mac and a free tool online called (oddly enough…) PiFiller. No terminal commands to type, because one slip-up and I could write the Raspberry files as my Mac’s OS and lose everything.
At the end of the day (actually about 2am) I had an Ubuntu Desktop, which I modified to look a little matrix-y.
Ubuntu comes with the same free stuff that the original Raspberry system has, but it has a better web browser at least, and more on board commands that you can use graphically, such as moving and deleting files. It has a simple right-click menu for sharing drives, once you download the right file-sharing add-on. Ubuntu also comes with “Software Center”, something akin to the App Store on your cell phone. Need something? Browse the software center and click on it. Of course, Ubuntu runs on MANY computers, and doesn’t really care what it’s on. I doubt the Raspberry could handle some of the stuff, like Non-Linear Video Editing or Multichannel Audio Mixing. I did try Gimp (think Photoshop, for free) and it worked pretty well.
So, once I finally got the right OS loaded and everything working, I shared a drive, added myself as a user for the drive (linux is touchy with security. With Windows, you can let anyone in with no passwords. Linux is more security conscious with who can do what), and went to my Mac. Boom, there was my drive. Actually, I have several drives shared across the network. In the photo below the “16gb share” is the extra 16 gb part of the 32gb card in the raspberry itself. It goes everywhere with the raspberry. So it’s like a built in flash drive.
The drive you don’t see is my 1TB drive (because I unplugged it for the night) called BigAssDrive. But if I plug it in, it shows right back up and I can log into it and access it.
The other two drives are on my old windows XP machine. It desperately needs an upgrade. At this point it’s only real use is converting DVDs to MPEG-4s for my iPhone/iPad (great for traveling!), and running my XMrecording software. Butthead is my main storage drive on that computer, I can see stuff anywhere across the network but not change it. Daria is my temporary drive – I move stuff there and can read/write/delete stuff from any other computer.
The Raspberry is proving an interesting, if headachy, little device. The great thing about them is they are so cheap. For $50 you get a whole kit with the case and power plug and pre-loaded card. I spent more total on the mouse/keyboard ($20), the big SD Card ($11) and the HDMI-VGA converter ($25) than I did for the computer. When was the last time you could say that?
One of the interesting things about the Raspberry is the removable SD card with the operating system. You could theoretically have several cards with different preprogrammed functions, and just pick the one you want based on the project at hand. Want the Raspberry to automatically load a script and be the brains for a robot? Pop in the card you set up for that. Want it to be a fully functional computer with a free version of what looks like Microsoft Office, for traveling with work? Pop in your other card. Want to turn it into a dedicated security camera server? Different card. Instead of one computer trying to be everything, you can use whatever flavor software fits its function.
So what’s in my future for this thing? It has a little camera board that will do slow motion movies, I want to play with that some. Definitely get the GPS working. Learn more about programming. I’d like to try writing something to control my XM receiver. I got the control codes from an XM forum. The Raspberry comes with a pretty good set of documentation and programmable input/output pins so it can interact with the real world.
My only disappointment with the new operating system is movie playback. Under the pre-loaded Rasbian OS, there was a free movie player called TBOplayer. It worked pretty well at playing movies. Ubuntu seems a bit more processor-hungry. TBO player doesn’t work on Ubuntu, and VLC player (which works GREAT on Windows and the Mac for playing anything); while it runs on Ubuntu, doesn’t seem to work worth a damn. The audio plays and the picture doesn’t, or they get out-of-sync. So, I want to figure out what I need to do to it to play movies. It’s not a hardware issue, I just tried playing the Mpeg-4 of a movie through BigAssDrive over the network, and it plays fine. So it has to be a software or display thing.
Anyway, less nerding, more hiking, in the future. But right now it’s just too damn hot.