Author Topic: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858  (Read 151082 times)

0 Members and 5 Guests are viewing this topic.

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #325 on: April 07, 2025, 06:38:48 pm »
I believe it was at 50%
Alright, was just curious if Rigol had "fixed" their intensity grading, as they do claim the levels (256) to deliver a good result but their grading do not look like 256 levels.

I also have an entry scope, and with the same 256 levels.. checked the modulation with my DG821PRO & FY6900 back in November & December 2023. 
https://imgur.com/a/intensity-grading-pictureslide-256-levels-modulation-qHmn4tI
 

Offline bill21

  • Supporter
  • ****
  • Posts: 12
  • Country: us
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #326 on: April 08, 2025, 03:07:25 am »
I believe it was at 50%
Alright, was just curious if Rigol had "fixed" their intensity grading, as they do claim the levels (256) to deliver a good result but their grading do not look like 256 levels.

I also have an entry scope, and with the same 256 levels.. checked the modulation with my DG821PRO & FY6900 back in November & December 2023. 
https://imgur.com/a/intensity-grading-pictureslide-256-levels-modulation-qHmn4tI

Do you recall whether your modulating signal max was in phase with the max amplitude of your AM signal?

Here are some more screenshots at different grading intensities:

Colour
2541286-0

1%
2541302-1

25%
2541290-2

50%
2541294-3

75%
2541298-4

100%
2541306-5

 

Online kuwoyuki

  • Newbie
  • Posts: 9
  • Country: cz
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #327 on: April 12, 2025, 08:22:22 am »
Made a Python crypter/parser for the setup.stp here: https://codeberg.org/kuwoyuki/rigol-setup-crypter. The encryption is just DES-CBC with a somewhat custom key array from the CPU SN.

  • download the crypter https://codeberg.org/kuwoyuki/rigol-setup-crypter
  • install adb
  • connect the AFG to LAN and find its IP address then
  • adb connect IP:55555
  • adb -s IP:55555 pull /rigol/data/setup.stp # pull the setup.stp
  • adb shell -- /rigol/shell/get_cpu_serial_num.sh # read the cpu serial
  • python rigol_setup_crypter.py -d -f setup.stp -k YOUR_CPU_SERIAL -o setup.csv # first decrypt
  • python rigol_setup_crypter.py -p -f setup.csv # parse the file
  • edit the CSV, parse again to check everything you want is set properly, then encrypt:
  • python rigol_setup_crypter.py -e -f setup.csv -k YOUR_CPU_SERIAL -o setup.stp.new
  • adb -s IP:55555 push setup.stp.new /rigol/data/setup.stp # push the new setup.stp
  • adb -s IP:55555 shell -- reboot # reboot

That's it. There are a bit more detailed instructions in the README in the repo. Also special thanks to @gbix for sharing absolutely none of his work.
Also, an alternative approach if you don't mind patching the DolphinFishSE binary is to just NOP out the decryption calls in CApiMemory::LoadSetupFile() and when it starts handling the CSV (split etc) you just set the register to raw file string from the stack (so you store the CSV unencrypted in setup.stp). Can be useful if you want to play around with the config options without re-encrypting it every time.

Code: [Select]
$ diff -u original_DolphinFishSE.hex mod_DolphinFishSE.hex
--- original_DolphinFishSE.hex 2025-04-08 02:11:54.342468184 +0600
+++ mod_DolphinFishSE.hex 2025-04-08 02:12:03.314957792 +0600
@@ -62490,10 +62490,10 @@
 000f4590  dd f0 06 ed 03 90 ff e7  ff e7 03 98 09 90 00 20  |............... |
 000f45a0  08 90 ff e7 08 98 09 99  88 42 0c d2 ff e7 08 99  |.........B......|
 000f45b0  d9 a8 41 5c b0 a8 52 f7  91 fd ff e7 ff e7 08 98  |..A\..R.........|
