Choice of interconnect

I have been looking at different ways of connecting the different tiers of the robot that facilitates the following characteristics:

  • Real-time
  • Fault tolerant
  • Embedded
  • Low-power
  • Broadcast friendly
  • Master-less (survives
  • Adaptive (survives topology changes)
  • Bus architecture (many nodes)
  • "Fast"

So far the most likely candidate seems to be CANbus.

I will investigate further.

Hybrid BLDC ESC & GX25 ECU

I have advanced my thinking about the power train. More specifically the details for the board that will handle generator stage has converged somewhat. This is the current idea:

  • Use Brushless DC (BLDC) motor as both starter and generator connected to Honda GX25 motor.
  • Build a simple DIY ESC circuit that when powered will rotate the BLDC shaft to start the GX25 (working as a starter motor).
  • Build a rectifier circuit that when engaged to BLDC will make it generate power for charging batteries and giving the robot an extra power boost in the hour of need.
  • Build an ECU circuit with inputs for tachometer, voltmeter, ammeter and outputs for throttle servo and mechanical relays that allows engaging/disengaging the ignition, ESC and rectifier circuits on demand.
GX25 BLDC generator

The basic API for the circuit should look something like this:

  • Low-level
    • Start engine
    • Stop engine
    • Set throttle
    • Set charging
  • High-level
    • Start generator only when battery is low and/or power drain is high
    • Adjust throttle to accommodate load
    • Detect, alert and manage overheating
    • Detect, alert and manage low-fuel
    • Manage motor warm-up under different ambient temperatures.

How this circuit will communicate with central command and what will happen when communication breaks down is still to be decided.


Solar energy for cheaps

The robot will need all the power it can get, and solar panels has been a part of the plan from the start.

However, two problems with solar power has been evident that I have not been able to figure out:

  • They are prohibitively expensive!
  • They are fragile

Actually the last point may be a solution to both problems in a wired way, because I just discovered that solar cell manufacturers actually sell left over broken cells cheaply by weight or watt. Since they are already broken they will be less likely to break (smaller pieces) and fitting them into a lattice or grid will provide a flexible layout with the redundancy necessary to sustain power after loosing a single cell.

The plan is thus to buy some broken panels, cut them roughly to size and stitch them together in a grid with redundant connections.


How are lubricants classified & graded?

After reading the manula of the emco F1P CNC Mill and learning that it recommends 4 different lubricants for different parts of the machine I have attained a genuine interest in learning more about lubricants, so I have now asked a question on the chemistry stack site, asking exactly how they are classified and graded.

You can find it here.


Unboxing (unbagging)? of IOIO OTG

This is my second IOIO OTG. The first one was DOA.

UPDATE: DO NOT ORDER THESE, they were all DOA. Recommended supplier of IOIO is sparkfunn and seeedstudio.


This time I ordered x2 to make sure I didn't get a bad one again (returns takes ridiculously long time sometimes).

It is designed by this guy, manufactured by geeetech and was delivered by dx.com.

It promises to give you access to hardware comfortably from your Java IDE, Normally an idea I don't like but in the name of efficiency I decided to go this route instead of working my way through all the low level C/C++/AVR stuff to get some motors and servos moving.

The idea is to use it for prototyping and when it gets serious I will port my efforts to more robust platforms.

IOIO OTG with bluetooth adpater in the bag
IOIO OTG with bluetooth adapter unbagged


A study of spiders

The decision of copying spiders in the physical design of the robot has spawned some extra focus to the project.

Here are some you-tube videos showing spiders moving in slow motion:


And here a study of the degrees of freedom found in the legs of a spider, summarized elegantly in the two shamelessly borrowed figures below:

Range of freedom in XZ plane (Z is up)

Range of freedom in XY plane (ground)


Cobalt blue tarantula

Lately I have pondered (in-between the bouts my extremely demanding and satisfying job) about how to model the physical layout of the robot.

I have proclaimed it to be a hexapod from the start. This idea seemed like the most logical at the time. 4 is too few and 8 is too many. Having an odd number of limbs leeds to more complex gaits. Also, keeping the number of movable parts per limb low would reduce the cost and complexity of each limb.

However now I am not so sure any more. I personally like spiders better than insects and spiders have 8 legs. Also, the number of moving parts per limb in a spider (and in insects too for that matter) is much higher than 3. Evolution is the best mechanism to achieve optimization there is, and it has been working for over 4 billion years to perfect the spiders we see today. It follows thusly that one would be unnecessarily stubborn/proud not to at least observe, analyse and learn from the way spiders are.

Anatomy of a spider, for study before deciding on the anatomy of a robot.

What's in a spider anyways?

So I decided  to go all in, and find the perfect spider species to use as a template for the design of the robot. I ended up with the cobalt blue tarantula as the best  candidate for the following reasons:

  • It is strikingly beautiful both in color and proportions. I firmly believe that aesthetics play a bigger role in design than merely pleasing one's eye.
  • It is not too specialized. Many spiders have specialized into niche markets that make them unfit as a model to a "general purpose" robot. It is a solitary hunter and so is my robot.
  • It has an well balanced anatomy that would be relatively easy to replicate.
  • It has a temper similar to that which I want to give the robot (shy but aggressive).


Finding the right brush-less Direct Current (BLDC) motor to use as generator

Since I got my Honda GX25 motor, the task of finding the right generator to make the most efficient and compact generator for the batteries in the robot has lingered somewhere in the back of my mind.

First I thought about using an car alternator for this, but have since found perhaps an even better alternative, namely high-end radio controlled helicopter motors. It turns out alternators weigh a lot and are clunky and heavy, while BLDC motors from modern RC helis are not.

So how would I go about finding the correct BLDC for my project? I got some help here and ended up with the following:

  • Lead-acid batteries have optimal charging voltage of 13.8 to 14.4 volts.
  • The GX25 motor has optimal RPM (RPM with highest torque) @ 6000 RPM.
  • The GX25 motor has an effect of around 0.7kW.
With this as input finding a motor for our project is easily calculated as follows:
  • Desired kv (rpmvolt) = 6000 rpm/14.4 volt ~= 417 kv
  • Desired continuous effect is above 700 W. We will go with at least the double to put the least amount of strain on the generator.
  • Desired continuous amp is 700/14.4 ~= 48 A
(disregarding all the voltage losses etc).

Next I just chuck these parameters into hobbyking's motor finder to get some alternatives, for example the Turnigy SK3 5055-530kv with the following specs:

Turns: 12TVoltage: 5~8S LipolyRPM/V: 430kvInternal resistance: 0.019 OhmMax Loading: 70AMax Power: 1750WShaft Dia: 6.0mmBolt holes: 25mmBolt thread: M4Weight: 378gMotor Plug: 4mm Bullet Connector

I must investigate this further to ensure that I don't go buying one of these motors that wont work because of some parameter I did not think of.


Big push for the generator project.

I decided to make a push for the GX25 generator project.

First I removed the clutch from the GX25. I will be crafting some kind of frame for the generator assembly and also a converter plate to go on the shaft of the motor.

Next I prepared to make the optical tachometer circuit for the ECU to judge motor speed precisely. I had some luck pointing my manual tachometer to  black/white tape on the makeshift plate mounted on shaft. Still TODO: I still need a way to pump initial fuel into cold engine (manual pump), and actuating the choke might be handy in cold weather. But after some new intel (se bottom) I think I have found a way to make the generator act as starter motor as well, eliminating the added complexity of a separate engagement mechanism and separately controlled starter motor. Even better, I get to keep the recoil starter for debugging purposes (I already put it back on). Fun fun.

Next I put an ad out where I proclaim that I want any excess generators or alternators that people may have lying around. This resulted in me getting in contact with a fellow who had a 140AMP 12VDC 2005 mod Volvo V75 alternator for cheap, which I bought.

Next, I put an ad out where I proclaim that I want any excess electircal motors, which has resulted in a few emails from people who want to get rid of motors. So far I didn't get any motors though.

Next, I went dumpster diving, or more correctly, electrical appliance recycling plant scavenging. I will keep the location secret because, oh-boy was there a lot to be found!

3.5 HP 180V  7.5 AMP 5200 RPM Threadmill motor

Threadmill motor driver circuit

ACME Screw linear actuator from threadmill.

One of 2 washing machine motors.
And last but not least, I put a question on electronics stackexchange asking what motor I would be looking for to make my generator. I got an excellent answer that I am definitely going to pursue next. In the same fell swoop I asked a question about how to measure the torque vs. RPM curve for my motor collection. Turns out there is something called "prony brake".


EMCO F1P Step motor specs

After my last post I have learned alot about step motors. I have also manged to figure out the specs of the step motors found in the EMCO F1P, and as always the quality of this machine turns out to be stellar.

My sources are:

Article on oriental motor. Explains the inner workings of stepper motors beautifully.

Article on stepper motors courtesy Douglas Jones of the University of Iowa.

The step motors in the EMCO F1P have 10 wires coming out of them. The wires are connected in consecutive pairs, one pair per two oppositely facing windings inside the motor (10 windings). The motor has almost no resistance when turning the shaft in un-powered state. The stator inside the motor has 50 teeth.

From this, I have gathered that this is a bi-polar, uni-filar, 5-phase motor design with 50 * 10 = 500 steps and 360 / 500 = 0.72° rotation per step.

This kind of motor is less common, and requires a more complex/expensive driving circuit. It offers higher precision, less vibration and noise and more torque at mid to high speeds than the more traditional 2-phase designs. Also there are more ways in which the driving circuit can drive it.

This has made me determined to keep the motors and find a new controller for them during my retrofit-project.


Anatomy of a step motor

I decided in the beginning of 2015 to stop spending time on my EMCO F1P CNC machines instead of the main goal of the proejct. Ironically that made me spend more time on the CNC,because I need to get them out of the way quickly.

Long story short, I want to convert one to use a new control board but without sacrificing the step motors. So I have now carefully removed one step motor (Z-axiz) and opened it up to see what's inside it.

Based on what I have gathered from searching around and posting a question on stack exchangel, this motor is most likely a bipolar motor with 10 windings.

Some pictures:

10 coils

Coil wiring

5 Screws

Removed connector housing.

10 wires + ground.

Motor removed from belt

Belt drive with tacho generator

Heat-sink with thermal paste.


Devol plan for 2015

Plan for Devol robot project in 2015 is the following:

  • Port my existing C++ code to use Qt instead.
  • Ditch native Android for Qt deployed on Android
  • Discontinue the purely CNC related projects. Rationale: they take too much time and focus away from core project without actually solving any big problems. Focus on quickly getting one CNC up and running and sell off the rest.
  • Continue and complete the work with the ECU.
  • Continue the prototyping of one leg.
  • Make a portable "vision unit" that can be dragged around to "learn" and test, for example in my car.