...
Setup basic I2C transceive function(in blocking mode)
Setup functions for each command(refer to data sheet 15.1)
Setup functions to manipulate register values and data conversion(refer to data sheet 16)
Debugged and verified measurement read by comparing with sample Arduino code under same register settings - Nov 10, 2024
Test functions to change register values and switch to unblocking transfer- Nov 28, 2024
Write register and read register function tested and verified. Readings change according to settings. - Nov 12, 2024
DMA transfer ready to test - Nov 12, 2024
I2C interrupt transfer tested - Nov 28, 2024
CAN integration - Ongoing
Setup CAN message function for MagneticFieldStrength2, able to see txdata with logic analyzer. Need to decode data for verification.- Nov 28, 2024
Tx and Rx working, Ardupilot acknowledging data transferred - Jan 26, 2025
Notes
Consideration of DMAUse interruptConversion settingRegister settings: Higher OSR and digital filter setting lead to higher accuracy and lower noise, but higher covnersion time(refer to datasheet 16.2.5). Current setting: OSR = 3, digital filter = 5, conversion time = 52.92ms. Standard deviation of noise:
XY-axis = 5 mGauss, Z-axis = 7 mGauss
.
Sensitivity setting: Gain and resolution need to be tested on breakout board(refer to datasheet 16.2.4) Current setting: Sens-XY = 1, Sens-Z = 0, Gain_Sel = 0