-000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd ff e7  |.0.......!R.....|
-000f45d0  7d a8 b0 a9 c9 f0 21 ff  ff e7 7d a8 b6 a9 00 f0  |}.....!...}.....|
-000f45e0  1d fd ff e7 7d a8 c9 f0  b3 ff 21 49 79 44 7a a8  |....}.....!IyDz.|
-000f45f0  48 f7 1e fa ff e7 b6 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
+000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd 00 bf  |.0.......!R.....|
+000f45d0  00 bf 00 bf 00 bf 00 bf  00 bf 00 bf 00 bf ca bf  |................|
+000f45e0  00 bf 00 bf 00 bf 00 bf  00 bf 21 49 79 44 7a a8  |..........!IyDz.|
+000f45f0  48 f7 1e fa ff e7 b0 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
 000f4600  ff e7 7a a8 c9 f0 a4 ff  ad a8 0c 21 69 f7 5e f8  |..z........!i.^.|
 000f4610  01 46 18 48 78 44 00 f0  d1 fc 88 b3 ff e7 0c 98  |.F.HxD..........|
 000f4620  dd f0 e6 eb ff e7 14 48  78 44 dd f0 e2 ec ff e7  |.......HxD......|
« Last Edit: April 12, 2025, 04:17:37 pm by kuwoyuki »
 

Offline Elektronick

  • Newbie
  • Posts: 3
  • Country: de
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #328 on: April 14, 2025, 11:12:46 am »
  • python rigol_setup_crypter.py -d -f setup.stp -k YOUR_CPU_SERIAL -o setup.csv # first decrypt

I get an error message only.  :'(

Code: [Select]
Mode: Decrypt
Reading input from file: setup.stp
Input Hex Data: 'E3D6CA71845FD0229D006E3C28869894DC786121824B11A8DA...'
CPU Serial: xxxxxxxxxxxxxxxxxxxxxxx
--------------------
Traceback (most recent call last):
  File "/usr/Download/Geräte/Rigol_DG822_Pro/rigol_setup_crypter.py", line 147, in DataDecryption
    encrypted_bytes = binascii.unhexlify(strEncryptedDataHex)
binascii.Error: Odd-length string

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/Download/Geräte/Rigol_DG822_Pro/rigol_setup_crypter.py", line 491, in <module>
    main()
    ~~~~^^
  File "/usr/Download/Geräte/Rigol_DG822_Pro/rigol_setup_crypter.py", line 478, in main
    decrypted_result = DataDecryption(input_data, args.cpu_serial)
  File "/usr/Download/Geräte/Rigol_DG822_Pro/rigol_setup_crypter.py", line 149, in DataDecryption
    raise ValueError(f"Invalid hex string provided: {e}")
ValueError: Invalid hex string provided: Odd-length string
 

Online kuwoyuki

  • Newbie
  • Posts: 9
  • Country: cz
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #329 on: April 14, 2025, 11:32:49 am »
Maybe a whitespace? Updated it to strip whitespace on the input data
 
The following users thanked this post: Elektronick

Offline Elektronick

  • Newbie
  • Posts: 3
  • Country: de
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #330 on: April 15, 2025, 10:38:06 am »
Maybe a whitespace? Updated it to strip whitespace on the input data

Thank you very much! Now it works.
 

Offline ptluis

  • Frequent Contributor
  • **
  • Posts: 713
  • Country: pt
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #331 on: April 15, 2025, 08:05:29 pm »
Made a Python crypter/parser for the setup.stp here: https://codeberg.org/kuwoyuki/rigol-setup-crypter. The encryption is just DES-CBC with a somewhat custom key array from the CPU SN.

  • download the crypter https://codeberg.org/kuwoyuki/rigol-setup-crypter
  • install adb
  • connect the AFG to LAN and find its IP address then
  • adb connect IP:55555
  • adb -s IP:55555 pull /rigol/data/setup.stp # pull the setup.stp
  • adb shell -- /rigol/shell/get_cpu_serial_num.sh # read the cpu serial
  • python rigol_setup_crypter.py -d -f setup.stp -k YOUR_CPU_SERIAL -o setup.csv # first decrypt
  • python rigol_setup_crypter.py -p -f setup.csv # parse the file
  • edit the CSV, parse again to check everything you want is set properly, then encrypt:
  • python rigol_setup_crypter.py -e -f setup.csv -k YOUR_CPU_SERIAL -o setup.stp.new
  • adb -s IP:55555 push setup.stp.new /rigol/data/setup.stp # push the new setup.stp
  • adb -s IP:55555 shell -- reboot # reboot

