Author Topic: Need help hacking DP832 for multicolour option.  (Read 61145 times)

0 Members and 1 Guest are viewing this topic.

Offline Vaiti

  • Contributor
  • Posts: 18
  • Country: fi
Re: Need help hacking DP832 for multicolour option.
« Reply #325 on: September 05, 2019, 10:40:34 am »
Calibration should remain the same.

Rigol DP800 Changelog:
-Update of this version-

v00.01.16.00.02   2019-1-31
     
     - Add the support for USB-GPIB
     - Fixed the bug of command "*OPT?"
     - Fixed the bug of cursor settings(Before:set the current firstly, then change the voltage , the cursor is always on the highest digit.)
     - Replacement of LAN Interface Library to solve the problem of network instability.


-Historical Versions and Updates-

v00.01.15.00.02   2017-05-25
     
     - Private version,not public

v00.01.14.00.03   2015-03-10

     - Modify the bug of OVP&OCP
     - Add new models
     - Update help Information

v00.01.13.00.01   2014-11-18

     - Modify the bug of UI display
     - Replacement of USB Device Library to solve the problem of unstable USB Device communication
 
The following users thanked this post: Gandalf_Sr

Online Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1632
  • Country: us
Re: Need help hacking DP832 for multicolour option.
« Reply #326 on: September 05, 2019, 02:17:49 pm »
I downloaded the new firmware but the instructions are garbled...

1. Copy .gel file to the root of USB flash
2. Insert USB flash into DP800 (make sure the USB flash can be recognized by DP800). Power on DP800, press and hold HELP button until the update started.
3. Move USB flash after update is finished, then press these button in turn: HELP¡úHELP£¬¡úM4¡úM2¡úM1 (update analog board 1), ¡úM4¡úM2¡úM2 (update analog board 2)
4. Reboot DP800 after all the update finished and check the new version (Utility->system info->M1-M3-M2)

Can anyone help to decipher what line 3 means?

