Android Curtain Call

I spidered my D2 a handful of weeks ago. The replacement phone I received shipped with Gingerbread…which with my previous version of CyanogenMod was built on top of. I rooted the new device immediately, and dumped all of the garbage apps. My thought was to keep the stock ROM on the device, in order to have a stock testing device once I moved on to a new device.

Well, even stock Gingerbread is borderline useless by comparison. The most annoying tic that developed was with the camera…the flash stopped syncing with the camera shutter, rendering the flash useless.

Change of plans…dev device will run CyanogenMod 7.1.

android screenshot

landscaping?

I falsely assumed that flashing a ROM would work the same on Gingerbread as it did on Froyo for the Droid 2. Way wrong…I honestly thought I had bricked the phone. I ended up having to get creative with ADB and flashing an older firmware version, and standing Froyo back up on my device. From that point, it was the same old song and dance…testing ROMs, pulling batteries, hanging out on the recovery screen.

I wound up settling on an old nightly build of CG7.1. I am due for a phone upgrade right now…my wait for ICS is way more tolerable with a usable phone.

Android IP Webcam Screenshot

I have to admit that I’m pretty impressed by the Foscam’s IR capabilities. I snapped a screenshot on my Droid last while we were getting the princess ready for her bath…

android night vision

samurai dude says hi


The lab was light-free, and I was connected to the camera’s web server via my 3G connection. Controls are fairly snappy, and the image looks good even when pushed via cellular. Response time is very quick on the network itself…but remoting in to the router does the trick nicely.

I’m keeping my eyes peeled for a second cam…set designated choppable. We’ll see…I’m growing attached to this guy, but really want to get into its guts.

Upgrading DC Motors to Servos

A whole bunch of Dremel work and some hot glue…

The Clocky conversion to servo motor control is mostly done.

clocky with servos

getting close

I still need to make the servo mounts more secure, but the initial test runs look promising:

Getting close. I determined that the IOIO board will not fit inside the casing, so I will have to come up with an external mount. Which will change the balance, so I might end up having to add some counterweights for balance. It should shape up, mechanically, in another garage session or two. The UI work will be another session, thereafter, but look for a finished product within the next week or so.

RBG LED Controller

My off-the-cuff remark about building an auxiliary bilirubin light manifested itself into a quick project.

In order to approximate the specific color of the bilirubin lamp, I figured that I would need to provide a means of setting PWM values for the three inputs. I had hard-coded values in Arduino code in the past, so thought about taking that route initially. I blew the dust off my Duemillova, fired up the Arduino IDE, and promptly decided to modify my Java servo PWM code to do the job.

Sort of growing attached to the IOIO…sorry Arduino.

So, the controller was born…IOIORBG.

rbg led

RBG ... RGB

Hit the bump for a video and some more info…
Continue reading

Upgrade to CyanogenMod

My relationship with Motorola’s firmware has ended. It was a good run…well, no. That is a lie. It was certainly better after rooting my Droid 2 and wiping out Verizon’s boatware, but the Moto* junk had to go too. I finally decided to gut everything and install Cyanogenmod yesterday.

It is plus one awesome.

Although the process of flashing Cyanogenmod’s firmare involves a little work, it is no more difficult than rooting the phone in the first place. Since I did that a while ago, I really wasn’t concerned with blowing up my warranty…I figured bricking the thing would either result in some sweet haxxing or a new phone. Win / win.

I would suggest an upgrade to anyone. My phone finally screams, as it should have from day one. My battery life is better | everything imaginable is configurable | my apps and Google accounts all work | and, wait for it, I don’t have to kill processes all day. In fact, I don’t have a stand-alone task killer going…that is pretty surreal still.

Well, as with any exercise of this nature, backing up is imperative. Astro File Manager is great…Titanium Backup is great. The other players are the same too…ClockworkMod Recovery makes snagging the MODs easy. I am actually running a daily build, since there is not an official stable build for the Droid 2 yet. No memory leaks though, and everything so far has been functional.

Anyhow, on to the actual firmware stuff. I downloaded the zip file, and booted into recovery mode…

cyanogenmod 7.1 install android

lousy picture is lousy


…during game one of the World Series. Not sure if that is Pujols or Furcal in the reflection. Either way.

Great picture, huh? This is the first time I have used my webcam since upgrading to Ubuntu 9.11. Whoops…screwed up the camera, fellas.

On the screen is a ClockworkMod selection for Google’s bits. I imagine that this was done for legal reasons. Anyhow, I had to go back and install this from recovery, as I missed it at first.

CG7.1 android installation droid 2

Katie's guest cameo


Hi Katie. ^

I also managed to get stuck in a boot loop of sorts during my first attempt. It turns out that I cleared the data but not the cache from the recovery menu. No good. A pulled battery and some troubleshooting and we were good to go.

cyanogenmod boot loop

post boot loop

I spun up the Android market, and did fresh installs of my apps. For the important stuff (the Angry Birds Trilogy, 9 Innings Pro Baseball, et. al.) I pulled the backup data back over top of things. No issues.

I had been wanting a landscaped workspace since I got my phone. .. now I know why…

landscape mode on cm7

at long last

It just makes sense. CM7 allows this to be configured. Like basically everything else. Want your menu on the bottom? Put it there. There are options all over the map…like the camera exposure, for instance.

camera function CM7.1

choice laden

Sweet. It is tough to beat the performance gains in general, but it is wholly possible. Check this out:

Cyanogen Warning Dragons Ahead

here be dragons

One stop overclocking. Disregard that popup and go nuts.

One part of me wishes that mobile carriers would take note of Cyanogenmod’s presence and push Android updates to customers. The other part of me likes to void warranties and do things that the clowns from Verizon frown upon. Either way, my phone is now awesome…that is all that matters.

IOIO Servo Controller

I just doubled my Android Market presence with one fell swoop. IOIO project number two is in the books: IOIO Servo Controller.

IOIO Servo Controller

servo in altoids can smells like altoids

This project is a one-off of the PowerSwitch Tail relay project I have out in the wild. I took the button out of the mix and implemented a slider bar…removed the relay and am now driving a hobby servo.

IOIO Android app

brand placement

Displayed is the relative level (zero to one) of the slider, the slider itself, and a shameless plug. The onboard LED also fires with a brightness relative to the slider position…which I implemented in the coding and sort of left in there.

The basic concept was to get the PWM output configured correctly, in order to control the servo positioning…the slider function is pretty much just the stock slider from the Android Development docs, widened a bit for the sake of video capture. The rest was just mashing around the code I had out there…not too bad.

Check the thing in action:

This project is available for download in app form on the Android Market. Right next to my other guy…search for IOIO. I will toss the code on my GitHub account as well. Fun project…I may branch and see If I can do anything cool with a few servos. We’ll see.

Shoot any comments to joe(at)swantron(dot)com. I can help with any setup issues, if they may arise. Good luck…

IOIO App Redux Time

I put together a simple proof of concept using a slider to control a PWM pin out…simple is an understatement.

pwm app ioio

booooooooring

Nice, right?

In doing this, I did a fresh download of the IOIO example apps, as I had gutted the Blink example for my 120V relay app. It turns out that there is a fresh firmware version…I grabbed the new IOIO library that is associated with that. So, my proof of concept doesn’t function…I tested it with an LED to no avail.

So, I have a few items to address before I push out another project

  • Update firmware | flash V3 to my IOIO
  • Update my IOIOPowerSwitch App to contain IOIOLib V3
  • Update READMEs / Github / Android Market to cite firmware version
  • Update proof of concept to same specifications
  • _
    It should go smoothly, after the first bullet-point is in the books. Stay toooned.