Unbrick and update a J-Link V8 clone

You can buy a Segger JTAG J-Link clone for few USD on ebay, aliexpress, dx, ...

If you try to update its firmware with the official Segger tool, you'll brick the probe.

Don't worry, smart people have already put a checklist to restore a working firmware and even update it to the latest official version. I just put all the needed info into one single page.

Unbrick it

To restore the firmware, you need to follow the instruction from http://www.sonsivri.to/forum/index.php?topic=41726.50 The best part ? It works from Linux.

For the step 9, you'll need the binary image to flash; use that one V8_Firmware_NoSerial_(crackn). It's from the same forum than above but without password and without additional useless .exe files.

  1. Download and install SAM-BA package from atmel.com (http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.aspx)
  2. Open the j-link case by gently popping the plastic edge near the jtag or usb ports.
  3. Identify the ERASE (pin 50) / TST (pin 40) jumpers/pins
  4. Short ERASE jumper to pull-high and connect the jlink to usb; wait for a minute and disconnect usb. ("pull-high", means set a jumper between the ERASE pin and the 3.3V pin next to it.)
  5. Remove the ERASE jumper and short the TST jumper to pull-high and connect the jlink to usb; wait for a minute and disconnect usb.
  6. Break/remove the TST jumper and reconnect USB
  7. Your jlink should now be identified as AT91 USB to serial adapter and a COM port should be assigned to it - if this doesn't happen repeat from step 3.
    Something like cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device  should appear in syslog or dmesg
  8. Open SAM-BA program; select COM/ttyACM port that was assigned to your jlink and in board select "at91sam7s64-ek"; click CONNECT
  9. Select "FLASH" and select the BIN file you downloaded before and select to load the firmware into flash; the application will ask you if you want to unlock - select YES; at the end of programming there will be a similar question if you want to lock - select NO! (very important)
  10. Congratulations, you are done. Reconnect the device and you should have a working jlink

Update the firmware

The previous step will reflash with a firmware from 2009.
Info : J-Link ARM V8 compiled May 27 2009 17:31:22

Quite old and I prefer to have the latest one.

Fortunately, the firmware you just flashed has a fake SerialNumber set to -1 and it happens to be enough to let the J-Link Configurator tool to flash it to the latest firmware without bricking it. This time you'll need a windows machine. I used a Windows10 image under vmware and it worked fine.

  1. go to https://www.segger.com/jlink-software.html and fetch the Windows software pack. The one I used was version 5.00g.
  2. install it and run the J-Link Configurator.
  3. It should detect the probe and allow you to update it to the latest firmwarejlink update02
  4. Congratulations, you are done. Reconnect the device and you should have a working J-Link this the latest firmware
    Info : J-Link ARM V8 compiled Nov 28 2014 13:44:46

Edit1

While origin of the binary firmware used in this tuto remains unknown, several posts suggest to modify the 'GDBFull' string to either 'GDBFULL' or 'GDB'

From http://www.sonsivri.to/forum/index.php?topic=41726.msg143919#msg143919:

After found the BIN file, you have to open it with an hex editor and change the string "GDBFull" with "GDB" and also change the serial number. As far as I remember the serial number is not a string but just raw hex data nearby the address where the "GDBFull" string is located. Remember the raw data are little-endian. For the new serial number use something like "4054xxxx" where xxxx are random numbers.

