adafruit / adafruit/Adafruit_CircuitPython_HT16K33
Can we get a dimmer minimum brightness?
- Dominant language
- Python
- Stars
- 49
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
I've built a bedside alarm clock using the Adafruit 1.2" 7-segment clock display with I2C Backpack. I'm using CircuitPython on an RP2040 Feather board, so the software library is this one: Adafruit_CircuitPython_HT16K33.
The issue for me is that the minimum brightness I can achieve is still too bright. I'm no expert on the details of how these systems work, but it appears from lines 95 to 103 of "ht16k33.py" here that the brightness is actually constrained to values from 0x00 to 0x0F, i.e. 16 possible values. But the brightness of 0 is definitely not "off" (at least not when set by "display.brightness" in my program). For example, if I command a brightness of 0.01 - which would translate to 0 when filtered through lines 95 to 103 - it is on, and still brighter than what I would like.
Obviously there's an underlying code somewhere that actually implements the brightness control. Given the digital nature of the system (no analog parts) I presume that the brightness must actually be the duty cycle of a pulse train. So is it possible at the level of the underlying assembly or C code to expand the range of brightness settings, particularly with an eye to providing a dimmer minimum?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with ht16k33.py lines 95-103 and trace how display.brightness values are mapped to the HT16K33 brightness setting. Determine whether the device supports a dimmer minimum or a wider range, then document or implement the feasible behavior and verify that brightness values below 0.01 produce the intended result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100