Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

mcp-can-boot-flash-app

crycode-de28CC-BY-NC-SA-4.02.2.3

Flash application for the MCP-CAN-Boot CAN bus bootloader

mcp2515, bootloader, can bus, avr, atmega

readme

MCP-CAN-Boot Flash-App

MCP-CAN-Boot logo

NPM version Downloads

NPM

Flash application for MCP-CAN-Boot, a CAN bus bootloader for AVR microcontrollers attached to an MCP2515 CAN controller.

The bootloader

More information about the bootloader are available in the official repository: https://github.com/crycode-de/mcp-can-boot

Requirements

  • Node.js version 12.x or higher.

  • The system where the flash-app is run needs a CAN interface to which the target MCU is connected.

    This may be a Raspberry Pi with an attached MCP2515 CAN controller, for example.

Usage

No need to install: Just run the flash-app using npx (this will take a moment):

npx mcp-can-boot-flash-app [...]

Or install it globally and run it if you need it more often (recommended):

npm install -g mcp-can-boot-flash-app
mcp-can-boot-flash-app [...]

Flash-App parameters

-f, --file           Hex file to flash                     [string] [required]
-i, --iface          CAN interface to use           [string] [default: "can0"]
-p, --partno         Specific AVR device like in avrdude   [string] [required]
-m, --mcuid          ID of the MCU bootloader              [string] [required]
-e                   Erase whole flash before flashing new data      [boolean]
-V                   Do not verify                                   [boolean]
-r                   Read flash and save to given file (no flashing!),
                     optional with maximum address to read until      [string]
-F                   Force flashing, even if the bootloader version
                     missmatched                                     [boolean]
-R, --reset          CAN message to send on startup to reset the MCU
                     (<can_id>#{hex_data})                            [string]
    --can-id-mcu     CAN-ID for messages from MCU to remote
                                                 [string] [default: 536870657]
    --can-id-remote  CAN-ID for messages from remote to MCU
                                                 [string] [default: 536870658]
    --sff            Use Standad Frame Format (SFF) instead of the default
                     Extended Frame Format (EFF) for the CAN-IDs     [boolean]
    --ping           Send a ping in the given interval (ms) to keep the bus
                     active (should be used if the bootloader uses bitrate
                     detection)                                       [number]
-v, --verbose        Enable verbose logging output                   [boolean]
-h, --help           Show help                                       [boolean]

Examples:

npx mcp-can-boot-flash-app -f firmware.hex -p m1284p -m 0x0042
npx mcp-can-boot-flash-app -f firmware.hex -p m1284p -m 0x0042 --reset 020040FF#4201FA
npx mcp-can-boot-flash-app -f firmware.hex -p m1284p -m 0x0042 --reset 020040FF#4201FA --ping 75
npx mcp-can-boot-flash-app -r -f - -p m328p -m 0x0042

License

CC BY-NC-SA 4.0

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

Copyright (C) 2020-2024 Peter Müller peter@crycode.de https://crycode.de

changelog

MCP-CAN-Boot Flash-App Changelog

v2.2.3 2024-08-15

  • Added support for ATmega328PB mcu
  • Updated dependencies (Node 20.x is now supported)

v2.2.2 2023-05-11

  • Added support for ATmega32U4 mcu

v2.2.1 2023-05-04

  • Added support for sending ping messages (usefull if the bootloader uses bitrate detection)
  • Added progress bars (thanks to Dan Hankewycz #2)
  • Added verbose option (thanks to Dan Hankewycz #2)
  • Updated dependencies

v2.1.1 2022-07-05

  • Updated error message when the hex file was too big
  • Updated dependencies

v2.1.0 2021-06-18

  • Added support for Standard Frame Format (SFF) CAN-IDs
    New argument: -sff

v2.0.0 2021-06-14

⚠ BREAKING CHANGES

  • Drop Node.js 10 support - Required Node.js version is now 12.x
  • Updated dependencies

v1.1.1 2021-02-24

  • Moved repository to GitHub

v1.1.0 2020-09-05

  • Added parameter for mcu reset