isp-programmer
ISP Programmer for NXP Cortex-M Chips
Command-line tool for programming NXP microcontrollers via the UART ISP interface.
Features
Secure Write
To prevent bricking the chip during an interrupted write:
- The checksum in flash is first set to zero, forcing the chip to boot into ISP mode if power is lost.
- The image is then written from the topmost page down to the first page.
- The first sector (which contains the valid checksum) is written last.
This ensures that any failure during programming will leave the chip in ISP mode.
Chip Families Supported:
- LPC80x
- LPC802
- LPC804
- LPC82x
- LPC822
- LPC824
- LPC84x
- LPC844
- LPC845
Untested, expected to work
- LPC81x
- LPC810
- LPC811
- LPC812
- LPC83x
- LPC832
- LPC834
- LPC86x
- LPC865
Chips using UU-encoded protocols (e.g., LPC1700 family) are not supported.
Other NXP devices with 1 kB sectors may work if added to the lpctools_parts.def file.
The configuration file is identical to that used by the lpctools project.
Installation
From PyPI
pip install ispprogrammer
From Source
git clone https://github.com/snhobbs/isp-programmer.git
cd isp-programmer
pip install .
Default chip definitions are bundled. For custom chips, use the --config-file flag or copy your lpctools_parts.def to /etc/lpctools_parts.def.
Usage
Erase Entire Flash
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 masserase
Program Flash Image
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 writeimage --imagein blinky804.hex
Read Chip Info
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 querychip
Similar Projects
Release files for ispprogrammer 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ispprogrammer-1.3.0.tar.gz | 69.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ispprogrammer-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 87.8 kB
Release files / ispprogrammer-1.3.0.tar.gz
| Download URL | ispprogrammer-1.3.0.tar.gz |
|---|---|
| Size | 69.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cd05aa1552fed8e7469f861bea7a0590a9afc7b09f2f40e88b56833a8da1d64
|
|
BLAKE2b-256 checksum How to use checksums |
5dd6f0aab0e4b03c08e7595b2fa0c933834134c7658f48178e5b2766b2fbcc65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2025.
Transparency logRelease files / ispprogrammer-1.3.0-py3-none-any.whl
| Download URL | ispprogrammer-1.3.0-py3-none-any.whl |
|---|---|
| Size | 18.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce06e31a06d5c2a2c0ef487f88b63ce111842f8730bfdd548f9e7451db59e236
|
|
BLAKE2b-256 checksum How to use checksums |
605561aa86b916dd2ab3a16233904ddce4c73255dabaef60ed95c3bf9d35c62f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2025.
Transparency log