This repository contains a set of tools that can be used to flash some manufacturing information, recovery firmware, etc. to Core Devices watches.
It is recommended to use a Python virtual environment to install dependencies, which can be installed by running:
pip install -r requirements.txt
Device needs to be running the PRF (recovery) firmware.
This tool is used to flash unique information to each device such as serial numbers.
A device can be flashed by running:
python mfginfo-tool.py -p path/to/serial/port -s $SERIAL -v $HWVER
where $SERIAL is a 12-character serial number and $HWVER is the hardware
version, e.g. asterix.
NOTE: You can also pass --no-lock if you want to skip locking OTP.
It can be useful while testing, so you can retry as many times as you want.
Example of a successful run:
Erasing OTP OK
Writing S/N S101220A0009 OK
Writing HWVER asterix OK
Writing PCBA S/N S101220A0009 OK
Locking OTP OK
This tool is used to flash the PRF (recovery) firmware into the external flash.
PRF can be flashed by running:
python mfgrecovery-flash.py -t path/to/serial/port -p firmware path/to/prf.bin
Example of a successful run:
Erasing... done.
...............RRR................R.R.R..............RR.R..............R...R..............R.RR................RR..R.............R...R..............R.RR................RR................RR...............R..R................RR...............RRR................RR.......R..........R......R..........R.......R.........R....R.R.
Success!
This tool allows to access the PULSE console available on the serial port.
It can be used like this:
python pulse_console.py --tty path/to/serial/port
If using a firmware with log hashing, you can provide a dictionary file:
python pulse_console.py --tty path/to/serial/port --log-dict path/to/loghash_dict.json
This tool allows to access the plain console available on the serial port. This is the case on e.g. release builds.
It can be used like this:
python miniterm_co.py path/to/serial/port 230400
If using a firmware with log hashing, you can provide a dictionary file:
PBL_CONSOLE_DICT_PATH=path/to/loghash_dict.json python miniterm_co.py path/to/serial/port 230400