Nosy Monster

Robin & I have been working on a rover for the land since his toy RC car broke. I opened it up to see if I could fix it, and as with many things, I quickly came to the conclusion that “I’ll just throw a Pi in there and do it myself”.

Here’s the supposedly amphibian piece of shit that broke withing 1 hour of use.

Screen Shot 2016-10-16 at 6.04.40 PMThe engines still worked so I bought a Raspberry Pi Zero with a Pi cam, some super cheap Sunfounder Relays

From the ground up

Before anything else, we introduced the notion of a relay. In the past we used Lego motors and batteries to apply power directly to actuators and create little robots. I just snipped one of the wires and had Robin create contact manually so he could make the correlation between a closed circuit and the motor going.


With this “manual relay” in mind, we added a Pi controlled relay to make him realize that what the new gizmos do, is what he was doing by hand.IMG_7013


Ok we have a web controlled Lego motor going. Let’s see if we can replicate with the RC car’s motors.

IMG_7020IMG_7021First the manual relay


Then with the Pi controlled relaysIMG_7024nosy_monster_04Our first iteration looked like this and had a few issues. I separated the circuit powering the DC motors and each were powered by only 1 AA battery. I also had many adjustments to make in the logic.

IMG_7064Eventually, by adding a DROK voltage regulator, I was able to power everything from a single USB charger and prevent the motors from affecting the rest of the circuits.

IMG_7127But the extra hardware is hard to fit in the Nosy Monster so it’s unlikely that I will be able to fit the solar panel that would turn it into a completely autonomous robot. So I started googling for other potential frames and OH GOD I JUST STUMBLED INTO THE WORLD OF RC ROBOTICS. Oops…

In any case, I broke down the control into a step by step process. Instead of pressing “Go” and “Stop”, pressing “Go” will make it go for 1 second. There is 2 reasons for this. First, web based control introduces delays which make for a shitty live driving experience. Second, I would like this to behave like an actual rover on another planet. It reports back its sensors status and human decide on the next steps to follow. Heck I’m even thinking the next steps could be something that is voted on online. This would not be possible with “live” control.


IPv6 link-local address to MAC address online converter

The converter

It can also be addressed directly via:
for all your API needs.


This converter was implemented per Dave Russell’s suggestion as a follow up to the MAC address to IPv6 link-local address online converter. If you are interested in the steps behind this conversion, they are simply a reverse of the original Mac->IPv6 converter.

Please note that of the various IPv6 notations, the one this script will expect is fe80::xxxx:xxxx:xxxx:xxxx.

A solar powered blog

This blog is now powered by a Raspberry Pi using 100% solar energy. Nicole instrumented the Phidgets sensors so we would gain some visibility into our electricity production & consumption. This has already given us some great insights. We can see the effect that each device we use has on the system: how much the LED lamps take to charge, the hole that the inverter blasts through the battery when turned on. We can tell that not all sunny days are created equal in their ability to give a charge. We can even tell the increase in electricity consumption that rsyncing a whole bunch of data to the Pi has: 0.03A.

The sensors

  • solar panels volts (a good indicator of sunlight)
  • input amps (indicates when the charge controller uses produced electricity)
  • output amps / load (what we consume with various devices)
  • battery volts (whether this blog will make it through the night or not)

For now I’m only graphing using the Gnuplot one-liner from Hell. More to come…

Screen Shot 2015-11-05 at 12.33.16 PM

It blows my mind way too hard that I have a system in which sunlight comes in and organized information comes out. And by organized information I mean lolcats.serious-cat