Currently, the three solar panels can provide up to 50uA under artificial light, and from 150-1000 uA under sunlight depending on if it is directly or indirectly exposed. The power consumption of one of the halves is 140 uA on average when idle, and down to 25uA in deep sleep. When turned off, current leakage is around 3-7 uA. Current is measured with the nRF PPK2.
While I still need to properly measure the average power daily consumption, a simple estimation can be made. The keyboard uses around 1000-1500uAh per day, and the solar panels can provide 600-1200uAh per day depending on the lighting conditions. In the best case scenario, the battery should be able to maintain its voltage at all times. In the worst case scenario, it will consume around 900uAh per day. With a 500mAh battery, it should last 555 days, or around a year and a half on a single charge.
One important factor to keep the power consumption down is the choice of rotary encoders. One must make sure that they are closed on every detent, which ensures that no current will be wasted in possible internal pullups. In practice, I found the EN11 and ACZ11 series of rotary encoders to do the job. The ACZ11 has fairly weak detents, which makes it prone to be stuck between two detents, increasing the power consumption. This is why I've chosen to go with the EN11 encoders. I chose the ones with a threaded bushing, which allows me to thread in a cover cap for a cleaner look.
"Good" encoder
"Bad" encoder
In a future iteration, the following could be optimized for reduced consumption:
- Use of a switching regulator instead of LDO.
- Use of external pullups for the switch matrix. This could reduce current when a key is pressed.
- Testing the effect of all of the protection circuitry, and find alternatives if they consume too much current.
It could be interesting to design an evaluation board with multiple different ICs to test their performance. But that's a project for another time.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.