Some undocumented SCPI extension.
!!!DON'T USE command "SECurity"!!!
It removes the protection bits, but I'm not sure that this will not erase the
entire firmware. In this case, the device will be irreversibly corrupted.
Unfortunately, I don't have a 3.0.1 firmware image, and jtag appears to be blocked.
Because of this, I can't do any experiments yet.
I really do not want to roll back to 2.0.4 (which is _possibly_ compatible).
By the way - owners of HDS2102 with firmware 2.0.4 can ask OWON about the possibility of updating to 3.0.1.
main SCPI parser three:
CH1 = SCPI_AddHook(0, "CH1", 0, 0);
SCPI_AddHook(CH1, "DISPlay", (int (__fastcall *)(char *))SCPI_CH1_DISPlay_Set, SCPI_CH1_DISPlayGetText);
SCPI_AddHook(CH1, "COUPling", (int (__fastcall *)(char *))SCPI_CH1_SetupCoupling, SCPI_CH1_GetCoupling);
SCPI_AddHook(CH1, "BANDwidth", (int (__fastcall *)(char *))SCPI_CH1_SetupBandwidth, SCPI_CH1_GetBandwodthText);
SCPI_AddHook(CH1, "PROBe", (int (__fastcall *)(char *))SCPI_SetupProbe, SCPI_CH1_GetProbeText);
SCPI_AddHook(CH1, "SCALe", (int (__fastcall *)(char *))SCPI_CH1_SetupVScale, SCPI_CH1_GetScaleText);
SCPI_AddHook(CH1, "OFFSet", (int (__fastcall *)(char *))SCPI_SetOffset_1, SCPI_CH1_GetOffset);
CH2 = SCPI_AddHook(0, "CH2", 0, 0);
SCPI_AddHook(CH2, "DISPlay", (int (__fastcall *)(char *))SCPI_CH2_DisplaySet, SCPI_CH2_DisplayGet);
SCPI_AddHook(CH2, "COUPling", (int (__fastcall *)(char *))SCPI_CH2_CouplingSet, SCPI_CH2_CouplingGet);
SCPI_AddHook(CH2, "BANDwidth", (int (__fastcall *)(char *))SCPI_CH2_BandWidthSet, SCPI_CH2_BandWidthGet);
SCPI_AddHook(CH2, "PROBe", (int (__fastcall *)(char *))SCPI_CH2_ProbeDividerSet, SCPI_CH2_ProbeDividerGet);
SCPI_AddHook(CH2, "SCALe", (int (__fastcall *)(char *))SCPI_CH2_SetupVScale, SCPI_SCPI_CH2_VScaleGet);
SCPI_AddHook(CH2, "OFFSet", (int (__fastcall *)(char *))SCPI_CH2_OffsetSet, SCPI_CH2_OffsetGet);
Hor = SCPI_AddHook(0, "HORizontal", 0, 0);
SCPI_AddHook(Hor, "SCALe", (int (__fastcall *)(char *))SCPI_HorScaleSet, SCPI_HorScaleGet);
SCPI_AddHook(Hor, "OFFSet", (int (__fastcall *)(char *))SCPI_HorOffsetSet, SCPI_GetHorOffset);
ACQuire = SCPI_AddHook(0, "ACQuire", 0, 0);
SCPI_AddHook(ACQuire, "MODe", (int (__fastcall *)(char *))SCPI_ChangePeakMode, SCPI_GetPeakModeStr);
SCPI_AddHook(ACQuire, "DEPMem", (int (__fastcall *)(char *))SCPI_ChangeDepMem, SCPI_GetDepMemStr);
Data = SCPI_AddHook(0, "DATa", 0, 0);
Data_Wawe = SCPI_AddHook(Data, "WAVe", 0, 0);
Data_Wawe_Screen = SCPI_AddHook(Data_Wawe, "SCReen", 0, SCPI_Data_Wawe_Screen_CH1);
SCPI_AddHook(Data_Wawe_Screen, "CH1", 0, SCPI_Data_Wawe_Screen_CH1);
SCPI_AddHook(Data_Wawe_Screen, "CH2", 0, SCPI_Data_Wawe_Screen_CH2);
SCPI_AddHook(Data_Wawe_Screen, "HEAD", 0, SCPI_Data_Wave_Screen_Head);
Trigger = SCPI_AddHook(0, "TRIGger", 0, 0);
SCPI_AddHook(Trigger, "STATus", 0, SCPI_GetTriggerStatusText);
Trigger_single = SCPI_AddHook(Trigger, "SINGle", 0, 0);
Trigger_single_edge = SCPI_AddHook(
Trigger_single,
"EDGe",
(int (__fastcall *)(char *))SCPI_SetEdgeMode,
SCPI_GetEdgeText);
SCPI_AddHook(Trigger_single_edge, "LEVel", (int (__fastcall *)(char *))SCPI_SetTriggLevel, SCPI_GetTriggLevel);
SCPI_AddHook(Trigger_single_edge, "SOURce", (int (__fastcall *)(char *))SCPI_SetTriggSourcfe, SCPI_GetTriggSourceText);
SCPI_AddHook(Trigger_single, "SOURce", (int (__fastcall *)(char *))SCPI_SetTriggSourcfe, SCPI_GetTriggSourceText);
SCPI_AddHook(Trigger_single, "COUPling", (int (__fastcall *)(char *))SCPI_Setup_AC_DC, SCPI_GetCoupling);
SCPI_AddHook(Trigger_single, "SWEep", (int (__fastcall *)(char *))SCPI_SetSWeepMode, SCPI_GetTriggerModeStr);
MEASuremen = SCPI_AddHook(0, "MEASuremen", 0, 0);
SCPI_AddHook(
MEASuremen,
"DISPlay",
(int (__fastcall *)(char *))SCPI_MEASuremen_Display_Set,
SCPI_MEASuremen_Display_Get);
MEASuremen_CH1 = SCPI_AddHook(MEASuremen, "CH1", 0, 0);
SCPI_AddHook(MEASuremen_CH1, "MAX", 0, SCPI_MEASuremen_CH1_MaxGet);
SCPI_AddHook(MEASuremen_CH1, "MIN", 0, SCPI_MEASuremen_CH1_MinGet);
SCPI_AddHook(MEASuremen_CH1, "PKPK", 0, SCPI_MEASuremen_CH1_PkPkGet);
SCPI_AddHook(MEASuremen_CH1, "VAMP", 0, SCPI_MEASuremen_CH1_VampGet);
SCPI_AddHook(MEASuremen_CH1, "AVERage", 0, SCPI_MEASuremen_CH1_AverageGet);
SCPI_AddHook(MEASuremen_CH1, "PERiod", 0, SCPI_MEASuremen_CH1_PeriodeGet);
SCPI_AddHook(MEASuremen_CH1, "FREQuency", 0, SCPI_MEASuremen_CH1_Freq);
SCPI_AddHook(MEASuremen_CH1, "RTime", 0, SCPI_MEASuremen_CH1_RTime);
SCPI_AddHook(MEASuremen_CH1, "FTime", 0, SCPI_MEASuremen_CH1_FTime);
SCPI_AddHook(MEASuremen_CH1, "PWIDth", 0, SCPI_MEASuremen_CH1_PWidth);
SCPI_AddHook(MEASuremen_CH1, "NWIDth", 0, SCPI_MEASuremen_CH1_NWidth);
SCPI_AddHook(MEASuremen_CH1, "SQUAresum", 0, SCPI_MEASuremen_CH1_SquareSum);
MEASuremen_CH2 = SCPI_AddHook(MEASuremen, "CH2", 0, 0);
SCPI_AddHook(MEASuremen_CH2, "MAX", 0, SCPI_MEASuremen_CH2_MaxGet);
SCPI_AddHook(MEASuremen_CH2, "MIN", 0, SCPI_MEASuremen_CH2_MinGet);
SCPI_AddHook(MEASuremen_CH2, "PKPK", 0, SCPI_MEASuremen_CH2_PkPkGet);
SCPI_AddHook(MEASuremen_CH2, "VAMP", 0, SCPI_MEASuremen_CH2_VampGet);
SCPI_AddHook(MEASuremen_CH2, "AVERage", 0, SCPI_MEASuremen_CH2_AverageGet);
SCPI_AddHook(MEASuremen_CH2, "PERiod", 0, SCPI_MEASuremen_CH2_PeriodeGet);
SCPI_AddHook(MEASuremen_CH2, "FREQuency", 0, SCPI_MEASuremen_CH2_FreqGet);
SCPI_AddHook(MEASuremen_CH2, "RTime", 0, SCPI_MEASuremen_CH2_RTimeGet);
SCPI_AddHook(MEASuremen_CH2, "FTime", 0, SCPI_MEASuremen_CH2_FTimeGet);
SCPI_AddHook(MEASuremen_CH2, "PWIDth", 0, SCPI_MEASuremen_CH2_pWidthGet);
SCPI_AddHook(MEASuremen_CH2, "NWIDth", 0, SCPI_MEASuremen_CH2_NWidthGet);
SCPI_AddHook(MEASuremen_CH2, "SQUAresum", 0, SCPI_MEASuremen_CH2_SquareSumGet);
Function = SCPI_AddHook(0, "FUNCtion", (int (__fastcall *)(char *))SCPI_SetGeneratorMode, SCPI_GetGeneratorMode);
SCPI_AddHook(Function, "FREQuency", (int (__fastcall *)(char *))SCPIFun_Freq_Set, SCPI_Fun_Freq_Get);
SCPI_AddHook(Function, "PERiod", (int (__fastcall *)(char *))SCPI_Fun_Period_Set, SCPI_Fun_Period_Get);
SCPI_AddHook(Function, "AMPLitude", (int (__fastcall *)(char *))SCPI_Fun_Ampl_Set, SCPI_Fun_Ampl_Get);
SCPI_AddHook(Function, "OFFSet", (int (__fastcall *)(char *))SCPI_Fun_Offset_SEt, SCPI_Fun_Offset_Get);
SCPI_AddHook(Function, "HIGHt", (int (__fastcall *)(char *))SCPI_Fun_Hightt_SEt, SCPI_Fun_Hightt_GEt);
SCPI_AddHook(Function, "LOW", (int (__fastcall *)(char *))SCPI_Fun_Low_SEt, SCPI_Fun_Low_GEt);
SCPI_AddHook(Function, "SYMMetry", (int (__fastcall *)(char *))SCPI_Fun_Symmetry_SEt, SCPI_Fun_Symmetry_GEt);
SCPI_AddHook(Function, "WIDTh", (int (__fastcall *)(char *))SCPI_Fun_Width_SEt, SCPI_Fun_Width_GEt);
SCPI_AddHook(Function, "DTYCycle", (int (__fastcall *)(char *))SCPI_Fun_Duty_SEt, SCPI_Fun_Duty_GEt);
SCPI_AddHook(Function, "RISing", (int (__fastcall *)(char *))SCPI_Fun_Rising_SEt, SCPI_Func_Rising_Get);
SCPI_AddHook(Function, "FALing", (int (__fastcall *)(char *))SCPI_Fun_Faling_SEt, SCPI_Fun_Faling_GEt);
SCPI_AddHook(Function, "LOAD", (int (__fastcall *)(char *))SCPI_Fun_LoadOnOff_SEt, SCPI_Fun_LoadOnOff_GEt);
SCPI_AddHook(0, "CHANnel", (int (__fastcall *)(char *))SCPI_ArbChannelSet, SCPI_ChannelGet);
SCPI_AddHook(0, "MODel", 0, SCPI_Get_String_Model);
SCPI_AddHook(0, "SERial", (int (__fastcall *)(char *))SCPI_Set_String_Serial, 0);
SCPI_AddHook(0, "AUToset", (int (__fastcall *)(char *))SCPI_Autoset, 0);
SCPI_AddHook(0, "Selfcorrec", (int (__fastcall *)(char *))SCPI_Selfcorrec_Set, 0);
SCPI_AddHook(0, "SECurity", (int (__fastcall *)(char *))SPCI_SecuritySet, 0);
DMM = SCPI_AddHook(0, "DMM", (int (__fastcall *)(char *))SCPI_DMM_Config_Set, SCPI_DMM_Get_String);
DMM_Configure = SCPI_AddHook(DMM, "CONFigure", (int (__fastcall *)(char *))SCPI_DMM_Config_Set, SCPI_DMM_Get_String);
SCPI_AddHook(DMM_Configure, "VOLTage", (int (__fastcall *)(char *))SCPI_DMMConfVoltSet, SCPI_DMM_Get_String_Voltage);
SCPI_AddHook(DMM_Configure, "CURRent", (int (__fastcall *)(char *))SCPI_DMMConfCurrSet, SCPI_DMM_Get_String_Current);
SCPI_AddHook(DMM, "REL", (int (__fastcall *)(char *))SCPI_DMM_Rel_Set, SCPI_DMM_Rel_Get);
SCPI_AddHook(DMM, "RANGE", (int (__fastcall *)(char *))SCPI_DMM_Range_Set, SCPI_DMM_Range_Get);
SCPI_AddHook(DMM, "AUTO", (int (__fastcall *)(char *))SCPI_DMM_AutoSet, SCPI_DMM_AutoGet);
SCPI_AddHook(DMM, "MEAS", 0, SCPI_DMM_MeasGet);
SCPI_AddHook(0, "VIDEO", SCPI_SetVideo, 0);
SCPI_AddHook(0, "VOLFULL", SCPI_VOLFULL, 0);
Separate command:
STARTDEBUGTXT - HW model info
COLOR - lcd palette setup
SOFTWARERESET - reset
Special key seq:
Sys,sys,up,up,down,down,left,left,right,right - switch key "system" to enter specail menu
in Measure menu:
f3,f3,f4,f4,f3,f4,f3f4 - run some VERY long operations (7 step), with the output of not quite clear results. The operations are really long, and the device does not respond to the buttons at this time.
I can't say what the consequences will be (probably nothing worse than having to reset to default and recalibrate), but BETTER DO NOT EXPERIMENT.