Skip to content

Some notes and considerations

mcer12 edited this page Jun 24, 2020 · 16 revisions

Like everything, Temper is not perfect and some things did come up after the release. As I won't be making another version, I put together a list of thoughts and considerations if you decide to make your own.

Recommendations

  • Remove ESP12 builtin led as it seems to be leaky in deep sleep and was dimly lit, consuming power. Could be the batch of ESPs I used but there's no harm in desoldering it anyway.

Charging

  • Charging is set to around 130mA for slow and healthy charging. For faster charging you can replace R6 (10Kohm) with a different value. Check TP4054 datasheet for more details.
  • TP4054 gets warm when charging and does negatively affect temperature measurement(~+5°C), I recommend to disable temperature measurement while charging(there is an option for that in Config portal).

HW Improvement ideas

  • remove breakout for GPIO2 as it's useless anyway (can't be pulled low at the startup due to internal constrains of ESP8266).
  • connect CHRG pin of TP4054 to GPIO12 to check if battery is fully charged. This would enable temperature sensing when charging is finished, regardless if the USB is still connected. GPIO12 is also safe for use with external sensors.
  • connect reset button to EN pin instead of RST. This should allow to distinguish between timed wakeup and button hard reset via ESP.getResetInfoPtr(). With current design, this is solved by comparing NTP timestamps, therefore the sensor requires internet access. NTP sync can be removed but it would mean the temperature will be displayed on every startup.
    (Discussion about this here: https://www.reddit.com/r/esp8266/comments/erbmcm/distinguish_deep_sleep_wake_up_by_timer_vs_a/)
    Drawback of the current solution is when its close to a scheduled wakeup, pushing a button can be wrongly registered as a scheduled wakeup at first and needs to be pushed twice. This can rarely happen because some tolerance needed to be programmed in as deep sleep timer is very unreliable up to 10% off. If the tolerance fix wasn't there, it would be possible for the device to wake up few seconds/minutes too soon and register as button push.
  • use E-ink instead of led grid as a display (expensive but perfect for this purpose as it's always-on)
  • Although testing proved current setup to be perfectly stable, ESP is pushing the 3.3V regulator to it's limit during bootup. If you're making custom PCB I suggest to add 470uF tantalum capacitor on 3.3V rail to compensate current spikes.
  • 3.0V or even 2.8V regulator instead of 3.3V might significantly lower power consumption in deep sleep.

SW Improvement ideas / TODOS

  • Immediately after the data is sent via MQTT, shut down wifi (WiFi.forceSleepBegin()). This should drop the current consumption of the ESP from ~70mA to ~20mA during ON time. This won't have much effect in timed wakeup but can considerably extend battery life if you use the display function alot.
  • Add na option in Config portal to enable 90° display rotation.
  • Add an option for temperature / humidity offset. SHT30s that I use proved to be within spec temperature-wise (+-0.2°C) but Humidity was considerably worse. Difference between lowest and highest measured Humidity value was 7%. Simple offset value should be a good enough fix for that.
  • Add an option to disable NTP sync. When disabled, it would mean it will show temperature on every wakeup regardless of wakeup reason (button or schedule) but also remove the need for internet access and speed up reaction time.
Clone this wiki locally