This is probably too good to be true. (I know you are going to say Nyquist bla bla, but forgive me for this time).
Achieved by frida hooking _ZN11CApiLicense18check_BandWidthOptE7OptType and installing :SYST:OPT:INST HDO1000-BW2T8
-> this will fail the AC amplitude SPC, so not necessary useful.
This is probably too good to be true. (I know you are going to say Nyquist bla bla, but forgive me for this time).
Achieved by frida hooking _ZN11CApiLicense18check_BandWidthOptE7OptType and installing :SYST:OPT:INST HDO1000-BW2T8
I just tried the default SPC again, and seemingly the offset is gone ??
Another undesirable side effect is after the _Z20API_GetProductSeriesv patch, the bandwidth options are no longer accepted. I tried all different combinations but none of them worked. It should be easy to patch though.
The 500 Mpts doesn't seem to work. There is always a glitch on the waveform, likely caused by corruption of memory, but 250Mpts seems to look fine. (uninstall the RLU option to avoid using the nonexistent memory).
Achieved by frida hooking _ZN11CApiLicense18check_BandWidthOptE7OptType and installing :SYST:OPT:INST HDO1000-BW2T8
-> this will fail the AC amplitude SPC, so not necessary useful.
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?)
- Advanced decoders and triggering, as well as power analysis (?), can be enabled.
- 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?
- 500 MPts memory does not work, presumably because it is not installed and/or requires the second ADC channel. 250 MPts do work.
Code: [Select]echo "127" > /sys/devices/platform/pwm_fan/hwmon/hwmon5/pwm1
does it lower the speed?
Nice, this indeed works fine (just need to "su" first).
You force the fan speed at each startup by adding a command at the end of the /rigol/shell/start_rigol_app.sh file.
You can do it this way:Code: [Select]echo 'su -c "sleep 10; echo 63 > /sys/devices/platform/pwm_fan/hwmon/hwmon5/pwm1" &' >> /rigol/shell/start_rigol_app.sh
Note that the main app starts after this scripts and overwrite the fan speed, hence the "sleep 10" and the "&" so that this commands actually executes after the main app has set the fan speed.
Whatsoever, the fan speed reduction definitely is an improvement, but to really silence the scope, my take is that the fans would need to be replaced.
Agreed
I replaced the original Fans Protechnic MGA6012MR-O15 (60x15) with Noctua NF-A6x25 - they fit 1:1 without any problems.
I have also fitted silicone frames under the fans.
The airflow and temperatures are the same, but the noise level is pleasantly quiet now
Most "fellas" interested in Rigol's DHO 800/900/1k/4k may have followed the other thread about the broken FlatTop FFT window function. I wrote a small basic (yes, really! ) program that calculates the correct window file -- the windows executable is attached. Here's how to replace the broken file:
You need to have the ADB toolkit downloaded on your PC and the simplest way is to have the newly generated window file placed in the same directory.
Now your scope should restart and activate the new FFT FlatTop window file.
This step-by-step walkthrough was probably "Kindergarten" for many but it may help those who never ever typed on a unix terminal...
Yes, just run it (you can use a command window) and it generates the parameters file in the same directory where the EXE is located. The counter runs up to one million (2^20) since that's the number of coefficients that are generated. It takes quite some time since the coefficients are calculated with four parametrized trigonometric values each. The numbers in the file are 32 bit float, little endian, simply merged one after another, hence the size is 4x2^20 byte. Good luck!
The signature checks are very annoying, now getting this for modified package name.Code: [Select]Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.riglol.scope-1: Package com.riglol.scope has no signatures that match those in shared user android.uid.system; ignoring!]
https://stackoverflow.com/questions/17222535/create-system-application
Update: I made it! repacking the patched apk with a changed package name (also changed provider names) in the manifest, then also change the android:sharedUserId="org.riglol" rather the system uid, repack and resign, adb push install and then it should work! just note that you need to use
am start -n com.riglol.scope/com.rigol.scope.MainActivity
to invoke the correct activity after changing the package name.
50 Ohm with UI, 500Mpts memory and all the advanced decoding seems available!
There is even some weird mechanism to let the scope start the patched app instead of the normal scope app by default on the next boot, , so it can be a untethered hack.
I'd like to post more details, but not tonight, I need sleep for tomorrow's day job.
The signature checks are very annoying, now getting this for modified package name.Code: [Select]Failure [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Package couldn't be installed in /data/app/com.riglol.scope-1: Package com.riglol.scope has no signatures that match those in shared user android.uid.system; ignoring!]
https://stackoverflow.com/questions/17222535/create-system-application
Update: I made it! repacking the patched apk with a changed package name (also changed provider names) in the manifest, then also change the android:sharedUserId="org.riglol" rather the system uid, repack and resign, adb push install and then it should work! just note that you need to use
am start -n com.riglol.scope/com.rigol.scope.MainActivity
to invoke the correct activity after changing the package name.
50 Ohm with UI, 500Mpts memory and all the advanced decoding seems available!
There is even some weird mechanism to let the scope start the patched app instead of the normal scope app by default on the next boot, , so it can be a untethered hack.
I'd like to post more details, but not tonight, I need sleep for tomorrow's day job.
I've now decompiled the Auklet.apk, added a few "upgrades" and recompiled it again. So far so good. Browsing the newly compiled apk-file using jadx shows, that the changes are as expected
The apktool and jadx works like a charm by the way.
However, I'm a bit stuck with the certificates.
I've changed the following in the Manifest, but that's not enough;
android:sharedUserId="org.riglol"
package="com.riglol.scope"
I've tried adding "riglol" to all provider fields in the manifest, but no luck. Still get the "Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES error
I'm a bit stock on the "Provider", "resign" and "package name". Care to add a few hints ? Have you gone through Zipalign and sign to get around the certificate error? I've tried to zipalign and sign with a new keystore with the changes to the manifest, but ends up with the error "INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
On a sidenote, to verify that I can start an application through the adb I tested the help-menu, using the same style you suggested, works perfect
$ am start -n com.rigol.floatbrowser/com.rigol.floatbrowser.MainActivitycom.riglol.scope/com.rigol.scope.MainActivity
@Override // com.rigol.scope.data.BaseParam
public void readAll() {
super.readAll();
readInfo();
read(ServiceEnum.OptType.OPT_COMP);
read(ServiceEnum.OptType.OPT_EMBD);
read(ServiceEnum.OptType.OPT_AUTO);
read(ServiceEnum.OptType.OPT_FLEX);
read(ServiceEnum.OptType.OPT_AUDIO);
read(ServiceEnum.OptType.OPT_AERO);
read(ServiceEnum.OptType.OPT_EYE);
read(ServiceEnum.OptType.OPT_JITTER);
read(ServiceEnum.OptType.OPT_RTSA);
read(ServiceEnum.OptType.OPT_CM_USB);
read(ServiceEnum.OptType.OPT_CM_ENET);
read(ServiceEnum.OptType.OPT_CM_MIPI);
read(ServiceEnum.OptType.OPT_RLU);
read(ServiceEnum.OptType.OPT_UPA);
read(ServiceEnum.OptType.OPT_BW7T10);
read(ServiceEnum.OptType.OPT_BW7T20);
read(ServiceEnum.OptType.OPT_BW10T20);
read(ServiceEnum.OptType.OPT_BW2T4);
read(ServiceEnum.OptType.OPT_BW2T8);
read(ServiceEnum.OptType.OPT_BW4T8);
syncData(MessageID.MSG_LICENSE_CHANGED, true);
}
I was reading the reply and wanted to ask you something. Does that reply apply also to the Rigol DHO1074?