[EDIT] Never mind, I figured it out - ignore all the crap above, here's what worked for me...
1. Copy .gel file to the root of USB flash (I had to have a FAT32 formatted drive and the .gel file was the only file on the drive, you may do better than me)
2. Switch on the DP832(A) and immediately press [Help] button while first 3 ... is displayed, it now says "please insert drive with new firmware"
3. Plug in USB drive and (if it's a good drive) progress bar moves with download and update messages (only took about 30 seconds in total)
4. PSU reboots automatically but now all the menus are in Chinese
5. Press [Utility] > Language (M4) and then select 'English'
6 Check firmware revision by [Utility] > SysInfo and then, while the 3 lines of info are displayed, M1, M3, M2 (the buttons under the display numbered L to R)

The only problem I've found is that the stored settings don't work, it says they are the wrong format. You have to redo all the saved settings files.

That's it
« Last Edit: September 05, 2019, 02:40:51 pm by Gandalf_Sr »
If at first you don't succeed, get a bigger hammer
 

Offline marshalljmp

  • Newbie
  • Posts: 2
  • Country: be
Re: Need help hacking DP832 for multicolour option.
« Reply #327 on: September 13, 2019, 03:41:22 pm »
To update your Rigol DL3021 to DL3021A, here is the complete procedure, without the need of buying the LAN option...
You need:
-Computer with RS232 port
-USB stick formatted in FAT32 with the file keyfile.bin from Tossu (many thanks for the hack !)
-Cross cabel RS232 female-female (2->3; 3->2; 5->5)
-Free software Termite from Compuphase (https://www.compuphase.com/software_termite.htm)

Connect everything together. Start the computer first and launch Termite.
Termite Serial port settings:
-Port COM1 (depend on your computer)
-Baud rate 9600
-Data bits 8
-Stop bits 1
-Parity none
-Flow control none
-Forward none
-Transmitted text Append CR-LF

Turn on the DL3021
To check the connection, you can try to type *IDN? in the Termite command line.
He will return the model of your device.
Type in Termite :PROJ:SET MODEL,DL3021A
That all  :D

Can hack the DC Load DL3021 to DL3031A?  Like the DG811 to DG992?

Does not the DL3021 hack can be done when connected via USB ? like the same way DP832 ?

I just tested with USB. Though the command was successful, I saw OK message, it does not work and my load model remains the same i.e. DL3021.

Perhaps I have to use the serial /RS232 interface.

Just converted my DL3021 to a DL3021A with USB, no problems at all. Send the command and I got a color screen immediately .
 

Offline Trident900fi

  • Contributor
  • Posts: 12
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #328 on: November 10, 2019, 07:01:47 pm »
Usually the USB port is not activated on the DL3021, that's why I gave the procedure to follow in RS232...
Once converted to DL3021A, the USB port is automatically enabled.
 

Offline dekagon

  • Contributor
  • Posts: 13
  • Country: de
Re: Need help hacking DP832 for multicolour option.
« Reply #329 on: November 13, 2019, 09:35:27 am »
I want to try to unlock the Arb16M option of my DG1022Z (the option fix to convert it ti a DG1062Z was already successful).

The online version of Riglol (1.03d) does not have the capability to create such key :(

Is there another possibility to generate a ARB16M option key for my DG1062Z (aka DG1022Z)?
After intensive search I found no working solution in this thread or forum...

Thanks in advance

Chris
« Last Edit: November 14, 2019, 07:57:07 am by dekagon »
---
 

Offline dekagon

  • Contributor
  • Posts: 13
  • Country: de
Re: Need help hacking DP832 for multicolour option.
« Reply #330 on: November 14, 2019, 01:07:07 pm »
F.Y.I.:

I installed the MinGWgcc compiler package and compiled the windows version from the modified riglol.c code from user @starec (earlier post on page 12).

After inserting some missed #include statements at the beginning of the codefile and trying to compile the sources all is going without failures.  :D
I was able after that to generate an option key for the ARB16M option for DG1022Z.
The installation could be done either with copying the serial number and the option key into a license.txt file as described under
https://rigol.desk.com/customer/en/portal/articles/2283691-how-do-i-activate-the-dg1000z-memory-upgrade-

or alternatively via SCPI/Telnet session to IP-address port 5555 and the command  :LICense:INSTall <Riglol license key output>

After all everything is quite perfect now  8)

Many thanks to all the users who made this work possible!

Chris
---
 

Offline Volchenok82

  • Newbie
  • Posts: 1
  • Country: ru
Re: Need help hacking DP832 for multicolour option.
« Reply #331 on: November 14, 2019, 02:32:34 pm »
Hello everyone!  :)

 I was interested in this topic, since I, too, am a “happy” owner of Rigol devices without additional options installed ... Undoubtedly, there are knowledgeable people who have been able to activate the options they need ... Tell me, please, was someone adding the three options through Riglol, or in another simple way, in the DP700 series power supplies - or is this basically impossible?

  If the number of hacked devices via Riglol has expanded (DG1000Z is a prime example!), then what prevents from adding the missing models to the online version of Riglol at http://gotroot.ca/rigol/riglol/

I think that many novice users, such as myself (who have not yet mastered writing programs) will be very grateful to you for this!   ;)

Sorry for the clumsy English ...


Pavel
 

Offline Trident900fi

  • Contributor
  • Posts: 12
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #332 on: November 17, 2019, 11:49:22 am »
Hello guys!  :)

Had someone of you try to upgrade a DMM Rigol DM3058E to DM3058 or better, DM3068 ?

Looks like it's the same principle as other Rigol devices  :D
 

Offline WhichEnt2

  • Regular Contributor
  • *
  • Posts: 98
  • Country: ru
Re: Need help hacking DP832 for multicolour option.
« Reply #333 on: November 17, 2019, 01:29:54 pm »
You'd have to change the hardware to do that. They have different refs at least.
Short pieces, high value, small period, huge amount, long delay.
 

Offline Trident900fi

  • Contributor
  • Posts: 12
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #334 on: November 17, 2019, 02:41:19 pm »
You'd have to change the hardware to do that. They have different refs at least.

Yes it's right. The goal was only to get the better resolution and the higher sampling rate...
 

