Hey #electronics folks! <3 I want to build a CO2 sensor with a battery life of several months. First using prototyping boards, then maybe as a custom PCB.
Some questions:
1. What kind of approach/device would you suggest to measure the power consumption of such a device? I hope to end up in the single-digit mW range.
2. What would be the lowest-power components required to drive a small e-ink screen?
3. Does the 328P seem like a suitable controller, if I don't need any connectivity?
Thanks for all your answers! <3
Still pretty overwhelmed by how many microcontrollers there are. Are there good resources to compare them?
How would I learn about what electrical parts to surround a microcontroller with on a custom board? Or what components I need to attach an e-ink screen? Are there good resources/books/specs on that?
And another thing: Should I invest the time to learn KiCad? Or is another open source software for PCB design that you'd recommend? #electronics
As a project to learn #kicad, I designed my first PCB the other day! (With the help of @flauschzelle and @lenaschimmel!)
It's a "wing" for @adafruit's modular Feather system, to easily connect the CO2 sensor I want to use.
The manufactured PCBs arrived today! \o/ We used a pin that's an input-only pin on the ESP32, but soldering a little cable to another pin seems to work.
@bleeptrack assured me that there's no first PCB without a botch job! :D
The first prototype of my low-power CO2-Sensor is working! 🎉 It currently consists of:
- ESP32 "feather" devboard
- the CO2 Feather Wing I co-designed, featuring a Senseair Sunrise sensor
- @adafruit's E-Ink Feather Friend
- a Waveshare E-Ink display, which shows the current CO2 value in ppm
Thanks to everyone who recommended to get this power profiler! It's a really helpful tool for what I'm doing.
Currently, it takes 233 mC of charge to refresh. Theoretically, if the device refreshes every minute, the battery will last 23 days! Which is already much better than I expected, but there's lots to be optimized.
Needing to be awake to re-draw the e-ink screen is the biggest factor. Between refreshes, the devices goes into deep sleep, where it basically draws no power at all. 💤
I'm really surprised how pleasant it is to program the firmware in #rust! Because I *really* don't want to use C/C++ anymore, if I can avoid it…
I love how Cargo helps manage all dependencies and libraries, and how you can write generic drivers using "embedded-hal", a central crate in the embedded Rust ecosystem, which just hit version 1.0: https://blog.rust-embedded.org/embedded-hal-v1/
Big recommendation! :) Also, I'm learning a lot about how the I2C protocol works!
Here are the biggest questions on my mind right now (let me know if you have thoughts)! #electronics
- How could I make the device cheaper? The Sunrise CO2 sensor costs 50 EUR per piece. The other components will be really cheap, but I need a good, low-power sensor. The SCD41 is cheaper, but draws an average of 450 uA (compared to the 16 uA of the Sunrise).
- How could I minimize the power/time for refreshing the e-ink display? Use a smaller screen? Use a Memory LCD instead?
@noiob Currently, I'm using a Senseair Sunrise, and the cheaper (but a bit less precise) version is the Senseair Sunlight! It has a similar calibration approach.