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.
The previous read me suggested using "-f json" to include the interface in SITL. This was difficult to work with as it replaced the vehicle's frame definition argument and prevented users from accessing the default parameters. By using "--model json" instead, the "-f" argument is left free for the vehicle's frame definition.
../../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.
../../libraries/AP_Proximity/AP_Proximity.cpp: In member function 'void AP
_Proximity::init()':
../../libraries/AP_Proximity/AP_Proximity.cpp:231:20: error: 'Hexsoon_Rada
r' is not a member of 'AP_Proximity::Type'
231 | case Type::Hexsoon_Radar:
| ^~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
../../ArduSub/sensors.cpp: In member function 'void Sub::read_rangefinder()':
../../ArduSub/sensors.cpp:80:23: error: 'struct Sub::<unnamed>' has no member named 'alt_cm'
80 | rangefinder_state.alt_cm = 0;
| ^~~~~~
compilation terminated due to -Wfatal-errors.
This is no longer used with the advent of PPP from CubeRedPrimary to
CubeRedSecondary. There is a similar version still in the bootloader
which is still useful.
Not using it in the future is beneficial so that OTG2 (SERIAL6) can be
used for other purposes. The feature can also be replaced using the
serial passthrough options.
This is no longer used with the advent of PPP from CubeRedPrimary to
CubeRedSecondary. There is a similar version still in the bootloader
which is still useful.
Not using it in the future is beneficial so that OTG2 (SERIAL6) can be
used for other purposes. The feature can also be replaced using the
serial passthrough options.