Offline azemati

  • Contributor
  • Posts: 11
  • Country: ae
Re: Need help hacking DP832 for multicolour option.
« Reply #335 on: February 16, 2020, 07:11:29 pm »
Hi dear friend
Can you please guide me in hacking Spectrum Analyzer Model DSA832E-TG?
I need EMI-DSA800
EMI Filter & Quasi-Peak Detector Kit

AMK-DSA800
Advanced Measurement Kit

PA-DSA832
Preamplifier option, 100kHz to 3.2GHz (only for DSA832, DSA832E, DSA832E-TG, or DSA832-TG)

Please advice me
 

Offline Houseman

  • Regular Contributor
  • *
  • Posts: 50
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #336 on: February 21, 2020, 02:40:39 pm »
Ok, 1-2 weeks ago i've modified riglol 1.03d for DG1000Z generation/calculation

here is a full source code:
Code: [Select]
char version[]             = "Riglol 1.03d";
char DP832_private_key[]   = "5C393C30FACCF4"; //publ: 0x5EC2D25AE85124
char DS2000_private_key[]  = "8EEBD4D04C3771"; //publ: 0x8445B2BE29E5C7
char DSA815_private_key[]  = "80444DFECE903E"; //publ: 0x691213692D18FA
char DS1000Z_private_key[] = "6F1106DDA994DA"; //publ: 0x58E9F183B924BB
char DG1000Z_private_key[] = "7412E98108CAB0"; //publ: 0x586E719859AF6C

static char* ascii_map;
static const char ascii_map_dg[] = "MNBVCXZASDFGHJKLPUYTREWQ23456789";
static const char ascii_map_[] = "23456789ASDFGHJKLPUYTREWQMNBVCXZ";

char no_private_key[]      = "";

/*
** sign the secret message (serial + opts) with the private key
*/
void ecssign(char *serial, char *options, char *privk, char *lic1, char *lic2) {
    char prime1[]  = "AEBF94CEE3E707";
    char prime2[]  = "AEBF94D5C6AA71";
    char curve_a[] = "2982";
    char curve_b[] = "3408";
    char point1[]  = "7A3E808599A525";
    char point2[]  = "28BE7FAFD2A052";
    int k_offset = 0; // optionally change ecssign starting offset (changes lic1; makes different licenses)
    mirsys(800, 16)->IOBASE = 16;

    sha sha1;
    shs_init(&sha1);

    char *ptr = serial;
    while(*ptr) shs_process(&sha1, *ptr++);
    ptr = options;
    while(*ptr) shs_process(&sha1, *ptr++);

    char h[20];
    shs_hash(&sha1, h);
    big hash = mirvar(0);
    bytes_to_big(20, h, hash);

    big a = mirvar(0);
    instr(a, curve_a);
    big b = mirvar(0);
    instr(b, curve_b);
    big p = mirvar(0);
    instr(p, prime1);
    big q = mirvar(0);
    instr(q, prime2);
    big Gx = mirvar(0);
    instr(Gx, point1);
    big Gy = mirvar(0);
    instr(Gy, point2);
    big d = mirvar(0);
    instr(d, privk);
    big k = mirvar(0);
    big r = mirvar(0);
    big s = mirvar(0);
    big k1 = mirvar(0);
    big zero = mirvar(0);

    big f1 = mirvar(17);
    big f2 = mirvar(53);
    big f3 = mirvar(905461);
    big f4 = mirvar(60291817);

    incr(k, k_offset, k);
    epoint *G = epoint_init();
    epoint *kG = epoint_init();
    ecurve_init(a, b, p, MR_PROJECTIVE);
    epoint_set(Gx, Gy, 0, G);

    for(;;) {
        incr(k, 1, k);

        if(divisible(k, f1) || divisible(k, f2) || divisible(k, f3) || divisible(k, f4))
            continue;

        ecurve_mult(k, G, kG);
        epoint_get(kG, r, r);
        divide(r, q, q);

        if(mr_compare(r, zero) == 0)
            continue;

        xgcd(k, q, k1, k1, k1);
        mad(d, r, hash, q, q, s);
        mad(s, k1, k1, q, q, s);

        if(!divisible(s, f1) && !divisible(s, f2) && !divisible(s, f3) && !divisible(s, f4))
            break;
    }

    cotstr(r, lic1);
    cotstr(s, lic2);
}

