Skip to content

Can't connect to the emulator #254

@diggit

Description

@diggit

OS: Archlinux
J-Link SW package: V9.14a, same happens with V9.16
pylink: v2.0.0 via PKGBUILD
emulator: J-Link compact, 12.1, SN(redacted): 8xxxxxx84

I believe some recent change in the J-Link software package broke pylink compatibility.

Usage snippet:

try:
	# Connect to the target device
	logger.info("opening J-Link connection")
	jlink = pylink.JLink()
	jlink.disable_dialog_boxes()
	jlink.open()
	jlink.set_tif(pylink.enums.JLinkInterfaces.SWD)
	
	logger.info("Connecting to target") # this is never reached
	jlink.connect(args.target)
	# more code...
except pylink.JLinkException as e:
	logger.error(f"An error occurred: {str(e)}")

Raises error:

Traceback (most recent call last):
  File "eol.py", line 983, in <module>
    jlink.open()
    ~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/pylink/jlink.py", line 734, in open
    raise errors.JlinkException('Could not connect to default emulator.')
          ^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pylink.errors' has no attribute 'JlinkException'. Did you mean: 'JLinkException'?

because there is a typo, a lower case l in

raise errors.JlinkException('Could not connect to default emulator.')

After fixing that, the log looks like this:

Log, click to expand
[    INFO] EOLTST : opening J-Link connection
[   DEBUG] pylink.jlink : T34C9DBC0 000:013.613
[   DEBUG] pylink.jlink : Firmware: J-Link V12 compiled Dec 18 2025 15:13:50
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:014.079
[   DEBUG] pylink.jlink : Firmware: J-Link V12 compiled Dec 18 2025 15:13:50
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:030.021
[   DEBUG] pylink.jlink : Hardware: V12.00
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:030.216
[   DEBUG] pylink.jlink : S/N: 8xxxxxx84
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:030.309
[   DEBUG] pylink.jlink : OEM: SEGGER
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:030.396
[   DEBUG] pylink.jlink : Feature(s): GDB
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:031.214
[   DEBUG] pylink.jlink : Bootloader: 2022 Oct 19
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:032.382
[   DEBUG] pylink.jlink : EMU: Cleaned up zombie connection 0. PID: 0x5615 (22037)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:032.748
[   DEBUG] pylink.jlink : USB speed mode: High speed (480 MBit/s)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.080
[   DEBUG] pylink.jlink : TELNET listener socket opened on port 19021
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.342
[   DEBUG] pylink.jlink : WEBSRV WEBSRV_Init(): Starting webserver thread(s)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.486
[   DEBUG] pylink.jlink : WEBSRV Webserver running on local port 19080
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.578
[   DEBUG] pylink.jlink : Looking for J-Link GUI Server exe at: /tmp/JLinkGUIServerExe
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.630
[   DEBUG] pylink.jlink : Looking for J-Link GUI Server exe at: /opt/SEGGER/JLink/JLinkGUIServerExe
[   DEBUG] pylink.jlink : T34C9DBC0 000:033.678
[   DEBUG] pylink.jlink : Forking J-Link GUI Server: /opt/SEGGER/JLink/JLinkGUIServerExe
[   DEBUG] pylink.jlink : T34C9DBC0 000:051.626
[   DEBUG] pylink.jlink : J-Link GUI Server info: "J-Link GUI server V9.14a "
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.381
[   DEBUG] pylink.jlink : - 50.875ms returns 0x00
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.523
[   DEBUG] pylink.jlink : JLINK_ExecCommand("SuppressControlPanel", ...).
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.567
[   DEBUG] pylink.jlink : - 0.044ms returns 0x00
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.603
[   DEBUG] pylink.jlink : JLINK_ExecCommand("DisableInfoWinFlashDL", ...).
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.651
[   DEBUG] pylink.jlink : - 0.049ms returns 0x00
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.693
[   DEBUG] pylink.jlink : JLINK_ExecCommand("DisableInfoWinFlashBPs", ...).
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.723
[   DEBUG] pylink.jlink : - 0.030ms returns 0x00
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.782
[   DEBUG] pylink.jlink : JLINK_SelectUSB(Port = 0)
[    INFO] pylink.jlink : JLINK_SelectUSB() may not be called after JLINK_Open(). Call ignored.
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.843
[   DEBUG] pylink.jlink : 
  ***** Warning:
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.888
[   DEBUG] pylink.jlink : JLINK_SelectUSB() may not be called after JLINK_Open(). Call ignored.
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : T34C9DBC0 000:052.940
[   DEBUG] pylink.jlink : - 0.159ms returns 1
[   ERROR] EOLTST : An error occurred: Could not connect to default emulator.
[   DEBUG] pylink.jlink : T34C9DBC0 000:061.752
[   DEBUG] pylink.jlink : JLINK_IsOpen()
[   DEBUG] pylink.jlink : T34C9DBC0 000:061.926
[   DEBUG] pylink.jlink : - 0.173ms returns 0x01
[   DEBUG] pylink.jlink : T34C9DBC0 000:061.974
[   DEBUG] pylink.jlink : JLINK_EMU_IsConnected()
[   DEBUG] pylink.jlink : T34C9DBC0 000:062.010
[   DEBUG] pylink.jlink : - 0.036ms returns TRUE
[   DEBUG] pylink.jlink : T34C9DBC0 000:062.043
[   DEBUG] pylink.jlink : JLINK_IsOpen()
[   DEBUG] pylink.jlink : T34C9DBC0 000:062.073
[   DEBUG] pylink.jlink : - 0.030ms returns 0x01

