M5Stamp Fly

2024
1. OUTLINE
M5Stamp Fly is a programmable open-source quadcopter kit, featuring the StampS3 as the main controller. It integrates a BMI270 6-axis gyroscope and a BMM150 3-axis magnetometer for attitude and direction detection. The BMP280 barometric pressure sensor and two VL53L3 distance sensors enable precise altitude hold and obstacle avoidance. The PMW3901MB-TXQT optical flow sensor provides displacement detection. The kit includes a buzzer, a reset button, and WS2812 RGB LEDs for interaction and status indication. It is equipped with a 300mAh high-voltage battery and four high-speed coreless motors. The PCB features an INA3221AIRGVR for realtime current/voltage monitoring and has two Grove connectors for additional sensors and peripherals. Preloaded with debugging firmware, the Stamp Fly can be controlled using an Atom Joystick via the ESP-NOW protocol. Users can choose between automatic and manual modes, allowing for easy implementation of functions like precise hovering and flips. The firmware source code is open-source, making the product suitable for education, research, and various drone development projects.
1.1. STAMPS3A
1. Communication Capabilities:
- Main Controller: M5StampS3, based on the ESP32-S3 chip, supports Wi-Fi and Bluetooth communication.
- Wireless Communication: Supports ESP-NOW protocol and can be controlled via the Atom Joystick.
2. Processor and Performance:
- Processor Model: Xtensa LX7 Dual-core (ESP32-S3).
- Storage Capacity: 8MB Flash.
- Processor Operating Frequency: Up to 240 MHz.
3. Display and Input:
- RGB LED: Built-in WS2812 RGB LED for interaction and status indication.
4. GPIO Pins and Programmable Interfaces:
- Grove Interface: Equipped with two Grove connectors for extending sensors and peripherals.
5. Others:
- Sensors: Integrates a BMI270 six-axis gyroscope, BMM150 three-axis magnetometer, BMP280 barometric pressure sensor, two VL53L3 distance sensors, and a PMW3901MB-TXQT optical flow sensor. These enable attitude detection, direction sensing, precise altitude holding, and obstacle avoidance.
- Battery: Equipped with a 300mAh high-voltage lithium battery providing approximately 4 minutes of flight time.
- Power Management: Onboard INA3221AIRGVR chip for real-time current/voltage monitoring.
- Physical Dimensions: 81.5 x 81.5 x 31 mm.
- Weight: 36.8 grams.
- The product comes preloaded with debugging firmware. Users can switch between automatic and manual modes, allowing for precise hovering and maneuvers like flips. The firmware source code is open-source, making it ideal for education, research, and various UAV development projects.
2. SPECIFICATIONS
2.1 Module Size

UNIT: mm
3. QUICK START
Before you do this step, look at the text in the final appendix: Installing Arduino
3.1. Print WiFi information
- Open Arduino IDE (Refer to https://docs.m5stack.com/en/arduino/arduino_ide for the installation guide for the development board and software)
- Select the ESP32S3 DEV Module board and the corresponding port, then upload the code
- Open the serial monitor to display the scanned WiFi and signal strength information


3.1. Print BLE information
- Open Arduino IDE (Refer to https://docs.m5stack.com/en/arduino/arduino_ide for the installation guide for the development board and software)
- Select the ESP32S3 DEV Module board and the corresponding port, then upload the code
- Open the serial monitor to display the scanned BLE and signal strength information


4. FCC Warning
FCC Caution:
Any Changes or modifications not expressly approved by the party responsible for compliance could void the user’s authority to operate the equipment. This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.
IMPORTANT NOTE:
Note: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:
— Reorient or relocate the receiving antenna.
— Increase the separation between the equipment and receiver.
— Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.
— Consult the dealer or an experienced radio/TV technician for help.
This equipment complies with FCC radiation exposure limits set forth for an uncontrolled environment. This equipment should be installed and operated with minimum distance 20 cm between the radiator & your body.
Arduino Install
I. Installing Arduino IDE (https://www.arduino.cc/en/Main/Software)
Click to visit the Arduino official website , and select the installation package for your operating system to download.
II. Installing Arduino Board Management
1. The Board Manager URL is used to index the development board information for a specific platform. In the Arduino IDE menu, select File -> Preferences

2.Copy the ESP board management URL below into the Additional Board Manager URLs: field, and save.
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json


3. In the sidebar, select Board Manager, search for ESP, and click Install.

4. In the sidebar, select Board Manager, search for M5Stack, and click Install.
Depending on the product used, select the corresponding development board under Tools -> Board -> M5Stack -> {ESP32S3 DEV Module board}.

5. Connect the device to your computer with a data cable to upload the program
Documents / Resources
![]() | M5 Stamp Fly |
References
- m5-docsdocs.m5stack.com
- espressif.github.io/arduino-esp32/package_esp32_dev_index.jsonespressif.github.io
- arduino.cc/en/Main/Softwarewww.arduino.cc
- User Manualmanual.tools
