README/TODO: Switch to restructured text
This commit is contained in:
parent
6989eaf6a6
commit
56b39d6404
8 changed files with 285 additions and 241 deletions
129
README.md
129
README.md
|
@ -1,129 +0,0 @@
|
||||||
Watch Application System in Python
|
|
||||||
==================================
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
Currently in its infancy wasp-os provides only a little more than a simple
|
|
||||||
digital clock application for [PineTime](https://www.pine64.org/pinetime/)
|
|
||||||
together with access to the MicroPython REPL for interactive testing and
|
|
||||||
tweaking. However it keeps time well and has enough power saving
|
|
||||||
functions implemented that it can survive for well over 72 hours between
|
|
||||||
charges so even at this early stage it is functional as a wearable
|
|
||||||
timepiece.
|
|
||||||
|
|
||||||
Wasp-os includes a robust bootloader based on the Adafruit NRF52
|
|
||||||
Bootloader. It has been extended to make it robust for development on
|
|
||||||
form-factor devices without a reset button, power switch, SWD debugger
|
|
||||||
or UART. This allows us to confidently develop on sealed devices relying
|
|
||||||
only on BLE for updates.
|
|
||||||
|
|
||||||
Videos
|
|
||||||
------
|
|
||||||
|
|
||||||
[![An M2 pre-release running on Pine64 PineTime](https://img.youtube.com/vi/YktiGUSRJB4/0.jpg)](https://www.youtube.com/watch?v=YktiGUSRJB4)\
|
|
||||||
[An M2 pre-release running on Pine64 PineTime](https://www.youtube.com/watch?v=YktiGUSRJB4)
|
|
||||||
|
|
||||||
[![How to develop wasp-os python applications on a Pine64 PineTime](https://img.youtube.com/vi/tuk9Nmr3Jo8/0.jpg)](https://www.youtube.com/watch?v=tuk9Nmr3Jo8)\
|
|
||||||
[How to develop wasp-os python applications on a Pine64 PineTime](https://www.youtube.com/watch?v=tuk9Nmr3Jo8)
|
|
||||||
|
|
||||||
[![Developing for Pine64 PineTime using wasp-os and MicroPython](https://img.youtube.com/vi/kf1VHj587Mc/0.jpg)](https://www.youtube.com/watch?v=kf1VHj587Mc)\
|
|
||||||
[Developing for Pine64 PineTime using wasp-os and MicroPython](https://www.youtube.com/watch?v=kf1VHj587Mc)
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Wasp-os is has [extensive
|
|
||||||
documentation](https://daniel-thompson.github.io/wasp-os/) which includes a
|
|
||||||
detailed [Applicaiton Writer's
|
|
||||||
Guide](https://daniel-thompson.github.io/wasp-os/appguide.html) to help you get
|
|
||||||
started coding for wasp-os as quickly as possible.
|
|
||||||
|
|
||||||
Building from a git clone
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Get the code from
|
|
||||||
[https://github.com/daniel-thompson/wasp-os](https://github.com/daniel-thompson/wasp-os) .
|
|
||||||
|
|
||||||
~~~
|
|
||||||
pip3 install --user click serial pyserial
|
|
||||||
make submodules
|
|
||||||
make softdevice
|
|
||||||
make -j `nproc` BOARD=pinetime all
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Note: *You will need a toolchain for the Arm Cortex-M4. wasp-os is developed and tested using the [GNU-RM toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm) (9-2019-q4) from Arm.*
|
|
||||||
|
|
||||||
Note #2: *There are known problems with toolchains older than gcc-7.3 due to problems with link-time-optimization (which is enabled by default)*
|
|
||||||
|
|
||||||
Installing
|
|
||||||
----------
|
|
||||||
|
|
||||||
Note: *If you have a new PineTime then it will have been delivered with
|
|
||||||
flash protection enabled. You must disable the flash protection before
|
|
||||||
trying to program it.*
|
|
||||||
|
|
||||||
Use an SWD programmer to install `bootloader.hex` to the PineTime. This
|
|
||||||
file is an Intel HEX file containing both the bootloader and the Nordic
|
|
||||||
SoftDevice. Be careful to disconnect cleanly from the debug software
|
|
||||||
since just pulling out the SWD cable will mean the nRF52 will still
|
|
||||||
believe it is being debugged (and won't properly enter deep sleep
|
|
||||||
modes).
|
|
||||||
|
|
||||||
To install using Android device:
|
|
||||||
|
|
||||||
* Copy `micropython.zip` to your Android device and download nRF Connect
|
|
||||||
for Android if you do not already have it.
|
|
||||||
* In nRF Connect, choose settings and reduce the DFU packet count from
|
|
||||||
10 to 4.
|
|
||||||
* Connect to PineDFU using nRFConnect, click the DFU button and send
|
|
||||||
`micropython.zip` to the device.
|
|
||||||
|
|
||||||
To install using Linux and ota-dfu:
|
|
||||||
|
|
||||||
* Look up the MAC address for your watch (try: `sudo hcitool lescan`).
|
|
||||||
* Use ota-dfu to upload `micropython.zip` to the device. For example:
|
|
||||||
`tools/ota-dfu/dfu.py -z micropython.zip -a A0:B1:C2:D3:E3:F5 --legacy`
|
|
||||||
|
|
||||||
At the end of this process your watch will show the time (03:00) together
|
|
||||||
with a date and battery meter. When the watch goes into power saving mode
|
|
||||||
you can use the side button to wake it again.
|
|
||||||
|
|
||||||
At this point you will also be able to use the Nordic UART Service to
|
|
||||||
access the MicroPython REPL, although currently you must send ^C to
|
|
||||||
interrupt the program that updates the watch display.
|
|
||||||
|
|
||||||
Just for fun try:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
^C
|
|
||||||
import demo
|
|
||||||
demo.run()
|
|
||||||
# After watching the demo for a bit...
|
|
||||||
^C
|
|
||||||
wasp.app.draw(watch)
|
|
||||||
wasp.system.run()
|
|
||||||
~~~
|
|
||||||
|
|
||||||
To set the time and restart the main application:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
^C
|
|
||||||
watch.rtc.set_localtime((yyyy, mm, dd, HH, MM, SS))
|
|
||||||
wasp.system.run()
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Or just use:
|
|
||||||
~~~
|
|
||||||
./tools/wasptool --rtc
|
|
||||||
~~~
|
|
||||||
which can run these commands automatically.
|
|
||||||
|
|
||||||
As mentioned above there are many drivers and features still to be
|
|
||||||
developed, see the [TODO list](TODO.md) for current status.
|
|
||||||
|
|
||||||
Screenshots
|
|
||||||
-----------
|
|
||||||
|
|
||||||
![wasp-os digital clock app running on PineTime](res/clock_app.jpg)
|
|
||||||
|
|
147
README.rst
Normal file
147
README.rst
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
Watch Application System in Python
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
Currently in its infancy wasp-os provides only a little more than a simple
|
||||||
|
digital clock application for `PineTime <https://www.pine64.org/pinetime/>`_
|
||||||
|
together with access to the MicroPython REPL for interactive testing and
|
||||||
|
tweaking. However it keeps time well and has enough power saving
|
||||||
|
functions implemented that it can survive for well over 72 hours between
|
||||||
|
charges so even at this early stage it is functional as a wearable
|
||||||
|
timepiece.
|
||||||
|
|
||||||
|
Wasp-os includes a robust bootloader based on the Adafruit NRF52
|
||||||
|
Bootloader. It has been extended to make it robust for development on
|
||||||
|
form-factor devices without a reset button, power switch, SWD debugger
|
||||||
|
or UART. This allows us to confidently develop on sealed devices relying
|
||||||
|
only on BLE for updates.
|
||||||
|
|
||||||
|
Videos
|
||||||
|
------
|
||||||
|
|
||||||
|
.. image:: https://img.youtube.com/vi/YktiGUSRJB4/0.jpg
|
||||||
|
:target: https://www.youtube.com/watch?v=YktiGUSRJB4
|
||||||
|
:alt: An M2 pre-release running on Pine64 PineTime
|
||||||
|
|
||||||
|
`An M2 pre-release running on Pine64 PineTime <https://www.youtube.com/watch?v=YktiGUSRJB4>`_
|
||||||
|
|
||||||
|
.. image:: https://img.youtube.com/vi/tuk9Nmr3Jo8/0.jpg
|
||||||
|
:target: https://www.youtube.com/watch?v=tuk9Nmr3Jo8
|
||||||
|
:alt: How to develop wasp-os python applications on a Pine64 PineTime
|
||||||
|
|
||||||
|
`How to develop wasp-os python applications on a Pine64 PineTime <https://www.youtube.com/watch?v=tuk9Nmr3Jo8>`_
|
||||||
|
|
||||||
|
.. image:: https://img.youtube.com/vi/kf1VHj587Mc/0.jpg
|
||||||
|
:target: https://www.youtube.com/watch?v=kf1VHj587Mc
|
||||||
|
:alt: Developing for Pine64 PineTime using wasp-os and MicroPython
|
||||||
|
|
||||||
|
`Developing for Pine64 PineTime using wasp-os and MicroPython <https://www.youtube.com/watch?v=kf1VHj587Mc>`_
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Wasp-os is has `extensive documentation <https://wasp-os.readthedocs.io>`_
|
||||||
|
which includes a detailed `Applicaiton Writer's Guide
|
||||||
|
<https://daniel-thompson.github.io/wasp-os/appguide.html>`_ to help you
|
||||||
|
get started coding for wasp-os as quickly as possible.
|
||||||
|
|
||||||
|
Building from a git clone
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Get the code from
|
||||||
|
`https://github.com/daniel-thompson/wasp-os <https://github.com/daniel-thompson/wasp-os>`_ .
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
pip3 install --user click serial pyserial
|
||||||
|
make submodules
|
||||||
|
make softdevice
|
||||||
|
make -j `nproc` BOARD=pinetime all
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You will need a toolchain for the Arm Cortex-M4. wasp-os is developed and
|
||||||
|
tested using the `GNU-RM toolchain
|
||||||
|
<https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm>`_
|
||||||
|
(9-2019-q4) from Arm.
|
||||||
|
|
||||||
|
There are known problems with toolchains older than gcc-7.3 due to problems
|
||||||
|
with link-time-optimization (which is enabled by default).
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
Use an SWD programmer to install ``bootloader.hex`` to the PineTime. This
|
||||||
|
file is an Intel HEX file containing both the bootloader and the Nordic
|
||||||
|
SoftDevice. Be careful to disconnect cleanly from the debug software
|
||||||
|
since just pulling out the SWD cable will mean the nRF52 will still
|
||||||
|
believe it is being debugged (and won't properly enter deep sleep
|
||||||
|
modes).
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you have a new PineTime then it will have been delivered with flash
|
||||||
|
protection enabled. You must disable the flash protection before trying to
|
||||||
|
program it.
|
||||||
|
|
||||||
|
To install using Android device:
|
||||||
|
|
||||||
|
* Copy ``micropython.zip`` to your Android device and download nRF Connect
|
||||||
|
for Android if you do not already have it.
|
||||||
|
* In nRF Connect, choose settings and reduce the DFU packet count from
|
||||||
|
10 to 4.
|
||||||
|
* Connect to PineDFU using nRFConnect, click the DFU button and send
|
||||||
|
``micropython.zip`` to the device.
|
||||||
|
|
||||||
|
To install using Linux and ota-dfu:
|
||||||
|
|
||||||
|
* Look up the MAC address for your watch (try: ``sudo hcitool lescan``\ ).
|
||||||
|
* Use ota-dfu to upload ``micropython.zip`` to the device. For example:
|
||||||
|
``tools/ota-dfu/dfu.py -z micropython.zip -a A0:B1:C2:D3:E3:F5 --legacy``
|
||||||
|
|
||||||
|
At the end of this process your watch will show the time (03:00) together
|
||||||
|
with a date and battery meter. When the watch goes into power saving mode
|
||||||
|
you can use the side button to wake it again.
|
||||||
|
|
||||||
|
At this point you will also be able to use the Nordic UART Service to
|
||||||
|
access the MicroPython REPL, although currently you must send ^C to
|
||||||
|
interrupt the program that updates the watch display.
|
||||||
|
|
||||||
|
Just for fun try:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
^C
|
||||||
|
import demo
|
||||||
|
demo.run()
|
||||||
|
# After watching the demo for a bit...
|
||||||
|
^C
|
||||||
|
wasp.app.draw(watch)
|
||||||
|
wasp.system.run()
|
||||||
|
|
||||||
|
To set the time and restart the main application:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
^C
|
||||||
|
watch.rtc.set_localtime((yyyy, mm, dd, HH, MM, SS))
|
||||||
|
wasp.system.run()
|
||||||
|
|
||||||
|
Or just use:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
./tools/wasptool --rtc
|
||||||
|
|
||||||
|
which can run these commands automatically.
|
||||||
|
|
||||||
|
As mentioned above there are many drivers and features still to be
|
||||||
|
developed, see the `TODO list <TODO.md>`_ for current status.
|
||||||
|
|
||||||
|
Screenshots
|
||||||
|
-----------
|
||||||
|
|
||||||
|
.. image:: res/clock_app.jpg
|
||||||
|
:alt: wasp-os digital clock app running on PineTime
|
110
TODO.md
110
TODO.md
|
@ -1,110 +0,0 @@
|
||||||
# Roadmap
|
|
||||||
|
|
||||||
## M1: Dumb watch feature parity
|
|
||||||
|
|
||||||
The focus for M1 is to get wasp-os both to meet feature parity with a dumb
|
|
||||||
watch and to have a bootloader and watchdog strategy that is robust enough
|
|
||||||
to allow a PineTime case to be confidently glued shut.
|
|
||||||
|
|
||||||
### Bootloader
|
|
||||||
|
|
||||||
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
|
|
||||||
* [X] OTA application update
|
|
||||||
* [X] Enable watchdog before starting the application
|
|
||||||
* [X] Splash screen
|
|
||||||
* [X] Ignore start button for first few seconds
|
|
||||||
|
|
||||||
### MicroPython
|
|
||||||
|
|
||||||
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
|
|
||||||
* [X] Long press reset (conditional feeding of the watchdog)
|
|
||||||
- [X] Feed dog from REPL polling loop
|
|
||||||
- [X] Feed dog from a tick interrupt
|
|
||||||
|
|
||||||
### Wasp-os
|
|
||||||
|
|
||||||
* [X] Display driver
|
|
||||||
- [X] Display initialization
|
|
||||||
- [X] Bitmap blitting
|
|
||||||
- [X] RLE coder and decoder
|
|
||||||
- [X] Optimized RLE inner loops
|
|
||||||
* [X] Backlight driver
|
|
||||||
* [X] Button driver (polling)
|
|
||||||
* [X] Battery/charger driver
|
|
||||||
* [X] Simple clock and battery level application
|
|
||||||
* [X] Basic (WFI) power saving
|
|
||||||
* [X] Implement simple RTC for nrf52
|
|
||||||
|
|
||||||
## M2: Great developer experience
|
|
||||||
|
|
||||||
The focus for M2 is to make development faster and easier by providing
|
|
||||||
a file system and file transfer code. This allows much faster
|
|
||||||
development cycles compared to full downloads of frozen modules.
|
|
||||||
Additionally support for multiple event-driven applications will be
|
|
||||||
added during M2 to further help developers by providing example
|
|
||||||
applications.
|
|
||||||
|
|
||||||
### Bootloader
|
|
||||||
|
|
||||||
* [X] OTA bootloader update
|
|
||||||
* [X] RTC time measurement whilst in bootloader
|
|
||||||
|
|
||||||
### MicroPython
|
|
||||||
|
|
||||||
* [X] SPI FLASH driver
|
|
||||||
* [X] Enable LittleFS on SPI FLASH (at boot)
|
|
||||||
* [X] BLE file transfer
|
|
||||||
|
|
||||||
### Wasp-os
|
|
||||||
|
|
||||||
* [X] Add dd/mm/yyyy support to RTC
|
|
||||||
* [X] Button driver (interrupt based)
|
|
||||||
* [X] Touch sensor driver
|
|
||||||
* [X] Event driven application framework
|
|
||||||
* [X] Stopwatch app
|
|
||||||
* [X] Settings app
|
|
||||||
* [X] PC-hosted simulation platform
|
|
||||||
* [X] Documentation
|
|
||||||
- [X] Sphinx framework and integration with github.io
|
|
||||||
- [X] Document bootloader protocols
|
|
||||||
- [X] Application writer's guide
|
|
||||||
- [X] Write full docstring documentation for all wasp-os components
|
|
||||||
* [X] Application Launcher
|
|
||||||
* [X] Debug notifications
|
|
||||||
* [o] Multi-colour RLE images
|
|
||||||
- [X] Optimized "2-bit" RLE encoder and decoder
|
|
||||||
- [ ] Logarithmic RBG332 <-> RGB56516bit color space conversion
|
|
||||||
|
|
||||||
## M3: Smartwatch
|
|
||||||
|
|
||||||
At M3 we start to build out full fitness tracking and notification
|
|
||||||
functionality.
|
|
||||||
|
|
||||||
### Bootloader
|
|
||||||
|
|
||||||
* [ ] Stay in bootloader after battery run down
|
|
||||||
* [ ] Implement power off support (no splash screen)
|
|
||||||
|
|
||||||
### Micropython
|
|
||||||
|
|
||||||
* [ ] Use SoftDevice sleep logic
|
|
||||||
* [ ] Automatically enter SPI flash power saving mode
|
|
||||||
|
|
||||||
### Wasp-os
|
|
||||||
|
|
||||||
* [ ] Enable heart rate sensor
|
|
||||||
- [ ] HRS3300 driver
|
|
||||||
- [ ] HRS data post-processing
|
|
||||||
- [ ] Heart rate counter app
|
|
||||||
* [ ] Notifications
|
|
||||||
- [ ] BLE notification protocol
|
|
||||||
- [ ] Notification popups
|
|
||||||
- [ ] Notification app (show notification history)
|
|
||||||
- [ ] Find a recommended Android app
|
|
||||||
* [ ] Step counting
|
|
||||||
- [ ] BMA421 driver
|
|
||||||
- [ ] Step counter app
|
|
||||||
* [ ] Documentation
|
|
||||||
- [ ] Debugging and troubleshooting guide
|
|
||||||
- [ ] Screenshots for bootloader and all applications
|
|
||||||
- [ ] Improve the install guide
|
|
136
TODO.rst
Normal file
136
TODO.rst
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
Roadmap
|
||||||
|
=======
|
||||||
|
|
||||||
|
M1: Dumb watch feature parity
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The focus for M1 is to get wasp-os both to meet feature parity with a dumb
|
||||||
|
watch and to have a bootloader and watchdog strategy that is robust enough
|
||||||
|
to allow a PineTime case to be confidently glued shut.
|
||||||
|
|
||||||
|
Bootloader
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
|
||||||
|
* [X] OTA application update
|
||||||
|
* [X] Enable watchdog before starting the application
|
||||||
|
* [X] Splash screen
|
||||||
|
* [X] Ignore start button for first few seconds
|
||||||
|
|
||||||
|
MicroPython
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
* [X] Basic board ports (PineTime, DS-D6, 96Boards Nitrogen)
|
||||||
|
* [X] Long press reset (conditional feeding of the watchdog)
|
||||||
|
|
||||||
|
* [X] Feed dog from REPL polling loop
|
||||||
|
* [X] Feed dog from a tick interrupt
|
||||||
|
|
||||||
|
Wasp-os
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
* [X] Display driver
|
||||||
|
|
||||||
|
* [X] Display initialization
|
||||||
|
* [X] Bitmap blitting
|
||||||
|
* [X] RLE coder and decoder
|
||||||
|
* [X] Optimized RLE inner loops
|
||||||
|
|
||||||
|
* [X] Backlight driver
|
||||||
|
* [X] Button driver (polling)
|
||||||
|
* [X] Battery/charger driver
|
||||||
|
* [X] Simple clock and battery level application
|
||||||
|
* [X] Basic (WFI) power saving
|
||||||
|
* [X] Implement simple RTC for nrf52
|
||||||
|
|
||||||
|
M2: Great developer experience
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
The focus for M2 is to make development faster and easier by providing
|
||||||
|
a file system and file transfer code. This allows much faster
|
||||||
|
development cycles compared to full downloads of frozen modules.
|
||||||
|
Additionally support for multiple event-driven applications will be
|
||||||
|
added during M2 to further help developers by providing example
|
||||||
|
applications.
|
||||||
|
|
||||||
|
Bootloader
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
* [X] OTA bootloader update
|
||||||
|
* [X] RTC time measurement whilst in bootloader
|
||||||
|
|
||||||
|
MicroPython
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
* [X] SPI FLASH driver
|
||||||
|
* [X] Enable LittleFS on SPI FLASH (at boot)
|
||||||
|
* [X] BLE file transfer
|
||||||
|
|
||||||
|
Wasp-os
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
* [X] Add dd/mm/yyyy support to RTC
|
||||||
|
* [X] Button driver (interrupt based)
|
||||||
|
* [X] Touch sensor driver
|
||||||
|
* [X] Event driven application framework
|
||||||
|
* [X] Stopwatch app
|
||||||
|
* [X] Settings app
|
||||||
|
* [X] PC-hosted simulation platform
|
||||||
|
* [X] Documentation
|
||||||
|
|
||||||
|
* [X] Sphinx framework and integration with github.io
|
||||||
|
* [X] Document bootloader protocols
|
||||||
|
* [X] Application writer's guide
|
||||||
|
* [X] Write full docstring documentation for all wasp-os components
|
||||||
|
|
||||||
|
* [X] Application Launcher
|
||||||
|
* [X] Debug notifications
|
||||||
|
* [o] Multi-colour RLE images
|
||||||
|
|
||||||
|
* [X] Optimized "2-bit" RLE encoder and decoder
|
||||||
|
* [ ] Logarithmic RBG332 <-> RGB56516bit color space conversion
|
||||||
|
|
||||||
|
M3: Smartwatch
|
||||||
|
--------------
|
||||||
|
|
||||||
|
At M3 we start to build out full fitness tracking and notification
|
||||||
|
functionality.
|
||||||
|
|
||||||
|
Bootloader
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
* [ ] Stay in bootloader after battery run down
|
||||||
|
* [ ] Implement power off support (no splash screen)
|
||||||
|
|
||||||
|
Micropython
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
* [ ] Use SoftDevice sleep logic
|
||||||
|
* [ ] Automatically enter SPI flash power saving mode
|
||||||
|
|
||||||
|
Wasp-os
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
* [ ] Enable heart rate sensor
|
||||||
|
|
||||||
|
* [ ] HRS3300 driver
|
||||||
|
* [ ] HRS data post-processing
|
||||||
|
* [ ] Heart rate counter app
|
||||||
|
|
||||||
|
* [ ] Notifications
|
||||||
|
|
||||||
|
* [ ] BLE notification protocol
|
||||||
|
* [ ] Notification popups
|
||||||
|
* [ ] Notification app (show notification history)
|
||||||
|
* [ ] Find a recommended Android app
|
||||||
|
|
||||||
|
* [ ] Step counting
|
||||||
|
|
||||||
|
* [ ] BMA421 driver
|
||||||
|
* [ ] Step counter app
|
||||||
|
|
||||||
|
* [ ] Documentation
|
||||||
|
|
||||||
|
* [ ] Debugging and troubleshooting guide
|
||||||
|
* [ ] Screenshots for bootloader and all applications
|
||||||
|
* [ ] Improve the install guide
|
|
@ -1 +0,0 @@
|
||||||
../README.md
|
|
1
docs/README.rst
Symbolic link
1
docs/README.rst
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../README.rst
|
|
@ -1 +0,0 @@
|
||||||
../TODO.md
|
|
1
docs/TODO.rst
Symbolic link
1
docs/TODO.rst
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
../TODO.rst
|
Loading…
Reference in a new issue