ive been looking into calibrating the Rigol 3058E via SCPI commands and my fluke multi function calibrator, and been told its impossible by a rigol rep. i found that dubious at best. and began poking around in the firmware file for likely options.
ive found some commands that seem to be related:
:CALIbration:STEP
:CALIbration:STATUs?
also there are keywords ZERO, and GAIN, but i cant fit them into any working commands yet.
:Calibration:step takes an argument and returns a string "CALIBRATION Step %d"
and querying :calibration:status? will be 1\n until some calibration measurement is finished. but this is where i hit a stumbling block
ive confirmed that each range is unaffected by other range calibration operation, so to start i focused only on the 200mV range as a test
#python
dmm.write("*RST")
dmm.write(":MEASURE:VOLT:DC 0") #200mV range
cal.write('OUT 0V')
dmm.write(":CALI:STEP 0")
while (dmm.query(":CALI:STATUS?") ==1): time.sleep(1)
when this finished running, the lcd displays a pretty good 0V reading +- 2 counts.
also if you redo this with the output set to 50mV, and then readback across the entire range, there will be a 50mV shift in the readings. however the shift is only between -60mV and +60mV, -200->-61 and 61->200 are unaffected.
"STEP 1" only gives reasonable results if you provide 0V on the inputs as well. any other values give the same shifted behavior that would appear if you gave non-0Volt values for step one.
ill continue to document my findings but i thought i might reach out here for help. i'm cleaning up my python to share so other people can replicate my work if there is interest.
anyone else had a go at this?
PS:
other undocumented commands ive stumbled across:
:WINDow:STATus? - no clue what window this is talking about...
:BOARdtest:MEMory:FLASh?
:BOARdtest:MEMory:SDRAM?
:BOARdtest:MEMory:FRAM?