That's it. There are a bit more detailed instructions in the README in the repo. Also special thanks to @gbix for sharing absolutely none of his work.
Also, an alternative approach if you don't mind patching the DolphinFishSE binary is to just NOP out the decryption calls in CApiMemory::LoadSetupFile() and when it starts handling the CSV (split etc) you just set the register to raw file string from the stack (so you store the CSV unencrypted in setup.stp). Can be useful if you want to play around with the config options without re-encrypting it every time.

Code: [Select]
$ diff -u original_DolphinFishSE.hex mod_DolphinFishSE.hex
--- original_DolphinFishSE.hex 2025-04-08 02:11:54.342468184 +0600
+++ mod_DolphinFishSE.hex 2025-04-08 02:12:03.314957792 +0600
@@ -62490,10 +62490,10 @@
 000f4590  dd f0 06 ed 03 90 ff e7  ff e7 03 98 09 90 00 20  |............... |
 000f45a0  08 90 ff e7 08 98 09 99  88 42 0c d2 ff e7 08 99  |.........B......|
 000f45b0  d9 a8 41 5c b0 a8 52 f7  91 fd ff e7 ff e7 08 98  |..A\..R.........|
-000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd ff e7  |.0.......!R.....|
-000f45d0  7d a8 b0 a9 c9 f0 21 ff  ff e7 7d a8 b6 a9 00 f0  |}.....!...}.....|
-000f45e0  1d fd ff e7 7d a8 c9 f0  b3 ff 21 49 79 44 7a a8  |....}.....!IyDz.|
-000f45f0  48 f7 1e fa ff e7 b6 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
+000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd 00 bf  |.0.......!R.....|
+000f45d0  00 bf 00 bf 00 bf 00 bf  00 bf 00 bf 00 bf ca bf  |................|
+000f45e0  00 bf 00 bf 00 bf 00 bf  00 bf 21 49 79 44 7a a8  |..........!IyDz.|
+000f45f0  48 f7 1e fa ff e7 b0 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
 000f4600  ff e7 7a a8 c9 f0 a4 ff  ad a8 0c 21 69 f7 5e f8  |..z........!i.^.|
 000f4610  01 46 18 48 78 44 00 f0  d1 fc 88 b3 ff e7 0c 98  |.F.HxD..........|
 000f4620  dd f0 e6 eb ff e7 14 48  78 44 dd f0 e2 ec ff e7  |.......HxD......|

This means that I'll be able to convert a DG822 Pro into DG922 Pro with your tool?
 
The following users thanked this post: gorannik

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 9027
  • Country: ca
  • Non-expert
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #332 on: April 16, 2025, 08:14:12 pm »
This means that I'll be able to convert a DG822 Pro into DG922 Pro with your tool?

Thats the idea.

Code: [Select]
CPU Serial: 32407966c214088f238d
Decrypted Data Output:
RIGOL TECHNOLOGIES,DG821 Pro,DG8P255200045,2023-11-11,25000000000000,20000000000000,1000000000000,10000000000000,10000000000000,10000000000000,1,1000,32407966c214088f238d,1,DEF,Forever,Forever

Code: [Select]
RIGOL TECHNOLOGIES,DG922 Pro,DG8P255200045,2023-11-11,200000000000000,60000000000000,5000000000000,50000000000000,50000000000000,100000000000000,1,1000,32407966c214088f238d,2,MEM,Forever,Forever

So if you want DG922 pro you change the model text and frequency limits.

Defaults for DG821 are: Sine max (25MHz), Square max (20MHz), Ramp max (1MHz), Pulse max (10MHz), Arb max (10MHz), Harmonic max (10MHz), Frequency Minimum (1uHz), Harmonic frequency minimum (1000uHz), CPU SN, Number of channels (1), no arb memory option (DEF), mem license time (forever), channel license time (forever)

edit: anyone think there is a reason to try limits higher than the DG922 spec? Probably won't work but I'll see what happens.
« Last Edit: April 16, 2025, 11:10:53 pm by thm_w »
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 
The following users thanked this post: DaneLaw, ptluis, NE666, csuhi17, awiamo, gorannik, A-13

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #333 on: April 17, 2025, 12:52:56 am »
anyone think there is a reason to try limits higher than the DG922 spec? Probably won't work but I'll see what happens.

