Compare commits
10 commits
749fe3432f
...
bf07f0cf55
Author | SHA1 | Date | |
---|---|---|---|
|
bf07f0cf55 | ||
|
6e1c422ff9 | ||
|
faa18b7129 | ||
|
6ca5d75ffa | ||
|
10692602f5 | ||
|
24dcb62fdb | ||
|
7d156cdc05 | ||
|
ce1a2634f0 | ||
|
fbf00957dd | ||
|
1798bc6eea |
8 changed files with 78 additions and 38 deletions
14
.github/workflows/main.yml
vendored
14
.github/workflows/main.yml
vendored
|
@ -13,11 +13,11 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout files
|
||||
id: checkout-files
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Check the cached arm-none-eabi-gcc compiler
|
||||
id: cache-toolchain
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-toolchain-10-2020-q4
|
||||
with:
|
||||
|
@ -68,35 +68,35 @@ jobs:
|
|||
|
||||
- name: Upload full binary distribution
|
||||
id: upload-binaries
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: wasp-os-${{ github.sha }}
|
||||
path: wasp-os-${{ github.sha }}.tar.gz
|
||||
|
||||
- name: Upload pinetime binaries
|
||||
id: upload-pinetime
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pinetime-${{ github.sha }}
|
||||
path: build-pinetime
|
||||
|
||||
- name: Upload Colmi P8 binaries
|
||||
id: upload-p8
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: p8-${{ github.sha }}
|
||||
path: build-p8
|
||||
|
||||
- name: Upload Senbono K9 binaries
|
||||
id: upload-k9
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: k9-${{ github.sha }}
|
||||
path: build-k9
|
||||
|
||||
- name: Upload extra apps binaries
|
||||
id: upload-apps
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: apps-${{ github.sha }}
|
||||
path: apps/*.mpy
|
||||
|
|
4
.github/workflows/sim.yml
vendored
4
.github/workflows/sim.yml
vendored
|
@ -13,11 +13,11 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout files
|
||||
id: checkout-files
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Check the cached python downloads
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: cache-toolchain
|
||||
with:
|
||||
|
|
19
Makefile
19
Makefile
|
@ -23,10 +23,13 @@ clean :
|
|||
reloader/build-$(BOARD) reloader/src/boards/$(BOARD)/bootloader.h \
|
||||
micropython/mpy-cross/build \
|
||||
micropython/ports/nrf/build-$(BOARD)-s132 \
|
||||
apps/*.mpy \
|
||||
build-$(BOARD) \
|
||||
wasp/boards/$(BOARD)/watch.py \
|
||||
wasp/apps/user \
|
||||
wasp/boards/manifest_user_apps.py \
|
||||
wasp/appregistry.py
|
||||
find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete
|
||||
|
||||
# Avoid a recursive update... it grabs far too much
|
||||
submodules :
|
||||
|
@ -62,7 +65,13 @@ wasp/boards/$(BOARD_SAFE)/watch.py : wasp/boards/$(BOARD_SAFE)/watch.py.in
|
|||
|| ($(RM) wasp/boards/$(BOARD)/watch.py; false)
|
||||
|
||||
micropython/mpy-cross/mpy-cross:
|
||||
$(MAKE) -C micropython/mpy-cross
|
||||
$(MAKE) -C micropython/mpy-cross \
|
||||
CWARN="-Wall -Wno-error"
|
||||
# ^ Disable some Werrors from GCC>=13, specifically
|
||||
# - dangling-pointer
|
||||
# - enum-int-mismatch
|
||||
# TODO update micropython and remove.
|
||||
# https://github.com/wasp-os/wasp-os/issues/493
|
||||
|
||||
micropython: build-$(BOARD_SAFE) wasp/boards/manifest_user_apps.py wasp/boards/$(BOARD_SAFE)/watch.py micropython/mpy-cross/mpy-cross
|
||||
$(RM) micropython/ports/nrf/build-$(BOARD)-s132/frozen_content.c
|
||||
|
@ -70,7 +79,13 @@ micropython: build-$(BOARD_SAFE) wasp/boards/manifest_user_apps.py wasp/boards/$
|
|||
BOARD=$(BOARD) SD=s132 \
|
||||
MICROPY_VFS_LFS2=1 \
|
||||
FROZEN_MANIFEST=$(CURDIR)/wasp/boards/$(BOARD)/manifest.py \
|
||||
USER_C_MODULES=$(CURDIR)/wasp/modules
|
||||
USER_C_MODULES=$(CURDIR)/wasp/modules \
|
||||
COPT="-Wno-error"
|
||||
# ^ Disable some Werrors from GCC>=13, specifically
|
||||
# - dangling-pointer
|
||||
# - enum-int-mismatch
|
||||
# TODO update micropython and remove.
|
||||
# https://github.com/wasp-os/wasp-os/issues/493
|
||||
$(PYTHON) -m nordicsemi dfu genpkg \
|
||||
--dev-type 0x0052 \
|
||||
--application micropython/ports/nrf/build-$(BOARD)-s132/firmware.hex \
|
||||
|
|
|
@ -254,7 +254,7 @@ To launch the simulator:
|
|||
|
||||
sh$ make sim
|
||||
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=.:wasp/boards/simulator:wasp \\
|
||||
python3 -i wasp/main.py
|
||||
python3 -i wasp/boards/simulator/main.py
|
||||
MOTOR: set on
|
||||
BACKLIGHT: 2
|
||||
Watch is running, use Ctrl-C to stop
|
||||
|
@ -280,8 +280,8 @@ by swiping or using the Arrow keys to bring up the launcher and then clicking
|
|||
on your application.
|
||||
|
||||
The application can also be registered automatically when you load the
|
||||
simulator if you add it to ``wasp/main.py``. Try adding lines 5 and 6 from
|
||||
the above example into this file (between ``import wasp`` and
|
||||
simulator if you add it to ``wasp/boards/simulator/main.py``. Try adding lines
|
||||
5 and 6 from the above example into this file (between ``import wasp`` and
|
||||
``wasp.system.run()``).
|
||||
|
||||
The simulator accepts gestures such as up/down and left/right swipes but the
|
||||
|
|
|
@ -243,9 +243,9 @@ screen, a step counter and a heart rate sensor.
|
|||
|
||||
wasp-os can be installed directly from the factory default operating
|
||||
system using an over-the-air update with no tools or disassembly
|
||||
required. nRF Connect for Android can be used to install both the
|
||||
:ref:`wasp-bootloader<Bootloader nRF Connect>` and the
|
||||
:ref:`main OS image<Main OS nRF Connect>`.
|
||||
required. Gadgetbridge for Android can be used to install both the
|
||||
:ref:`wasp-bootloader<Bootloader Gadgetbridge>` and the
|
||||
:ref:`main OS image<Main OS Gadgetbridge>`.
|
||||
|
||||
.. note::
|
||||
|
||||
|
@ -330,12 +330,12 @@ DaFlasher for Android can be used to install both the
|
|||
Installing wasp-bootloader
|
||||
--------------------------
|
||||
|
||||
.. _Bootloader nRF Connect:
|
||||
.. _Bootloader Gadgetbridge:
|
||||
|
||||
nRF Connect for Android
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Gadgetbridge for Android
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For Pine64 PineTime devices running Infinitime then nRF Connect for Android
|
||||
For Pine64 PineTime devices running Infinitime then Gadgetbridge for Android
|
||||
can be used to install wasp-bootloader:
|
||||
|
||||
* Ensure the watch is fully charged before attempting to install the
|
||||
|
@ -343,12 +343,14 @@ can be used to install wasp-bootloader:
|
|||
sealed devices.
|
||||
* Copy ``reloader-mcuboot.zip`` (see :ref:`Building wasp-os from source`) to
|
||||
your Android device and download
|
||||
`nRF Connect <https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp>`_
|
||||
`Gadgetbridge <https://f-droid.org/en/packages/nodomain.freeyourgadget.gadgetbridge/>`_
|
||||
for Android if you do not already have it.
|
||||
* Wake the device so that Infinitime is showing a watch face.
|
||||
* Connect to the *Infinitime* device usnig nRF Connect, click the DFU button
|
||||
and send ``reloader-mcuboot.zip`` to the device.
|
||||
* When the progress meter reaches 100% the nRF Connect will disconnect
|
||||
* Connect to the *Infinitime* device usnig Gadgetbridge, tap on the "+" button on the
|
||||
bottom right of the screen to add a new device, *Infinitime* should be detected.
|
||||
* Tap on it and Gadgdetbridge will pair and connect to your device. Use the file browser
|
||||
application and find and send ``reloader-mcuboot.zip`` to the device.
|
||||
* When the progress meter reaches 100% Gadgetbridge will disconnect
|
||||
and the watch will reboot.
|
||||
* The watch will boot the reloader application which draws a small blue
|
||||
pine cone in the centre of the screen. The pine cone acts a progress
|
||||
|
@ -366,9 +368,11 @@ can be used to install wasp-bootloader:
|
|||
.. note::
|
||||
|
||||
If you want to restore the PineTime factory firmware then you can
|
||||
use nRF Connect to do this. Perform a long press reset and then
|
||||
use nRF Connect to send ``reloader-factory.zip`` to the *PineDFU*
|
||||
device.
|
||||
use Gadgetbridge to do this. Perform a long press reset and then
|
||||
use Gadgetbridge to send ``reloader-factory.zip`` to the *PineDFU*
|
||||
device. GadgetBridge may list *PINE DFU* as an unsupported device.
|
||||
See the work around at the end of
|
||||
:ref:`main OS image<Main OS Gadgetbridge>`.
|
||||
|
||||
.. _Bootloader DaFlasher:
|
||||
|
||||
|
@ -465,23 +469,35 @@ logo and wait for a OTA update.
|
|||
Installing wasp-os
|
||||
------------------
|
||||
|
||||
.. _Main OS nRF Connect:
|
||||
.. _Main OS Gadgetbridge:
|
||||
|
||||
nRF Connect for Android
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Gadgetbridge for Android
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To install the main firmware using nRF Connect for Android:
|
||||
To install the main firmware using Gadgetbridge for Android:
|
||||
|
||||
* Copy ``micropython.zip`` (see :ref:`Building wasp-os from source`) to
|
||||
your Android device and download
|
||||
`nRF Connect <https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp>`_
|
||||
`Gadgetbridge <https://f-droid.org/en/packages/nodomain.freeyourgadget.gadgetbridge/>`_
|
||||
for Android if you do not already have it.
|
||||
* Ensure the watch is running in :ref:`OTA update mode<OTA update mode>`.
|
||||
* Connect to the device (e.g. *PineDFU* if you have a PineTime) using
|
||||
nRFConnect, click the DFU button and send ``micropython.zip`` to the device.
|
||||
Gadgetbridge, use the file browser application and send ``micropython.zip`` to the
|
||||
device.
|
||||
* When the upload is complete the watch will reboot and launch the digital
|
||||
clock application.
|
||||
|
||||
.. note::
|
||||
|
||||
GadgetBridge may list PINE DFU as an unsupported device. This prevents users from
|
||||
sending the ``micropython.zip`` file to the device. Do the following to work around
|
||||
this: In GadgetBridge, go to discovery and pairing options and allow unsupported
|
||||
devices.
|
||||
|
||||
The Pinetime will show up as an unsupported device. Long-press it and select Add
|
||||
as a test device. A list of devices will show up. Scroll down to Pinetime and select
|
||||
it. The device will be added and you then can upload the ``micropython.zip`` file.
|
||||
|
||||
.. _Main OS DaFlasher:
|
||||
|
||||
DaFlasher for Android
|
||||
|
@ -584,8 +600,14 @@ A default version of ``main.py`` is installed automatically when wasp-os initial
|
|||
formats the external flash as a file system.
|
||||
|
||||
Most problems with normal mode operation occur either because ``main.py`` is
|
||||
missing, out-of-date or corrupt. These issues most commonly result in an
|
||||
entirely black screen when running the watch is running in normal mode.
|
||||
missing, out-of-date or corrupt, or because too many applications are being started
|
||||
by default, resulting in the system running out of RAM.
|
||||
|
||||
Out of memory problems are best addressed by reducing the number of applications you
|
||||
have set to automatically load (auto_load in wasp.toml). If you are developing your
|
||||
own application, it is best that you load the minimal set of applications to have
|
||||
the maximum possible amount of available RAM and minimum fragmentation. For example,
|
||||
only autoloading the software app will get you the maximum amount of RAM.
|
||||
|
||||
.. note::
|
||||
|
||||
|
|
|
@ -6,6 +6,9 @@ let
|
|||
ifLinux = pkgs.lib.optionals pkgs.stdenv.isLinux;
|
||||
|
||||
in pkgs.mkShell {
|
||||
buildInputs = ifLinux [
|
||||
pkgs.gobject-introspection
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
(pkgs.python3.withPackages (pp: with pp; [
|
||||
cbor
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 5572b01b26e04c7f8c79e8407f4d202e7258bf6b
|
||||
Subproject commit 0e95be2ed0ddc21ea0c833fe0497e175a132524c
|
|
@ -1 +1 @@
|
|||
Subproject commit b968b2530440afae8b555613e89b1240afcf4da2
|
||||
Subproject commit 2c41c396adc80ee0c09f7cc7263f162c0f508d59
|
Loading…
Reference in a new issue