/*
** convert string to uppercase chars
*/
char *strtoupper(char *str) {
    char *p;
    for (p=str; *p; p++)
        *p = toupper(*p);
    return str;
}

/*
** prepend a char to a string
*/
char *prepend(char *c, char *str) {
    int i;

    for (i = strlen(str); i >= 0; i--) {
        str[i + 1] = str[i];
    }

    str[0] = *c;
    return c;
}

/*
** convert hex-ascii-string to rigol license format
*/
void map_hex_to_rigol(char *io) {
    unsigned long long b = 0;
    int i = 0;
    char map[] = {
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
        'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R',
        'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
        '2', '3', '4', '5', '6', '7', '8', '9'
    };

    /* hex2dez */
    while (io[i] != '\0') {
        if (io[i] >= '0' && io[i] <= '9') {
            b = b * 16 + io[i] - '0';
        } else if (io[i] >= 'A' && io[i] <= 'F') {
            b = b * 16 + io[i] - 'A' + 10;
        } else if (io[i] >= 'a' && io[i] <= 'f') {
            b = b * 16 + io[i] - 'a' + 10;
        }
        i++;
    }

    for (i = 3; ; i--) {
        io[i] = map[b & 0x1F];
        if (i == 0) break;
        b >>= 5;
    }

    io[4] = '\0';
}

char *get_version() {
  char *v;

  v=version;
  return v;
}

void show_help(char *cmd) {
    printf("%s\n", get_version());
    printf("\n");
    printf("Usage: %s <sn> <opts> <privkey>\n", cmd);
    printf("  <sn>       serial number of device (D............)\n");
    printf("  <opts>     device options, 4 characters, see below\n");
    printf("  <privkey>  private key (optional)\n");
    printf("\n");
    printf("DP832 starting from v1.09 device options:\n");
    printf("  first character:  F = official, B = trial\n");
    printf("  F3PT - Accuracy\n");
    printf("  F6PT - Analyzer and Monitor\n");
    printf("  F6LT - LAN\n");
    printf("  FALT - RS232\n");
    printf("  FLLT - Trigger\n");
    printf("\n");
    printf("DP832 up to v1.06 device options:\n");
    printf("  first character:  M = official, 5 = trial\n");
    printf("  MWSS - Trigger\n");
    printf("  MWTB - Accuracy\n");
    printf("  MWTC - LAN and RS232\n");
    printf("  MWTE - Analyzer and Monitor\n");
    printf("\n");
    printf("DS1000z device options:\n");
    printf("  DSAB - Advanced Triggers\n");
    printf("  DSAC - Decoders\n");
    printf("  DSAE - 24M Memory\n");
    printf("  DSAJ - Recorder\n");
    printf("  DSBA - 500uV Vertical\n");
    printf("\n");
    printf("DG1000z device options:\n");
    printf("  JBNE - 16M Memory\n");
    printf("\n");
    printf("DS2000 device options:\n");
    printf("  first character:  D = official, V = trial\n");
    printf("  DSAB - Advanced Triggers\n");
    printf("  DSAC - Decoders\n");
    printf("  DSAE - 56M Memory\n");
    printf("  DSAJ - 100MHz\n");
    printf("  DSAS - 200MHz\n");
    printf("  DSAZ - all options\n");
    printf("\n");
    printf("DS4000 device options:\n");
    printf("  first character:  D = official, V = trial\n");
    printf("  DSHB - RS232 Decoder\n");
    printf("  DSHC - SPI Decoder\n");
    printf("  DSHE - I2C Decoder\n");
    printf("  DSHJ - CAN Decode\n");
    printf("  DSHS - FlexRay Decoder\n");
    printf("  DSH9 - all options\n");
    printf("\n");
    printf("DSA815 device options:\n");
    printf("  first character:  A = official, S = trial\n");
    printf("  AAAB - Tracking Generator\n");
    printf("  AAAC - Advnced Measurement Kit\n");
    printf("  AAAD - 10Hz RBW\n");
    printf("  AAAE - EMI/Quasi Peak\n");
    printf("  AAAF - VSWR\n");
    printf("\n");
    printf("MAKE SURE YOUR FIRMWARE IS UP TO DATE BEFORE APPLYING ANY KEYS\n");
}

