After having a few issues with the previous board I built, the RC Due. I decided to throw together a simpler, 8 bit version.
It's intended to do the same thing, (control lots of outputs and read lots of inputs) while maintaining "off the shelf" Arduino functionality not found on existing quad copter controllers.
Due to the fact that the ATMEGA32U4 doesn't have as many PWM outputs as the Due, I've had to introduce a new device, the PCA9685. It's a 16 channel, 12bit PWM driver that runs off the I2C bus. It's intended to drive lots of LEDs but can be used for anything, motors, servos, LEDs..
This board can be programmed and even powered over USB. It makes development really easy and once you finish, you can use it however you like.
- 8bit ATMEGA32U4 AVR Microcontroller
- 3 axis Accelerometer
- 3 axis Gyro
- 3 axis Magnetometer
- 12 channels of 10bit Analogue inputs (can be used as GPIO)
- 16 channels of 12bit PWM outputs
- SPI, I2C, Serial, USB
- Xbee header
Compared to the 32bit board, what are the benefits and drawbacks?
- Easy to program
- Easy to power
- All 5V tolerant IO (Arduino due is 3.3V only)
- Arduino works correctly (no I2C problems like on the Due)
- Smaller board
- 8bit rather than 32bit
- Interrupts capabilities are not as good
- 2 serial ports rather than 3 on the Arduino Due (a concern for anyone running GPS modules)
I'll keep working on the 32bit version and maybe introduce a new processor, in the meantime, this one will work just nicely in my car!
I've made a little video explaining the board a bit better... and a bit about myself looking like a fool!
This is the schematic of the board. There are a few fixes that need to be made in the new board..
- Silkscreen has some of the Analogue inputs labelled incorrectly, just a case of swapping labels
- Reverse polarity diode drops too much voltage so replace with mosfet, stops glitches from low voltage
- Add a mosfet that selects between USB or external power, right now they are just tied together
Will sort these issues out in due time..
Get the Eagle design files here