This is a ready-to-flash board definition for the ready-to-fly 55mm
M5Stack M5Stamp Fly quadcopter. Hopefully it can serve as an inexpensive
reference design for the often-beleaguered ESP32 support. It flies great
using the stock parameters and a joystick over MAVLink over WiFi.
The CPU and flash are still slow and I had to limit it to <1/3 of a
stock copter's loop rate but for amateur pilots that is not noticeable.
Current sensor suite is suitable for non-position-controlled modes (e.g.
Stabilize and AltHold). Battery monitoring is also set up and works.
Flight time is 4-5 minutes.
Work remains to get the compass driver working so that automated flight
is possible with an inexpensive GPS. Then hopefully some day the LEDs,
buzzer, optical flow sensor, and chip LiDARs can be made to work though
those may end up not possible within ArduPilot's framework and given the
hardware constraints.
../../Tools/AP_Periph/rc_in.cpp: In member function 'void AP_Periph_FW::rcin_update()':
../../Tools/AP_Periph/rc_in.cpp:117:31: error: 'class AP_RCProtocol' has no member named 'protocol_name'; did you mean 'protocol_enabled'?
117 | auto new_rc_protocol = rc.protocol_name();
| ^~~~~~~~~~~~~
| protocol_enabled
compilation terminated due to -Wfatal-errors.
Smooth altitude changes were always referred to as "glide slopes"
despite this not being the appropriate aviation term in the case of a
climb. A better option is "altitude slope", which encompasses both
smooth climbs and descents.
Changed all references to glide slopes, except those that specifically
refer to a single kind (like those used for landings), to the more
general term. This also includes changing the GLIDE_SLOPE_MIN and
GLIDE_SLOPE_THR parameters to ALT_SLOPE_MIN and ALT_SLOPE_THRESH,
respectively.
Smooth altitude changes were always referred to as "glide slopes"
despite this not being the appropriate aviation term in the case of a
climb. A better option is "altitude slope", which encompasses both
smooth climbs and descents.
Changed all references to glide slopes, except those that specifically
refer to a single kind (like those used for landings), to the more
general term. This also includes changing the GLIDE_SLOPE_MIN and
GLIDE_SLOPE_THR parameters to ALT_SLOPE_MIN and ALT_SLOPE_THRESH,
respectively.
We will reserve BOARD_FLASH_SIZE for the internal flash on stm32 flash processors, use HAL_PROGRAM_SIZE_LIMIT_KB in the general code base.
Notable change here is that boards with external flash will start to get features only available with more than 2MB of program storage