static int ascii_to_bin(char c)
{
    int i;

    for (i = 0; i < 0x20; i++)
        if (ascii_map[i] == c)
            break;
    return i;
}

static char *options_4to5(const char *opt4, char *opt5)
{
    int map[] = { 0, 3, 2, 1 };
    int i, opt = 0;

    for (i = 0; i < 4; i++)
        opt = (opt << 5) | ascii_to_bin(opt4[map[i]]);
    for (i = 0; i < 5; i++) {
        opt5[i] = ascii_map[opt & 0x0F];
        opt >>= 4;
    }
    opt5[i] = 0;
    return opt5;
}

static void format_license_dp832_109(char *lic1_code, char *lic2_code,
                                     char *options, char *licence, int isDG)
{
    const int map1dp[] = { 4, 11, 16, 23, 0, 24, 6, 22, 8, 20, 18, 25 };
    const int map2dp[] = { 3, 14, 19, 9, 26, 5, 1, 10, 12, 13, 15, 21 };
    const int map3dp[] = { 2, 7, 17, 27 };

    const int map1dg[] = {3, 0xE, 0x13, 9, 0x1A, 5, 7, 0x11, 0xC, 0x18, 6, 0x16};
    const int map2dg[] = {4, 0xB, 0x10, 0x17, 0, 8, 0x14, 0x1B, 2, 0xD, 0xF, 0x15};
    const int map3dg[] = {1, 0xA, 0x12, 0x19};

    const int *map1 = isDG?map1dg:map1dp;
    const int *map2 = isDG?map2dg:map2dp;
    const int *map3 = isDG?map3dg:map3dp;
    unsigned long long k;
    int i;

    k = strtoll(lic1_code, NULL, 16);
    for (i = 0; k < (1ULL << 51); i++)
        k = (k << 4) | 0;
    k = (k << 4) | i;
    for (i = 0; i < 12; i++) {
        licence[map1[i]] = ascii_map[k & 0x1F];
        k >>= 5;
    }

    k = strtoll(lic2_code, NULL, 16);
    for (i = 0; k < (1ULL << 51); i++)
        k = (k << 4) | 5;
    k = (k << 4) | i;
    for (i = 0; i < 12; i++) {
        licence[map2[i]] = ascii_map[k & 0x1F];
        k >>= 5;
    }

    if (isDG) {
        int map[] = { 0, 3, 2, 1 };
char *opt = strdup(options);
for (i = 0; i < 4; i++)
    opt[i] = options[map[i]];
for (i = 0; i < 4; i++)
    licence[map3[i]] = opt[3 - i];
        free(opt);
    }
    else
for (i = 0; i < 4; i++)
    licence[map3[i]] = options[i];

    licence[28] = 0;
}

static void format_license_classic(char *lic1_code, char *lic2_code,
                                   char *options, char *licence)
{
    char *lic_all, *chunk, *temp;
    int i, j;

    /* fix missing zeroes */
    while (strlen(lic1_code) < 14) {
        prepend("0", lic1_code);
    }
    while (strlen(lic2_code) < 14) {
        prepend("0", lic2_code);
    }

    /* combine lic1 and lic2 */
    lic_all = (char*)calloc(128, 1);
    temp = (char*)calloc(128, 1);
    chunk = (char*)calloc(6, 1);
    strcpy(lic_all, lic1_code);
    strcat(lic_all, "0");
    strcat(lic_all, lic2_code);
    strcat(lic_all, "0");

    /* generate serial */
    i=0;
    while (i < strlen(lic_all)) {
        memcpy(chunk, lic_all + i, 5);
        map_hex_to_rigol(chunk);
        strcat(temp, chunk);
        i = i + 5;
    }

    /* add options and "-" */
    j = 0;
    for(i = 0; i <= strlen(temp); ) {
       switch(j) {
         case 1:  licence[j] = options[0];  break;
         case 7:  licence[j] = '-';         break;
         case 10: licence[j] = options[1];  break;
         case 15: licence[j] = '-';         break;
         case 19: licence[j] = options[2];  break;
         case 23: licence[j] = '-';         break;
         case 28: licence[j] = options[3];  break;
         default: licence[j] = temp[i];
                  i++;
       }
       j++;
    }
    licence[j] = '\0';

    /* cleen up */
    free(lic_all);
    free(chunk);
    free(temp);
}

