ZeroPoint – Analog Output for your Raspberry Pi

ZeroPoint – Analog Output





ZeroPoint is an analog gauge with a prototyping area for your own sensors

The gauge is a small stepper motor (X27.168) that is driven using an H-bridge (it’s a bipolar stepper so needs to be driven both ways)

Although it is a standard stepper motor to operate, it only travels through 315 degrees before hitting the physical end stops.

This gauge is used in many vehicles for speedometer, tachometer, etc. and so is in plentiful supply

It is a very weak stepper motor and cannot be used to drive much at all (cue someone trying to use two for a small robot!)

Power is taken from the 5V of the Raspberry Pi, so no additional power is required.



We have a python library which can be used to position the needle accurately. You can download directly the library and example file by typing the following into the terminal window. Open LXTerminal and type:

  • wget -O
  • bash

That will create a zeropoint folder in your home folder, with the library and example file:

  •  library module for ZeroPoint
  •  a simple test script that allows you to set the position from 0 to 100% by pressing the number keys  (and ‘a’ for 100)
  • zeropoint.init ( ) – initialises the various settings and forces the pointer to zero
  • zeropoint.setTo (position) – sets the pointer to position (from 0 to 600)
  • zeropoint.stepToZero ( ) – forces the pointer to the zero position (oversteps to ensure this)
  • zeropoint.cleanup ( ) – closes down tidily, stopping the background stepper thread, shuts down the GPIO handler


Finally, there is a PDF file with a number of dial templates that could be used. Of course you can create your own with your specific measurement values on such as degrees Celsius/Fahrenheit  or humidity etc.




Using the Prototype Area

The prototyping area is intended for you to add you own sensors or input devices so you can create a standalone analog meter. These could be temperature sensors, light sensors, buttons, etc. To help you wire this in we’ve provided:

  • 6 spare GPIO signals (labelled with both BCM GPIO numbers and physical pin numbers)
  • I2C signals
  • Power lines: Ground, 3.3V and 5V (each has a column of 5 holes, all connected together)
  • There is then a bank of 8 x 6 non-dedicated holes for you to put in your own components. NB. 4 holes are missing in bottom right corner to allow space for the mounting hole, giving a total of 44 non-dedicated holes