CMSIS-DAP Debug

IDAP-LinkTM
CMSIS-DAP JTAG



Available on

https://www.mouser.com


and
I sell on Tindie




The IDAP-LinkTM/M is a very low cost CMSIS-DAP JTAG debug probe with enhanced features.  It can do more with it than just debugging.  It will appears as a USB disk drive.  This allows firmware flashing easily by copying the firmware file over without requiring any special flashing software and work instantly with any operating system.  It provides a UART to USB bridge for communication between the target device and the PC.  It also provides a regulated 3.3V to directly power the target device without addition power source by taking advantage of the USB power source.  These feature turn the target device into mBed enable.  It can be used as an ultra low cost solution to production programming.  The IDAP firmware is written from scratch with optimization for performance and strictly  adhering to ARM specifications.    

  • Support both SWD & JTAG mode
  • It is just plug & play with most IDE such as Keil, CrosWorks, Eclipse, etc.. Works instantly, no driver to install
  • Onboard 3.3V regulator to power the target device
  • UART to USB bridge for communication between target and PC up to 3 MBaud
  • Dynamic embedded target device selection
  • microSD slot for flash programming without a PC
  • mBed enabled the target device
  • Firmware flashing by drap & drop simply by copying file over in BIN or Intel Hex format

IDAP-LinkTM is the full Debug JTAG probe : Data sheet & User guide
IDAP-M is the CMSIS-DAP on module : Data sheet & User guide
IDAP-Link/M Software Download now supports readback protection

Current firmware status :

All features are implemented.  Current supported targets
  • Nordic nRF51, nRF52
  • Epson S1C31D01, S1C31W74 (custom target implemented & maintained by Epson)
  • Supports USB-UART baudrate up to 3 MBaud streaming
  • More to come (NXP LPC, Freescale up next)
  • Works with all MCUs supported by OpenOCD, KEIL, CrossWorks, etc...



For maker who wants to add JTAG onboard


IDAP-M is the IDAP-Link core foundation. It is a small footprint 16 x15 mm module designed to be integrated onto your board design to provide a CMSIS-DAP and mBed functionality.

IDAP-M module
The core CMSIS-DAP of the IDAP-Link
available on Tindie





Onboard target connection

Flash programming without PC using microSD


The IDAP-Link can Flash program the target using a micro-SD containing the firmware.  It is done simply by a press of a button.  Gang programming by using multiple IDAP-Link this way no PC is require


  • Connect the IDAP-Link to PC.  Run the command line IDAPSetTarget program to select the target device. Pass the index number of the target device as argument to the IDAPSetTarget program.  Running the IDAPSetTarget without argument will display a list of supported target device along with its index number.  Once the target is successfully programmed into the IDAP-Link, the a list of require firmware file name is listed.  This is require only done once unless a different target is needed.
  • Copy the the firmware files with predefined file names onto the microSD card.  The firmware file name must be exactly the same as those listed during the target selection step above.
  • Power up the IDAP-Link or press the Reset button (S2) with the microSD in the slot. The microSD card must be inserted prior to power up the IDAP-Link otherwise it will not switch to microSD programming mode
  • If the IDAP-Link is still connected to the PC.  The USB mass storage device will show up.  Eject it from the PC prior to start flashing.  Keeping the USB mass storage connected to the PC will have a huge impact on the Flashing performance as PC will try to access the microSD card at the same time.
  • A USB power source is require to power the IDAP-Link if not connected to PC.  
  • Press ISP/PROG button (S1) to start Flashing.  The green LED will turn on or blink.  The programming status will be also be printed to the USB CDC COM port.
  • Once programming completed, the green LED will turns off.  If programming failed, the red LED will blink at 1 sec interval.  All LED are off when programming is successful.   



Gang programming with PC via USB


With the drag & drop feature, it would be easy to do gang programming by connecting multiple IDAP-Link to a single PC via a USB hub.  Each IDAP-Link then would appears to the PC as a USB drive.  All that is left to do is to copy firmware file over to each drive.  This could be accomplished by a batch command.  Using IDAPnRFProg command line program to flash using multiple IDAP-Link at the speed of 12KB / s.  Flashing SD + APP + DFU in 16 s.


Parallel gang Flashing nRF51 with IDAPnRFProg on OS X and Windows


On OS X using IDAPnRFProg (click to download) flashing Softdevice + Firmware + DFU
Windows version of IDAPnRFProg (click to download) :

IDAPnRFProg s110_nrf51822_7.1.0_softdevice.hex Blinky_ble.hex dfu_sdk7.hex


$ ./IDAPnRFProg s110_nrf51_8.0.0_softdevice.hex Blinky_ble.hex dfu_nrf51.hex
IDAPnRFProg version 0.2
Copyright 2015, I-SYST inc. All rights reserved

Found IDAP-Link - S/N : 0000000000001
Found IDAP-Link - S/N : 0000000000002
IDAP-Link-0030415000005 : nRF51822-QFAA R2, Rev.2, HWID = 0x003C, DEVID = 0x299C1D17BD361134
IDAP-Link-0030415000005 : Flash size = 262144, Ram size = 16384
IDAP-Link-0030415000017 : nRF51822-QFAA R1, Rev.1, HWID = 0x001D, DEVID = 0x32B4DDFECEE22394
IDAP-Link-0030415000017 : Flash size = 262144, Ram size = 16384

IDAP-Link found : 2

IDAP-Link-0030415000005 : Erase Flash
IDAP-Link-0030415000017 : Erase Flash
IDAP-Link-0030415000005 : Blank checking...
IDAP-Link-0030415000017 : Blank checking...
IDAP-Link-0030415000005 : Programming...
IDAP-Link-0030415000017 : Programming...
IDAP-Link-0030415000005 : Firmware start address 0x18000
IDAP-Link-0030415000005 : DFU start address 0x3c000
IDAP-Link-0030415000017 : Firmware start address 0x18000
IDAP-Link-0030415000017 : DFU start address 0x3c000
IDAP-Link-0030415000005 : Programmed 256 KB in 21.524 sec at rate 11.894 KB/s
IDAP-Link-0030415000005 : Verifying...
IDAP-Link-0030415000017 : Programmed 256 KB in 21.524 sec at rate 11.894 KB/s
IDAP-Link-0030415000017 : Verifying...
IDAP-Link-0030415000005 : Flashing succeeded.
IDAP-Link-0030415000017 : Flashing succeeded.

Total Flashed 2 nRF51 devices in 51.112 sec, 1024 KB R/W transfered, rate = 20.035 KB/s



Flashing using OpenOCD


The current HEAD OpenOCD is performance has improved 10 fold.  It is now flashing at 9 KB/s.


nRF51:

openocd -f interface/cmsis-dap.cfg -f target/nrf51.cfg -c "program s110.hex verify"



LPC17xx :

openocd -f interface/cmsis.cfg -f target/lpc17xx.cfg -c "program blinky.hex verify"


LPC11xx:


openocd -f interface/cmsis-dap.cfg -f target/lpc11xx.cfg -c "program blinky.hex verify"


Freescale:

