Add ESP32 Support#367
Conversation
|
Did i understand it correctly that i require an "mfmc" file to let MogiFlight correctly detect IOs? Product Link to the board: |
First the easy part ;) |
Thanks for contributing your work to this repo! But 'unfortenutely' ESP32 boards are not the boards we are planing to support officially. There are so many different variants of ESP32 boards which makes it not possible to support all of them. If we decide for one or two boards, I bet these are the wrong ones. So I don't think that this PR will get approved, but Sebastian has to decide it. Nevertheless, let me comment your great PR.
You can also have a look on this branch https://github.com/elral/MobiFlight-FirmwareSource/tree/ESP32_support to find more informations of what I have listed. |
|
Hi, thank you for your effort! Unfortunately, we decided we won't officially support ESP32. Like Ralf said, there are just too many and it would mean too much extra effort for the core team. Please be encouraged to maintain a custom firmware. It can also be shared with the community, hopefully in the future we will have a registry for these things so that others can find it. If you need help to set up the custom firmware repository, come to our discord and we can try to help you there. I will close this PR. |
NOTE
This pull request adds initial support for the ESP32-S3 board (specifically the Heltec Wireless Stick V3) to the project. The changes include board configuration, build system updates, and multiple code modifications to ensure compatibility with the ESP32/ESP32-S3 architecture. The most significant updates are grouped below.
ESP32-S3 Board Support
_Boards/esp32s3.board.json), specifying hardware IDs, pin mappings, module limits, and other board-specific settings.platformio.inito add a new build environment ([env:mobiflight_esp32s3]) for the ESP32-S3, including necessary build flags and dependencies.Codebase Compatibility Adjustments
Updated memory allocation logic in
allocateMem.cppandallocateMem.hto useuint8_tbuffers and pointers for both AVR and ESP32 architectures, ensuring consistent memory handling.Peripheral and Pin Handling for ESP32
Updated analog pin handling in
MFAnalog.cppto clarify ESP32's analog pin usage and allow for future mapping adjustments.Updated output pin initialization in
MFOutput.cppto ensure correct pin mode is set for ESP32, matching the behavior for other architectures.Modified servo control in
MFServo.cppandMFServo.hto use theESP32Servolibrary and set appropriate pulse ranges for ESP32 boards.Build and Firmware Handling
copy_fw_files.py) to only convert.binfiles to.uf2format for Raspberry Pi Pico boards, preventing unnecessary conversion for ESP32.These changes collectively enable the project to build and run on the ESP32-S3 platform, while maintaining compatibility with existing supported architectures.