Wednesday, January 25, 2012

Extra Channels On The Cheap

Ever wanted to add an extra channel to your car, boat, robot ?

One of the guys commenting on the blog mentioned that he was working on a tugboat project. This brought to mind the one or two marine models that I have seen, from memory these models are very big on scale detail and moving parts.

This set me to thinking what could a micro controller do in this environment ?

Something very quickly came to mind that could be used in this application or any other where you would like to add one or two 'toggle' channels to a model. These are channels that are either on or off, and are ideal for setting off signalling sequences, turning lights on and off, switching mix modes remotely, activating a scale winch or basically any other application you can think of that requires the ability to remotely switch something between two states or positions.

This is a very simple trick which I have used to remotely toggle between dad mode and child mode in one of my projects. The trick is to use the small zone between neutral throttle and the point at which the motor overcomes stall inertia.

If neutral throttle is a pulse of 1500, you can use 1510-1525 to toggle one action and 1475 to 1490 to toggle another action. The values may need adjusting in particular applications, but the concept is the same -

If the throttle is held in this region, switch an indicator light on and take a time stamp.

If the throttle moves out of this region, switch the indicator light off and clear the time stamp.

If the throttle remains in the region, check the time stamp against the current time, if the difference exceeds your switch period, then toggle your mode/lights/winch whatever.

Its the method I use to switch modes in the child mode project, its incredibly useful to be able to switch parts of your code on and off remotely while the model is running. But the same approach applies equally well to all sorts of scale model applications such as I have suggested above.

As we are using the stall space around neutral, our model will not be moving, so there is no reason why we could not combine this with the steering channels to add even more channels.

By my calculation using throttle and steering channels gives 2 (up,down) * 3 (little left, little right, centered) = 6 on/off channels.

How much do these extra toggle channels cost ? An Arduino UNO is around 20 GBP but you can assemble your own from components for 7 GBP and the best part is the Arduino can do a lot more than just switch something on and off, any one of those six toggle channels could set off pre programmed sequences across multiple servos, lights, speakers and other actuators.

Simple Example - Toggling One Mode Using Throttle Channel

  if(nThrottleIn <= THROTTLE_THRESHOLD && nThrottleIn >= (THROTTLE_THRESHOLD-20))
     unsigned long ulCurrentCounter = millis();
     if(ulModeSwitchCounter == 0)
       ulModeSwitchCounter = ulCurrentCounter;
       if((ulCurrentCounter - ulModeSwitchCounter) > MODE_SWITCH_DURATION)
ulModeSwitchCounter = 0;


Duane B.


  1. Any car that doesn't provide or isn't modified will be eliminated from the industry as car manufacturers focus on promoting vehicles that clients want and are successful.

    kingston taxi service

  2. Great idea! I'll try it with my Arduino controled lights in my RC.

  3. Its ideal for turning lights on and off, I also use the same approach to remotley change modes in some of my projects, for example turning child mode on and off, turning the traction alarm on and off etc.

    Duane B

  4. I hope to utilise this on my quadcopter. I'm short of channels and I want to drive a gimbal. I've got a 3 way toggle on my remote. Thinking push toggle up and down to tilt. But mainly I can could use the 3 way in connection with another channel as you suggest to switch more stuff