Help with Sensors for Raspberry pi 5

Hi SparkFun Community,

I’m currently building a custom scouting rover prototype for a school project designed for long-range terrain analysis and hazard detection. The platform is a Raspberry Pi 5 paired with a SunFounder Robot HAT V4 (which manages PWM for steering and drive motors).

I’m looking to integrate a high-precision sensor suite via the Qwiic / I2C interface, as I need to keep my remaining ADC and PWM pins vacant for future mechanical expansions.

Technical Requirements:

  1. Magnetometry: I need to detect subtle magnetic anomalies in the soil. I am looking at the MMC5983MA or MLX90393. Since this is a mobile chassis, what are the best practices for isolating these from DC motor interference?

  2. Atmospheric Monitoring: The rover will operate in potentially stagnant environments. I need to detect VOCs and CO. Is the BME688 the best “all-in-one” for this, or should I be looking at a dedicated gas sensor?

  3. Surface Thermals: I plan to add an MLX90640 (32x24) to track surface temperature differentials.

Specific Questions:

  • The Robot HAT MCU sits at 0x14. Are there any known address conflicts with the sensors mentioned above?

  • With a Pi 5 as the master, what are the practical limits for daisy-chaining 3-4 Qwiic sensors over a 20-30cm total cable length? Should I be worried about signal degradation or pull-up resistance?

  • Has anyone had success mounting a magnetometer on a “boom” or mast to improve the signal-to-noise ratio on a 4-wheel rover?

I’ve attached a photo of the Robot HAT and current chassis for reference. Thanks for any insights!

Neat-o. Forgive the formatting, I’m not smart enough to know how to fix it

  1. The MMC5983MA has a bit better stats (0.25 mG/LSB, 18-bit, 0.4 mG noise floor)

    Set/Reset: the MMC5983MA has an on-chip strap that cancels zero-field drift and wipes any residual magnetization picked up from the motors – run it every sample or on a temp-change interrupt .

    For mounting put it on a non-magnetic mast and use a 3 mm thick mu-metal or steel shield on the motor side of the mast, also twist the 3.3 V & GND pair back to the Pi

  2. BME688 covers VoCs but not CO; luckily you can just add something like Carbon Monoxide Sensor - MQ-7 - SparkFun Electronics easily

  3. Cool - if you need the sensors to run faster you can try pushing them to an intermediary mux

A. No address conflicts, though note if you do run into some down the line you can use the mux above to virtualize i2c addresses

B. 20-30 cm is pretty long, that is about the practical max length. The Pi has in-line i2c pull-ups, you might need to disable them. Also note you will need to disable all but one set of resistors on the i2c bus (our sensors have jumper pads used to accomplish this). You can drop i2c speed if needed

C. Our example here had a live heading scatter of <0.5 °

Thank you So much. i have ordered these sensors. Cant wait to hook them all up and test.

1 Like

@TS-Russell will this sensor help me to see sub surface items buried in ground?
[SparkFun Pulsed Coherent Radar Sensor - Acconeer XM125]

No, it provides surface-level radar results

That is very commonly used to reduce interference from motors. You will need to experiment with your rig to determine the extent of the problem.

Intro to Ground-penetrating radar - Wikipedia

Inexpensive (~ USD 1500 - 2000) GPR rigs can be purchased from China. The same or similar ones are resold in the U.S. for about 10X that.

1 Like