Give it a shot and see what it will allow as a useable UI limits through command line, though with the UI bug that NE666 highlighted (#234) it seems to perform well, way above official flagship specs on quite a few of the waveforms, but I don't have a scope that can actually quantify where the useable limits are..
- but systemwide it would do up to 200Mhz (5ns) on most of the waveforms as an actual output, alongside the inbuilt 148 arb-portfolio where the same 200MHz limit was in play, while "Pulse" on that' it was able to output up to 250MHz (4ns) if I recall correctly, but the quality of the signals and where the actual useable limits are when you this far out of bounce from the official tolerances.. I don't know.

Tried to use TinySA4 to see if it would modulate with arb at 200MHz
 
The following users thanked this post: thm_w, gorannik

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 9027
  • Country: ca
  • Non-expert
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #334 on: April 17, 2025, 11:57:09 pm »
I tried sine, the UI will show 300MHz, but the signal just stays at 200MHz. Square wave will go from 60MHz original limit up to 70MHz, but its compromising the duty cycle so not useful (can just use pulse or arb to do the same thing).

I'm thinking there is a hard limit written in the code DolphinFishSE, or somewhere in little_loach_afg.bit:
Code: [Select]
-a----        06/08/2023  11:56 PM        1241912 dolphinfish_top.bit
-a----        30/11/2023   5:14 AM        1241912 little_loach_afg.bit
-a----        26/11/2023  11:55 PM        1241912 little_loach_awg.bit
-a----        08/12/2023   1:49 AM        1241920 little_loach_counter.bit
-a----        28/11/2023   5:57 AM        1241912 little_loach_ddr_calibrate.bit
-a----        06/08/2023  11:56 PM        1823892 qiqiu_top.bin

I thought it was just the one Artix7, but maybe their asics (RT1014 and RT1012) have bitstream as well? No idea.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 
The following users thanked this post: DaneLaw

Offline fearas38

  • Newbie
  • Posts: 6
  • Country: lt
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #335 on: April 18, 2025, 06:34:43 am »
Hi everyone, I got the DG822 Pro and I want to ask those who upgraded from DG822 Pro to the DG922 Pro — does everything work properly after the model change? Have you noticed any bugs?
 

Offline Swake

  • Frequent Contributor
  • **
  • Posts: 944
  • Country: be
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #336 on: April 18, 2025, 07:55:51 am »
All is fine. The enhancement does not change anything to the software or the hardware. Whatever issue or bug existed before still exists now and it did not introduce any new ones.
When it fits stop using the hammer
 

Offline fearas38

  • Newbie
  • Posts: 6
  • Country: lt
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #337 on: April 25, 2025, 10:40:29 am »
I want to share some information about the DG822 Pro generator. Thanks to Kuwoyuki's post, where he explained how to change the generator version, I successfully switched my version from DG822 Pro to DG922 Pro. I tested the Waveform Memory depth — it also increased and works perfectly.

I converted a song into ARB format, and it plays successfully. The length of the song turned out to be 10M points and sample rate 44.1 kHz. The song, 3 minutes and 51 seconds long, fit completely to generator.
I also tested a 10-minute-long song, which had a length of 27M points and an ARB file size of 52 megabytes. The generator played it back without any issues.

I’m attaching screenshots of the generator and the oscilloscope. I'm also attaching the song in ARB format for anyone interested in testing it  :)
« Last Edit: April 25, 2025, 10:57:02 am by fearas38 »
 
The following users thanked this post: thm_w, Swake, Serg65536, gorannik, dfc123dfc

Offline cemelec

  • Contributor
  • Posts: 43
  • Country: gb
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #338 on: April 27, 2025, 09:10:32 am »
Is there a way to perform frequency only calibration on the DG912 Pro?
I've searched this and other topics but can't find anything. My DG912 Pro is extremely stable, as is the temperature environment and I just wanted (NOT needed) to improve it.
I have also a DG1062Z which I can frequency calibrate using a GPSDO  and it holds to better than 0.1 ppm
Thanks for any info
 

Offline Serg65536

  • Regular Contributor
  • *
  • Posts: 164
  • Country: ua
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #339 on: April 27, 2025, 11:56:03 pm »
I tried to use TinySA4 to see if it would modulate with arb at 200MHz


Why do you have 4VPP output and the LNA on!? Is the SA fried already? Please, delete the misleading video if you didn't use attenuators...
 

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #340 on: April 28, 2025, 01:19:28 am »
Why do you have 4VPP output and the LNA on!? Is the SA fried already? Please, delete the misleading video if you didn't use attenuators...

Come again' misleading    ???
When you're working with any SA.. its your job to know the limits of your device and honor those, and since I don't show the cabled input as it had no relevance, and the focus was on aligning the two screens, and lower the lightsensitivity a lot' so both screens were readable.
It doesn't take a Ph.d to conclude the use of an attenuator in such a situation, which is a good rule of thumb, when working with any signal generator directly connected to a spectrum analyzer that tends to have quite limited front-end protection.
The video has nothing to do with SA4's limits, it's solely a display of the modulation-ability that is still valid on DG821PRO with the UI bug, when in arb while maxed at 200MHz.

You are allowed to use common sense, and it's literally printed on the unit and also highlighted to the moon & back for each of these units, which exact tolerances they can safely handle https://tinysa.org/wiki/pmwiki.php?n=TinySA4.Comparison
You can clearly sense there is a metal shining barrel element before the socket of the SA4 in the vid above.. if you took a wild guess, could that be an attenuator?

You can see the written text on the unit's enclosure and its limits below. I wear both belt & braces when first dealing with a cheap MAX2870-based signal generator from the Szhenchen flea market.
But in general, when you connect a spectrum analyzer to any signal device that got a variable output that can go above your SAs tolerances, it's good practice to have an attenuator inline.   :)

(2023) were unsure where the signals [10.49G & 11.55G] originated from..
« Last Edit: April 29, 2025, 01:24:52 am by DaneLaw »
 

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #341 on: April 28, 2025, 07:37:09 pm »
* Instrument Information:
  Manufacturer: RIGOL TECHNOLOGIES
  Model: DG922 Pro (originally DG821PRO on the org. nov2023 sw it arrived with)
  Serial Number: DG8P255xxxxxx
  Calibration Date: 2023-11-11
  ARM CPU Serial: xxxxx
  Max Channels: 2

Frequency Specifications:
  Sine Max Frequency: 200000000000000 (200.000000 MHz)
  Square Max Frequency: 100000000000000 (100.000000 MHz)
  Ramp Max Frequency: 100000000000000 (100.000000 MHz)
  Pulse Max Frequency: 150000000000000 (150.000000 MHz)
  Arb Max Frequency: 200000000000000 (200.000000 MHz)
  Harmonic Max Frequency: 150000000000000 (150.000000 MHz)
  Min Frequency: 1 (1.000000e-12 MHz)
  Harmonic Min Frequency: 1000 (1.000000e-09 MHz)

Licensing Information:
  Arb Wavelength License: MEM (Memory Depth License)
  Arb Wavelength Valid Time: Forever (Active (No Expiration))
  Duo Channel Valid Time: Forever (Active (No Expiration))
-------


As mentioned a few times earlier in thread, there seems to be a 200MHz output limit, throughout these waveforms, Sine, Square, Ramp, Pulse, Harmonic, Arb (incl. the 148 built in).
Though on some of these it looks to perform okay above the DG922PRO limits.
Like fx RAMP, and the relatively conservative 5MHz spec, but I lack the proper tools to quantify where the DGxxxPR-hardware limits are.


What values have users decided on in theirs?  Just a mirror of DG922PRO specs or would it create any problems by using higher values like above in the setup.csv/stp file?

// precautions as there could be dophinfish loading issues going to far out of bounce
« Last Edit: May 18, 2025, 08:24:04 pm by DaneLaw »
 

Offline thm_w

  • Super Contributor
  • ***
  • Posts: 9027
  • Country: ca
  • Non-expert
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #342 on: April 29, 2025, 01:34:02 am »
Is there a way to perform frequency only calibration on the DG912 Pro?
I've searched this and other topics but can't find anything. My DG912 Pro is extremely stable, as is the temperature environment and I just wanted (NOT needed) to improve it.
I have also a DG1062Z which I can frequency calibrate using a GPSDO  and it holds to better than 0.1 ppm
Thanks for any info

The git link above has a HF flatness cal, there are some other hex files you can look at: ac1/2, counter, Hadar1/2, LF (lfflat1/2), offset1/2, peri1/2. Counter might be the one?

But why would you want to cal the frequency? Just use the 10MHz reference input instead, then there is no need to cal.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 
The following users thanked this post: cemelec

Offline JohnKr

  • Contributor
  • Posts: 12
  • Country: us
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #343 on: May 24, 2025, 06:26:12 pm »
Made a Python crypter/parser for the setup.stp here: https://codeberg.org/kuwoyuki/rigol-setup-crypter. The encryption is just DES-CBC with a somewhat custom key array from the CPU SN.

  • download the crypter https://codeberg.org/kuwoyuki/rigol-setup-crypter
  • install adb
  • connect the AFG to LAN and find its IP address then
  • adb connect IP:55555
  • adb -s IP:55555 pull /rigol/data/setup.stp # pull the setup.stp
  • adb shell -- /rigol/shell/get_cpu_serial_num.sh # read the cpu serial
  • python rigol_setup_crypter.py -d -f setup.stp -k YOUR_CPU_SERIAL -o setup.csv # first decrypt
  • python rigol_setup_crypter.py -p -f setup.csv # parse the file
  • edit the CSV, parse again to check everything you want is set properly, then encrypt:
  • python rigol_setup_crypter.py -e -f setup.csv -k YOUR_CPU_SERIAL -o setup.stp.new
  • adb -s IP:55555 push setup.stp.new /rigol/data/setup.stp # push the new setup.stp
  • adb -s IP:55555 shell -- reboot # reboot

That's it. There are a bit more detailed instructions in the README in the repo. Also special thanks to @gbix for sharing absolutely none of his work.
Also, an alternative approach if you don't mind patching the DolphinFishSE binary is to just NOP out the decryption calls in CApiMemory::LoadSetupFile() and when it starts handling the CSV (split etc) you just set the register to raw file string from the stack (so you store the CSV unencrypted in setup.stp). Can be useful if you want to play around with the config options without re-encrypting it every time.

Code: [Select]
$ diff -u original_DolphinFishSE.hex mod_DolphinFishSE.hex
--- original_DolphinFishSE.hex 2025-04-08 02:11:54.342468184 +0600
+++ mod_DolphinFishSE.hex 2025-04-08 02:12:03.314957792 +0600
@@ -62490,10 +62490,10 @@
 000f4590  dd f0 06 ed 03 90 ff e7  ff e7 03 98 09 90 00 20  |............... |
 000f45a0  08 90 ff e7 08 98 09 99  88 42 0c d2 ff e7 08 99  |.........B......|
 000f45b0  d9 a8 41 5c b0 a8 52 f7  91 fd ff e7 ff e7 08 98  |..A\..R.........|
-000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd ff e7  |.0.......!R.....|
-000f45d0  7d a8 b0 a9 c9 f0 21 ff  ff e7 7d a8 b6 a9 00 f0  |}.....!...}.....|
-000f45e0  1d fd ff e7 7d a8 c9 f0  b3 ff 21 49 79 44 7a a8  |....}.....!IyDz.|
-000f45f0  48 f7 1e fa ff e7 b6 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
+000f45c0  01 30 08 90 ee e7 b0 a8  0a 21 52 f7 87 fd 00 bf  |.0.......!R.....|
+000f45d0  00 bf 00 bf 00 bf 00 bf  00 bf 00 bf 00 bf ca bf  |................|
+000f45e0  00 bf 00 bf 00 bf 00 bf  00 bf 21 49 79 44 7a a8  |..........!IyDz.|
+000f45f0  48 f7 1e fa ff e7 b0 a8  7a a9 ad aa 01 f0 78 fd  |H.......z.....x.|
 000f4600  ff e7 7a a8 c9 f0 a4 ff  ad a8 0c 21 69 f7 5e f8  |..z........!i.^.|
 000f4610  01 46 18 48 78 44 00 f0  d1 fc 88 b3 ff e7 0c 98  |.F.HxD..........|
 000f4620  dd f0 e6 eb ff e7 14 48  78 44 dd f0 e2 ec ff e7  |.......HxD......|

