Finger on the pulse

Aprilia Caponord ETV1000 Rally-Raid. Speedometer pulse from the rear-wheel sensorWhile the wrist is healing nicely on light-duties and (thankfully) out of the heavy and restrictive cast, I’ve had a chance to play with the idea of an active cruise control for the Capo. An active system will adjust the throttle automatically to maintain a given speed even as the road rises and falls unlike a passive system which is nothing more than some form of throttle locking mechanism.

Arduino cruise control sketchThe system I’m thinking about will, when all parameters are met (speed, revs etc) lock onto the chosen speed when the ‘Set’ button is pressed. The microcontroller will then look at the error between the chosen speed and actual speed and adjust the throttle as neccessary to try and maintain the error at zero – this is done using PID (proportional-integral-derivative) in the controller. If cruise is stopped (operation of brake or clutch) or the PID error goes beyond a pre-determined maximum (high gear on a steep hill for example) the requested speed is stored and can be re-activated by pressing the ‘Res’ume button. And while in cruise, the speed can be adjusted in 1Kmh increments by using the same two buttons, now working as ‘Acc’elerate and ‘Dec’elerate. That’s the theory anyway!

Aprilia Caponord ETV1000 Rally-Raid. Opto-isolated and cleaned Speedometer input signalInputs

  • Power – 12v on/off switch
  • ‘Set/Acc’ &Resume/Dec’ buttons – 12v
  • Front and rear brake light switches – 12v
  • Clutch lever switch – 12v
  • Speedometer signal from the dashboard (output on pin 14 of the 16-pin connector) -12v square wave 85% duty cycle frequency modulated
  • Tachometer signal -12v square wave 50% duty cycle frequency modulated.

Honda GL1800 Cruise ServoOutputs

  • Two colour LED for power, cruise engaged & error codes – 5v
  • Motor drive signal – 5v PWM to motor control board.

To date the inputs and safety stuff has been written and from the tacho/speedo signals it’s calculating what gear the bike is in pretty quickly, but I’m sure it can be speeded up …… I just need to learn more programming! The operating parameters I’ve decided on are:

  • Cruise enabled between 50Kmh and 160Kmh (30mph – 100mph)
  • Cruise enabled between 2,750rpm and 6,000rpm but might change the lower limit to 3,250rpm in 6th gear
  • Cruise enabled in 4th, 5th and 6th gears only.

At the end of the day, I just want a system that will give my old worn out wrist a rest at motorway speeds on the run between Italy and the UK, taking into account the (very!) variable speed limits and ascents/decents especially through Switzerland. If it can do that I’ll be a very happy bunny indeed.

Of course this is all well and good, but I’ve got to get all the bits talking to each other first and make it robust enough for long-term and safe use on a motorbike ….. the problem is that in amongst all this enthusiasm my wrist still has a way of letting me know who’s really in control while swanning around on light duties!