Note : kinetis.cfg of the current OpenOCD 0.9xx does not work with KL26.  Use the one in EHAL. 

openocd -f kinetis.cfg -c "program blinky.hex verify"



Debugging with OpenOCD



To enable debugging in Eclipse, select the menu Run/Debug Configuration.   A popup as bellow will appear.  Then create new GDB OpenOCD debugging configuration.


In the OpenOCD configuration popup,  select the Debugger tab to configure OpenOCD.   OpenOCD requires configuration files .cfg for the target device and the interface device.  The interface device should be set with -f interface/cmsis-dap.   The target device depends on which MCU being used.   The picture bellow shows configuration example for the nRF51 series.




OpenOCD with multi-board


When multiple IDAP-Links are connected to the PC, OpenOCD needs to know which is to be used for the debug session.  This can be accomplished using the OpenOCD command 'cmsis_dap_serial' to select the target board to use using its serial #.  Type in the Config options box -c “cmsis_dap_serial #######” where ###### is the serial number.  The image above shows the selection of the IDAP-Link with serial number '0030415000000' for the debug session.

Semihosting with OpenOCD

In order for semihosting to work.  It needs to be enabled both in OpenOCD and code initialization.

The code initialization is as follow :

extern void initialise_monitor_handles(void);

int main(void) {
    initialise_monitor_handles();

    printf("hello world!\n");
}

These linker flags are also required

--specs=rdimon.specs -lrdimon

The semihosting support in OpenOCD debug session is done in the Startup tab of the Debug configuration.  See picture bellow.





