Hello,
My name is Nathan. I have helped with the Betaflight code for the Omnibus series of flight controllers and given the popularity of the recent Omnibus-Ardupilot port, I thought it fitting to start developing PX4 support for this target.
Specifically, I am working on the OmnibusF4SD target, which has an MPU6000, BMP280, SDcard, 50Ohm shunt resistor, and a MAX7456 chip for the OSD.
I was hoping to add native OSD support for this now widely available and inexpensive board. My hope is to use this hardware on a more capable software stack with a more permissive license than Ardupilot or Betaflight.
Sorry these are not hyperlinked, I am not allowed to post 5 hyperlinks because I am a new user:
As a first step, I have added target support to the bootloader here: GitHub - nathantsoi/Bootloader at omnibusf4sd
PR: initial omnibusf4sd target support by nathantsoi · Pull Request #101 · PX4/PX4-Bootloader · GitHub
I am working on basic firmware for the board here (v1.7.4): GitHub - nathantsoi/Firmware at omnibusf4sd-1.7.4 (working, see below for more details)
and here (master, does not build currently): GitHub - nathantsoi/Firmware at omnibusf4sd (does not compile currently, see below for more details)
PR: https://github.com/PX4/Firmware/pull/9310
Note that I have made an un-related change in these branches to add support for building within a pyenv-virtualenv. This can be removed or separated into it’s own commit before merging.
Any guidance on the following questions or other general advice would be much appreciated. My apologies in advance if some of these questions have obvious answers, but I greatly appreciate your pointers as I have not spent much time in the PX4 code, yet.
Development Questions:
-
after rebasing my 1.7.4 code against master and removing the geo libraries, adding lib/FlightTasks, I get the following errors, including a flash overflow: omnibusf4sd-master build log · GitHub what did I miss?
-
on the 1.7.4 branch, my timer configuration or fmu driver configuration is not correct, as after enabling pwm test via nsh, i see:
- binding nsh to uart 1, boot log is fine and the nsh> prompt appears, but the uart rx input interrupt never fires when characters are sent over the uart. uart over mavlink via the usb port is how I have been connecting:
Tools/mavlink_shell.py /dev/tty.usbmodem1
- the baro fails to start on boot, but can be started manually via nsh later. here is the boot log:
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1 j
�O�
�� I���o
%o
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_OMNIBUSF4SD
FW git-hash: 805b598fac6488952f46a2c7fa854bef93487629
FW version: 1.7.4 0 (17236992)
OS: NuttX
OS version: Release 7.22.0 (118882559)
OS git-hash: efc3d9e92bd10623ab3025f012fd7d481e1a7267
Build datetime: Apr 13 2018 23:52:52
Build uri: localhost
Toolchain: GNU GCC, 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
MFGUID: 3134383531334715003a0027
MCU: STM32F???, rev. Z
UID: 3A0027:31334715:31343835
[hardfault_log] Fault Log is Armed
nsh: tone_alarm: command not found
INFO [tune_control] Publishing standard tune 1
WARN [mtd] MTD not enabled, skipping.
INFO [param] selected parameter default file /fs/microsd/params
nsh: rgbled: command not found
nsh: blinkm: command not found
nsh: rgbled_pwm: command not found
ERROR [param] Parameter SYS_USE_IO not found
INFO [dataman] Unknown restart, data manager file ‘/fs/microsd/dataman’ size is 350216 bytes
MPU6000 on SPI bus 1 at 1 (1000 KHz)
INFO [mpu6000] accel cutoff set to 30.00 Hz
INFO [mpu6000] gyro cutoff set to 80.00 Hz
WARN [hmc5883] no device on bus 2 (type: 2)
WARN [bmp280] bus option number is 1
ERROR [bmp280] driver start failed
ERROR [param] Parameter SENS_EN_LL40LS not found
ERROR [param] Parameter SENS_EN_LL40LS not found
ERROR [param] Parameter SENS_EN_SF0X not found
ERROR [param] Parameter SENS_EN_SF1XX not found
ERROR [param] Parameter SENS_EN_MB12XX not found
ERROR [param] Parameter SENS_EN_TR����Ŵ�کٸ"�B;��C��;�R�K�����/��Dz��Z9�|�����{�����z�y��Ŵ��陸b�B��ׯ��/G���’�<���3u&#�o�}�o�����k����?���Ƭ��E4T66��� [load_mon] stack check enabled
ERROR [param] Parameter UAVCAN_ENABLE not found
ERROR [param] Parameter SENS_EN_LL40LS not found
ERROR [param] Parameter TRIG_MODE not found
INFO [mavlink] mode: OSD, data rate: 1000 B/s on /dev/ttyS0 @ 57600B
WARN [mavlink] hardware flow control not supported
ERROR [param] Parameter UAVCAN_ENABLE not found
px4flow [196:100]
WARN [px4flow] scanning I2C buses for device…
INFO [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
Best,
Nathan