nthdimtech / signet-base

Signet firmware and device interface library
https://www.crowdsupply.com/nth-dimension/signet
GNU General Public License v3.0
15 stars 7 forks source link

Firmware for Signet Devices

Prerequisites

Cloning Directions

This project uses git submodules, you will either need to use git clone --recursive <repourl> or after cloning use git submodule update --init.

Dependencies

The following packages must be installed: build-essential autoconf automake gperf texinfo help2man ncurses-dev bison flex libtool-bin libjson-c-dev libiberty-dev dfu-util

This has been tested in various GNU/Linux machines, in other platforms you might need more, and possibly differently named, packages.

Building the Signet Legacy Firmware

Prepare the Toolchain, Dependencies and Tools

This will build the toolchain and dependencies:

cd firmware
./build-deps.sh

To package the firmware for the Signet client GUI we need the firmware encoder: make signet-firmware-encoder.

Build the Firmware

make builds the Signet firmware.

Package it with: ./signet-firmware-encoder signet-fw.bin signet-fw.sfw

Building the Signet HC Firmware

Prepare the Toolchain, Dependencies and Tools

This will build the toolchain and dependencies:

cd firmware-hc
./signet-hc-build-deps.sh

To build the Signet High-capacity firmware encoder: make hc-firmware-encoder

Build the Firmware

Signet HC firmware has too parts, they need to be built separately: make BT_MODE=A and make BT_MODE=B.

To package Signet HC firmware, we need to specify the version number too: ./hc-firmware-encoder signet-fw-a.bin signet-fw-b.bin signet-fw-0.2.3.sfwhc 0 2 3

Reproducible Builds

Both Signet and Signet High-capacity firmware uses locally compiled toolchains (via crosstool-ng) to increase the chance of reproducible builds.