Category Archives: Mobile

Gremlin : A new little robot

I started working on a new little robot called Gremlin. It is based on a Parallax Boe-Bot base with an Erector set and plexiglass frame. For electronics it has a Raspberry Pi w/ WiFi adapter, 16-channel I²C Servo controller and the Raspberry Pi Camera Module. Power comes from 10 AA batteries (4 for servo controller and 6 for Raspberry Pi), but I will likely upgrade to LiPos. Here’s a short video showing the Android control app (sorry for the crummy production quality):

It’s currently missing the 6 AA batteries for the Raspberry Pi (I’m waiting on a few parts), so the tether is just there to power the Pi.

The Android app is a little something I wrote which connects to the robot over the network (WiFi). It has a live video stream and virtual joystick controls. Once I get the whole mobile power assembly hooked up I’ll be able to use it for telepresence.

With my primary robotics project, the Drogon Quadcopter, grounded for the winter, I’ve started Gremlin to keep some of the work going The goal is really to have a smaller, easier to work with mobile robot for building a general purpose robotics software platform for Drogon and any other robotic projects I pursue. Also I’d like to use it as a test-bed for building learning algorithms and working with the camera, also applicable to Drogon.

Here are few more photos:


Locked Bootloaders

This post was inspired by a post on Android Central: Verizon’s response to FCC about bootloaders surprises nobody.

Yeah, I think the Android Central post is mostly correct — average users shouldn’t mess around with unlocked bootloaders and Verizon customer service can’t help them if they do — but that doesn’t mean they shouldn’t let anyone do it. Hackers (the good kind, the hobbyist; not the kind to illegally access or destroy other peoples’ information) accept, and are often proud of, the fact that certain modifications will void their warranty and will prevent them from taking advantage of that warranty for support and repairs. I can install my own OS on my computer and use that computer on my ISP’s network, so why can’t I install my own OS on my cellphone and use it on my cellular carrier’s network?

There has long since been an artificial distinction, enforced by corporate interests and accepted by society, that your cellphone is your cellphone and your computer is your computer. They do very different things and share very few similarities. But this is changing. Cellphone hardware and software are improving at incredible pace. Android phones now run the same operating system kernel as I run on my PC: Linux. And now software developers can easily create software for it. Your cellphone is now a personal computer you can fit in your pocket and take anywhere.

People care about, and corporations mostly respect, the fact that you can crack open your PC and install and run any hardware or software you wish. People care about it because there is meaningful benefit to modifying your hardware or software on your PC. The PC industry has dealt with it. Many PCs have little stickers that you have to break to open your case. Everyone understands that doing so voids your warranty and you are mostly on your own for repairs.

Until recently, there has been little benefit to modifying the hardware or software on your cellphone. But as cellphone hardware and software becomes more advanced, more meaningful benefits to modifying your cellphone’s software (there is still little benefit to modifying your cellphone’s hardware) will begin to emerge. There will come a point where there is enough meaningful benefit to enough people that the mindset of cell carriers and manufacturers will begin to shift as well to allow unlocked bootloaders and all that which it enables.

Yeah, there are currently options available for the hackers (again, the good kind) to have their fun. There are some cellphones and carriers that allow unlocked bootloaders. But most carriers and cell phone manufacturers still are are doing their best to hold a tight grip on their cellphones. And society still lets them get away with it.

There are signs of society coming around. FSF Europe has put together information (Liberate Your Device!) and a campaign (Free Your Android!) expressing their concerns. Hopefully these concerns will keep growing and the broader public and cellphone industry will take notice and action.


SDK shoot-out: Android vs. iPhone

Apple and Google differ along familiar lines with their smartphone development kits

read more | digg story


iPhone, the cell network, and the (cr)App Store

So I finally got an iPhone. It is almost everything I could want in a phone, but there are still some things that on principle I despise. It does make some improvements, but it still falls short in my book.

My ideal phone has a lot to contend with, namely the cell phone industry and network. There are two main things that most go against my principles. First, the cell phone network is tightly guarded and heavily restricted. Because of this, the carriers exhaust their advantage and significantly over-charge for conveniences that is vastly higher than their cost. It is a place where a 10 second clip of a song to set as a ringtone costs as much or more than the full song you can use anywhere. It is also a place where it is as much as 42 times more costly to send data via SMS (max 160 characters) to your neighbor than it is to send the same amount of data to the Hubble Space Telescope. And second, in an age where software is so openly and freely available on PCs, it couldn’t be more closed and costly on cell phones. The software libraries are generally very limited, crappy, and expensive (for how crappy they are). It is expensive and difficult for software developers to get their software on phones. And most of the ones I’ve seen are basically just advertisements packaged as games.

Based on this, I have the following requirements:

  1. I must not be wildly over-charged for conveniences (cheaper or free-if-you-own-the-song ringtones and cheaper or free-if-you-have-a-data-plan sms messages)
  2. I must be able to write and easily install my own software for free (barring hardware costs)
  3. I must be able to download and install software that came from anywhere
  4. I must be able to freely give my source code to anyone who wants it
  5. I must be able to download, modify, and install software from source code that came from anywhere, if the original developer chose to release their source code

These can be achieved by the following:

  1. Carriers and device manufacturers must practice ethical pricing
  2. There must be a freely available SDK and it must be easy and free to load software compiled by it
  3. It must be possible to load software that came from anyone or anywhere, and I am aware of the security implications
  4. There must not be restrictive licensing that restricts how source code is shared
  5. There must be a way to use source code from others and install it on my phone

If you’re familiar with the iPhone you’ll know that the iPhone has made little headway in this area compared to other phones. What it does have is a freely available SDK . You would think that should open up the door to everything else but Apple/AT&T have been able to plug any holes the SDK may have opened to my other requirements by doing the following:

  1. They imposed a license restriction that does not let anyone share or talk about source code. This is just wrong, for so many reasons, and is probably the thing I despise most about the iPhone since it is what prevents the iPhone from fulfilling my further software related requirements.
  2. All software that is publicly available must go through the (cr)App Store, which brings with it all the restrictions and wims Apple and AT&T impose upon it. See here and here.
  3. There is a way to get software that you haven’t written and that didn’t come through the (cr)App Store, but it is severly limited and does not allow publicy available software.

Also, Apple has done nothing to fulfil my requirement #1, the wildly over-charging for conveniences (re: ringontes and sms), when it could have done so much. I expect that most of this is because of forces outside of Apple, but they could have made more progress.

Apple did, however, get just about everything else right with the iPhone. It has the right hardware (camera, gps, accelerometer, etc), an amazing interface, and a lot of great software that is reasonably priced and really easy to get. While there is a lot of great software, the above restrictions leaves me with the following wish list of software:

  1. A real SIP phone, and it is ok if I have to be on wifi.
  2. Tethering software

Some may say that I can do all these things I’m talking about, but they require jailbreaking the iPhone. That is a hack, voids the warranty, and isn’t available for the iPhone 3G. Hacking is not a solution to these problems, but hacking does tend to motivate vendors to give the people what they want. If that’s what it takes, then, well, I know what to do, and you now do too.

(Note: I should mention there is hope for my requirements in Android and HTC Dream, but costs and contracts will prevent me from going there anytime soon. Grrr! Frustrating!)