FlyingRC L4CAN RM3100 is an external compass with a three-axis magnetometer PNI RM3100 and CAN bus communication, suitable for drones, aircraft, and VTOL machines with ArduPilot or PX4 firmware. The module presents itself to the autopilot as a separate DroneCAN peripheral, so it does not use any UART or I2C bus on the flight controller.
The magnetometer senses the Earth's magnetic field, which is very weak and easily affected by nearby electronics, especially power cables from the battery and ESCs. The compass is therefore placed as far away from the rest of the electronics as possible, which is not always possible with a combined GPS and compass module. The manufacturer recommends a distance of at least 10cm from power cables, ESCs, motors, and ferrous metal parts. CAN bus communication is significantly more resistant to interference than I2C and can handle longer wiring, so the compass can be mounted even on the arm or landing gear of a drone without the risk of data transmission failure.
The RM3100 magnetometer consists of two sensor coils Sen-XY-f for the X and Y axes, one coil Sen-Z-f for the Z axis, and the MagI2C controller. It operates on a magneto-inductive principle, measuring the frequency of an oscillation circuit whose inductance changes with the surrounding magnetic field. Compared to common Hall sensors, it offers roughly ten times the resolution and more than twenty times lower noise according to the manufacturer, shows no magnetic hysteresis, and does not require temperature calibration. The measurement range is ±400µT with a sensitivity of 13nT and noise of 15nT; it can provide data at up to 550Hz for all three axes. Such a precise magnetometer is used where common chips like QMC5883L or IST8310 do not provide a stable enough heading — typically on large long-range machines, VTOLs, and autonomous missions.
The data is processed by the STM32L431RCT6 microcontroller clocked at 80MHz with ArduPilot AP_Periph peripheral firmware; the factory-flashed target is MatekL431-GPS. The module connects via one of two GH1.25 4pin connectors with 5V, H, L, and G pins; the second connector is used for daisy-chaining another peripheral on the same bus. For longer wiring, the 120Ω termination resistor jumper should be soldered on the board. In addition to CAN, there are solder pads for UART2 with MSP output and UART3 reserved for connecting an external GNSS module; an SWD interface for programming is also available. Status is indicated by two LEDs — blue flashes quickly at startup and slowly during normal operation, red indicates power on the internal 3.3V rail.
In the autopilot, the bus is enabled by the parameter CAN_P1_DRIVER = 1, or CAN_P2_DRIVER = 1 depending on the port used. We also recommend enabling automatic magnetic declination correction with the parameter COMPASS_AUTODEC = 1, so the compass does not need manual declination entry for the given location. After installation, compass calibration must always be performed.
The four-layer board with a thickness of 1.64mm and gold-plated pads measures 29.3x29.3x9mm and weighs 4.5g. The M2 mounting holes are spaced 25.5x25.5mm. The package includes a 3D-printed base, with which the module weighs 10.5g, four M2x4 self-tapping screws, and a 20cm double-sided GH1.25 silicone cable.
Important notice: The compass communicates only via CAN bus. It is supported by ArduPilot and PX4 firmware; Betaflight and iNav firmware do not support DroneCAN peripherals.