Hi kuwoyuki

I'm using your file (dg800pro_cal.ipynb) to calibrate a Dg822 Pro with a Siglent SDS804X HD. All frequency measurements show an error converting the string to float. Any idea where the issue might be? Example attached.

Thank
John
 

Online kuwoyuki

  • Newbie
  • Posts: 9
  • Country: cz
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #344 on: May 24, 2025, 07:09:45 pm »
Quote
Hi kuwoyuki

I'm using your file (dg800pro_cal.ipynb) to calibrate a Dg822 Pro with a Siglent SDS804X HD. All frequency measurements show an error converting the string to float. Any idea where the issue might be? Example attached.

Thank
John
Hey John, I don't recommend using that notebook truthfully I haven't actually tested running it..  You could use dg800p_cal_zrq.ipynb which was written and used for HF flatness cal by @zrq

But the error looks like the entire scope response is being parsed as a float (C1:PAVA RMS,<num_value>V), so could do something like this instead:
Code: [Select]
def parse_scopev(response_str):
    return float(response_str.split('RMS,')[1].rstrip('V'))
Code: [Select]
- amplitude = float(response)
+ amplitude = parse_scopev(response)
 

Offline JohnKr

  • Contributor
  • Posts: 12
  • Country: us
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #345 on: May 25, 2025, 01:18:15 am »
Hey John, I don't recommend using that notebook truthfully I haven't actually tested running it..  You could use dg800p_cal_zrq.ipynb which was written and used for HF flatness cal by @zrq