char *make_licence(char *serial, char *options, char* priv_key)
{
    char options_buffer[8], *opts = options;
    char *lic1_code, *lic2_code, *lic_all;
    char *chunk, *temp, *licence;
    int i, j;

    /* convert string to uppercase chars */
    strtoupper(serial);
    strtoupper(options);
    strtoupper(priv_key);

    int isDG = strncmp(serial, "DG1", 3)?0:1;
    /* convert options string format for DP832 with firmware >= 1.09 or for DG1000Z*/
    if ((!strncmp(serial, "DP8", 3) && options[0] != 'M' && options[0] != '5') || isDG)
        opts = options_4to5(options, options_buffer);

    /* sign the message */
    lic1_code = (char*)calloc(64, 1);
    lic2_code = (char*)calloc(64, 1);
    ecssign(serial, opts, priv_key, lic1_code, lic2_code);

    /* format licence string */
    licence = (char*)calloc(128, 1);
if ((!strncmp(serial, "DP8", 3) && *options != 'M' && *options != '5') || isDG)
        format_license_dp832_109(lic1_code, lic2_code, options, licence, isDG);
    else
        format_license_classic(lic1_code, lic2_code, options, licence);

    /* cleen up */
    free(lic1_code);
    free(lic2_code);

    return licence;
}

char *select_priv_key(char *serial) {
    char *priv_key;

    strtoupper(serial);
    if      (!strncmp(serial, "DS1", 3)) priv_key = DS1000Z_private_key;
    else if (!strncmp(serial, "DS2", 3)) priv_key = DS2000_private_key;
    else if (!strncmp(serial, "DS4", 3)) priv_key = DS2000_private_key;
    else if (!strncmp(serial, "DSA", 3)) priv_key = DSA815_private_key;
    else if (!strncmp(serial, "DP8", 3)) priv_key = DP832_private_key;
    else if (!strncmp(serial, "DG1", 3)) priv_key = DG1000Z_private_key;
    else                                 priv_key = no_private_key;

    return priv_key;
}

int main(int argc, char *argv[0]) {
    char *serial, *options, *priv_key, *licence;

    /* parse input */
    if (!((argc == 3 || argc == 4))) {
        show_help(argv[0]);
        exit(1);
    }
    serial = argv[1];
    options = argv[2];

    ascii_map = strncmp(serial, "DG1", 3)?(char*)ascii_map_:(char*)ascii_map_dg;

    if (argc == 4) priv_key = argv[3];
    else {
        priv_key = select_priv_key(serial);
        if (strlen(priv_key) == 0) {
            show_help(argv[0]);
            printf("\nERROR: UNKNOW DEVICE WITHOUT PRIVATKEY\n");
            exit(1);
        }
    }

    if (strlen(priv_key) != 14) {
        show_help(argv[0]);
        printf("\nERROR: INVALID PRIVATE KEY LENGTH\n");
        exit(1);
    }
    if (strlen(serial) < 13) {
        show_help(argv[0]);
        printf("\nERROR: INVALID SERIAL LENGTH\n");
        exit(1);
    }
    if (strlen(options) != 4) {
        show_help(argv[0]);
        printf("\nERROR: INVALID OPTIONS LENGTH\n");
        exit(1);
    }

    licence = make_licence(serial, options, priv_key);
    printf("%s\n", licence);
    free(licence);
}

Edit: I've added missing line to the function ecssign


