All Projects → albsod → pinetime-hypnos

albsod / pinetime-hypnos

Licence: Apache-2.0 License
Zephyr firmware for the nRF52832 PineTime smartwatch

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to pinetime-hypnos

remote-pinetime-bot
Telegram Bot to flash and test PineTime firmware remotely
Stars: ✭ 23 (-55.77%)
Mutual labels:  firmware, pinetime
home
Monorepo for all home automation related development, including integrated firmware, PCBs, configuration, and bridges
Stars: ✭ 104 (+100%)
Mutual labels:  firmware
seeed-ambd-firmware
This RTL8720DN firmware export a RPC server interface through hardware SPI/UART port to MCU.
Stars: ✭ 20 (-61.54%)
Mutual labels:  firmware
xiaomi-r3g-openwrt-builder
OpenWrt builder for any supported routers using Docker. Scheduled to run weekly
Stars: ✭ 25 (-51.92%)
Mutual labels:  firmware
platform-ststm8
ST STM8: development platform for PlatformIO
Stars: ✭ 30 (-42.31%)
Mutual labels:  firmware
OpenWare
Firmware for OWL devices
Stars: ✭ 23 (-55.77%)
Mutual labels:  firmware
libmcu
A toolkit for firmware development
Stars: ✭ 33 (-36.54%)
Mutual labels:  firmware
SuperLEDstrip
No description or website provided.
Stars: ✭ 13 (-75%)
Mutual labels:  firmware
Tinymovr
Compact brushless motor controller with integrated absolute encoder and CAN Bus.
Stars: ✭ 90 (+73.08%)
Mutual labels:  firmware
kobopatch-patches
Patches for use with kobopatch.
Stars: ✭ 134 (+157.69%)
Mutual labels:  firmware
thinx-device-api
Remote IoT Device Management Platform
Stars: ✭ 19 (-63.46%)
Mutual labels:  firmware
smbusb
USB SMBus Interface
Stars: ✭ 93 (+78.85%)
Mutual labels:  firmware
README
All Huawei modifications README, compilation instructions, etc
Stars: ✭ 72 (+38.46%)
Mutual labels:  firmware
firmware-core
nodewatcher firmware.
Stars: ✭ 26 (-50%)
Mutual labels:  firmware
SnowFlakeProject
All open source data of the snow flake project.
Stars: ✭ 37 (-28.85%)
Mutual labels:  firmware
ftcommunity-TXT
Fischertechnik ROBOTICS TXT firmware, community edition
Stars: ✭ 39 (-25%)
Mutual labels:  firmware
lucidgloves
Arduino/ESP32 based DIY VR Haptic gloves. Compatible with SteamVR via OpenGloves.
Stars: ✭ 1,149 (+2109.62%)
Mutual labels:  firmware
ESP32 BLE OTA Arduino
OTA update on ESP32 via BLE
Stars: ✭ 41 (-21.15%)
Mutual labels:  firmware
FreiKey
My fully custom ergonomic two piece Bluetooth keyboard
Stars: ✭ 16 (-69.23%)
Mutual labels:  firmware
firmware
The Firmware for the Freifunk Bielefeld Community
Stars: ✭ 23 (-55.77%)
Mutual labels:  firmware

Hypnos

This is a Zephyr-based firmware for the PineTime and P8 smartwatches.

Hypnos, son of Night and Darkness
He is said to be a calm and gentle god, as he helps humans in need and, due to their sleep, owns half of their lives.1

Features and roadmap

  • 100 % Free Software
  • Battery life: about one week
  • Battery status: get state of charge and whether it's charging
  • Clock: accurately increment current time
  • Time and date synchronization with Bluetooth-connected device
  • Touch sensor: tap to light up the display, swipe to display version information
  • LVGL graphics: show time, date, battery and Bluetooth status
  • Support for the PineTime bootloader
  • Over-the-air firmware updates (SMP over BLE)
  • Optional debug output via JLink RTT
  • Show notifications from Bluetooth-connected device
  • Set alarm
  • Wrist vibration
  • Quick glance via lift-to-wake

Developer getting started guide

This document assumes that you run a GNU/Linux or Mac operating system.

Set up the development environment

Follow Zephyr's Getting Started Guide up to step 3.2 "Get the Zephyr source code". Here you should run the commands below instead of the ones in the guide:

$ git clone https://github.com/endian-albin/pinetime-hypnos
$ cd pinetime-hypnos
$ west init -l app/
$ west update

Then complete the remaining steps under section 3 and 4. Finally, run make tools.

Build and flash Hypnos

Run make to build everything with the defaults or make help to view all the options and targets.

Then connect your in-circuit programmer and run make flash. To install without a programmer, see Firmware updates below.

Build and flash the bootloader

To install or upgrade the bootloader, follow Lup Yuen's build instructions or fetch the prebuilt binary.

Then flash it to the beginning of the internal memory:

pyocd flash -e sector -t nrf52 bootloader-image.bin

Firmware updates

SMP over Bluetooth LE

Hypnos supports firmware image management over the Simple Management Protocol.

To make use of this feature, get the mcumgr command-line tool. Then run the commands below to list, upload, test and confirm firmware images over BLE:

# mcumgr --conntype="ble" --connstring ctlr_name=hci0,peer_name='Hypnos' image list
# mcumgr --conntype="ble" --connstring ctlr_name=hci0,peer_name='Hypnos' image upload hypnos-mcuboot-app-img.bin
# mcumgr --conntype="ble" --connstring ctlr_name=hci0,peer_name='Hypnos' image test <hash of slot-1 image>
# mcumgr --conntype="ble" --connstring ctlr_name=hci0,peer_name='Hypnos' reset
# mcumgr --conntype="ble" --connstring ctlr_name=hci0,peer_name='Hypnos' image confirm

If you are unhappy with the new image, simply run the reset command again instead of image confirm to revert to the old one. If the image has already been confirmed but you still want to revert, simply run the commands above but skip the upload step or perform a manual rollback (see below). See this document for more information.

DFU over Bluetooth LE

To install Hypnos over the air from InfiniTime, run make dfu to create a (Nordic) DFU package and upload it using ota-dfu.py or nRF Connect.

Manual rollback

Version 5 of Lup Yuen's bootloader allows you to revert to the old firmware image by holding the button during boot.

Copying

This software may be used under the terms of the Apache License 2.0, unless explicitly stated otherwise.

The documentation contained in this README and on the wiki are under the CC BY-SA 4.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].