New Drone Shield

Hi all, I'm reproposing this post from a remote section of the forum:

I've been looking for a "drone shield" that could allow me to control a quadcopter using my Arduino Uno without having to deal with all the complicated software needed to make a drone fly stable. Yea, it's true, there are several tutorials on internet explaining how to program an Arduino to control a drone, but I don't want to put together all these parts of code and libraries, I just want to send instructions to a shield that manages the flight performances for me, in order to keep the Arduino free for other tasks.

Unfortunately I couldn't find anything, so I thought I can make a shield that fits my needs. The features would be something like:

  • Able to control up to 4 brushless motors, being connected to their ESC's (up to 8 in a second version)
  • Able to read and manage data from an onboard IMU (gyroscope, accelerometer and maybe also barometer and magnetometer)
  • Able to receive command via an RC radio on up to 6 PWM channels or PPM/SBUS channels.
  • Capable of communication with the Uno board, both sending and receiving data (IMU readings, radio reading, ESC's pulses, instructions etc...)
  • Possibility to connect to external devices via I2C bus (eg. GPS module)
  • Provided of a blackbox memory chip to store useful data
  • Extending GPIO capabilities to allow connections to the Uno of any kind of sensors (eg. Ultrasonic sensor, IR sensor, temperature sensor etc...)

I think it could have an 8-bit microcontroller as long as the computational power is enough to achieve a stable flight, but maybe it would be better a 32-bit one which would run even faster.

It would come with a library used for the data communication between the board and the shield, using specific functions that would avoid writing and running complicated code on the Arduino board.

Let me know what you think about this project and please tell me any advice or suggestion, if it gains enough attention and agreements I will also consider to make it become a purchasable product.

Thank you, Matt.

The best approach would therefore be to buy a commercial controller for your quadcopter - these are configurable usually via a PC and include all the gyros , PID loops etc etc that you need, and aren’t expensive , readily interface with everything too. The one I have even has an I2C bus so you can drive led strings etc. I think it has a 32bit processor and cost around £40 and copes easily with a racing quad. I think ( could be wrong) people only make Arduino based units for the development exercise.

Thanks for your opinion.

Of course I considered to buy a commercial flight controller, but I find it hard to connect several devices and sensors (assuming it's not a Pixhawk or an APM, which by the way are too expensive for the purpose).

yea, Arduino-based drone projects are usually just a challenging exercise, so let's intend my idea differently:

What about giving wings to your Arduino keeping all the possibilities it would normally give you and also having the ability of controlling the flight? obv without having to deal with long and complicated software.

Please tell me if I'm missing something, thanks.

No that’s fine ; just if you want to avoid the long and complicated software , as you said, a dedicated flight controller just works and cheaper/lighter easier to setup ? You could still put an Arduino on board if you wanted to do other things .

Just an opinion , hopefully others will have a say

This controller is £31 and uses a 168mhz, 32bit processor: 6-axis MPU6000 accelerometer/gyro (SPI) • BetaFlight OSD with AT7456E chip • BMP280 (12C) barometer • 4 x 30A 6 layer PDB • 5V 2A continuous BEC (3A burst) • 184A current sensor • MicroSD BlackBox (SD/SDHC) • VCP and 5 x UARTs • 6 PWM/DSHOT outputs • 12CI and DAC • BF/NAV MatekF405 Target

Specs: Input Voltage: 6~30V DC MCU: 168MHz STM32F405 IMU: MPU6000 accelerometer/gyro (SPI) (6-axis) Barometer: BMP280 (12C) OSD: BetaFlight OSD w/ AT7456E chip Blackbox: MicroSD card slot (SD/SDHC) VCP: UART1, UART2, UART3, UART4, UART5 SBUS: Built in inverter for SBUS input (UART2-RX) PPM/UART Shared: UART2-RX SoftSerial Support: On S5 & S6 Camera Control: On S6 or DAC (optional) VTX: Smartaudio and Tramp VTX protocol supported Lights: WS2812 LED strip Current Sensor: 184A BEC: 5V 2A continuous (3A burst) Voltage meter Scale: 1:10 LDO 3.3V: Max.300mA for Spektrum RX Beeper: Yes RSSI: Yes Status LED's: 3 x LED's for FC STATUS (Blue, Red & 3.3V Red indicator) PWM: 6 x PWM/DShot outputs without conflict UART's: 5 Connections: 1 x group of G/S1/S2/S3/S4 pads for 4in1 ESC Signal/GND 4 x pairs of corner pads for ESC Signal/GND connections (DSHOT compatible) 1 x pair 12CI pads Button: 1 x side-press button for BOOT(DFU) mode Dimensions: 36x46mm PCB with 30.5mm mounting holes Weight: 10g

Wow the controller you mentioned looks really similar to the specs I've been looking for. However now I wonder how can I connect it to an Arduino board in order to let the Arduino manage the whole flight.

Anyway, would you suggest me to start my little project even just as an experiment? Or should I avoid it and go for a direct solution?

The board takes its inputs from a normal RC receiver and outputs to speed controllers.

How you proceed is your choice lol