








Analog display for smarthome (esp32 based) - version 2
Hey Folks, i would like to share my completed version 2.0 and further development of my previously (5 months ago) posted CO2 Analog meter. Device is WiFi connected ESP-32 with Tasmota onboard and designed for all diy / analog gauge / aviation lovers. What is changed from last time:
- Bi-Axial version is done and i am happy with it. I have resolved all problems with calibration and dual-needle issues.
- I have developed the more variants: the original CO2 meter, Progress meter (single/dual axis), Progress + Temperature variant. Progress meters have built-in connection with 3D printer (currently i have done with BambuLab and Octoprint), or can be driven by regular Tasmota commands (MQTT/HTTP/Cloud/Whatever).
- Device has fixed issues with RGB backlight as addressed LED's. I have deprecated the Retro-filament one, as now RGB works better.
- Firmware now controls the most of the functions, no Berry scripting is required anymore. I have to keep my changes as a branch, as such customizations are not welcome to vanilla Tasmota.
- Reinforced case and improved assembly. Device internals now assembled as single part and only then goes into case
- Needle does not require original tip from ikea anymore and printed as-is
- Drivetrain does not require separate PCB anymore and done from printed parts only
- Any device can be converted from single to bi-axial and back by replacing needle and 2 minor parts
How the new version is made:
Devices use classical automotive-dashboard drive X27-168 for single-axis, and BKA30D-R5 for bi-axis. Steppers are driven by VID6608 library with software timed signal to emulate real analogue needle movement. Bi-axial devices have movement delay, when both needles moving, as delays are affect each other (i will fix this switching to HW generator, the EPS's RMT).
The ESP-32:
Heart of device is the classical ESP32 chip (see last photo), but i am thinking to switch to the ESP32C6 chip with option to provide device freely convertible as WiFi <-> Zigbee by user choice. Current device version uses the ESP32-WROOM32 modules, for ESP32C6 i will use the super-mini modules, as they have much better out-of-box options (like USB) and reduces the production costs.
Firmware is based on Tasmota (this is several patches to vanilla one, but i have some my own UI added). Device now supports RMT hardware acceleration (upstream Tasmota patch) for VID6608 pulse generation.
I have less-or-more working Zigbee firmware for C6 prototype and converter for Zigbee2mqtt, but there is a still long road ahead to tune and polish it. Zigbee variant is fully pure ESP-IDF project. I have tried to use the esphome as a base, but they have lack of features, required for me.
For ESP32C6 there was a challenge to run the RMT-free firmwares, provided by community: tasmota and esphome uses it for various drivers, i.e. the WS2812b. Software-defined driver for Tasmota was broken, and i also have fixed in upstream, now you can opt-out the RMT usage.
PCB is designed in the EasyEDA and total price for 10 PCB's was ~100EUR with assembly. The biggest problem is the VID6608 driver - you have to solder it by yourself (there is no offer for preinstall it), and it is horrible hard to order the "okay" chip. I have ordered from different sellers and got mixed working/bad all the times, in most cases i got 3-4 fine chips from each 10-pcs strip. One seller sent me the fully good strip first, but next order is the same garbage as others. But anyway, PCB is reusable for other projects.
Backlight uses the 40-leds WS2812b strip, and can be used as solid backlight, as well as more complex (i.e. rainbow). I have decided to deprecate the Retro-filament backlight, as it has no benefits in compare with RGB.
Construction: based on metal case taken from Ikea Dekad alarm clock. I use the metal shroud, glass and standers. Also some minor parts, like screws. Internal part is 3D printed. All parts are designed in FreeCAD and you can find all sources in the repo. Device requires multi-color print (in case of RGB backlight), minimum 2 filaments (transparent + base color), minimum 2 nozzles (0.2mm for needle, 0.4mm rest).
Gauge: printed in local grocery shop as 10x15 picture on glossy paper and then cut. Designed using Inskape. You can also find the sources in git and design you own, use mine as template.
Assembly tips:
- Device is very sensitive to central hole cut precision. The deviation starting from 0.5 mm becomes visible as needle disposition at the opposite part of gauge;
- Use white tape to mask led's in the backlight assembly - this will make it much more natural;
- Be carefull with the dust in the instrument, each small mote will glow as a sun;
What is in the plans:
- Zigbee version with ESP32C6 onboard with cheaper PCB (less mounting is required), also WiFi <-> Zigbee option to select by flashing (no HW changes). Zigbee firmware and the C6 variant is ~70% done, i have to finish with inner parts design and firmware, but i have fully working prototype already.
- More metrics integration (various subscriptions tracking and so on)
- Switch from software-defined drive control to hardware (RMT), this will improve performance for single-core SoC (like the C6 one) and visual experience - this is already done as option, but i did not release it yet, as i have to test it more first. But highly likely it will go live. See example at the attached video.
Device repository: https://github.com/petrows/smarthome-galoped-dekad
Assembly instructions, full source code, CAD files and all other components are presented in my github, please enjoy to build your own.
Schematics and PCB: https://github.com/petrows/smarthome-galoped-dekad/blob/master/schematic/schematic.png
I am thinking: Zigbee version makes sense?