nppilot
Some things to try as part of fiddling:
- Using golang as the main language
- Using libmaple instead of the ST libraries
Investigation stages
[[nppilot/boottime]]
Parts
- CPU: Arietta
G25
- 3.3 V only.
- GPIO pins are 8 mA up to 3.6 V
- 85 mA @ 5 V
- On board NCP1529 as 5 V regulator. Specified 2.7 to 5.5 V
- Watchdog
- Serial: +3V, 5V, RX, TX, WKP, GND
- GPS: Sparkfun LS20031 (MC-1513)
- IMU: Drotek
MPU6050
- 3.3 V, I2C, drivers/iio/imu/inv_mpu6050
- Receiver: FrSky
TFR4
- 5 V+. PPM output. G25 I/O lines can interrupt on change.
- LCD:
MOD-LCD3310
- 3.3 V, SPI + control, driver
- pcd8544 based? Or more recent?
- Serial: Sparkfun
FTDI
- GND CTS VCC TXD RXD RTX
Unknown
- Arietta power supply
AT91G25 TC unit
There’s bits of a driver under drivers/misc/atmel_tclib.c
and include/linux/atmel_tc.h
.
Counter mode has two capture registers that can trigger from a TIOAn line. They are:
- TIOA0: PA21
- TIOA1: PA22
- TIOA2: PA23
- TIOA3: PC2
- TIOA4: PC5
- TIOA5: PC12
Development environment
GCC 4.8 with gccgo for arm-none-eabiOpenOCD works inside VMWareOpenOCD plus Signalyzer Lite works
CopterControl basics:
- CopterControl programmer works
- Serial to JSC cable built
- Send and receive serial over the main port
Command:
- Can build and run Mini XPlus kernel
Communications:
- STM32-H103 shows as a USB CDC device
- Measure latency and jitter against x86
- Measure latency and jitter against XPlus
Using golang:
Build for arm-none-eabi- Interfacing with C functions
- Interfacing with C types
- When the runtime is needed
Third party components
Qualities for third party components:
- Open license
- Takes patches
- Healthy community?
RTOS:
- NuttX (BSD)
- ChibiOS (GPLv3)
- TNKernel (BSD-like?)
HAL:
- ChibiOS
- libmaple
Drivers and flight:
- CoperControl / OpenPilot
- CrazyFlie
- Ardupilot