Pyrus is yet another PineTime firmware whose goal is to run bare metal, without any kind of RTOS.
This project is based on JF002's nrf52-baseproject, which is a base to get CMake to work with the nRF52 MCU and SDK.
- ST7789 LCD Controller, with support for hardware-assisted vertical scrolling
- nRF52's Real Time Counter, to keep track of the time
- nRF52's BLE, advertising and bonding works:
- AMS Client to control the current media on iOS devices
- CTS Client to synchronize the watch clock with the smartphone
You should follow the instructions of the nrf52-baseproject to get a build environment ready to compile Pyrus.
This project is currently being compiled using gcc-arm-none-eabi-10-2020-q4-major and the nRF5 SDK 17.0.2.
Once your environment is ready, you just have to run the following commands to compile this firmware:
git clone https://github.com/Arc13/Pyrus.git
cd Pyrus
mkdir build && cd build
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH=[...] -DNRF5_SDK_PATH=[...] -DNRFJPROG=[...] ..
If you haven't already, you need to flash the SoftDevice only once:
cmake --build . --target FLASH_SOFTDEVICE
To compile the firmware, you can run this command:
cmake --build . --target Pyrus-fw
You will then have the generated firmware image available under the src/
directory.
If your PineTime is directly connected to your machine (via, for instance, the nRF52-DK integrated SEGGER JLink debugger/programmer), you can flash this image to the smartwatch with the following command:
nrfjprog --program Pyrus-fw.hex --sectorerase
- JF002 for creating the nrf52-baseproject to easily get started on the nRF52 with CMake and CLion
- Pine64 and The PineTime community for all the precious information written in the wiki
- Canonical for the Ubuntu font (License for this font is provided here)
- The How to Code Your First Algorithm — Draw A Line article for the method and explanation on how to draw a line