esphome / esphome/feature-requests
Add support for the MPR121 Proximity functionality
- Dominant language
- No language data
- Stars
- 450
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the problem you have/What new integration you would like**
The MPR121 has the ability to detect "Proximity" in addition to "Touch". The current implementation in ESPHome only supports touch.
Currently the only off the shelf component I can find that supports and has the code for the MPR121 proximity functionality is the [Bare Conductive Touch Board](https://www.bareconductive.com/collections/touch-board) which appears to simply be an Arduino and MPR121 on a single board.
- https://www.bareconductive.com/blogs/resources/proximity-mode-control-the-touch-board-with-built-in-distance-sensors
- https://github.com/BareConductive/mpr121
In addition, I have found this repository that has the code to implement this feature with the MPR121 connected to an Arduino https://github.com/labatrockwell/arduino_capactive_sensor_MPR121
It seems that you simply need to set a few additional "Registers" to enable the "Proximity" mode.
- https://www.nxp.com/docs/en/application-note/AN3863.pdf
- https://www.nxp.com/docs/en/application-note/AN3893.pdf
**Please describe your use case for this integration and alternatives you've tried:**
I am currently using the Bare conductive board with the Arduino code to activate a GPIO sensor on ESPHome. It would be great to get this functionality added natively. It can be useful for setting up wall buttons without physically touching them. It also seems to have the ability to be used not only as a binary sensor, but as a variable sensor, so the closer you get to touching, the higher the value. This could be useful for setting brightness by moving your hand closer or farther from the sensor.
Contributor guide
No contributing guide indexed for this repository
Research direction
No ESPHome file, test, or entry point is named. Start by locating the existing MPR121 component, then compare its register setup with the Bare Conductive and Arduino implementations and the NXP application notes; done means proximity mode works natively, with the supported binary or variable-sensor behavior clearly defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arduino
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100