My Inksnek code can generate (without the needles!) either a metric dial (hPa)

or an "imperial" one

The image is created in Inkscape and saved.  It's then run-length-encoded as data in the sketch. It's a compile-time decision which dial to use.

The needle lines are drawn with a fixed-point anti-aliased algorithm.  There's some support for line width -- the pressure trend needle (pressure 3 hours ago) is thicker and with a "copper/brass" look.

All the graphics are done from scratch and are not pixel-perfect!

The enclosure is a sandwich of 9 layers of transparent acrylic, also created in Python with my Inksnek class, plus the PCB.  


I wanted a compact enclosure, not much larger than the LCD. To this end, the Leonardo Tiny Atmega32U4 Main Board sits under the LCD. I used "stackable" header sockets with longer pins and the plastic strip from a sacrificial header strip to raise the LCD off the PCB slightly more than header/socket alone.  The second/upper sockets is just for the LCD to rest on. 

The Leo is mounted upside-down on normal header/sockets under the elevated LCD.  I soldered wires from SDA/SCL and MOSI/SCK on the Leo underside to extended header strips to make the whole thing cleanly socket-able.

The front side of the PCB has a fair bit of room (6 layers of 3mm acrylic) but the back side has much less, just one layer, 3mm.  The LDR which dims the screen and night fits OK, and the single pushbutton protrudes through the enclosure's back plate.  But the sensor sits in the void in the PCB to have a lower profile and to isolate it (somewhat) from the hot things.

The push-button sets the trend pressure to the current value but also configures the dimming behaviour.

The sketch, which includes the Python scripts and Gerber files is on GitHub.

More photos at Flickr.