AP_Periph DroneCAN GNSS M10-L4-3100
AP_Periph L431 CAN node, ublox GNSS module, RM3100, SPL06-001, DroneCAN protocol & UART_MSP
- M10-L4-3100 has been pre-installed with MatekL431-GPS firmware since Nov. 2022. CAN Barometer is also disabled in “MatekL431-GPS” fw for reducing the data flow. MSP feature is also disabled in “MatekL431-GPS” fw before Jun-6-2023.
- If you want to use MSP feature, Pls flash it with “MatekL431-GPS” (AP_Periph_with_bl.hex) fw version after Jun-6-2023 over SWC/SWD pads via ST-LINK.
- From mid-July-2023, the 25mm patch antenna changed from “Taoglas” to “Cirocomm PA025AZ0009”. Both antennas perform the same.
- M10-L4-3100 is based on ArudPilots’ AP_Periph firmware, It is a GNSS+COMPASS+BAROMETER peripheral with CAN/DroneCAN and UART/MSP interfaces.
- M10-L4-3100 uses multi-constellation GNSS powered by u-blox M10 series , It 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.
- M10-L4-3100 integrates an industrial-grade compass PNI RM3100 which provides high resolution, low power consumption, no hysteresis, large dynamic range, and high sampling rates.
- ublox GNSS M10 series (GPS, GLONASS, Galileo and BeiDou)
- Magnetic Compass RM3100
- Barometer SPL06-001
- Patch GNSS Antenna 25*25*4mm
- MCU STM32L431RCT6
- UART3, onboard M10 GNSS module
- UART2(TX2 RX2), MSP Protocol
- CAN, DroneCAN Protocol
- I2C JST-GH connector for external AirSpeed sensor
- CAN bootloader LED, Blue
- Fast blinking, Booting
- Slow blinking, working
- GNSS PPS LED, Green
- solid on after powering on
- blinking(1Hz) when GNSS has 3D fixed
- 3.3V LED, Red
- Input voltage range: 4.5~5.3V (5V pad/pin)
- Power consumption: 60mA
- Operating Temperatures: -20~80 °C
- ArduPilot AP_Periph: MatekL431-GPS or MatekL431-Periph
- 1x M10-L4-3100
- 2x JST-GH-4P to JST-GH-4P 20cm silicon wire
- Mounting base (1x PCB plate, 4x silicon grommets, 4x Nylon standoffs M3x7, 4x Nylon screws M3*8)
Tips and Notes
- on M10-F4-3100, The 3 magnetic coils have little solder paste to avoid the excess to “tilt” them, resulting in some reading inaccuracies of the compass. Any strong impacts will definitely separate them, especially the “tall coil” Sen-Z-f. Pls use this precision module with care.
- The default configuration on GNSS module with ublox FW5.1 is concurrent reception of GPS, Galileo, and BeiDou B1I with QZSS and SBAS enabled. GLONASS is disabled by default.
- Beidou B1I (1561.098 MHz) and GLONASS can’t be enabled at the same time. Beidou B1C (1575.42 MHz) and GLONASS can be enabled at the same time. Flight controller firmware(INAV, Betaflight, ArduPilot) don’t support enable Beidou B1C for now.
- with GPS, Galileo, and BeiDou B1I with QZSS and SBAS enabled, M10 GNSS module can receive more than 30 Sats with HDOP down to 0.55.
- Start with u-blox GNSS FW3.01, timepulse is aligned with UTC time and that time is set valid only after leap second is downloaded. That could take up to 12.5 min. Probably PPS LED will not blink immediately after GPS has 3D fixed.
CAN (UAVCAN protocol) Connection
- M10-L4-3100 5V — FC 4.5V ~ 5.3V
- M10-L4-3100 CAN-H — FC CAN High
- M10-L4-3100 CAN-L — FC CAN Low
- M10-L4-3100 G — FC G/GND
FC UAVCAN Parameters(ArduPilot)
- CAN_D1_PROTOCOL -> 1
- CAN_P1_DRIVER -> 1
- GPS_TYPE -> 9 (DroneCAN)
- COMPASS_TYPEMASK -> 0 (make sure DroneCAN Unchecked)
If you connect I2C airspeed sensor to I2C port of M10-L4-3100
- ARSPD_TYPE -> 8 (UAVCAN)
- ARSPD_USE -> 1
And you must set CAN Node parameters for airspeed sensor connected to I2C port of M10-L4-3100
Mission Planner > Initial Setup > Optional Hardware > UAVCAN > SLCan Mode CAN1 > Parameters
- MS4525 ARSP_TYPE -> 1 (default in hwdef)
- MS5525 ARSP_TYPE -> 3 supports MS5525 with address 0x77 only
- SDP3X ARSP_TYPE -> 6
- DLVR-L10D ARSP_TYPE -> 9
- Write and reboot
If you connect 2812LED DIN to PWM5 pad
- NTF_LED_TYPES -> (make sure DroneCAN is checked)
SLCan Mode CAN1 > Parameters
- OUT5_FUNCTION 120
- NTF_LED_TYPES 455
- AP_Periph fw “MatekL431-Periph”
- or AP_Periph fw “MatekL431-GPS” , The fw version must be later than June 6, 2023
UART (MSP protocol) Connection
- M10-L4-3100 5V — FC 4.0V ~ 5.3V
- M10-L4-3100 TX2 — FC spare UART_RX
- M10-L4-3100 RX2 — FC spare UART_TX (not essential)
- M10-L4-3100 G — FC G/GND
ArduPilot (since 4.1.x) FC Parameters
- 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) FC Parameters
- M10-L4-3100 is compatible with any flight controller supported by INAV over a spare UART.
- In ports tab, Enable MSP on corresponding UART that M10-L4-3100 connected, DO NOT enable “GPS” on that UART. select 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.