-
Couldn't load subscription status.
- Fork 7.7k
-
Why
The ESP32 Family of chips have a large set of peripherals, that can provide different features, while not being bound to particular GPIOs. Some peripherals can provide more than one functionality and there are functionalities that can be provided by different peripherals at the same time (ex. LEDC can provide PWM, Servo and Tone, so can RMT, but RMT can also provide NeoPixel and others). Different chips have different subset of peripherals and peripherals themselves have different number of channels, limits, etc.
With Peripheral Manager we hope to provide tracking of available GPIOs, peripherals and channels, in order to have a cleaner and easy to use API with more features on more pins, as well as preventing some common mistakes, like using pins reserved for Flash and PSRAM.
Targets
- Support
analogWriteon more channels - Support
Servoon more channels - Support
Toneon more channels - Prevent use of reserved pins
- Add more output/input options (ex.
NeoPixel,OneWire, etc.)
Feature Ideas
- Allow GPIO remapping, like on other MCUs
- Allow picking the most appropriate peripheral for given functionality (ex.
RMTwill provide betterServothanLEDC) - Allow switching the peripheral if needed for higher priority functionality (ex. switch
Servochannel fromRMTtoLEDCif channel forNeoPixelis needed) - Have
LEDCselect an already configured timer, if it matches the requirements (ex. allanalogWritechannels can use the same timer. Same goes forServo) - Output error if pin is invalid, reserved or already attached to another peripheral
- Provide API to get GPIO/peripheral status and availability
- Keep backward compatibility (ex. libs that use
LEDCand have already predefined channel)
Beta Was this translation helpful? Give feedback.
All reactions
-
🚀 1
Replies: 1 comment 1 reply
-
If you want to provide a way for users to interactivity experiment with the new Peripheral Manager prototype on Wokwi so they can provide feedback / want to test the prototype on Wokwi, please ping me and I'll be happy to assist.
Beta Was this translation helpful? Give feedback.
All reactions
-
Thanks Uri for this option, so far we didn't figure out how to implement this feature.
Beta Was this translation helpful? Give feedback.
All reactions
-
👀 1