A wooden board hanging upright on a wall. Four semi-circle indicator dials are spread across its length, with red needles pointing to numbers.

Analog Dial Weather Display

Created: 2017-04-27, Last Update: 2020-09-07, Scrapped: 2022-03-03

DO NOT BUILD! This project has been scrapped for the following reasons: Commonly available micro-servos have nowhere near a 180° sweep. In fact, using the standard Arduino library, they have nearer to 90°. Even sending out-of-spec microsecond duty cycles didn't give them much more range. My code always assumed a near-perfect 180°, resulting in temperatures appearing much closer to 70°F than they actually are. Additionally, they are wildly inconsistent, even between servos from the same supplier.

An Internet appliance that indicates weather conditions with analog-style dials. It shows the indoor temperature, the outdoor temperature, the forecast high, and the forecast low. The outdoor and forecast info comes from openweathermap.orgexternal link, the inside temperature comes from an i2c temperature and humdity sensor.


A small blue circuit board attached to a large white prototyping board. Pieces of wire connect different points on the prototyping board, and four cables snake off the board to small blue servo motors.

It is controlled by an ESP8266 (on an Adafruit Huzzah breakout board) which drives four servos. Later, I added a temperature sensor, and a PCB mount power jack for the 5V 2A power supply.


An unfinished wooden board with beveled edges. The same wooden board, with small blue servo motor attached at intevals. A circuit board is attached next to one of them.

Everything is mounted to a decorative board from Home Depot, meant for house address signs. I 3D-printed mounts for the servos. The servos are screwed to the mounts, and the mounts are stapled to the board.


The wooden board with a pencil line drawn down the middle. A black plastic semi-circle with numbers is placed on the bottom of the board, aligned to the pencil mark.

The labels and needles are 3d printed. I designed the labels as SVGs in Inkscape, then imported them as DXFs into OpenSCAD to generate the final STLs.

© 2023 Kyle Delaney | Site Map