Hi. Thank You for the code.
I have successfully compiled the code with you .c provided and it runs showing the help guide but once I use it with my serial number and the JBNE option (with or without the privatekey) the exe crashes with a segmentation fault 11.
Any hints?
Regards
 

Online tv84

  • Super Contributor
  • ***
  • Posts: 1444
  • Country: pt
Re: Need help hacking DP832 for multicolour option.
« Reply #337 on: February 21, 2020, 03:11:19 pm »
Any hints?

riglol code has plenty of var definition problems, memory leaks and non-deallocated structures. If you don't do an overall verification of the whole code, you must have some luck in choosing the compiler and 32/64 bit architecture.

Overcoming those problems is the skill that one needs in order to earn a generated lic. :)
 

Offline Houseman

  • Regular Contributor
  • *
  • Posts: 50
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #338 on: February 21, 2020, 10:10:19 pm »
Got it! I understand. Thank You. Managing to compile the whole code and get the bin was already a long way...
Will walk anyway forward. Regards
 

Offline Houseman

  • Regular Contributor
  • *
  • Posts: 50
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #339 on: February 22, 2020, 02:43:38 pm »
THANKS MAN.
I have now an OFFICAL license... (CHINGLISH)
Does it still show to your device?

Regards

Any hints?

riglol code has plenty of var definition problems, memory leaks and non-deallocated structures. If you don't do an overall verification of the whole code, you must have some luck in choosing the compiler and 32/64 bit architecture.

Overcoming those problems is the skill that one needs in order to earn a generated lic. :)
 

Offline Houseman

  • Regular Contributor
  • *
  • Posts: 50
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #340 on: February 22, 2020, 10:56:47 pm »
First of all, thanks for the great-huge work.
Have a DG1022Z riglol.upgraded to a 1062Z
Works like a charme
HOWEVER.
The Ultrastation Software recognize the unit as 1062Z but you can only draw waveforms less than 20MHz..
Attached the screenshot.
Any hints??

Thank You.
 

Anybody with the latest FW and manual IP care to check the DP832 settings please? (to check press 'Utility' -> 'IO Config' -> 'LAN')
Do you have the DNS set to 88.218.37.64 after a power cycle, like this?

I upgraded my DP832 to 1.16, and it is doing the same thing. The DNS is set to 88.218.37.64 when a "LAN connected" notification is shown. However, the value I've set is restored if I go back to the DNS settings. I noticed FW 1.14 changes the DNS as well, but it sets it to 0.0.0.0.

I took a quick look at a DG1032Z firmware I found somewhere. I think it's version 1.06. It has a very similar check for the same magic value at sector 0x78EC.

Could someone eager to hack (or brick) their DG1032Z send these commands to it, preferably via USB, and post the results here? The keyfile.bin I made for DP832 should work.
Code: [Select]
:PROJ:STAT MCALTIMES,QUERY
*IDN?
:PROJ:STAT MODEL,DG1062Z
*IDN?

The first command is just a sanity check. It should print CH1 = <some number>, CH2 = <some number>.
 

Offline _Wim_

  • Frequent Contributor
  • **
  • Posts: 822
  • Country: be
Re: Need help hacking DP832 for multicolour option.
« Reply #341 on: February 23, 2020, 06:20:07 am »
The Ultrastation Software recognize the unit as 1062Z but you can only draw waveforms less than 20MHz..

This is normal, see extact of datasheet below.
 
The following users thanked this post: Gandalf_Sr, Houseman

Online belzrebuth

  • Frequent Contributor
  • **
  • Posts: 273
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #342 on: May 26, 2020, 08:58:53 am »
I'm trying to get this to run on Win10 64 with mingw64 and LinuxMint64 (on VM).
I get a "segmentation fault (core dump)" error message when executing on Linux.
On Windows the riglol.exe just hangs and I get the typical MS warning when something's not responding.

I've tried both the 1.03d (unchanged) from the gotroot archive as well as the code attached by starec on July 10/ 2019 (including the definitions of the gootroot 1.03d .c file)

