GNSS M9N-CAN, UAVCAN & MSP
AP F303 CAN node, NEO-M9N, QMC5881L, DPS310, I2C, UART1 & UART3 breakout. UAVCAN protocol & UART_MSP
M9N-CAN has been discontinued due to seriously shortage of STM32F303CCT6. M9N-F4 series will be substituted for M9N-CAN.
- M9N-CAN is based on ArudPilots’ AP_Periph firmware, It is a GNSS+COMPASS+BAROMETER peripheral with CAN/UAVCAN and UART/MSP interfaces, plus an I2C expansion bus for additional peripherals, such as airspeed sensors.
- M9N-CAN uses multi-constellation GNSS powered by u-blox NEO-M9N , NEO-M9N is a concurrent GNSS receiver which can receive and track multiple GNSS systems. Owing to the multi-band RF front-end architecture all four major GNSS constellations, GPS,Galileo, GLONASS and BeiDou can be received concurrently.
- GNSS u-blox NEO-M9N (GPS, GLONASS, Galileo and BeiDou)
- Magnetic Compass QMC5883L
- Barometer DPS310
- ArduPilot AP_Periph F303 CAN node
- UART1, Firmware update
- UART2, onboard NEO-M9N
- UART3, MSP Protocol
- CAN, UAVCAN Protocol
- I2C, onboard QMC5883L & DPS310
- I2C JST-GH connector, external AirSpeed sensor
- CAN bootloader LED, Blue
- Fast blinking, Booting
- Slow blinking, working
- GNSS PPS LED, Green
- blinking(1Hz) when GNSS has 3D fixed
- Input voltage range: 4.5~5.5V (5V pad/pin)
- Power consumption: 100mA
- Operating Temperatures: -20~80 °C
- 1x M9N-CAN
- 2x JST-GH-4P to JST-GH-4P 20cm silicon wire
- Compass Alignment(Arrow forward and flat mounting):
Ardupilot/Mission Planner: Rotation None
- Make sure to have compass/magnetometer 10cm away from power lines/ESC/motors/iron based material
- The scratches on ceramic antenna are the result of tuning the antenna.
- HD cameras(Gopro, Split, Tarsier, etc) could interfere GPS signal, try turning off HD camera before GPS 3D fix
- Blue LED status can’t show communicating between CAN node and Flight Controllers since MSP was supported.
Pinout & Pads
|GH-4P Pin||Signal||Wires color||Pads||Signal|
|5V||4.5~5.5V||Red||3V3||onboard LDO output|
|3||onboard LDO output 3.3V|
|5V||4.5~5.5V||Red||Bt||F303 Boot pin|
- CAN_D1_PROTOCOL -> 1
- CAN_P1_DRIVER -> 1
- GPS_TYPE -> 9 (UAVCAN)
- COMPASS_TYPEMASK -> 0 (make sure UAVCAN Unchecked)
If you connect I2C airspeed sensor to I2C port of M9N-CAN
- ARSPD_TYPE -> 8 (UAVCAN)
- ARSPD_USE -> 1
And you must set CAN Node parameters for airspeed sensor connected to I2C port of M9N-CAN
Mission Planner > Initial Setup > Optional Hardware > UAVCAN > SLCan Mode CAN1 > Parameters
- MS4525 ARSP_TYPE -> 1
- MS5525 ARSP_TYPE -> 3 supports MS5525 with address 0x77 only
- SDP3X ARSP_TYPE -> 6
- DLVR-L10D ARSP_TYPE -> 9 (default in hwdef)
- Write and reboot
*** I2C peripherals don’t support hot plug. Airspeed sensor and Flight controller must be turned on together.
- M9N-CAN 5V — FC 4V5 or 5V
- M9N-CAN TX3 — FC spare UART_RX
- M9N-CAN RX3 — FC spare UART_TX (not essential)
- M9N-CAN G — FC G/GND
- Serialx_PROTOCOL = 32 (MSP) where x is the SERIAL port used for connection on autopilot.
- Serialx_BAUD = 115 where x is the SERIAL port used for connection on autopilot.
- GPS TYPE = 19 (MSP)
- BARO_PROBE_EXT = 4096 (MSP Baro)
- BARO_PRIMARY = 1 (If you want to use MSP baro as primary baro, otherwise leave as default)
- COMPASS_TYPEMASK 0 (or make sure MSP bit is not checked)
INAV (since 2.6)
- In ports tab, Enable MSP on corresponding UART that M9N-CAN connected, DO NOT enable “GPS” on that UART. Baudrate 115200.
- feature GPS
- set gps_provider = MSP
- set mag_hardware = MSP
- set baro_hardware = MSP
- set align_mag = CW90, if compass is mounted flat with arrow facing forward, and flight controller arrow is facing forward also.
ArduPilot hwdef f303-MatekGPS
1. Update firmware in STM32CubeProgrammer with “AP_Periph_with_bl.hex”
You may download it from our server en.stm32cubeprog_v2-3-0.zip
2. If you have a flight controller with CAN port, you can connect M9N-CAN to Flight controller via CAN, then update firmware in Mission Planner with “AP_Periph.bin”
- It is on the way to more resellers. Including but not limited to
- Banggood (CN)
- Drone-fpv-racer.com (France)
- fpv24.com (Germany)
- GetFPV.com (USA)
- helidirect.com (USA)
- HobbyRC.co.uk (UK)
- Phaserfpv.com.au (AUS)
- premium-modellbau.de (Germany)
- RaceDayQuads.com (USA)
- rotorgeeks.com (CA)
- rc-innovations.es (Spain)
- unmannedtechshop.co.uk (UK)
- If your M9N-CAN can’t get more than 16 satellites with clear sky view. check if the “GPS_MAX_RATE_MS” is 100 in Mission Planner > Initial Setup > Optional Hardware > UAVCAN > SLCan Mode CAN1 > Parameters. Pls set it to 200. The preloaded AP_Periph has GPS_RATE running at 10Hz for M8 series. but M9N can’t receive more than 16 satellites when running at 10Hz.
- GPR_RATE has been changed to 5Hz by default in f303-MatekGPS hwdef. https://github.com/ArduPilot/ardupilot/pull/15893
- If you are a INAV user and don’t have Ardupilot FC with CAN port. Pls reflash M9N-CAN with latest AP_Periph firmware. M9N will run at 5Hz and get more than 16 satellites.