-
Notifications
You must be signed in to change notification settings - Fork 18.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AP_HAL_ESP32 mega new feature branch - with AP_Periph support, CAN drivers, generated hwdef.h from hwdef.dat support and more #28514
base: master
Are you sure you want to change the base?
Conversation
7b291af
to
e6e88b5
Compare
…ding for esp32 periph
…in the .cpp an causing compile error on esp32 periph
…fecting esp32 periph
… and buzzs s3-periph variiant and disable a number of unwanted features on all esp32 boards AP_HAL: ESP32 doesn't support notify LEDs as its totally untested.
…i, AND print console message when calibrating to show whats going on
# note --esp32 is separate as it requires you also have done, and most ppl havent # ./Tools/scripts/esp32_get_idf.sh # source ./modules/esp_idf/export.sh
…ng how to use hwdef.dat for these in the new system
…e this more configurable from hwdef.data etc
…but still ok-we-hope values. WARN - may cause crashes!
… changes suggestion from peter bugfixes buzz plausibe hacking classic esp periph comments only AP_Compass: honour AP_COMPASS_ENABLED more esp32: disable a bunch of subsystems on Periph or it wont link AP_Periph: make can driver incapable of dividing by zero compile error on esp32 periph discovered this potential issue with HAL_NUM_CAN_IFACES=0 AP_Scripting: lua binding linker error when building on esp32 periph important esp32 py fixes esp32 periph, support linking non-s3 and s3 periphs
… python fixes for periph
e6e88b5
to
6a2a23c
Compare
here's the two main targets i'm working with and how to upload them: |
@davidbuzz - I've built this PR (rebased on master) for esp32 targets: esp32empty, esp32s3empty: - builds ok, but when flashed to esp32s3 there is a repeated message regarding uart initialisation and no wifi. I then cherry-picked a rebased-on-master version of @tpwrules's esp32s3m5stampfly branch over this branch to see if that worked, and currently it does not. The baro will not initialise, not surprising given the above, so further investigation needed. The stampfly branch, rebased on master, and excluding this PR does fly if the recent changes to RCOutput are reversed and replaced with the stampfly branch's version. For this PR, would it be possible to split out the changes needed to support CAN from those for AP_Periph? That might make it easier to work through, as there is a lot in here. The second thing needed, although it's an unrelated series of PRs, is to get changes in https://github.com/tpwrules/ardupilot/tree/stampfly grouped into a set of PRs and merged. I'd like to use the flying stampfly as a baseline, as that's something I have access to, is operational with a sensor suite, and is easy to check. I'd like to help with both, and propose as an intermediate target for testing this PR to get a CAN GPS / compass module running on the stampfly. That doesn't exhaustively test everything that is in here, but would include a portion of it. |
Why is the optical flow sensor disabled . Any peticular reason for that ? |
nope, just because this is (a) a huge collection of code produced over a long time (b) not something i'm personally interesrted in (c) not hardware I have and (d) as the "main" maintainer of the esp32 port/s for quite a while, not something I see most of the esp32 user/s wanting. |
All targets seem to build except esp32buzz + periph which needs code changes to build.
tests done:
generic s3 target using new-for-esp32 hwdef.dat to build from:
rm -rf build; ./waf configure --board=esp32s3buzz ; ./waf plane --jobs=7
-- builds ok
generic 'classic' esp32 target using old/current/existing esp32buzz.h static header to build from:
rm -rf build; ./waf configure --board=esp32buzz ; ./waf plane --jobs=7
-- builds ok
s3 periph target using hwdef.dat new-for-esp32:
rm -rf build; ./waf configure --board=esp32s3buzz_periph ; ./waf AP_Periph --jobs=7
-- builds ok
classic esp32 periph target using using old/current/existing esp32buzz.h static header to build from:
[ needs changes to the header to build currently as i haven't made a new old-style board that is periph-enabled ]
put this in ./libraries/AP_HAL_ESP32/boards/esp32buzz.h
.. and this in ./libraries/AP_HAL_ESP32/hwdef/esp32buzz/hwdef.dat
... and this turns the build into a "periph" build...
-- builds ok
./Tools/scripts/configure_all.py --stop --esp32
-- configures all 'esp32' boards without error if your environment is setup to build esp32/esp32s3
./Tools/scripts/configure_all.py --stop
-- configures all chibios boards without error
tests not yet done: (yet)
history: