ispprogrammer


Nameispprogrammer JSON
Version 1.3.0 PyPI version JSON
download
home_pageNone
SummaryNXP ISP Cortex-M programming tool
upload_time2025-07-27 20:15:18
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT License Copyright (c) 2020 Simon Hobbs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords isp nxp program uart
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](http://git.techno-innov.fr/?p=lpctools).

## Installation

### From PyPI

```bash
pip install ispprogrammer
```

### From Source
```bash
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
```bash
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 masserase
```

### Program Flash Image
```bash
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 writeimage --imagein blinky804.hex
```

### Read Chip Info
```bash
ispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 querychip
```

## Similar Projects
+ [MXLI by JitterCompany](https://github.com/JitterCompany/mxli)
+ [NXP ISP by idreamoferp](https://github.com/idreamoferp/nxp_isp)
+ [NXP ISP Loader by pzn1977](https://github.com/pzn1977/nxp_isp_loader)
+ [LPC81x ISP Tool by laneboysrc](https://github.com/laneboysrc/LPC81x-ISP-tool)
+ [LPC21ISP by Senseg](https://github.com/Senseg/lpc21isp)
+ [Nxpprog by ulfen](https://github.com/ulfen/nxpprog)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ispprogrammer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "isp, nxp, program, uart",
    "author": null,
    "author_email": "Simon Hobbs <simon.hobbs@electrooptical.net>",
    "download_url": "https://files.pythonhosted.org/packages/5d/d6/f0aab0e4b03c08e7595b2fa0c933834134c7658f48178e5b2766b2fbcc65/ispprogrammer-1.3.0.tar.gz",
    "platform": null,
    "description": "# isp-programmer\nISP Programmer for NXP Cortex-M Chips\n\nCommand-line tool for programming NXP microcontrollers via the UART ISP interface.\n\n## Features\n### Secure Write\n\nTo prevent bricking the chip during an interrupted write:\n\n- The checksum in flash is first set to zero, forcing the chip to boot into ISP mode if power is lost.\n- The image is then written from the topmost page down to the first page.\n- The first sector (which contains the valid checksum) is written last.\n\nThis ensures that any failure during programming will leave the chip in ISP mode.\n\n## Chip Families Supported:\n+ LPC80x\n    + LPC802\n    + LPC804\n+ LPC82x\n    + LPC822\n    + LPC824\n+ LPC84x\n    + LPC844\n    + LPC845\n\n### Untested, expected to work\n+ LPC81x\n    + LPC810\n    + LPC811\n    + LPC812\n+ LPC83x\n    + LPC832\n    + LPC834\n+ LPC86x\n    + LPC865\n\nChips using UU-encoded protocols (e.g., LPC1700 family) are not supported.\nOther NXP devices with 1\u202fkB sectors *may* work if added to the `lpctools_parts.def` file.\n\nThe configuration file is identical to that used by the [lpctools project](http://git.techno-innov.fr/?p=lpctools).\n\n## Installation\n\n### From PyPI\n\n```bash\npip install ispprogrammer\n```\n\n### From Source\n```bash\ngit clone https://github.com/snhobbs/isp-programmer.git\ncd isp-programmer\npip install .\n```\n\n> Default chip definitions are bundled. For custom chips, use the --config-file flag or copy your lpctools_parts.def to /etc/lpctools_parts.def.\n\n\n## Usage\n### Erase Entire Flash\n```bash\nispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 masserase\n```\n\n### Program Flash Image\n```bash\nispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 writeimage --imagein blinky804.hex\n```\n\n### Read Chip Info\n```bash\nispprogrammer --device /dev/ttyUSB0 -b 9600 -crystal_frequency 12000 querychip\n```\n\n## Similar Projects\n+ [MXLI by JitterCompany](https://github.com/JitterCompany/mxli)\n+ [NXP ISP by idreamoferp](https://github.com/idreamoferp/nxp_isp)\n+ [NXP ISP Loader by pzn1977](https://github.com/pzn1977/nxp_isp_loader)\n+ [LPC81x ISP Tool by laneboysrc](https://github.com/laneboysrc/LPC81x-ISP-tool)\n+ [LPC21ISP by Senseg](https://github.com/Senseg/lpc21isp)\n+ [Nxpprog by ulfen](https://github.com/ulfen/nxpprog)\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2020 Simon Hobbs\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "NXP ISP Cortex-M programming tool",
    "version": "1.3.0",
    "project_urls": {
        "repository": "https://github.com/snhobbs/isp-programmer",
        "url": "https://github.com/snhobbs/isp-programmer"
    },
    "split_keywords": [
        "isp",
        " nxp",
        " program",
        " uart"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "605561aa86b916dd2ab3a16233904ddce4c73255dabaef60ed95c3bf9d35c62f",
                "md5": "0b9b27f5f4acb7db25dfe672546422a1",
                "sha256": "ce06e31a06d5c2a2c0ef487f88b63ce111842f8730bfdd548f9e7451db59e236"
            },
            "downloads": -1,
            "filename": "ispprogrammer-1.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0b9b27f5f4acb7db25dfe672546422a1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 18497,
            "upload_time": "2025-07-27T20:15:17",
            "upload_time_iso_8601": "2025-07-27T20:15:17.317714Z",
            "url": "https://files.pythonhosted.org/packages/60/55/61aa86b916dd2ab3a16233904ddce4c73255dabaef60ed95c3bf9d35c62f/ispprogrammer-1.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5dd6f0aab0e4b03c08e7595b2fa0c933834134c7658f48178e5b2766b2fbcc65",
                "md5": "22c53d50eaebf06ce44d05ff1ce2f8ae",
                "sha256": "5cd05aa1552fed8e7469f861bea7a0590a9afc7b09f2f40e88b56833a8da1d64"
            },
            "downloads": -1,
            "filename": "ispprogrammer-1.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "22c53d50eaebf06ce44d05ff1ce2f8ae",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 69311,
            "upload_time": "2025-07-27T20:15:18",
            "upload_time_iso_8601": "2025-07-27T20:15:18.590023Z",
            "url": "https://files.pythonhosted.org/packages/5d/d6/f0aab0e4b03c08e7595b2fa0c933834134c7658f48178e5b2766b2fbcc65/ispprogrammer-1.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 20:15:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "snhobbs",
    "github_project": "isp-programmer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ispprogrammer"
}
        
Elapsed time: 1.46036s