Weekly Spew – 4th August 2012Posted: September 4, 2012
A funny thing happened last week. I did a post about my preferred development environment, and suddenly my blog had 10,000 hits in a single time period. This is more traffic than I normally see, to say the least. As far as I can tell, it’s because it somehow landed on Hacker News, and I guess a whole bunch of people watch that site. Go figure… the power of the “new media”.
Some of my favorite sites like dangerous prototypes, and Adafruit, Hack A Day, and Spark Fun, have this thing where they’ll give a weekly summary of things that are happening with them, or things they are about to do. I thought it might be fun to pay homage and do something similar. Considering that I am not a business like those guys, I don’t have things to announce, but I do have various bits and pieces of hacking and discovery that I might have done, or am about to do.
I few weeks back, I purchased a ‘few’ Raspberry Pi computers. When I was a week little lad, I burned a logic chip on my Commodore 64, while hooking up my Fairchild multi-directional joystick. After doing that a couple of times, I learned the lesson that besides needing to use diodes and resistors when doing hardware hacking, you should always have spare parts laying around. So, I purchased enough that I could burn a few and not worry about slowing down my hacking.
One of the first things I’ve been trying to do is reduce the number of cords. To that end, I wanted to first cut the ethernet cable. First thing to do is install a release of the OS that will support WiFi out of the box. I am currently running the Adafruit Educational Distro. In my case, it’s the 0.2 version. I’m running this release because it supports hardware hacking out of the box, and they built in support for WiFi dongles, based on the Realtek RTL8188CUS wifi support.
One of the first things you have to do though is find a WiFi dongle that is actually supported. I purchased “a few” of this one: AirLink101 AWLL5088. I also bought this Edimax one. The AirLink seems to work just fine. It’s very tricky to find exactly the right one though. Even though they may have the same label, they might have a slightly different version of the chip, which may or may not be supported by the included driver.
The Pi is a fairly decent little piece of kit, but it’s fairly spartan in what it can support from a hardware perspective. Yes, it has two USB ports on it, but the WiFi dongle itself might require more power than the USB port has on offer. So, I actually use a powered USB hub to stick the WiFi dongle into. In this case, I took the lead from Adafruit and purchased this Manhattan powered USB hub. Whenever I can, I usually turn to Adafruit first, because they do a ton of research on what works, what doesn’t work, and they tell you why. In the case of this particular hub, they said it uses a single chip to support the 7 USB connections, rather than daisy chaining two lesser chips to get the 7 connections. Also, they include a 2A power adapter, which is great if you plan on plugging in a couple of beefy things like WiFi, and even a powered external USB drive (Gasp!).
Next I was trying to hookup wireless keyboards/mice, using what I had on hand, a Microsoft wireless keyboard. That hasn’t gone so well. I get a lot of repeated keys, and skipped keys. As far as I can tell from the forums, it has to do with dropped packets on the USB bus. I’ll have to try some of the suggested fixes, and see how that goes. I’m more inclined to go with the Miniature Wireless Keyboard that Adafruit has though, as I’m sure they have tested and made sure it actually works. Besides, it’s so tiny it’s cute. That will be perfect when I need to quickly talk to a board that might be encapsulated into some sort of installation. Ideally I’d use bluetooth, and again, I’m trying to get my Microsoft version of the same to work.
Now I have a fully supported RPi (as the kids call them) setup. I can run my beloved LuaJIT, Node, and all that UNIXy goodness. The first thing I’m playing with are two interesting bindings. OpenSSL, and OpenVG. Completely different things. I’m going at OpenSSL for some crypto and secure socket programming. OpenVG is so I can play around with graphics in the ‘language of my choice’ without much fuss.
While I’m at it, I figure now is as good a time as any to learn a little bit of ARM assembly language. Luckily, this nice guy, Alex Chadwick, has put together a free online course on how to write an OS for the RPi, using assembly language! I mean, come on really, seriously!
Back in the day, when I was programming 6502, things were quite different. My first machine was given to me by my uncle, who was busy programming missile systems for the navy, so he had bigger machines to play with. That machine must have cost a few hundred dollars, which is nothing a child of 13 was going to be able to afford. I was self taught, looking at the 6502 manuals, and plugging stuff in very crudely by hand. I had to do machine code, both ways, in the snow…
Now, for the cost of a couple of good Blue-Ray disks, any child can get their hands on an RPi, and get a University of Cambridge dude to show them how to program assembly on it. And not just “guess the animal”, but an OS that can control hardware and stuff. Please, pinch me! Not that I want to relearn everything that I’ve ever learned about computing, but this level of accessibility will no doubt lead to a renaissance in computer understanding and integration. We could probably really use a reset right about now anyway. We’ve traveled the path of ‘bigger better more complicated faster’, for quite a few years. Perhaps now it’s time for “smaller, lighter, simpler, more connected”. I’m sure different patterns are going to emerge.
Since it’s a spew of a post, I thought I’d throw in a picture of a 3D printed thing, because it’s something I do:
This lovely thing was created by:
- Artist hand crafted in clay
- NextEngine Laser Scanner used to scan
- Software used to clean up and colorize
- ZCorp 650 printer used to print
3D printing is a whole ‘nother hobby.
End of spew