Skip to content

Latest commit

 

History

History
47 lines (39 loc) · 2.63 KB

README.md

File metadata and controls

47 lines (39 loc) · 2.63 KB

Pyrus

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.

What's working

  • 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

Building

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.

Flashing

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

Acknowledgments