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

wysp2023 and 2 Guests are viewing this topic.

Offline marshalljmp

  • Newbie
  • Posts: 2
  • Country: be
Re: Need help hacking DP832 for multicolour option.
« Reply #325 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: 15
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #326 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: 22
  • Country: de
Re: Need help hacking DP832 for multicolour option.
« Reply #327 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: 22
  • Country: de
Re: Need help hacking DP832 for multicolour option.
« Reply #328 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: 7
  • Country: ru
  • Cats are everywhere ...
Re: Need help hacking DP832 for multicolour option.
« Reply #329 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: 15
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #330 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 #331 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: 15
  • Country: fr
Re: Need help hacking DP832 for multicolour option.
« Reply #332 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: 25
  • Country: ae
Re: Need help hacking DP832 for multicolour option.
« Reply #333 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: 176
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #334 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
 

Offline tv84

  • Super Contributor
  • ***
  • Posts: 3217
  • Country: pt
Re: Need help hacking DP832 for multicolour option.
« Reply #335 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: 176
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #336 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: 176
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #337 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: 176
  • Country: it
Re: Need help hacking DP832 for multicolour option.
« Reply #338 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>.
 

Online _Wim_

  • Super Contributor
  • ***
  • Posts: 1517
  • Country: be
Re: Need help hacking DP832 for multicolour option.
« Reply #339 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

Offline belzrebuth

  • Frequent Contributor
  • **
  • Posts: 483
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #340 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 »
 

Offline belzrebuth

  • Frequent Contributor
  • **
  • Posts: 483
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #341 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 »
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6185
  • Country: ro
Re: Need help hacking DP832 for multicolour option.
« Reply #342 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!

Offline belzrebuth

  • Frequent Contributor
  • **
  • Posts: 483
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #343 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?
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6185
  • Country: ro
Re: Need help hacking DP832 for multicolour option.
« Reply #344 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.

Offline Gandalf_Sr

  • Super Contributor
  • ***
  • Posts: 1729
  • Country: us
Re: Need help hacking DP832 for multicolour option.
« Reply #345 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
 

Offline PA0PBZ

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

Keyboard error: Press F1 to continue.
 

Offline belzrebuth

  • Frequent Contributor
  • **
  • Posts: 483
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #347 on: May 30, 2020, 07:59:01 pm »
Okay you've convinced me. ^-^
So no Riglol at all with this unit..
Just a model change and we're done. (all the options plus the clearer screen)
I know it's been said before but since the DP832 doesn't come with the LAN I guess the SCPI command is to be executed via the UltraSigma software, yes?

If so I need to be on a Windows PC to do it.
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6185
  • Country: ro
Re: Need help hacking DP832 for multicolour option.
« Reply #348 on: May 30, 2020, 08:24:04 pm »
No.  All the hardware is present in all units.  DP832 or DP832A are identical in hardware no matter what options they had at the buying moment.  You will have both LAN and RS232, and LXI and everything, and in either case you won't need ultra sigma anyway.  Nobody uses that.   ;D

The only difference between a DP832 and DP832A is the front panel that is painted in many colors for the DP832A version.

You'll have everything possible like it would be with the most expensive DP832A.

Stop warring and in the meantime read the user manual and the programming manual, or even better before the manuals (if you plan to control the power source remotely) search online for introductory info about the SCPI standard.
« Last Edit: May 30, 2020, 08:32:11 pm by RoGeorge »
 

Offline belzrebuth

  • Frequent Contributor
  • **
  • Posts: 483
  • Country: gr
Re: Need help hacking DP832 for multicolour option.
« Reply #349 on: May 30, 2020, 08:30:00 pm »
No, I mean in order to initially get my DP832 to change to the "A" model wouldn't I need to connect it w/USB in order to send the command?

Since it won't come with the LAN option enabled I can't just insert the USB drive, connect it to my LAN and nc or telnet the command into it..

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf