Last updated: 2026-02-19
VSCP firmware contains examples for different hardware architectures of how to implement the Very Simple Control Protocol (VSCP, http://www.vscp.org).
Files are organized under hardware architecture with common file folders on each level where common files for vscp (folder /common) and common files for a specific architecture (folder /{arch}/common) reside.
Most important files for implementers are:
- /common/vscp_firmware.* (for Level I nodes) and
- /common/vscp_firmware_level2.* (for Level II (and Level I) nodes)
which both implements the VSCP protocol. The first alternative is created for very space limited devices, the second is for devices with more normal resources.
There are also some references to vscp_class.h and vscp_type.h which reside in the vscp_software repository in the path /src/vscp/common. It is preferred to include these files from that second repository (and not to make redundant copies if possible).
Documentation on how to build your own nodes from this code is here
Local module documentation for the helper library is available in docs/vscp-firmware-helper.md. Local module documentation for the VSCP FIFO helper is available in docs/vscp-fifo.md. Local module documentation for the Level I firmware core is available in docs/vscp-firmware.md. Local module documentation for the AES module is available in docs/vscp-aes.md. Local module documentation for the Level II firmware framework is available in docs/vscp-firmware-level2.md. Local module documentation for the VSCP link protocol is available in docs/vscp-link-protocol.md. Local module documentation for serial protocol definitions is available in docs/vscp-serial.md. Local module documentation for the bootloader is available in docs/vscp-bootloader.md. Host-side firmware update flow for bootloader integration is available in docs/vscp-bootloader-host-sequence.md. Reusable VSCP link protocol callback bring-up checklist is available in docs/examples/vscp-link-protocol-callback-checklist.md. Reusable VSCP Level I firmware porting checklist is available in docs/examples/vscp-firmware-porting-checklist.md.
- Added
vscp_fwhlp_parseStringValuebehavior notes in docs/vscp-firmware-helper.md, including base-prefix handling (0x,0,0b) andendptrtoken parsing semantics.
- Tests workflow: GitHub Actions - Tests
- Latest workflow runs: GitHub Actions runs
The main reference implementations for VSCP over CAN is the Paris and the Kelvin modules. Both can found here along with other open source products. All modules are available as ready made modules, bare pcb's and software and hardware is and will always be fully open and free. All design documents are open and available.
The whole source code is published under the MIT license. Consider the different licenses of possible third party libraries too!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.
Copyright 2000-2026 Ake Hedman akhe@grodansparadis.com, Grodans Paradis AB
