VStrom gear indicator / voltmeter

Suzuki VStrom LCD homemade gear indicator and voltmeter

   My hibernal project was to make a gear indicator for my VStrom: I used an LCD instead of the more commonly used LED segment display - single digit LCDs turned out to be more expensive then a 2.5 digit LCD (~$4.50 vs $1.57), so I added a voltmeter function to it. If the battery voltage is below 12.8 volts, or the bike is in Neutral: voltage is displayed - otherwise, the center digit displays the selected gear.     The enclosure was to be laser cut plastic, but this turned out to be very expensive ($50!), so I used Liquid Tape  (Brush On Electrical Tape), and 3M Duallock (hard velcro) to mount the module to the brake master cylinder.  (Matches the VStrom - kinda ugly, but functional). Parts cost ~$9.00, and the printed circuit board ~$6. (In Canada, because of taxes, shipping, UPS charges: Parts cost $12, boards $9).

4 wires (in a mini USB cable) connect the indicator to the VStrom, two go to the gear position sensor cable (ground and sensor), and the other two go to the rear brake switch connector (power and brake lamp power). The brake switch is used during "Learn" to indicate selection. 

    If the bike is switched on with the brake on (and is held on while the display counts down for 20 seconds) - the module enters "Learn" mode. The display will slowly flash (~1  per second) the number 1, select first gear, and then hold on the brake. The display will flash the number 1 faster (~ 4 times per second), release the brake, and the gear position value will be stored into non-volatile memory. The next gear number will flash slowly, select the next gear, press the brake, display will flash faster, release the brake.... and this cycle is repeated for all 6 gears. Once the gear values are learned, the module will switch to reading the voltage, and will flash the current battery voltage. If the voltage doesn't need to be calibrated, simply turn the key off, and no corrections will be applied. Otherwise, with a multimeter connected at the battery, press the brake rather then turn the key off.  Hold the brake down (for ~ 0.25 secs), then release the brake - the display will show a voltage about 1 volt below the measured voltage and then will start to slowly climb up in steps of 0.1 volts. When the displayed value matches the multimeter reading, apply the brake to store the voltage offset to memory. (This allows for voltage drops in wiring, in line fuses, component tolerances (zener diode is +/- 5%)). Continue to hold the brake on until the display starts to flash the voltage - this allows the voltage to be read with the brakes on - the voltage difference between brake on and brake off is then stored. This corrects for the slightly lower value read when the brakes are on: ~0.3 volts less - caused by voltage drop in the wires due to the current to the bulbs. The memory now holds the measured values for all 6 gears, an offset correction for voltage with the brakes off, and an offset correction for voltage with the brakes on.  To re-run calibration at any time, hold the brake on while turning the key on, and continue to hold the brake until the display counts to zero. No interaction is necessary during normal operation, the Gear number will be displayed unless the voltage is out of normal range, or the bike is in Neutral.

    Although the brake lamp current is compensated for, the turn signals are on the same circuit and will cause the voltmeter to change slightly (~0.2 volts) as they flash - if this is seen as a problem, the software could be changed to average the voltage over a long period to reduce fluctuations.

    If the firmware sees 0 volts on the wire from the gear sensor, it displays voltage - therefore, an SPDT switch could be wired to open the input from the gear sensor, and connect the wire to ground for a constant voltmeter function, or to switch between Gear Indication and Voltage manually.

    The printed circuit board was made at ExpressPCB with 4 boards panelized onto one board, for a cost of $51 (w/o shipping) for 12 boards. (Shipping to Canada was $34, only $8 in continental USA.)

  • Microchip 16F913 56J7584 $2.27
  • LM2931 regulator 9K1305 $0.342
  • Lumex LCD-S2X1C50TR 19J7527 $1.57
  • 100 ufd capacitor (2) P833-ND $0.11
  • 10 volt Zener 1N5240 18M3564 $0.024
  • Signal diode 1N4148 44K0365 $0.015
  • 120 ohm resistor (2) surplus$0.02
  • 1K ohm resistor surplus $0.02     
  • Mini USB cable AE1281 $3.24     
  • Total        $7.75                     

    To make it plug-and-play, connectors are available from Eastern Beaver, the DL1000 gear connector is 3P090WP-MT $5.49 ea (male, female, pins), the DL650 (newer DL1000?) four pin gear connector is 4P090WP-HM. The 2 pole 0.110 Sumitomo brake connector is $2.49 for the male / $2.49 for the female.

Any better / easier / additional ideas for implementation would be appreciated.

Assembly steps (mainly in pictures) is at VStrom Voltmeter / Gear IndicatorAssembly . The complete module (at 14 volts) draws ~35 ma (0.035 amps), the LCD/microcontroller/regulator on its own uses 3ma, and the Zener diode for voltage measurement draws the other 33ma. 


 The unit has been tested to -19 C (my garage in February), and to +70 C in my kitchen oven with a variation in measured voltage of +0.2 volts @ 70 C, and -0.1 volts @ -19C.

The source code is at Assembly Code

The PCB layout files can be made available. The module was programmed (and can be re-programmed) with a MicroChip PicKit2, using ICSP (In Circuit Serial Programming) via pogo pins to the 5 unused through-holes under the LCD display.