That helps a bit. I'm still having a bear of a time seeing anything that actually works.
For instance I seem to be able to get the EEPROM data to show up in memory, but I can't seem to find the gains and offsets I need. For analog ou
readEEPROM_m(bar0, bar1, 1024, EEPROMData, 1024);
caloffset = (EEPROMData[kCalibrationAreaOffset] <<
😎 | EEPROMData[kCalibrationAreaOffset+1];
offset = caloffset + kAoIntervalBlockStart + (0*kAoIntervalBlockSize) + (0*kAoChannelBlockSize);
printf("%04d %04d\n", offset, offset-caloffset);
tempf32.b[0] = EEPROMData[offset+0];
tempf32.b[1] = EEPROMData[offset+1];
tempf32.b[2] = EEPROMData[offset+2];
tempf32.b[3] = EEPROMData[offset+3];
gain[i] = tempf32.f;
tempf32.b[0] = EEPROMData[offset+4];
tempf32.b[1] = EEPROMData[offset+5];
tempf32.b[2] = EEPROMData[offset+6];
tempf32.b[3] = EEPROMData[offset+7];
Voffset[i] = tempf32.f;
caloffset shows up as 0x0300, whichs seems strange since this puts the mode and interval blocks for channels 3 and 4 outside the 1024th element of the EEPROM data, according to the offsets in scale.cpp.
Big or little endian make no difference, the floats I get are usually either 0.00e+000 or something like 2.34e+-038.
The read EEPROMdata function is basically identical to the example in scale.cpp. I'm not entirely sure bar0 and bar1 are being set correctly, but it looked like when the read function wasn't working, almost all of the memory in EEPROMdata was set to FF.