SeoulBotLab
Dual-Axis Compass Jitter On Leonardo
I’ve got an Arduino Leonardo connected to ARC over USB running the EZ-Genuino_Leonardo firmware, and I made sure to check DTR Enabled in the connection config so serial RX works. I’m trying to use the Dual-Axis Compass robot skill with a Sure Electronics DC-SS503V100 sensor on I2C for a small 2WD rover (L298N driver, 7.4V LiPo, motors powered separately). SDA/SCL are wired to the Leonardo’s I2C pins (SDA/D2, SCL/D3), 5V and GND shared, and I verified common ground between logic and motor supplies. Per the skill’s wiring note, I shortened the I2C leads to about 6 cm and mounted the sensor on a little plastic mast away from the motors and battery.
The skill connects and streams headings, but as soon as the motors run the reading jitters by 30-90 degrees and sometimes drops to -1. With motors off it’s steadier, but still off by ~60-70 degrees from a known compass heading, and a slow 360 rotation of the robot only yields ~250 change in the readout. I tried: adding 4.7k pull-ups to SDA/SCL, moving the sensor 20 cm higher, twisting motor leads, ferrites on motor wires, powering the sensor from a separate 5V buck (still common ground), and rotating the board in different orientations. I left the Dual-Axis Compass skill at its default I2C address (not sure if this module supports alternates) and don’t see a calibration/declination option in the UI.
Is the Dual-Axis Compass skill fully compatible with the Leonardo running the EZ-Genuino firmware over I2C, and if so, what’s the recommended way in ARC to calibrate/apply an offset and eliminate the jitter I’m seeing under motor load?
Related Hardware (view all EZB hardware)
