Just recently got my hands on a really tiny quadrocopter. It's very cool, especially how they managed to get everything to such a tiny form factor. This is no doubt in part of using the PCBs as part of the support structure.
This wouldn't be possible without MEMS technologies that you find in a smart phone like accelerometers and gyroscope, in miniaturising components that use to be rather bulky and expensive to use.
The major ICs onboards are:
It's expected it would use a more beefy ARM processor than something like an AVR, since it is doing a closed loop feedback (PID?) control of 4 motors at the same time.
MINI54ZAN 415AC 2412B048 -ZZ _ARM_
+ Core - ARM Cortex-M0 core runs up to 50 MHz - One 24-bit system timer - Support low power sleep mode - Single-cycle 32-bit hardware multiplier - NVIC for the 32 interrupt inputs, each with 4-levels of priority - Support Serial Wire Debug (SWD) interface and 2 watchpoints/4 breakpoints + Memory - 32K/64K/128K bytes flash memory for program memory (APROM) (128K bytes supports NUC100 Medium Density only) - 4K bytes flash memory for loader memory (LDROM) - Configurable data flash address and size for 128K bytes system, fixed 4K bytes data flash (DataFlash) for the 32K bytes and 64K bytes system - 4K/8K/16K bytes embedded SRAM (16K bytes supports NUC100 Medium Density only) - Support PDMA mode + Clock Control - Flexible selection from different clock sources - Build-in 22.1184 MHz high speed oscillator (trimmed to 1%) for system operation, and low power 10 KHz low speed oscillator for Watchdog timer and Wake-up operation - Support one PLL, up to 50 MHz, for high performance system operation - External 4 ~ 24 MHz high speed crystal input for precise timing operation - External 32.768 KHz low speed crystal input for RTC function and low power system operation + Timers - Support 4 sets of 32-bit timers with 24-bit up-timer and one 8-bit pre-scale counter - Independent clock source for each timer - Provide one-shot, periodic, toggle and continuous counting operation modes (NUC100 Medium Density supports one-shot and periodic mode only) - Support event counting function (NUC100 Low Density only) + PWM - Built-in up to four 16-bit PWM generators provide eight PWM outputs or four complementary paired PWM outputs - Each PWM generator equipped with one clock source selector, one clock divider, one 8-bit pre-scale and one Dead-Zone generator for complementary paired PWM - Up to eight 16-bit digital capture timers (shared with PWM timers) provide eight rising/falling capture inputs - Support capture interrupt + ADC - 12-bit SAR ADC with 600K SPS - Up to 8-ch single-end input or 4-ch differential input - Single scan/single cycle scan/continuous scan - Each channel with individual result register - Scan on enabled channels - Threshold voltage detection - Conversion start by software programming or external input - Support PDMA mode + Communication Interface - Maximum 3 UARTs, up to 1 Mbit/s with flow control - Maximum 4 SPIs, up to 16 MHz (Master@5V), 10 MHz (Salve) - 2 I2Cs - Support IrDA (SIR) function - Support RS485 + I2S - Interface with external audio CODEC - Operate as either master or slave mode - Capable of handling 8-, 16-, 24- and 32-bit word sizes - Support mono and stereo audio data + Analog Comparator - Up to two analog comparators - External input or internal bandgap voltage selectable at negative node - Interrupt when compare result change + RTC - Support software compensation by setting frequency compensate register (FCR) - Support RTC counter (second, minute, hour) and calendar counter (day, month, year) - Support alarm registers (second, minute, hour, day, month, year) + EBI Bus (External bus interface supports NUC100 Low Density 64-pin package only) - Accessible space: 64K bytes in 8-bit mode or 128K bytes in 16-bit mode - Support 8-/16-bit data width - Support byte write in 16-bit data width mode + Brownout Detector - With 4 levels: 4.5V / 3.8V / 2.7V / 2.2V - Support brownout interrupt and reset option + GPIOs - Up to 80 general-purpose I/O (GPIO) pins - Four I/O modes: Quasi bi-direction, Push-Pull output, Open-Drain output, Input only with high impendence - TTL/Schmitt trigger input selectable - All GPIO pins can be configured as interrupt source with edge/level setting + Built-in LDO for Wide Operating Voltage Range - 2.5V to 5.5V + Operating Temperature - - 40oC ~ 85oC + Packages (RoHS) - LQFP48 (7x7mm) - LQFP64 (10x10mm)
Motion Processing Unit
I recognize this! It's an invensense MPU 6050! A 6 axis MPU (3 axis accerometer + 3 axis gyro)
INVENSENSE MPU-6050C D36138-B1 EL 1411 E
This appears to be a radio chip, due to it's proximity to the antenna
BEKEN BK2423 B54144C
BEKEN BK2423: Low Power High Performance 2.4 GHz GFSK Transceiver 2400-2483.5 MHz ISM band operation: ? Support 250Kbps, 1Mbps and 2 Mbps air data rate ? Programmable output power ? Low power consumption ? Tolerate +/- 60ppm 16 MHz crystal ? Variable payload length from 1 to 32bytes ? Automatic packet processing ? 6 data pipes for 1:6 star networks ? 1.9V to 3.6V power supply ? 4-pin SPI interface with maximum 8 MHz clock rate ? Compact 20-pin 3x3 or 4x4mm QFN package
What would be interesting, is if the quadrocopter can be reprogrammed to add other motions besides the 360 flip in one of it's auto acrobatic stunts button (one press and it does a flip in air).
Either way, it shows how far we have come since the first toy helicopters a few years ago (2015)
BTW: in jekyll I had a problem with unicode causing problems with page generation here. Solved it by stripping all non unicode via
[^\x00-\x7F]+ regex expression. Thanks ProGM from http://stackoverflow.com/questions/20889996/notepad-how-to-remove-all-non-ascii-characters-with-regex