Browsed by
Month: August 2012

Raspberry Pi Uses?

Raspberry Pi Uses?

When the Raspberry Pi was announced I went and bought a pile of them. Now they sit in my apartment, unused. A long while back I got the hard floats working but now you can get that standard. I got it running videos pretty good but now there is an XMBC installation.

What to do, what to do? There is a pretty decent looking 3D-printed case with “LEGO feet” I really like the look of. Plus, the latest LEGO Mindstorm bricks are mostly unlocked– with USB and Bluetooth support– so those are potential resources for a project…

A while back I did make an automated paintball turret. It used a pretty dinky netbook as its brain so I am not too worried about the Raspberry Pi and its 700MHz ARM CPU. I am more familiar with the x86 mobobs so optimization may be a (fun) hassle. Also, since it generates so little heat, it will be a lot easier to build a case to protect it from enemy fire. Hell, if raw processing power does become an issue I can always throw in a tiny network switch and combine a few of the little guys (I was thinking USB-to-USB but, after thinking about it, USB 2.0 only does client/server so efficient polling may be an issue… I do not know).

Well, I have to decide. Perhaps it would be a good project to do with The Womantm

LEGO feet!

Update 2012.09.12
A team of people (including a 6-year-old) have clustered 64 of these bad boys. They were cool enough to include a really nice how-to so maybe I will take a crack at it over a weekend.

Update 2012.09.25
The Pi can now be clocked up to 1GHz plus it is officially supported. You can go higher but, according to the organization, you risk your hardware.

Update 2012.11.12
Been playing with some robotic and media center software a lot as of late which gave me a few ideas:

  1. The Raspbery Pi as a robotics platform/controller. Nothing new there but if I combine it with motion/depth detection (see OpenCV with stereo web cams) I could make an automated paintball sentry… or worse!
  2. A portable media center powered by the ‘Pi. With a decent battery (say, this happy ‘lil fellow), USB-powered HDMI projector, and some cheap speakers (if the projector does not provide them) I think you could have a decent setup. Well, decent enough for what it is to make me happy, any way.
  3. Control the LEGO Mindstorm from the thing. All the Mindstorms come with excellent hardware for their intended audiences/purposes. With that said, CPU and memory are limited. There are many ways to control your Mindstorm Brick via Bluetooth and/or USB. Since the ‘Pi is so light I see no issue with just sticking it on top of the whole assembly, with a battery, and using that to control the Brick, which controls everything else. Blam-O, instant my-first-programming and robotics project!
  4. Minority Report-style interface. Holographic technology– and price– are not there just yet but with a different display (say, projector with a large screen) this is very doable. There are even a lot of tutorial for similar projects out there already using OpenCV or the Microsoft Kinect.
Slow Wi-Fi Speed with Linux While on Battery Power

Slow Wi-Fi Speed with Linux While on Battery Power

I recently installed a new distro on my netbook. After using it for a few seconds I knew something was wrong with the wireless connection as it was hell’a slow. Could not figure it out at first but then I saw what I was missing: It was only slow while running on battery.

Turns out it was the power management. Whenever I went over to battery it kicked in and my ~3MB/s speeds went to ~32KB/s. Big, big drop so something must be done, right? Right.

Just create /etc/pm/power.d/wireless with:


iwconfig wlan0 power off

Then make it executable with chmod +x /etc/pm/power.d/wireless.

This will disable wireless power management whenever the machine goes to battery power. Problem solved.

Byzantium – Automatic, Secure Wireless, Mesh Networking

Byzantium – Automatic, Secure Wireless, Mesh Networking

Just a quick post to bring everyones attention to a why-did-I-not-think-of-that project by the name of Byzantium. From the site:

The goal of Project Byzantium is to develop a communication system by which users can connect to each other and share information in the absence of convenient access to the Internet. This is done by setting up an ad-hoc wireless mesh network that offers services which replace popular websites often used for this purpose, such as Twitter and IRC.

These services and web apps were selected because they are the ones most often used by activists around the world to find one another, exchange information, post media, and organize. They were also selected because they stand the best chance of being easy to use by our intended userbase, which are people using mobile devices like smartphones, MP3 players, and tablet PCs.

Unlike most mesh implementations, a Byzantium Mesh requires no specialized equipment that may not be easy to get during an emergency, just an x86 computer with at least one 802.11 a/b/g/n wireless interface.

I am a strong, strong believer that– in most cases– commodity electronics are now more than cheap and powerful enough to replace dedicated, specialized hardware. What we used to do in hardware can now be done in software with at least as much safety and security. In some cases it can be done better since the software often has knowledge of the underlying systems (think ZFS as opposed to dedicated RAID controllers).

Any way, I had a love-at-first-site (get it?!) reaction to this project so I just figured I would help spread the word.

Recursively Remove .cvs/.svn/.git Directories

Recursively Remove .cvs/.svn/.git Directories

I tend to keep backups using several methods depending on the situation. Some times I run a script that invokes rsync with rolling, date-based backup. Lately I have been experimenting with compressed/dedup archives/filesystems.

One nearly constant annoyance, though, are those pesky .svn, .cvs, and .git directories. They serve a purpose, but not within my backup that already versions its data.

In order to be rid of them I just run rm -rf `find ./ -type d -name [directory to remove]`. If you wanted to, you could stick this into a script within your path:


if [ $# == 1 ]; then
rm -rf `find ./ -type d -name $1`
echo "Script requires one argument."

This would allow you to pass the directory you want to recursively be rid of in whatever directory you call it from. Note this script will not handle spaces in the argument but for this we do not need it.