I'm sorry but unfortunately, I have to lower your guys expectation. I only meant to show what is possible, give all the hints and encourage others to take this job or even find a better way for hacking these scopes. If someone can try to follow what I posted and do more investigation, it would be nice.
I don't have enough time to maintain a patched version of the Auklet.apk as I have a >130% day job. Especially this will need to be adapted to every future firmware revision. Rigol did hackers a great favor: not obfuscating the java code and not striping symbols in the native binary, but this can change at anytime, if our hacking got above their radar. Also I'm afraid of legal issues too, particularly when living in countries with better enforced IP laws, posting on a forum without using Tor and really don't want to be kicked back to China.
Just wondering -- what is the current state of affairs regarding this very promising hacking approach? In my understanding:
- 50 Ohm terminators can be enabled from the GUI, are active, and are included in the auto-calibration. (Is the calibration reproducible now? Seems it went wrong initially?)
I couldn't get enough time to investigate this, so far it seems the SPC doesn't fully solve the offset issue. The 50 Ohm offset can be removed,
but the 1 MOhm path shows a 13 mV offset at 100 mV/div. Sorry I have to strike this out again, maybe it's my fault, I was messing with DrvChannel_SetScale.
- Advanced decoders and triggering, as well as power analysis (?), can be enabled.
Also didn't have time to try. Power analysis seems functional.
- 800 MHz and presumably also 400 MHz bandwidth can be enabled. Is the selectable front-end bandwidth from the DHO4000 (20 MHz, 200 MHz, full bandwidth) available too?
I have roughly tested the bandwidth with a VCO, what I can say for sure is the bandwidth is certainly beyond 200 MHz. If only API_GetProductSeries is patched, there will be a serious problem that if the bandwidth limit is enabled, it can never be disabled. (hint: DrvChannel_SetBandLimit)
- 500 MPts memory does not work, presumably because it is not installed and/or requires the second ADC channel. 250 MPts do work.
Yes this is what I observed.
If someone is going to look into this deeper, try reading the references to DevSystem_GetProductSeries might be helpful. Simply patching it out for 4000 will not work as it will mess up with the acquisition.