But the error looks like the entire scope response is being parsed as a float (C1:PAVA RMS,<num_value>V), so could do something like this instead:
Code: [Select]
def parse_scopev(response_str):
    return float(response_str.split('RMS,')[1].rstrip('V'))
Code: [Select]
- amplitude = float(response)
+ amplitude = parse_scopev(response)

Thanks. I've reached out to @zrq.
 

Offline JohnKr

  • Contributor
  • Posts: 12
  • Country: us
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #346 on: May 27, 2025, 05:10:38 pm »
@kuwoyuki
I've been testing your calibration file and it seems to be working well. I did make a few minor changes. I haven't uploaded the corrected files to the AWG yet but the shown correction factors in the graphs when applied to the actual measured voltages appear correct.
 
The following users thanked this post: thm_w

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #347 on: May 29, 2025, 10:55:09 pm »
Tried some of the adv. waveforms that Rigol, for some reason, hadn't incl. in their "Pro" line, while they were in the previous DGxxx series.
Like fx RS232 (UART) as RS232 are accessible with the Ultra Station software.

Ultra Station PC:


As far as I can tell, it seems to work as intended.

2579978-1

2579982-2

« Last Edit: May 30, 2025, 05:43:46 pm by DaneLaw »
 
The following users thanked this post: thm_w

