Michiel Konstapel writes:
> > There's one thing you could try, but it's a wild guess really. In
> > fet.c,
> > find line 858, which looks like this:
> > 
> >                 .min_version = 20404000,
> > 
> > Change it to:
> > 
> >                 .min_version = 20401004,
> > 
> > You should get some line in the output about sending magic messages.
> > Some of the new versions of the firmware require a pair of large init
> > messages to be sent before they'll work properly.
> 
> Nope, that didn't work, but it seems it already bails out earlier. In
> fet_open:
> 
>         /* set VCC */
>         if (xfer(dev, C_VCC, NULL, 0, 1, vcc_mv) < 0) {
>                 fprintf(stderr, "fet: set VCC failed\n");
>                 goto fail;
>         }
> 
>         printf("Set Vcc: %d mV\n", vcc_mv);
> 
>         /* Identify the chip */
>         if (do_identify(dev) < 0) {
>                 fprintf(stderr, "fet: identify failed\n");
>                 goto fail;
>         }
> 
>         /* Send the magic required by RF2500 and Chronos FETs */
>         if (do_magic(dev) < 0) {
>                 fprintf(stderr, "fet: init magic failed\n");
>                 goto fail;
>         }
> 
> I think it's already failing in do_identify:
> 
>                 if (xfer(dev, 0x28, NULL, 0, 2, 0, 0) < 0) {
>                         fprintf(stderr, "fet: command 0x28 failed\n");
>                         return -1;
>                 }
> 
> so it never gets to do_magic, if I'm reading this correctly.

Yep, you're right.

Here's another wild guess... find line 528 in do_identify():

        if (dev->version < 20300000) {

...and change the version number to 20404000 (or anything else which is
greater than 20401004).

Older versions of the firmware return a device name string, and newer
versions won't. I just don't know how new exactly.

- Daniel

Reply via email to