Skip navigation

J-Link Remote Server

J-Link Remote Server is a utility (available as command line or GUI application) that makes a J-Link accessible via IP, be it in the local network or from anywhere on the world. Best of all: The J-Link itself does not need to provide an Ethernet interface, USB is sufficient.

Debug from anywhere in the world...

The tunneling mode of the Remote Server allows to make a J-Link available through the internet. This means that a target device sitting on a work desk in the US can be debugged out of a plane flying over the ocean to Europe or China.

There is no need to have a physical connection to the J-Link and target hardware it is connected to.

This especially becomes interesting when using services like Amazon Web Services (AWS). This allows to move the whole development to the cloud, working with remote access during travel etc. without the need to have all the equipment in the baggage. Another case is for example bringing new devices up early, with silicon that is sitting on a board far away and the hardware cannot be sent due to low volume or export regulations etc..

The J-Link Remote Server is also compatible to the SEGGER production programmers, Flashers. This opens up another use case for the J-Link Remote Server: Updating Flashers that are in a production environment far away (again: US -> China for example). This enables updating the Flasher contents without having hardware sent or people traveling and saves resources, time and money.

... or in your local area network

The other mode the J-Link Remote Server can run in is the LAN mode. In this mode it makes a J-Link remotely accessible in the local network (LAN). This especially makes sense when having for example big target hardware that cannot be moved or test farms where multiple J-Links are installed, optionally having the test farms installed in another building.

GUI or command line?

Both. The J-Link Remote Server is available as a GUI application and as a command line application. The GUI and the command line versions are available cross-platform for Windows, macOS and Linux. Meaning that the server can be run on a desktop PC or even a headless system like a Raspberry Pi without graphical user interface.

RemoteServerGUI.png
GUI application
RemoteServerCL.png
Command Line application

How does it work?

Tunnel mode

Tunnel_Connection_800x.png

The J-Link to be made available is connected via USB or IP to a PC. The J-Link Remote Server utility is started on that PC. The J-Link from now on is accessible from any IDE etc. as if it is directly connected to the PC the IDE is running on.

Once started, the J-Link Remote Server will establish a connection to a tunnel server which will manage the connections. From there on, the tunnel server will wait for a client to connect and requesting a connection to the J-Link.

On the IDE side, things are mainly like the J-Link would be connected directly to the PC. It is a one-setup thing to tell the J-Link software to establish a tunneled connection, with optional credentials that may be used to protect the connection.

The J-Link software on the IDE side will then establish a connection to the tunnel server and providing either the S/N or a customer chosen name to identify the J-Link it wants to connect to. The tunnel server then checks if it finds a registered Remote Server instance and if the credentials match.

From there on, the tunnel server will forward the traffic between the client (IDE, ...) and J-Link Remote Server. No side is directly connected to the other one and therefore not vulnerable. This procedure makes it possible to connect to and debug targets behind firewalls.

LAN mode

LAN_Connection_800x.png

The J-Link to be made available is connected via USB or IP to a PC. The J-Link Remote Server utility is started on that PC. The J-Link from now on is accessible from any IDE etc. as if it is directly connected to the PC the IDE is running on.

The J-Link software used by the IDE establishes a direct connection between the IDE and the J-Link Remote Server (which translates the IP traffic to USB commands) In this mode, the J-Link is not accessible from outside the LAN, unless the firewall etc. is explicitly configured to allow incoming connections etc..

How to use?

Using the J-Link Remote Server is very easy:

  • Connect the J-Link to be remotely accessed to a PC via USB or IP
  • Download the J-Link Remote Server application (part of the J-Link software package).
  • Start the Remote Server
  • Select the appropriate mode (LAN or tunnel)
  • Specify credentials (optional)
  • Done
RemoteServerConfig.png

Example client - J-Link Commander

Let's connect to this J-Link, which is potentially a couple thousand miles away.
We use J-Link Commander as a test client here, but it could be any IDE as well (e.g. SEGGER Embedded Studio)

Just start J-Link Commander and type the following IP command:
ip tunnel:<Name/SN>[:<PW>]

JLinkCmder.png

On the machine where the Remote Server is running, it will now show an active client connection:

RemoteServerConnected.png

From now on, the J-Link can be used as if it was connected directly to the PC.
Easy as that.

For more examples and a troubleshooting guide refer to the SEGGER Wiki.

FAQs

Can I use the remote connection with Embedded Studio?

A: Yes. The wiki containts a brief instruction for Embedded Studio.

Can I use the remote connection with IAR Embedded Workbench IDE?

A: Yes. The wiki containts a brief instruction for IAR Embedded Workbench IDE.

Can I use the remote connection with GDB / Eclipse?

A: Yes. The wiki containts a brief instruction for GDB/ Eclipse.