181 comments:

  1. From the rRF1822 manual, "In debug interface mode, the SWDIO/nRESET pin will be used as SWDIO. The pin reset mechanism will
    therefore be disabled as long as the device is in debug interface mode."

    With the IDAP-Link attached, bringing the nRESET pin low does not reset the chip. If I disconnect the IDAP-Link and hard power cycle the chip bringing nRESET low will reset the chip as expected.

    Exiting debug mode appears to involve more than what you are doing. From the manual...

    "Normal mode can always be resumed by performing a "hard-reset" through the SWD interface:
    1. Enter debug interface mode.
    2. Enable reset through the RESET register in the POWER peripheral.
    3. Hold the SWDCLK and SWDIO/nRESET line low for a minimum of 100 µs"

    I haven't run OpenOCD yet. That will be my next step.

    One other thing I've encountered is that the nrf_drv_gpiote driver does not function with the IDAP-Link attached. Button presses do not register. It seems like interrupts are not firing, although it's hard to say for sure what's going on. When I detach the IDAP-Link and hard power-cycle the chip the button presses do register.

    ReplyDelete
    Replies
    1. I see what you are referring too. The IDAP-Link is a generic interface. It does not know the specific register for enabling reset pin. So it leaves the register as it. It does however sends a jtag reset code to the target when the ISP button is pressed. This used in the case of the nRF51 where no dedicated reset pin is available. The IDAPnRFProg program also does a jtag reset at the end of programming but does not change the register. I can add an option to enable reset pin in the next version.

      For the button, is that gpio pin connected to the IDAP-Link ? Please note, at power on, the IDAP-Link will put the target in halt mode. Use the ISP pin to perform a Reset on the target to start it.

      Delete
    2. It appears that interrupts are not firing or their vectors are not being executed after the chip is programmed using IDAPnRFProg. The program executes normally in all other respects. Everything works as expected if I use only OpenOCD. The solution for me is to use OpenOCD during development and to use IDAPnRFProg for bulk flashing.

      Delete
  2. I never got round to using the IDAP-LINK I purchased a while back, for various reasons. I am currently working with Kinetis MKL26Z parts, are you supporting them yet?

    Thanks

    ReplyDelete
    Replies
    1. Hi,
      It does work with anything that is supported by OpenOCD or by the IDE such as KEIL, CrossWorks, IAR... I used it to develop on Eclipse with OpenOCD on LPC17xx, LPC11xx, KL26, nRF51, nRF52. If the OpenOCD default .cfg for KL26 does not work properly, you can used my kinetis.cfg in the EHAL libary, see the EHAL page for the link to GitHub repo.

      Thanks

      Delete
  3. This comment has been removed by a blog administrator.

    ReplyDelete
  4. This would support traditional jtag style debugging on an nrf52xxx mcu? I'm looking to investigate their softdevices for a full open source stack.

    ReplyDelete
    Replies
    1. Yes, it is ARM standard debug jtag. It can be used to debug any Cortex-M series either SWD or JTag mode. As for the softdevice, it is not open source. Nordic provide bin only. There are however other initiatives already making open source Bluetooth stack. You can easily google for it.

      Delete
  5. I'm aware the softdevices are bin only, but one could debug them with jtag to gain insight. I've actually been looking for an open source stack for them, but google fails me. Do you think you could provide some project names?

    ReplyDelete
    Replies
    1. just google 'bluetooth stack open source', you'll find a bunch.

      Delete
  6. Just bought and received this programmer. Tried it in uVision and using IDAPnRFProg and it works great! Thank you for developing and selling it!

    ReplyDelete
  7. I'm interested in talking to you about licensing this work on a different processor. I'm dgrobinson at dgrobinson dot com.

    ReplyDelete
  8. How do you power it when doing programming without PC (using the miniSD)?

    ReplyDelete
    Replies
    1. Hi,
      You can use any USB charger adapter.

      Delete
  9. When using IDAP for SWD programming. Why is TVCC needed?
    In our case, we use the 3.3V from IDAP to power the device.
    Can we just connect TVCC to the 3.3V as well?

    ReplyDelete
    Replies
    1. The TVCC is the power that comes from the target. It is used for level shifter so the IDAP-Link can be used to program targets with power ranging from 1.8-3.6V. It is required to operated properly.

      Delete
  10. Can you be more specific? Say I want to program nrf51822. Which pin on the nrf51822 is suppose to be connected to TVCC?

    ReplyDelete
    Replies
    1. You need to connect
      nRF5x --- IDAP-Link
      SWDIO --- SWDIO
      SWCLK --- SWCLK
      GND --- GND
      VCC --- TVCC

      Delete
  11. OK. That's what I thought. Thank you!

    ReplyDelete
  12. Hi,
    I am trying to flash nRF52 development kit using IDAPLink. The connection are as follows:
    nRF52(P20) --- IDAP
    VDD --- TVCC
    SWDIO --- SWDIO
    SWDCLK --- SWDCLK
    GND DETECT --- GND

    I tried using IDAPnRFProg_0.9 and IDAPnRFProg_1_0_Alpha3 both to flash the nRF52 target it is showing the error "Failed connecting to target".Please let me know,What went wrong?

    ReplyDelete
    Replies
    1. Hi,

      P20 is the JLink output. P18 (Debug In) is the one to use for the nRF52. The DK already have the JLink on board. Why would you need an external jtag ?

      Delete
  13. Hi,

    I am trying to flash nRF52 development kit with IDAPLink. The connections are as follows:

    Method 1:
    nRF52 (P20) -- IDAP
    VDD -- TVCC
    SWDIO -- SWDIO
    SWDCLK -- SWDCLK
    GND DETECT -- GND

    Method2:
    nRF52 (P20) -- IDAP
    VDD -- TVCC
    SWDIO -- SWDIO
    SWDCLK -- SWDCLK

    GND DETECT to GND (nRF52) -- GND (IDAP)

    I power up the target by using 3.3 volt and GND pin on IDAPLink. Afterwards,I tried using both IDAPnRFProg_0.9 and IDAPnRFProg_1_0_Alpha3 one after the other but it is giving error "Failed Connecting to Target".Please feel free to let me know,What would went wrong??

    ReplyDelete
    Replies
    1. Hi,

      P20 is the JLink output. P18 (Debug In) is the one to use for the nRF52. The DK already have the JLink on board. Why would you need an external jtag ?

      Delete
    2. Thanks for letting me know about it.I just wanted to check whether the DAPLink with nRF52 DK. So,I need to connect to Debug In (P18) in order to make it work.

      Apart from that,I had another query "Can I use 10-pin Cortex Debug Connector (P2) on IDAPLink to flash nRF52?"

      Once again,Thanks for letting me know.

      Delete
    3. Yes, exactly connect the P2 of IDAP-Link to P8 of DK. That should work. The IDAPnRFProg_0.9 is for use with older firmware 0.6. The newer IDAPnRFProg is for the new beta firmware.

      Delete
  14. I am extremely grateful for your prompt responses.One last concern after connecting P18 on nRF52 DK to P2 on IDAPLink. Can I drag-n- drop any hex file into the "IDAP_FLASH" drive in order to flash corresponding hex file into nRF52 DK?

    ReplyDelete
    Replies
    1. Yes, you can do that or you can use the IDAPnRFProg which is faster. The drag & drop has a limitation that only one hex file can be flashed. Which means you need to merge SD + firmware all into 1 hex file.

      Delete
  15. Thanks!!Good luck with your project.

    ReplyDelete
  16. Hi,

    Can I able to debug the IDAP Link using P3 by connecting it to Segger Jlink?Since,I developed interface firmware for nRF52 DK using the IDAPLink github repo and Keil MDK. When I trying to drop ".bin" example in MBED drive,It was asserting an error "RESERVED BITS" in "fail.txt"

    ReplyDelete
    Replies
    1. Yes, of course you use the JLink or IDAP-Link to debug mBed DAPLink code on IDAP-Link with KEIL.

      Delete
  17. Thanks,Do you have any clue why it was asserting an error "RESERVED BITS" in "fail.txt" when trying to develop interface firmware for nRF52 DK using the IDAP Link github repo and Keil MDK?

    ReplyDelete
    Replies
    1. I don't know what that could be. The mBed firmware is bigger than 32KB, I couldn't compile it.

      Delete
    2. Thanks for your reply,I am trying to figuring it out.Btw.You can set the optimization level in order to reduce the code size.I set it to "O-2" level then it compiles successfully for me.Hope that helps.

      Delete
    3. I tried all optimization settings no luck. Which version of KEIL are you compiling with ?

      Delete
    4. I tried with Keil uVision5. It works foe me but you have to install one software pack for uVision5 in order to make it run

      Delete
    5. could you tell me which pack did you install ? I can help debugging if I can have it compiled.

      Delete
    6. This comment has been removed by the author.

      Delete
    7. Sorry for delay in the reply. It's "MDK Version 4 Legacy Pack".Feel free to go through the below link,
      http://www.keil.com/support/man/docs/uv4/uv4_ca_migrate2v5.htm

      Delete
  18. Hi,

    I had another concern,When I am plugging IDAP Link board to desktop it says "format the disk in drive E: before you can use it".Please let me know,What would be the issue?

    ReplyDelete
    Replies
    1. It's the usb drive emulation. Which version of Windows are you using ? Which IDAP firmware version ?

      Delete
    2. This comment has been removed by the author.

      Delete
    3. It works for me just updated the firmware version thanks for letting me know and for your reply as well

      Delete
    4. I tried drag n drop programming after this error "format the disk in drive E: before you can use it" but can't able to program the nRF52 DK and it doesn't return the "fail.txt" file as well. Meanwhile,When I am trying to program with IDAPnRFProg it works well without any issue.

      Can you please let me know,What exactly the problem is?

      Delete
    5. Which WIndows version are you using ?
      You need to set the target device with IDAPSetTarget first. You need to do this only once until you change target device. For example 'IDAPSetTarget 2' will set nRF52832 as target. The IDAP firmware is not is not mBed firmware, there is no fail.txt.

      Delete
    6. I am using Windows 7

      Delete
    7. Do you still have issues ? Could you email me your hex file so I can debug it, thanks.

      Delete
    8. It works fine with ".hex" files but can't able to do it ".bin" files.Trying to figuring it out and let you know if I encounter any problem.Thanks for helping a lot Nguyen.

      Delete
    9. I am having the same issue and sending the ".bin" file wanted to flash onto nrf52 DK. Apart from that,I am sending the mBed firmware ".hex" file as well just let me know if you are able to help me in debugging it.I am sending files to support@i-syst.com

      Delete
    10. I received your email. Thanks for sending the files for debugging.

      Delete
    11. You are welcome,Looking forward for your response.

      Delete
  19. Dear Nguyen,

    We successfully flashed our nRF52 with your programmer. However, we found it to be extremely slow.
    Here is the report:


    IDAPnRFProg Ver. 1.0.170624
    Copyright 2015, I-SYST inc. All rights reserved

    Found IDAP-Link/M - S/N : 0030416000085, Firmware : 1.0.170423

    Target device found : 1


    IDAP-Link/M-0030416000085 : nRF52832-QFAAB0, Rev.-1, HWID = 0x52832, DEVID = 0xF26ADEA2AFB56FCD
    IDAP-Link/M-0030416000085 : Flash size = 524288, Ram size = 65536
    IDAP-Link/M-0030416000085 : Erase all
    IDAP-Link/M-0030416000085 : Blank checking...
    IDAP-Link/M-0030416000085 : Chip erased
    IDAP-Link/M-0030416000085 : Programming...
    IDAP-Link/M-0030416000085 : Programmed 508 KB in 45.745 sec at rate 11.105 KB/s
    IDAP-Link/M-0030416000085 : DFU start address 0x7a000
    IDAP-Link/M-0030416000085 : Verifying...
    IDAP-Link/M-0030416000085 : Programming succeeded.
    Total programmed 1 nRF51 devices in 50.128 sec, 2032 KB R/W transfered, rate = 40.536 KB/s

    First, what speed should we expect to get? Is 40KB/s reasonable?
    Second, the hex we flashed was ~700KB. That shouldn't have taken 50 sec.
    Third, why does it say nRF51 device programmed?

    ReplyDelete
    Replies
    1. Thanks, for reporting. It was just a wrong message. I though it was corrected. The verify was changed to do checksum instead of read back the whole flash and compare. The previous version, it reads back the whole and compare with the original in memory. There was 700KB initial write, then a read back 700KB, then a compare of 700KB. The new verify is not the same case. I'll readjust the calculation. Thanks

      Delete
    2. Where is this new version? Is this in firmware or a new IDAPnRFProg?

      Delete
    3. Also, what is the expected transmit speed with SWD using IDAP?

      Delete
    4. The maximum speed is about 1MHz. The latest version of firmware software is at https://sourceforge.net/projects/idaplinkfirmware/?source=directory

      Delete
    5. Hi Hoan,
      We are also facing the same issue of Programming speed being extremely slow. We are trying to program nrf52 device on a Raspi 4. We have all the latest (as of today 1.9.220513) fw and sw files required for the same.

      Delete
  20. Another problem we experienced is that one in a while, we get the following error:
    IDAP-Link/M-0030416000085 : nRF52832-QFAAB0, Rev.-1, HWID = 0x52832, DEVID = 0x21F7A5356665163E
    IDAP-Link/M-0030416000085 : Flash size = 524288, Ram size = 65536
    IDAP-Link/M-0030416000085 : Erase all
    IDAP-Link/M-0030416000085 : Blank checking...
    IDAP-Link/M-0030416000085 : Flash NOT BLANK. Device may be protected
    IDAP-Link/M-0030416000085 : Atempting to unprotect and erase Flash again

    And then programming does not work correctly (even though it says successful).
    Chips are not protected. When we execute the IDAPnRFProg again, it usually works the second time.

    ReplyDelete
    Replies
    1. Thi happens when there was a bad chip or an Engineering version of it. Eventually, it will stop working.

      Delete
    2. Is there a way to catch this event or test for it? (Flash NOT BLANK). Maybe with a different executable return code?

      Delete
    3. Yes, it is certainly possible. I'll add it to the next release of the software.

      Delete
  21. I see that these cannot be ordered now from the store and that only 2 are left in stock. Is that accurate?

    ReplyDelete
    Replies
    1. Sorry, I am travelling right now. I switched production to China to reduce cost in order to reduce the sale price but the yield was terrible. Many soldering issues. I hope to get production running again soon. I usually keep a few on reserve if you need more.

      Delete
    2. Sounds good. We definitely want to order a couple more as soon as they are available.

      Delete
    3. Ping me when you are back from your vacation. We would like to order a couple more.

      Delete
  22. What is the maximum number of IDAPlinks you managed to simultaneously connect to a PC?
    We are trying to figure out an optimal strategy for gang programming.

    ReplyDelete
    Replies
    1. That's depend on how many USB connection your PC can handle. The IDAPnRFProg does not have a limit. It will scan for all that it can find on the USB bus.

      Delete
  23. I am having trouble getting serial information read from the UART 16 pin connector.
    I have a circuit that is sending characters over 115200 baud (verified via nrf52dk board), however, when I connect the it to the idaplink port, I don't see anything on the corresponding com port.
    Any ideas how to proceed?

    ReplyDelete
    Replies
    1. Connect nRF RX pin to IDAP T_RXD (12) pin and nRF TX to IDAP T_TXD (11) pin

      Delete
    2. This comment has been removed by the author.

      Delete
    3. My circuit only outputs over UART, so I don't have a RX pin on nRF.
      I connected nRF TX to pin 11 on IDAP as well as GND.
      Still - there I don't get anything on the terminal.

      Delete
    4. UART has TXD & RXD. What is you TX & RX pin config in the nRF code ? If you tested on the DK then look under the DK PCB. It will indicate which pin of the nRF.

      IDAP Pin --- nRF Pin
      TVCC --- nRF VCC
      GND --- nRF GND
      T_TXD --- nRF TXD pin (pin number configured by your code)
      T_RXD --- nRF RXD pin (pin number configured by your code)



      Delete
    5. Let me elaborate. I am connecting a custom device with nrf52832 (or nrf51822). The board is running mbed os with Serial defined over two pins. the RX is a dummy pin and not actually connected to anything. The TX pin outputs debugging messages from the device. I've been using this device with many other debuggers that have UART (MK20, NRF51DK, NRF52DK) and in all of those cases, I never connected the device RX pin to the debugger.
      Perhaps it is because I didn't connect TVCC. Let me check.

      Delete
    6. The IDAP-Link has a level shifter so TVCC is required.

      Delete
    7. Yes. That was the issue. Everything works now.

      Delete
  24. I have a question regarding the buttons. We are thinking about connecting several IDAPlink to an arduino/other MCU to do the gang programming from the SD card (and then additional testing). It is possible to solder out the three buttons and connect them to a digital out of the arduino? Do they pull high/low?

    ReplyDelete
    Replies
    1. Yes, it is possible to hack it. You can tie them all together to a single button. The button is pullup internally so no pullup is required on the Arduino side. The button is active low.

      Delete
    2. Note that SD card programming is slower than using the IDAPnRFProg program.

      Delete
  25. IDAPSetTarget on OSX hangs problem.
    I just tried to run IDAPSetTarget for the first time on my mac and it get stuck with the following message:
    ./IDAPSetTarget 2

    IDAPSetTarget Ver.: 1.1.170624
    Copyright 2015, I-SYST inc.

    This program is used to set the runtime target for the IDAP-Link/IDAP-M

    I'm running 10.12.5 (macOS Sierra).

    ReplyDelete
    Replies
    1. I am not sure what could be the problem. I work on MAC as well and could not reproduce the problem with and without the IDAP-Link connected. When there is no IDAP-Link connected. It took about 3 secs to timeout but no hanging. Running on Sierra 10.12.6

      Delete
  26. Is there a way to instruct IDAPlink to perform a target device reset from the command line?

    ReplyDelete
    Replies
    1. Currently not. IDAPnRFProg does reset the target after programming is completed.

      Delete
  27. Is there a way to restrict IDAPnRFProg to program only one of the IDAPlink modules if multiple of them are connected to the PC? If not, can you please add this feature for the next software release? (maybe with a specific flag and the serial number of the IDAPlink?)

    ReplyDelete
    Replies
    1. It would a feature for future release. Thanks

      Delete
  28. Hi,I brought the new IDAP-Link and trying to debug using P3 on board when I am starting the debug session it is showing "Cannot Write to RAM for Flash Algorithms !" in the output console


    ReplyDelete
    Replies
    1. Hi,
      P1 & P2 are for debugging target deviice. P3 is reserve for IDAP-Link itself.

      Delete
  29. Hi I just received a IDAP-LINK. The PCB is rev 4 and the firmware version is 1.2.170814. The firmware folder on sourceforge only has folders for IDAP-Link_R2 and _R3 and IDAP-M. What firmware should I use for the rev 4 PCB?
    Thanks.

    ReplyDelete
    Replies
    1. Hi,
      The firwmare r3 is for board rev3 and above. Your board should use r3 fiwrmware

      Delete
  30. OK. I keep getting the following message:
    IDAP-Link/M-2030417000009 : nRF52832-QFAAB0, Rev.-1, HWID = 0x52832, DEVID = 0xEA5E62639D28766F
    IDAP-Link/M-2030417000009 : Flash size = 524288, Ram size = 65536
    IDAP-Link/M-2030417000009 : Erase all
    IDAP-Link/M-2030417000009 : Blank checking...
    IDAP-Link/M-2030417000009 : Flash NOT BLANK. Device may be protected
    IDAP-Link/M-2030417000009 : Atempting to unprotect and erase Flash again
    IDAP-Link/M-2030417000009 : nRF52 Locked. Unlocking...
    Total programmed 1 nRF5x devices in 124.125 sec, 508 KB R/W transfered, rate = 4.093 KB/s

    But nothing is actually transferred to the device.
    The chip is not locked. When I connect with nRFgo studio, it shows that everything is blank.
    Any idea?

    ReplyDelete
    Replies
    1. I'm using IDAPnRFProg Ver. 1.3.170826 on my mac

      Delete
    2. This does not happen with Ver. 1.1.170722

      Delete
    3. Sorry about, bad target file was introduced into the build. New is build is uploaded now. Thanks for reporting. If possible please use support at i-syst dot com for bug report, thanks.

      Delete
    4. IDAPnRFProg Ver. 1.3.170826 works great again.
      Thank you for the quick fix!

      Delete
  31. Hi,

    Sometimes I'm able to program at ~12 KB/s but often the IDAP only programs at ~6 KB/s. Can you shed any light on this?
    IDAPnRFProg Ver. 1.3.170826
    Found IDAP-Link/M - S/N : 2030417000017, Firmware : 1.2.170817

    Target device found : 1

    IDAP-Link/M-2030417000017 : nRF52832-CIAAB0, Rev.-1, HWID = 0x52832, DEVID = 0x414E08278E348C52
    IDAP-Link/M-2030417000017 : Flash size = 524288, Ram size = 65536
    IDAP-Link/M-2030417000017 : Erase all
    IDAP-Link/M-2030417000017 : Blank checking...
    IDAP-Link/M-2030417000017 : Chip erased
    IDAP-Link/M-2030417000017 : Programming...
    IDAP-Link/M-2030417000017 : Programmed 512 KB in 80.589 sec at rate 6.353 KB/s
    IDAP-Link/M-2030417000017 : Application Firmware start address 0x23000
    IDAP-Link/M-2030417000017 : DFU start address 0x78000
    IDAP-Link/M-2030417000017 : Verifying...
    IDAP-Link/M-2030417000017 : Programming succeeded.

    Total programmed 1 nRF5x devices in 84.063 sec, 512 KB R/W transfered, rate = 6.091 KB/s

    ReplyDelete
    Replies
    1. Hi,
      There can be many explanations. The target swd signal lines could be weak, your pc could be busy with other tasks such as virus scans, Flashing big files would be slower than small files. At 6KB is quite slow. Most likely the weak SWD connection.

      Delete
    2. It could also be a bad USB cable.

      Delete
  32. Hello,
    Can IDAP-Link be used with Segger IDE to debug nordic nrf52 chip? I was able to successfully flash programs onto custom board using IDAP-Link. Now I am trying to figure out how to debug. Thanks in advance.
    Regards,
    Anoop Joseph

    ReplyDelete
    Replies
    1. Hi,
      The Segger IDE only works with Segger products. It is a strip down version of CrossWorks. You use the IDAP-Link with CrossWorks and other IDE such as KEIL, Eclipse (OpenOCD),... Select CMSIS-DAP as JTag interface.
      Best,
      Hoan

      Delete
    2. Dear Hoan, Thank you for your quick reply.

      Delete
  33. Can your hardware run the Black Magic probe firmware?

    ReplyDelete
    Replies
    1. I haven't tried that. I guess if you do the port, it should work. The MCU on the IDAP is a Cortex-M0 with 64KB FALSH, 10KB RAM. Be aware that if you flash an other firmware on it you may not able to revert to the IDAP firmware. It is at your own risk all guarantees are voided. Send me private message if you wish to know the pin maps to do port.

      Delete
  34. Hello,

    I recently got an IDAP-Link rev4.1. I tried upgrading the firmware on it following these steps:

    1. push s1 and s2 together
    2. release s2 and hold s1 for 3 seconds
    3. inside volume 'CRP DISABLD' replace firmware.bin with R3_build_1_6_181013 firmware.bin
    4. unplug usb and plug it back in

    Now IDAP-Link seems to be bricked, it doesn't come up.

    What do I do ? Did I do something wrong ?

    ReplyDelete
    Replies
    1. You might have unplug too soon, before it has time to finish flashing firmware. You can re-try the steps and wait at least 3 sec before restarting the IDAP

      Delete
    2. How do you propose I restart IDAP, because I tried this again and waited for more than 2 minutes still nothing?

      Delete
    3. should I try a different build, currently I am trying "R3_build_1_6_181013" ? I work on a linux PC, are there any special instructions for linux ?

      Delete
    4. I think you misunderstood what I meant. Here are the steps.
      1 - Press and hold S1 (ISP) button
      2 - Press and release S2 (IRESET) while holding S1
      3 - Release S1
      4 - If you are using Windows, delete firmware.bin from 'CRP DISABLD' drive and copy over the new firmware.bin
      5 - Wait for 3 sec.
      6 - Press S1 again to restart IDAP.

      For Linux may be use the cp command from the Shell. I know that for OSX, cp command must be used.

      Delete
    5. I tried the exact steps you mentioned multiple times, but nothing's happening. Step-6(press S1 again) doesn't seem to do anything, volume still shows up as 'CRP DISABLED' and if I unplug and plug it back in LED-3 doesn't lit up and
      IDAP doesn't show up as USB device, however I still can go to 'CRP DISABLED' mode and repeat same steps but again nothing. I am stuck.

      Delete
    6. Could you try that on a window machine ? or may be the firmware.bin you downloaded was corrupted. Try to download again.

      Delete
    7. Thank you for your assistance. I was able to make it work using a windows machine. I am on to next step, that is, programming nrf51422. I keep getting this error 'No target device found', when I try programming softdevice using IDAPnRFProg. I can give more details on it like what connections I have made. I also have some doubts. Do you prefer to start a new conversation thread in nRF51/nRF52 post or can I keep asking here ?

      Thank you!

      Delete
    8. There are info for connecting nRF5x series to the IDAP on the nRF51/nRF52 page. If you still have issue, please post your related questions on that page.

      Delete
    9. Can confirm that doing this on Linux or macOS seems to 'brick' the IDAP-Link. Upgrading the firmware on Windows seems to work a treat if you face this issue.

      Delete
  35. I am trying to connect via J-Link from Segger embedded studio but I get an error message "No emulators connected via USB. Do you want to connect to a J-Link via TCP-IP instead?" I presumed you supported J-Link but from this message it appears you do not. What is true? Can I connect via J-Link?

    ReplyDelete
    Replies
    1. BTW target is NRF52 board but I cannot even "connect J-Link"
      Segger Studio free now so is good option.
      I can connect to standard NRF52 evaluation board this way but I wanted IDAP link so I could run my target at lower voltage.

      Delete
    2. The Segger Studio only works with J-Link. It does not support anything else. The IDAP-Link is a standard CMSIS-DAP JTag. It can be used with OpenOCD, Keil, Crosworks,... but not Segger Studio. Segger Studio is a downgrade version of CrossWorks. You can try CrossWorks or use Eclipse with OpenOCD. See my blog nRF51/nRF52 and Eclipse pages how to setup Eclipse. It is not that difficult.

      Delete
  36. Hi, very nice project but I didn't have any success programming my target.
    I have feather board from Adafruit (link attached) https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide
    connected 4 pins swclk, swdio, swo, and reset,
    Tried to drop generated by Arduino .hex file but the target is not getting updated, it tries to copy but then there is an error.
    Am I missing something? did someone had the same problem? please help






    ReplyDelete
    Replies
    1. Hi, the pin swo is not used. There are 2 pins missing. The VCC and the GND pins. VCC of your board should be connected to the TVref pin 1 of the IDAP-Link and GND to any GND pin on the IDAP

      Delete
  37. Hi Hoan, is it possible to read the memory of a nrf52832 using the IdapNrfProg ? Thank you, Luca.

    ReplyDelete
    Replies
    1. There is currently no read command but there is a write command in the IDAPnRFPRog. However you can read using OpenOCD.

      Delete
  38. Is 12 kB/s still the current maximum transfer speed for flashing over SWD?

    Is the maximum transfer speed the same when using IDAPnRFPRog, uSD card and OpenOCD?

    ReplyDelete
    Replies
    1. Yes, it is. Using IDAPnRFProg is the fastest. uSD is slowest. IDAPnRFProg also allows flashing multiple boards in parallel. It scans USB for all IDAP boards and flash all at once.

      Delete
  39. Hello,
    We are trying to use the IDAP tool. But when we program a factory package with DFU bootloader, soft device, application, settings it results in the reset button not working. We tried both command line and copying into the Windows drive. We had to recover over JLink using the command nrfjprog --recover --log. Can you please help as we have to decide on a tool and are evaluating other tools.

    ReplyDelete
    Replies
    1. The reset button is controlled by software. Are you sure your firmware didn't disable it ? Why you need to recover ? Is it protection enabled ? Could give a little more details about the issue ?

      Delete
    2. Thanks for the reply. We programmed the same firmware with JLink and we did not have this issue. The firmware does not disable the reset. This is nRF52840 chip, where we specifically make this pin available as reset.

      Delete
    3. Could you give me more details about the command line you used to flash? Is the reset pin connected somewhere ? The button S3 (TG_RESET) of the IDAP-Link is physically connected to the target RESET pin on the JTAG connector. If your reset pin is connected to the jtag, it should work. If not it won't. However Button S1 of the IDAP-Link can be used to soft-reset the target.

      Delete
  40. Actually we just tried programming a single hex file, that has all pieces merged (SD, App, boot loader, settings ) with command line tool and everything worked fine. Previously we were using the drag and drop mechanism and that caused problems with reset. Now we have a second hex file built using ARM mbed OS, that does not work properly. Everything looks fine when we execute the command line , but the firmware does not run.
    IDAPnRFProg.exe mitag-ate-fw_0.7.0.hex

    IDAPnRFProg Ver. 1.7.190320
    Copyright 2014-2018, I-SYST inc. All rights reserved

    Found IDAP-Link/M - S/N : 6030419000138, Firmware : 1.6.181013

    Target device found : 1


    IDAP-Link/M-6030419000138 : nRF52840-QFAAD0, Rev.-1, HWID = 0x52840, DEVID = 0x721CA299DAF7681F
    IDAP-Link/M-6030419000138 : Flash size = 1048576, Ram size = 262144
    IDAP-Link/M-6030419000138 : Erase all
    IDAP-Link/M-6030419000138 : Blank checking...
    IDAP-Link/M-6030419000138 : Chip erased
    IDAP-Link/M-6030419000138 : Programming 521312 bytes...
    IDAP-Link/M-6030419000138 : Programmed 509 KB in 29.439 sec at rate 17.293 KB/s
    IDAP-Link/M-6030419000138 : DFU start address 0x78000
    IDAP-Link/M-6030419000138 : Verifying...
    IDAP-Link/M-6030419000138 : Programming succeeded.

    Total programmed 1 nRF5x devices in 32.712 sec, 1018 KB R/W transfered, rate = 31.120 KB/s

    ReplyDelete
    Replies
    1. You don't need to do mergehex with the command line IDAPnRFProg. Give it all 3 hex in order it will merge for you. About embed I don't know how it generate the hex. Does it combine the softdevice ? or just the firmware. Where is the code start address.

      Delete
    2. For the mbed OS it does not use Soft device, but the Open source Cordio BLE stack. I think it is the same start address as the Soft device. Does the IDAP tool work with it?

      Delete
    3. The IDAP does not care where your code start. It just flash wherever your hex file tell it to. What you need to check is your startup code. The Reset Vector is located at address 4. When the MCU resets, it loads the jump address from there and jumps to your startup code. Make sure your firmware has that vector set properly. You can also use the debugger. Chose CMSIS-DAP as jtag tool for debugging.

      Delete
    4. The same firmware hex file works fine, when I load it using JLink. The issue is only when I load with IDAP.

      Delete
    5. I that case could you send me the hex to debug?

      Delete
    6. Where should I email the file to?

      Delete
    7. send it to support at i-syst.com

      Delete
  41. Hello,

    Can we use the hex file generated by SEGGER IDE to program the Nordic chip. I have seen posts this in this blog saying it's not possible but recently SEGGER posted saying they support DAP link. That's why I am confused.

    Thanks in advance

    ReplyDelete
    Replies
    1. Hi,
      Segger IDE only supports J-Link within the IDE. Which means you cannot use the Segger IDE to flash directly. If new version of the IDE allows using CMSIS-DAP. Then it might be compatible. However you can flash the hex file generated by any IDE with the IDAP-Link, including the hex generated by SES. You need to use either OpenOCD or the IDAPnRFProg commandline program for that matter.

      Delete
    2. Hello,
      I have brought the IDAP link and connected it to my nordic SDK. I have also downloaded the IDAPnrfprog zip file, extracted it and tried to run it. Its not running. Its coming and going like a flash. Is there anything i am doing incorrectly?

      Delete
    3. Hello,
      I have brought the IDAP link and connected it to my nordic SDK. I have also downloaded the IDAPnrfprog zip file, extracted it and tried to run it. Its not running. Its coming and going like a flash. Is there anything i am doing incorrectly?

      Delete
    4. could you give me more detail of what is not running ? Do you mean you are connecting to the Nordic DK board ? The DK board has a JLink onboard. Which Nordic chip are you using ? What is the output message of the IDAPnRFProg ?

      Delete
    5. Hello hoan, I am connecting the IDAP to the Nordic SDK board. The problem is the IDAP software itself is not running. I downloaded the zip file and ran the .exe file and when I open it, its like coming and going in a flash.

      Delete
    6. Ok, I see. It is a command line program. You need to open the cmd shell, then execute it in the command shell.

      Delete
    7. Yes, i tried that as well. Its coming IDAPnrfprog command not found...

      Delete
    8. you need to be in the same folder as where you put the IDAPnRFProg.exe. Otherwise the cmd would not find it because it doesn't where you put that program.

      Delete
  42. Hye.nice post
    I wanted to ask can i use IDAPLINK to program the hex file generated from keil into mk20dx256 vlh7 board using swd ?

    ReplyDelete
    Replies
    1. You can use it with Keil directly by selecting CMSIS-DAP as JTag debug tool or you can use OpenOCD to flash the hex file. IDAP-Link is a CMSIS-DAP device.

      Delete
  43. Hello,
    I found that IDAPnRFProg can write up to 17kB/s. Is there a way to go faster than that with the IDAP-Link hardware?

    Another problem seems to persist. It was already reported in 2017 (for the nRF52832 at this time). When programming an nRF52833, every second time, the chip seems to be protected. The problem only appears with the nRF52833, the nRF52811 and the nRF52840 work fine.

    IDAP-Link/M-6030419000410 : nRF52833-QFAAA0, Rev.-1, HWID = 0x52833, DEVID = 0x99A11D557633E11D
    IDAP-Link/M-6030419000410 : Flash size = 524288, Ram size = 131072
    IDAP-Link/M-6030419000410 : Device address = 0x540A83B938D2
    IDAP-Link/M-6030419000410 : Erase all
    IDAP-Link/M-6030419000410 : Blank checking...
    IDAP-Link/M-6030419000410 : Flash NOT BLANK. Device may be protected
    IDAP-Link/M-6030419000410 : Atempting to unprotect and erase Flash again
    IDAP-Link/M-6030419000410 : Unlocking...
    IDAP-Link/M-6030419000410 : Error : Flash NOT BLANK.

    Could you tell me if there is a workaround to that problem?
    Thanks in advance

    ReplyDelete
    Replies
    1. Hi,
      Thanks for reporting. Currently that is the max speed of the IDAP-Link. We are planning a new hardware version that can do faster. Have you tried with the latest version of the software ? https://sourceforge.net/projects/idaplinkfirmware/files/
      I can debug the issue better if you can provide a sample of the board having this problem.
      Thanks.

      Delete
    2. Thank you for your fast response. Yes, I already have the latest version of the software (IDAPnRFProg Ver. 1.8.201221).
      I don't use a custom board, I am trying to program modules from Insight SIP. The one that produces the error posted yesterday is an ISP1907-HT based on the nRF52833 chip.

      Delete
    3. I got an ISP board and able to reproduce the issue. Will debug and try to fix it.

      Delete
  44. This comment has been removed by the author.

    ReplyDelete
  45. Dear Hoan,
    We bought some of the IDAP-Link modules and we would like to put them in a housing. Could you please provide the relevant mechanical data? A step file of the assembled module would be great. If you don't have that, could you juste give us the nominal dimensions of the circuit including the positions of the mounting holes?
    Thanks in advance

    ReplyDelete
    Replies
    1. Please send your request here https://www.i-syst.com/form/contact-us

      Delete
  46. Hello again,
    We are looking for a programming solution using a graphical user interface. Do you know a programm using a GUI that is compatible with the IDAP-Link modules?
    If we would need to write it by ourselves, is there some documentation available about the application programming interface of the module?
    Thanks
    David

    ReplyDelete
  47. Dear Hoan,
    We now have 25 pieces of the IDAP-Link programmer and would like to use them to program 25 targets simultaneously. Unfortunately, several PCs don't recognize all the 25 programmers. The OS doesn't find them, and there is no serial port or virtual drive. Do you have an idea how to make Windows 10 detect them all? Can we disable the virtual drive part and only use the serial port? We use the IDAPnRFProg to program the targets.
    Best regards

    ReplyDelete
    Replies
    1. Hi,
      Not all PC or USB hub can handle it. You need minimum a PC with USB3 port. USB2 port can't handle more than 4 devices. You'll also need a very good USB3 hub. Most of the USB3 hub pretend to support 10 ports but only the first 4-6 ports work properly. I have customers evaluated dozen of HUB and found only one that can handle 10 connections.
      Best,
      Hoan

      Delete
    2. Dear Hoan,
      Thank you for the fast response.
      We have tested several PCs and two types of hubs to connect all our programmers. We found that an HP EliteBook 840 G5 works well with two 13-port USB3 hubs (IcyBox IB-AC6113), whereas other PCs didn’t recognize all the programmers using the same hubs. Therefore we think that it also depends on the PC, not only on the hubs used.
      Anyway, could you (or anyone else reading this post) give another example of a USB3 hub that works well with multiple IDAP-Link programmers?
      As the programming software (IDAPnRFProg) relies only on the COM port, the virtual drive is unnecessary. Can we disable this function (and keep only the serial port) to see if it works better?
      Best regards
      David

      Delete
    3. Hi,
      You can try disabling the virtual drive by ejecting it from the PC.
      Best,
      Hoan

      Delete
  48. So this is pretty slick and I am thinking of embedding the module into my docking station for the smart watch I am working on (www.retrowatch.co) but have a couple of questions:

    Can the module support a jtag and a swd connection at the same time (the pinout looks like one port is wired to SWD and the other to JTAG)?

    I notice TX/RX are connected along with jtag and swd...is it possible to use it as a usb serial converter, if so, how easy is it to switch modes?

    Has anyone tried it on the nrf5340? Does it support memory protection bits?

    Are they available in quantity? (ill probably want 20 for now then maybe a few hundred in the near future)

    Thanks!

    ReplyDelete
    Replies
    1. The IDAP-M module has same functionalities has the IDAP-Link. It supports both JTag & SWD mode. The RX/TX is the UART to USB bridge so you don't need to use a FTDI to get the UART. Currently the IDAPnRFProg does not support the nRF53 & nRF91 yet but if it's available in OpenOCD, it should work. Any IDE that supports the standard CMSIS-DAP protocol should work as well. We do have stocks for IDAP-M.

      Delete
  49. I want to use IDAP-Link as a programmer with out PC. But while I follow the mannual, I found that "Connect the IDAP-Link to PC. Run the command line IDAPSetTarget program to select the target device."

    But, I couldn't find out the program "IDAPSetTarget". Is it a PC program like IDAPSetTarget.exe? or is it the code in the datasheet?

    ReplyDelete
    Replies
    1. Hi, it is a PC program to set the desire target for programming without PC. The default target is for nRF52. Please note that programming using SD card is a lot slower than using PC with IDAPnRFProg.exe

      Delete
  50. We're using a RPi to program nRF52s with an IDAP-Link. Currently we're flashing through OpenOCD as we already have the mergehex rather than the 3 individual components. We're getting intermittent fails and sometimes "Error: CMSIS-DAP command CMD_DISCONNECT failed." during Verification. However it also states that verification is OK after. Am I supposed to accept that it is ok despite the error?

    ** Programming Started **
    Info : nRF52832-QFAA(build code: E0) 512kB Flash, 64kB RAM
    Info: Padding image section 0 at 0x00000b00 with 1280 bytes Info: Padding image section 1 at 0x00018fec with 20 bytes Info: Padding image section 2 at 0x0002dfd7 with 1 bytes
    Info : Flash write discontinued at 0x0002e380, next section at 0x00078000
    Warn : Adding extra erase range, 0x0002e380 .. axo002efff
    Info: Padding image section 4 at 0x0007dcb8 with 840 bytes Info : Padding image section 5 at 0x0007e324 with 3292 bytes Warn : Adding extra erase range, 0x0007f324 .. 0×0007ffff Warn : Adding extra erase range, 0x10001000 .. 0x10001013
    Warn : Adding extra erase range, 0x1000101c .. 0x10001fff
    ** Programming Finished **
    ** Verify Started **
    Error: CMSIS-DAP command CMD_DISCONNECT failed.
    Info : SWD DPIDR 0x2ba01477
    ** Verified OK **

    ReplyDelete
    Replies
    1. It could be something intermittent OpenOCD sending bad command. Have you tried the IDAPnRFProg ? There is a version for RPI. It can flash multiple boards if you have mulltiple IDAP-Link connected.

      Delete
    2. You can donwload it from here https://sourceforge.net/projects/idaplinkfirmware/files/

      Delete
    3. About 10-20% of the time I'm getting one of these two errors:
      https://pastebin.com/fw72V0Jr

      This is giving it the sd, app & bootloader, where the app has the protect flag enabled when compiled. Most time it succeeds, but the fail rate is still quite high for production.

      Delete
    4. Does this happen on the newer rev G ?

      Delete
    5. rev G? Sorry not sure what you're referring to. My boards are labelled as rev 4.1.

      Delete
    6. Thanks for the info about Linux/macOS issues. I meant the nRF52 rev G chip. But it looks like you found the issue is related to Linux and macOS only.

      Delete
    7. Ah I will need to check the rev of the nRF52 next time I sit down at my workstation. Issues regarding updating the firmware of the IDAP-Link was definitely linked to Windows vs Linux/macOS. I haven't tested IDAPnRFProg through Windows but it could be worth a try.

      At the moment we're going to run the OpenOCD command until we get ** Verified OK ** without "Error: CMSIS-DAP command CMD_DISCONNECT failed" beforehand. It often works on the first go, but sometimes can take up to 5 tries.

      Delete
  51. Hello,
    We need to program new nRF52832 modules where is loaded testing firmware from our supplier and it's also locked. Is there any way, how we can do recovery with IDAP-Link?

    I'll appreciate any help.

    Thanks

    ReplyDelete
    Replies
    1. Download the IDAPnRFProg here https://sourceforge.net/projects/idaplinkfirmware/files/. It will automatically recover locked module when flashing or erase.

      Delete
  52. Hello I have a few questions.

    1. Trying to debug the nrf52832 via idap-link.
    Connect to tvcc-vcc, swdio-swdio, swclk-swclk, and gnd-gnd of p1, run keil and press debug-usb(cmsis-dap debuuger)-setting.
    In the swdevice tab, swd/jtag communication failure is displayed. I'd like to know why that happens.

    2. When I run idapnrfprog, a window pops up for a while and disappears. Is this correct?

    3. When downloading using a micro sd card, I cannot find a program called IDAPSetTarget program. where is that program?

    ReplyDelete
    Replies
    1. Hi,
      1) The IDAP-Link supports both JTag & SWD mode. By default Keil might select JTAG instead of SWD. Make sure to switch to SWD for the nRF5 series
      2) The IDAPnRFProg is a command line executable. You need to open the shell console to run it.
      3) Download IDAP software here https://sourceforge.net/projects/idaplinkfirmware/files/

      Delete
    2. I am trying to download firmware to nrf52 using IDAPSetTarget.
      target selected has 0 - only nrf51 and no nrf52.
      Is there anything else I need to do?

      Delete
    3. IDAPSetTarget is not meant for download firmware. It is used to set the target device you want to program. Execute IDAPSetTarget 2 to set nRF52. Execute IDAPSetTarget will list all available target.
      IDAPSetTarget Ver. 1.6.180903
      Copyright (c) 2014-2018, I-SYST inc.

      This program is used to set the runtime target for the IDAP-Link/IDAP-M

      Found - IDAP-Link/M CMSIS-DAP, S/N : 6030419000274, Fw ver : 1.6.181013

      Usage :
      IDAPSetTarget x [-p]
      x : target number listed bellow


      IDAPSetTarget -f filename.dat
      filename.dat : Custom target data file

      Avalable tagets :
      1 - nRF51 : Nordic nRF51 Series
      2 - nRF52 : Nordic nRF52 Series
      3 - S1C31D01e : Epson S1C31D01 external power
      4 - S1C31D01i : Epson S1C31D01 internal power
      5 - S1C31W74e : Epson S1C31W74 external power
      6 - S1C31W74i : Epson S1C31W74 internal power

      Then copy your firmware.hex to the SDcard. Insert it in the IDAP. Power cycle the IDAP then press Program button. The IDAP must not be connected to the PC for this process. Flashing via SDCard is very slow. Download the IDAP user guide. It is explained in it.

      Delete
  53. hi Hoan
    I am trying to download without a PC using idap-link.
    After setting to 2 using idapsettarget, insert the corresponding 3 firmware into micro sd, remove idap-link from the pc, and press the s1 button, led1 turns red for a long time and turns off. If you check, the firmware is not downloaded properly. When I put the firmware in the micro sd, I put it as Softdevice.hex, firmware.hex, and DFU.hex. Are there any other settings besides that?

    ReplyDelete
    Replies
    1. is your device protected? Flashing via SDcard does not support protected device. I recommend using IDAPnRFProg instead. You execute it from the command line and pass all 3 hex as parameter

      Delete

    2. Can I modify settarget open source to download protected devices?

      Delete
    3. First thing I need you to check. Are you able to flash your board using IDAPnRFProg. If it could not flash your board, there is a problem with your board SWD. Not all SDCard works. Try small SDcards about 4GBytes.

      Delete
  54. Dear Hoan,
    When programming two devices at once, the IDAPnRFProg (Ver. 1.10.240208) reports "Total programmed 2 nRF5x devices in..." even if one of them has failed. Therefore we need to check the individual lines "Programming succeeded." or "Programming failed." to get the correct status.
    Is this supposed to happen?

    Furthermore, version 1.10.240208 of the software displays the serial number of the IDAP-Link board instead of its firmware version:
    "Found IDAP-Link/M - S/N : 6030419000410, Firmware : 6030419000410"

    ReplyDelete
    Replies
    1. The problem of displaying the serial number instead of the firmware version is solved by updating the IDAP-Link firmware to version 1.7.240208. However, previous versions of the programming software (IIDAPnRFProg) will no longer report the correct firmware version.
      Are there any other changes in the latest firmware version?

      Delete
    2. Does the IDAPnRFProg software v1.10 work correctly with firmware versions prior to v1.7 for the IDAP-Link modules?

      Delete