Offline ToThePub

  • Contributor
  • Posts: 38
  • Country: au
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #348 on: May 31, 2025, 01:22:55 am »
New firmware. "Add 41 built-in arbitrary wave" did they put rs232 back?


https://www.rigolna.com/firmware/
DG800 Pro
00.02.01.00.02

DG900 Pro
00.02.01.00.02

Release Notes

[Model Supported] DG821 Pro,DG822 Pro,DG852 Pro,DG902 Pro,DG912 Pro,DG922 Pro
[Latest Revision Date] 2025-03-31


[Updated Contents]

v00.02.01.00.02   2025-03-31

     - Official version 00.02.01.00.02
1, Add 41 built-in arbitrary waves, with a current total of 243 built-in arbitrary waves;

2, Restore original [: SOURce [<n>] [: TRACe]: DATA: DAC16<type>,<flag>,<data>instructions

3, Fix some known bugs.
 
The following users thanked this post: thm_w, DaneLaw

Offline DaneLaw

  • Frequent Contributor
  • **
  • Posts: 950
  • Country: dk
Re: Rigol's New Function Generator and DMM: DG800Pro / 900Pro / DM858
« Reply #349 on: May 31, 2025, 06:05:57 am »
1, Add 41 built-in arbitrary waves, with a current total of 243 built-in arbitrary waves;

Thx for the notice.
- and added 41 to a total of 243 waveforms.

Have they added waveform in the earlier 02.00 fw?
From scrach, wasnt it around 148 that was incl. out of the gate on the native fw [00.01.00 from Nov 2023].

Took at video on those that was incl. back then on  00.01.00 (vid from early jan 2024) to sort out which waveforms are new, if the number gone from 148 to now 243 in v00.02.01.00.02.
Curious if the UI bug have been sorted in this latest FW (I hope not)

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf