Skip to main content

Python interface for SEGGER J-Link.

Project description

Build Status

Python interface for the SEGGER J-Link.


Clone the project into a local repository, then navigate to the directory and run:

$ python install

External Dependencies

In order to use this library, you will need to have installed the SEGGER tools. The tools can be installed from the SEGGER website here. This package is compatible with versions of the SEGGER tool >= 6.0b. Download the software under J-Link Software and Documentation Pack for your specific hardware. PyLink will automatically find the library if you have installed it this way, but for best results, you should use one of the two methods listed below depending on your operating system:

On Mac

# Option A: Copy the library to your libraries directory.
$ cp libjlinkarm.dylib /usr/local/lib/

# Option B: Add SEGGER's J-Link directory to your dynamic libraries path.

On Windows

Windows searches for DLLs in the following order:

  1. The current directory of execution.
  2. The Windows system directory.
  3. The Windows directory.

You can copy the JLinkARM.dll to any of the directories listed above. Alternatively, add the SEGGER J-Link directory to your %PATH%.

On Linux

# Option A: Copy the library to your libraries directory.
$ cp /usr/local/lib/

# Option B: Add SEGGER's J-Link library path to your libraries path.


import pylink

if __name__ == '__main__':
   serial_no = '123456789'
   jlink = pylink.JLink()

   # Open a connection to your J-Link.

   # Connect to the target device.
   jlink.connect('device', verbose=True)

   # Do whatever you want from here on in.
   jlink.flash(firmware, 0x0)


Should you run into any issues, refer to the documentation, as well as check out our troubleshooting document.


Documentation follows the Google Python Style Guide, and uses `Sphinx <>`__ documentation generator with the `Napoleon <>`__ extension to provide Google style Python support. To generate the documentation, these packages will need to be installed (they are included in the provided requirements.txt file). With these packages installed, you can generate the documentation as follows:

$ cd docs
$ make html


To run tests, execute the following:

# Unit tests
$ python test

# Functional tests
$ python bddtest

There are two types of tests: functional and unit. Information about both can be found under `tests/ <tests/>`__.


Code coverage can be generated as follows:

$ python coverage
$ open htmlcov/index.html


Please see the documentation on contributing.


Copyright 2017 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

See terms and conditions here.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
pylink_square-0.1.2-py2.py3-none-any.whl (69.3 kB) Copy SHA256 hash SHA256 Wheel py2.py3
pylink-square-0.1.2.tar.gz (68.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page