31 thoughts on “Unbrick and update a J-Link V8 clone

    1. Do you really consider this fair?
      SEGGER keeps updating their software, and obviously needs to
      pay salaries.
      You could simply buy a J-Link EDU for 50 Euro,
      would have to go through this pain and be fair
      to a company supplying a good product (that you obviously like)
      at a good price.

      1. The reason I wrote that article is because, after all, the JTAG clone works fine with OpenOCD without using SEGGER software.
        An alternative is the Low-cost ARM USB JTAG.
        The same is true for Saleae logic analyzer clones and Pulseview.

      2. you hit a very nice point there, but actually you sometimes need to immigrate from your nice country to be able to become a fair, unless you cannot even have a simple master card to buy. this is sad but true...
        regards

  1. Hi, has anyone tried the v9.3 clones from AliExpress that costs about 25 $ does they work?

  2. I have a jlink probably clone with version v5.10n. Worked for some weeks when started blinking green all the time. I've tried the method of this post, but after steps 3-6 it looks like dead. No USB recognition at all.

  3. The procedure with ERASE I think is incorrect. It is the following:

    1 - Connect Jlink to USB.
    2 - Bridge ERASE. Wait 15 seconds.
    3 - Remove ERASE bridge.
    4 - Remove USB port.
    5 - Put bridge TST.
    6 - Connect Jlink to USB. Wait 15 seconds.
    7 - Remove TST bridge.
    8 - Remove USB.

    Watch the following video:

    https://www.youtube.com/edit?video_id=WSrTDAS2Q1A

  4. I have an OEM (Digi) version of the Jlink; can it be flashed with the generic firmware to turn it into a standard model?

  5. "I can get go to https://www.segger.com/jlink-software.html and fetch the Windows software pack. The one I used was version 5.00g."

    Is there somewhere I can get this file? The most recent version simply refuses to recognize the device, and when trying to use it without an upgrade it fails.

  6. It seems to work okay, but I constantly keep getting warnings about serial no. being -1 ... Should I be worried?

  7. You need to change the serial number or you will get this error message about the device being "defective". I highly suggest that you DO NOT upgrade the firmware to a newer version until you first establish your own unique serial number (one that hasn't been "blacklisted"). Only then will you be guaranteed success.
    To do that you use the "J-Link Commander" program. The serial number is NOT stored in the binary firmware file. It gets stored in the EEPROM of the SAM7S64 chip. The newer J-Link DLLs will cause the "error message" if they see a serial number hasn't been set or if the serial number is one that is known to be used for 'fake' devices.
    You use the "J-Link Commander" to set the serial:
    1) Start J-Link Commander.
    2) At the prompt, enter (without the quotation marks): "Exec SetSN = xxxxxxxx". Choose an eight digit number, in place of the 'x's in that command, perhaps something in the range of 37000000 to 45000000 range.
    3) Hit enter so it stores that in your j-link device.
    4) Exit J-Link Commander (type: "exit" and hit ).
    5) Run J-Link Configurator and upgrade the firmware. You should see the serial number that you set from now on (not -1 and 4294967295)! Now your device should work without problems.
    I wasted a lot of time trying to inject serial numbers into the binary firmware file. It doesn't live there and I hope that you don't end up losing a lot of time doing the same.

    P.S. There is a lot of different methods found online to erase the Atmel chip in the j-link. Atmel has their procedure for erasing the chip and restoring the bootloader. This is how it should be: Power the device. Put the ERASE jumper on. Wait at least one second. Remove power. Now, with the power OFF remove the ERASE jumper and instead apply the TST jumper instead. Power the device and WAIT AT LEAST 10 SECONDS (the bootloader is being transferred internally in the chip at this time). Remove power. Now remove the TST jumper. Now when connected to your computer, the device should show up as a device that the ATMEL Sam-ba program can talk to.
    This will be the best way to start fresh, so you can load the old (2009) firmware that allows for an upgrade. Again, remember to only attempt the upgrade to a newer version of j-link firmware AFTER you have established your own, new Serial Number. !!

    1. Actually the Serial number IS located into the binary, at position 0x0000 ff00.
      The format is little-endian.

    2. I even changed the serial number but still cant update my device. You know any idea that what should I do? Thanks

  8. ... one other thing that I forgot to mention. It is probably necessary to use a binary file editor and change the "old" firmware (2009 version) so that the string "GDBFull" is altered. I substituted four space characters in place of the "Full" part and it worked. Seems like others used all-caps for the rest of "Full" instead (result: GDBFULL). It could be that the upgrade process will key on the lower case version and know that it "isn't proper". ! ?

    Pierre, I would like to suggest that you post a binary file with the string edited to be GDBFULL or just GDB instead of the file that is there now. It would make it easier for everyone downloading that by removing the steps needed to edit the file. ! Regardless, ENORMOUS THANKS for providing the file that is there currently !!!!!

  9. The V8 J-Link doesn't support Cortex-M7. Segger does not further support this Hardware version for further and newer MCU's.
    The newer Hware version of the J-Link based upon an STM32F202 instead the older V8 version. The firmware for the Version 9 and 10.1 are unusable for the Atmel SAM based HW V8. The latest firmware for HW V8 based J-Links are from 2014. I had ordered a new HW revision as an EDU version by digikey for just 50 bugs.

  10. Hi, I followed the all the 6 first steps but when I connect the jlink on linux it is doesn't detect on dmesg, on windows it recognize as a USB with problem. Do you now what it happening?

    Best regards

  11. Do you know how to upload software to jlink v9? I have deleted the memory in STM32 on board.

  12. I have similar issues with a little J-Link OB (STM based).

    Is there knowledge for, think the STM needs to be handled different.

Comments are closed.