The miracl library compiles fine on both configurations (on windows I've used the mingw.bat and on linux the bash linux64 script).
The executable also compiles ok and runs normally when executed giving me the command options and usage.

It's when I put a serial number and a licence 4 digit code that the program fails.(so when it actually needs to do something)

I've troubleshoot enough to find out that the problem probably lies in the ecurve function call but I'm not sure.
I've put the program to print something from various parts of the code and that's where it loses it.

Many people have succesfully compiled and run this so I don't know if there's any needed "skill" at play here as tv84 implied; it's maybe something trivial that's system specific or just an omission of sorts on my part.

Any tips would be greatly appreciated as I'm really curious what I might be doing wrong.
Thanks:)


EDIT: I was able to run the program after I've compiled the miracl library and the riglol.c in 32bit.
I should've tried it a lot sooner I guess; still curious what's wrong with 64bit though..
« Last Edit: May 26, 2020, 08:46:03 pm by belzrebuth »
 

Online belzrebuth

  • Frequent Contributor
  • **
  • Posts: 273
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #343 on: May 30, 2020, 03:14:43 pm »
Is there any way to set the DP832 to be DP832A while keeping the 7-segment display as is?
I only need to try the hi-res option to be honest and kind of like the 7-segment display better than the smooth fonts..
So would it be better just to enter the riglol code for "accuracy" instead instead of performing the model change?
Only reason I considered the model change is that it's reversible.
« Last Edit: May 30, 2020, 03:17:52 pm by belzrebuth »
 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 2368
  • Country: ro
Re: Need help hacking DP832 for multicolour option.
« Reply #344 on: May 30, 2020, 04:55:08 pm »
You can not have DP832A with 7 segments font, but you can unlock the high resolution option (or any other, or all options) for the DP832, without turning the instrument into a DP832A.  Unlocking the options is different from the method used here.  Search for "Riglol" to find the key generator.

As a side note, the 7 segments font is very hard to read when compared with the fonts of DP832A.  I used to think those 7 segments digits were cool, but the DP832A normal font is so much easier to read that I wouldn't want to go back to seven segments font, ever!

Online belzrebuth

  • Frequent Contributor
  • **
  • Posts: 273
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #345 on: May 30, 2020, 06:03:44 pm »
I'll check both options when my replacement DP832 arrives (I've had a bit of adventure getting a defective unit so I'm in the process of getting a replacement).

I could first try changing the model to DP832A to check the smooth font color screen,if I decide to keep the "A" version I would effectively have a "new" screen and only the high-res option enabled but not the LAN and RS232, correct?

I would then need to unlock the other options within the riglol generator right?

BTW what is the accuracy option "MWTB" for the DP832A?
Isn't this default to all "A" units?
 

Offline RoGeorge

  • Super Contributor
  • ***
  • Posts: 2368
  • Country: ro
Re: Need help hacking DP832 for multicolour option.
« Reply #346 on: May 30, 2020, 06:38:32 pm »
AFAIK DP832A have all the options enabled by default, including LAN and RS232, so no matter what options were installed before on a DP832, when you turn it into DP832A it will also unlock all the options.

Online tv84

  • Super Contributor
  • ***
  • Posts: 1444
  • Country: pt
Re: Need help hacking DP832 for multicolour option.
« Reply #347 on: May 30, 2020, 06:50:03 pm »
AFAIK DP832A have all the options enabled by default, including LAN and RS232, so no matter what options were installed before on a DP832, when you turn it into DP832A it will also unlock all the options.

You're correct!  :-+
 

Online Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1632
  • Country: us
Re: Need help hacking DP832 for multicolour option.
« Reply #348 on: May 30, 2020, 07:01:43 pm »
I know the fonts are nicer on the DP832A but it does have a display mode that looks like the single-color display on the DP832 (you can choose the single color on the DP832) but, on the DP832A, the 3 sections are color-coded to each supply plus the fonts are cleaner.
If at first you don't succeed, get a bigger hammer
 

Online PA0PBZ

  • Super Contributor
  • ***
  • Posts: 4341
  • Country: nl
Re: Need help hacking DP832 for multicolour option.
« Reply #349 on: May 30, 2020, 07:19:10 pm »
I use this setting:

Keyboard error: Press F1 to continue.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf