MCU-Link-MR v0.5: Enhanced Debug Probe for ARM Cortex-M

The MCU-Link-MR debug probe has been updated :-).

MCU-Link MR v0.5
MCU-Link MR v0.5

The MCU-Link-MR is a CMSIS-DAP debug probe for ARM Cortex-M devices with extra features for mobile robot and drone debugging. The project is open source and available on GitHub with KiCAD files and BOM.

I have built the new PCB back in October this year. But only these days I have found time to assemble and test the new board.

The version of the PCB has been bumped to v0.5.

Rendering in KiCAD, top side
Rendering in KiCAD, top side
Rendering in KiCAD, bottom side
Rendering in KiCAD, bottom side

Compared to the v0.2 version which you can order from NXP or from distributors, the v0.5 includes the following major changes:

  • UART with flow control (RTS/CTS), with level-shifter and solder jumper to disconnect the signals
  • 3-pin 2.54 mm Pixhawk logic analyzer header
  • Reduced BOM costs with 0402 parts instead of 0603
  • Silkscreen cleanup and simplification

Especially the UART flow control plus the logic analyzer pins are a plus dealing with any debugging target.

All the design files are on GitHub, so you can build your own debug probe. With the BOM and design files you can order it from PCB vendors too (e.g. PCBWay).

Happy debugging 🙂

Links

4 thoughts on “MCU-Link-MR v0.5: Enhanced Debug Probe for ARM Cortex-M

  1. I have an issue using the Segger J-Link debugger. The debugger doesn’t like to maintain the connection through the MCU switching power states. So starting a debug session then going from run mode to sleep mode and then back to run mode means the debugging session is lost. This doesn’t happen with Keil ULINKpro.

    But what about the MCU-Link? Does the MCU-Link also have this problem? Does MCU-Link only work with NXP parts? Thank you.

    Like

    • Hi Chris,
      no, I have not seen such an issue with J-Link or MCU-Link. Going through sleep mode is working fine. STOP mode is something different, as it can disable the debug peripheral and the debugger looses connection.
      MCU-Link works with any ARM-Cortex-M parts as CMSIS-DAP debug probe. What is supported is not depending on the debug probe hardware, but by the GDB client software on the host. I’m using MCU-Link with pyOCD, OpenOCD, NXP LinkServer for for example in VS Code with Cortex-Debug.

      Like

      • Hi Erich,

        I made a mistake in my first post, I mean to say “stop” mode instead of sleep mode. You’re correct, the debug peripheral is usually disabled. To me, this is a design flaw. If you’re debugging clearly you’re not as concerned with power consumption so the debugger peripheral should be in an always-on power domain.

        And what I’m understanding from you is that if the MCU core has this limitation, there’s nothing MCU-Link/OpenOCD/NXP LinkServer/etc can do about this.

        Thanks for your expert information.

        Like

        • Hi Chris,
          some devices do allow the debug block enabled in STOP mode (depending on the mode). The reason why it is usually disabling the debug block is for exactly the reason to reduce energy consumption.
          Some devices detect if an active debug connection is active, and in this case they keep the debug block enabled. But that means it is not really going into STOP mode then.

          Like

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.