The prototype encoder PCB has been made and tested with an Arduino Nano.
You will notice in the photo that I’m using 7 segment displays and a small OLED display.
I plan to support a number of different displays. One version with the ‘traditional’ 7 segment displays and one version with a large OLED display showing all data. I tend to favour the OLED displays. They have low power consumption, fantastic contrast, excellent refresh rate and easy to use.
The LED display shown in the photo is connected via SPI. The display board is based on the MAX7221. Current per segment has been limited to less than 5mA per segment since I’m powering it from the USB port.
The small 1″ OLED is connected via I2C so only requires two I/O ports on the Arduino. This particular board is labelled ‘CRIUS’ and used on multicopter controller boards commonly available off Ebay for a few bucks. If you buy one of these CRIUS boards, make sure you buy the version 1.2 board. The earlier boards don’t work well with the Arduino without modification.(adding a resistor/capacitor on the reset line). I used the U8glib library for this display.
The 300mm magnetic strip for the encoder is visible at the bottom of the breadboard.
Code needs to be refined more with X,Y,Z axis and reset/unit switches. Hopefully this will fit in the Arduino ATMega328 code space.
Next prototype will use a 2.4″ green I2C OLED display based on the SSD1305 controller. This display is 128×64 pixel and should be big enough to display all X,Y,Z readings with a metric or imperial unit indicator. Unfortunately this display isn’t current supported by the U8glib library. It is very similar to the SSD1306 based displays so should be easy enough to modify the library. Waiting on a Display PCB to arrive to test this….