I also tried explicitly selecting my probe by serial: jlink.open(serial_no=8xxxxxx84) and jlink.open(serial_no="8xxxxxx84")
In both cases connecting to the emulator fails:

Log, click to expand
[    INFO] EOLTST : opening J-Link connection
[   DEBUG] pylink.jlink : TA8C16BC0 000:013.608
[   DEBUG] pylink.jlink : Firmware: J-Link V12 compiled Dec 18 2025 15:13:50
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:014.086
[   DEBUG] pylink.jlink : Firmware: J-Link V12 compiled Dec 18 2025 15:13:50
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:030.010
[   DEBUG] pylink.jlink : Hardware: V12.00
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:030.244
[   DEBUG] pylink.jlink : S/N: 8xxxxxx84
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:030.341
[   DEBUG] pylink.jlink : OEM: SEGGER
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:030.429
[   DEBUG] pylink.jlink : Feature(s): GDB
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:031.423
[   DEBUG] pylink.jlink : Bootloader: 2022 Oct 19
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:034.268
[   DEBUG] pylink.jlink : EMU: Cleaned up zombie connection 1. PID: 0x580C (22540)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:034.711
[   DEBUG] pylink.jlink : USB speed mode: High speed (480 MBit/s)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:035.094
[   DEBUG] pylink.jlink : TELNET listener socket opened on port 19021
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:035.323
[   DEBUG] pylink.jlink : WEBSRV WEBSRV_Init(): Starting webserver thread(s)
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:036.548
[   DEBUG] pylink.jlink : WEBSRV Webserver running on local port 19080
[   DEBUG] pylink.jlink : 
[   DEBUG] pylink.jlink : TA8C16BC0 000:036.680
[   DEBUG] pylink.jlink : Looking for J-Link GUI Server exe at: /tmp/JLinkGUIServerExe
[   DEBUG] pylink.jlink : TA8C16BC0 000:036.759
[   DEBUG] pylink.jlink : Looking for J-Link GUI Server exe at: /opt/SEGGER/JLink/JLinkGUIServerExe
[   DEBUG] pylink.jlink : TA8C16BC0 000:036.826
[   DEBUG] pylink.jlink : Forking J-Link GUI Server: /opt/SEGGER/JLink/JLinkGUIServerExe
[   DEBUG] pylink.jlink : TA8C16BC0 000:055.071
[   DEBUG] pylink.jlink : J-Link GUI Server info: "J-Link GUI server V9.14a "
[   DEBUG] pylink.jlink : TA8C16BC0 000:055.811
[   DEBUG] pylink.jlink : - 54.324ms returns 0x00
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.007
[   DEBUG] pylink.jlink : JLINK_ExecCommand("SuppressControlPanel", ...).
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.095
[   DEBUG] pylink.jlink : - 0.087ms returns 0x00
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.169
[   DEBUG] pylink.jlink : JLINK_ExecCommand("DisableInfoWinFlashDL", ...).
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.236
[   DEBUG] pylink.jlink : - 0.068ms returns 0x00
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.276
[   DEBUG] pylink.jlink : JLINK_ExecCommand("DisableInfoWinFlashBPs", ...).
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.307
[   DEBUG] pylink.jlink : - 0.032ms returns 0x00
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.372
[   DEBUG] pylink.jlink : JLINK_EMU_SelectByUSBSN(SerialNo = 8xxxxxx84)
[   DEBUG] pylink.jlink : TA8C16BC0 000:056.407
[   DEBUG] pylink.jlink : - 0.035ms returns 0xFFFFFFFF
[   ERROR] EOLTST : An error occurred: No emulator with serial number 8xxxxxx84 found.
[   DEBUG] pylink.jlink : TA8C16BC0 000:065.957
[   DEBUG] pylink.jlink : JLINK_IsOpen()
[   DEBUG] pylink.jlink : TA8C16BC0 000:066.190
[   DEBUG] pylink.jlink : - 0.234ms returns 0x01
[   DEBUG] pylink.jlink : TA8C16BC0 000:066.246
[   DEBUG] pylink.jlink : JLINK_EMU_IsConnected()
[   DEBUG] pylink.jlink : TA8C16BC0 000:066.283
[   DEBUG] pylink.jlink : - 0.037ms returns TRUE
[   DEBUG] pylink.jlink : TA8C16BC0 000:066.325
[   DEBUG] pylink.jlink : JLINK_IsOpen()
[   DEBUG] pylink.jlink : TA8C16BC0 000:066.364
[   DEBUG] pylink.jlink : - 0.039ms returns 0x01

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions