Add support for Analog Gauges#24153
Conversation
|
Your prototypes look awesome. Any link where such enclosures can be found? |
Thanks! Yes, enclose what i have used: https://www.ikea.com/de/de/p/dekad-wecker-schwarz-30540479/ P.S. It is still early prototype, i will publish all documentation for it when it will complete, i am currently waiting for PCB |
|
This is great. I'm eager to see the evolutions |
|
@arendst , thanks for merging! I will prepare also some documentation around. I still have some ideas to-improve, but i am not sure if they have any request from community, probably option to keep source code clean is also fine. |
|
Hey @s-hadinger , i think i reached my project production, please checkout my Reddit post, if you are interested: https://www.reddit.com/r/DIY/comments/1pukdly/analog_co2_sensor_for_smarthome/ |
|
Looks great. 👍 I wondered about a couple of nitpicky details.....
|
|
BTW. When it comes to your point about possibly adding FRAM support to Tasmota itself, you can feasibly implement it as a separate module, after which you can do things like: This way, you basically have a separate driver, instead of the code being intermingled with the project code. Using a module can be as simple as having Obviously, it could be extended to be a more general FRAM driver, like supporting other data types. |
* Add vid6608 library * Add vid6608 pin definition (only GB for now) * Try to debug GPIO - does not work * First working version * Trim whitespaces * Add missing library; JSON response, Codeowners * Fix blocking loop in esp8266 * Update language strings * Format inline readme for vid driver * Add example define in my_user_config.h * Clanup changed VS Code config files * Fix duplicated language values in en_GB.h
|
Hey folks, thanks for your help and discussion :-) Dear @arendst , i have also opened PR for documentation: tasmota/docs#1549 |
|
Thx. Just merged. |
Description:
Hey Folks, i am glad to introduce brand new driver. It allows to use and indicate using analog gauges.
This driver implements support for following driver chips for analog automotive gauges (Switec X25.168, X27.168 and clones) with microstepping support:
Driver chips with microstepping is the recommended way to drive such motors, they provide much more relailabe and smooth movement with reduced noise and to avoid skipping steps.
Driver is configured to perform 320° rotation angle with 12 steps per degree. Total capacity is 3840 steps for whole scale.
Library homepage: https://github.com/petrows/arduino-vid6608
Connection:
Driver adds following commands:
Gauge: returns current gauges stateGaugeSetX: set gauge to absolute position in range 0..3840, where X - motor index from 1 to 4, 0 for allGaugePercentX: set gauge position in percents in range 0..100, where X - motor index from 1 to 4, 0 for allGaugeZeroX: triggers gauge calibration and homing, where X - motor index from 1 to 4, 0 for allPerformance notes:
for inpulses. ESP32 uses FreeRTOS API and movement is fast and smooth (very similar to real car gauges).
changing values, i.e. temperature). On ESP8266 speed is ~2 sec per degree.
delayMicroseconds()function to control impulses, and this function seems to be not really good implemented in our chipsets, so it create additional load while gauge is moving.Implementation examples:
Device prototypes assembled:
They both running Tasmota and environment sensors (as additional load test).
My test setup (tested both on ESP32 and ESP8266):
Detailed move test: https://youtu.be/dTKQrNPrnPg
Tasmota WebUI:

Checklist:
NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass