1
0
Fork 0
Commit graph

119 commits

Author SHA1 Message Date
Daniel Thompson
13b35611e2 boards: p8: Full support for Colmi P8
All the components (bootloader, reloader, micropython) has P8 support added
some time back but without full integration at the wasp-os level. Let's
add it!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-07-27 22:15:42 +01:00
Daniel Thompson
326e06bc6b StatusBar: Rename and add BLE connection status icon
Notifier was a dumb name so make it better. Now that we have a decent
name it should be obvious how to handle the BLE connection status icon!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-07-24 17:04:46 +01:00
Daniel Thompson
a01fb7df57 Introduction basic notification support
This requires a modified version of Gadgetbridge and currently works by
implementing the BangleJS protocol.

In Gadgetbridge ensure "Sync time" is *not* set and choose "Don't pair"
when adding the PineTime device.
2020-07-19 20:50:33 +01:00
Daniel Thompson
c739df119b boards: simulator: Swap up/down swipe detection
Fix swipe detection so it matches the real device.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-07-09 22:29:57 +01:00
Daniel Thompson
eac72188cf simulator: Provide a special main.py for the simulator
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-07-07 21:22:12 +01:00
Daniel Thompson
ae5743529f wasp: Switch to scheduling from interrupt
This has two useful properties. Firstly it means the watch will be
maintained in the background, allowing the REPL to be used for
notifications and other updates. Secondly it will save a little bit
of power by reducing the work needed to handle spurious wake ups.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-30 23:04:01 +01:00
Daniel Thompson
7b3e0f917d boards: simulator: Add swipe detection and button support
Currently the simulator relies on the keyboard to issue touchscreen
gestures and button presses. Fix this by adding swipe detection and
introducing a skin which gives us the capability to press the button
using touchscreens or pointer devices.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-27 12:22:23 +01:00
Daniel Thompson
eb8dfcc57c boards: spinx: Fix the documentation generation
Currently the template app documentation will not generate. Fix that!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-25 22:08:02 +01:00
Daniel Thompson
95e129e331 ppg: Pull the PPG signal processing into a seperate library
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-25 21:59:32 +01:00
Daniel Thompson
b1faec667d simulator: Reverse the simulated PPG waveform
This avoids an implusive change in base value and makes the waveform a
little more interesting.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-24 21:20:47 +01:00
Daniel Thompson
88418fd1b5 apps: heart: Introduce simple app for the heart rate sensor
The heart rate analysis step is still a work in progress but the current
app allows us to visualize the the results of the signal conditioning.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-22 22:51:06 +01:00
Daniel Thompson
417e408dc4 drivers: hrs3300: Add a basic HRS3300 sensor driver
Add the driver and enable it on PineTime.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-22 22:22:40 +01:00
Daniel Thompson
6c7337fb1e dsd6, nitrogen: Make them build again
Fixes: 9eb9b74 ("Update preprocess to use $(BOARD)").
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-17 21:35:19 +01:00
Daniel Thompson
93b3c2bf1a wasp: simulator: Improve the RTC
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-12 08:49:54 +01:00
Fuji Pebri
df9d80f6f7 drivers: cst816s: optimize for power saving and responsiveness
Signed-off-by: Fuji Pebri <pebri86@gmail.com>
[daniel@redfelineinja.org.uk: removed leading underscore from method
arguments, removed redundant state tracking, adopt i2c.writeto_mem]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-11 21:17:16 +01:00
Daniel Thompson
acf318c122 wasp: simulator: Add interupt support for CST816S
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-11 21:15:47 +01:00
Daniel Thompson
93d10f74fb fonts: Add sans28 (numerals only) 2020-06-11 20:37:03 +01:00
Daniel Thompson
12e883e68b boards: pinetime: Improve safe mode implementation 2020-06-10 08:52:46 +01:00
Daniel Thompson
ccaf12750b wasp: apps: Step counter application
Currently there's no fancy algorithms to estimate stride length. Just
pure simple step counting directly from the hardware's "intelligence
engine".

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-06-09 21:31:55 +01:00
Daniel Thompson
d9bdb0c82f boards: Remove demo.py from the manifests
Fixes: #25
2020-05-18 08:12:00 +01:00
Daniel Thompson
b9e82424e9 apps: demo: Move the logo into the demo app
The logo module is currently unused but it simply sits there consuming
flash. Let's shift it to the demo app to is can consume RAM instead (but
only when we upload the demo to the watch).
2020-05-17 14:37:44 +01:00
Daniel Thompson
e391480b50 wasp: watch: docstrings for the watch namespace 2020-05-14 23:22:57 +01:00
Daniel Thompson
a4c62bb818 wasp: apps: Remove __init__.py
wasp-os contains circular import dependancies (wasp includes apps which
include wasp) but this is normally harmless.

However using __init__.py exagerated to the problem and since the benefit
of the __init__ file is pretty anyway the let's just remove it.
2020-05-10 09:33:26 +01:00
Daniel Thompson
bfd914a5d1 boards: simulator: Add ptr32 support 2020-04-17 17:19:11 +01:00
Daniel Thompson
10706a9704 wasp: stopwatch: Replace the stub with a "real" implementation
There are still some holes here. In particular the RTC resolution on
nRF devices (such as PineTime) is currently a full second (meaning
the centiseconds will always be zero. Nevertheless that isn't the apps
fault... as we can see when we run on the simulator.
2020-04-14 20:03:04 +01:00
Daniel Thompson
50ecff29ef wasp: Automatically generate watch.py for PineTime
This should ensure that main.py is always up to date.
2020-04-11 21:12:18 +01:00
Daniel Thompson
4c09add2d8 docs: Add text descriptions of icons
Having the raw hex strings makes the docs look really unclean. Fix this
by providing a special version of icons for the "sphinx" board.
2020-04-11 20:49:06 +01:00
Daniel Thompson
683c3497e0 docs: Fix warnings and add a few extra apps to the docs 2020-04-11 20:26:12 +01:00
Daniel Thompson
af1379806c wasp: simulator: Use Tab to replicate the physical button 2020-04-11 20:15:20 +01:00
Daniel Thompson
f68eb610c5 wasp: On-device crash reporting
If an application crashes let's report it on the device so it can be
distinguished from a hang (if nothing else it should mean we get better
bug reports).
2020-04-11 20:15:02 +01:00
Daniel Thompson
23368a659b wasp: apps: Add a new (super simple) settings app 2020-04-10 20:30:20 +01:00
Daniel Thompson
3bcda8d546 Merge branch 'master' of https://github.com/daniel-thompson/wasp-os 2020-04-10 14:32:22 +01:00
Daniel Thompson
74511a1e1c
Merge pull request #7 from salcedo/master
wasp: pinetime: Release SPI NOR from deep power-down
2020-04-10 14:32:14 +01:00
Daniel Thompson
fd64abe882 wasp: draw565: Optimize the 2-bit RLE drawing functions
There's a bunch of different changes here but there are only really three
big wins. The biggest win comes from restructuring the 2-bit RLE decode
loop to avoid the inner function (~20%) but the switch to 16-bit writes in
_fill() and adoption of quick_write (e.g. no CS toggling) are also
note worthy (and about 5% each).
2020-04-08 21:50:42 +01:00
Daniel Thompson
8ed80eeeba wasp: launcher: Experimental launcher implementation
It is not really the launcher itself that is immature. Rather that the
framework and UI concepts to move between applications isn't complete
yet.
2020-04-06 22:04:21 +01:00
Daniel Thompson
59bb70fa64 wasp: simulator: Optimize the drawing process
This makes per-pixel access more than double the performnace of a regular
pixelview (but at the expense of requiring numpy).
2020-04-06 22:04:21 +01:00
Daniel Thompson
40b2482165 wasp: simulator: Swap up/down and left/right
This gives the simulator a more natural feel since the "swipe left" action
usually means "more a screen to the right". This will probably make
testing games impossible but makes it much easier to navigate the menus.
2020-04-06 22:04:20 +01:00
Daniel Thompson
b9fe31241c Add licensing information for all wasp-os files. 2020-03-22 15:40:18 +00:00
Daniel Thompson
f8bd1a7461 Rename manager.py and expose its interfaces to all applications
This is a big change that break compatiblity with existing applications
*and* with existing installed versions of main.py.

When upgrading it is import to update main.py:

    ./tools/wasptool --upload wasp/main.py
2020-03-22 12:37:19 +00:00
Brian Salcedo
dcc51cd094 wasp: pinetime: Release SPI NOR from deep power-down 2020-03-15 09:38:47 -04:00
Daniel Thompson
5413d826d7 wasp: Re-factor how Draw565 is used.
Moving it from applications into the watch is useful for two reasons.
Firstly it means applications don't need to know as much about the
display color depth and secondly it makes it easier to replace the
drawing routines with wasptool.
2020-03-08 23:16:30 +00:00
Daniel Thompson
d236db68dc testapp: Show the render time for the string test 2020-03-08 21:22:54 +00:00
Daniel Thompson
d2058fb87f docs: Increase the scope of the documentation
We now generate documentation for everything included in the PineTime
manifest (although, at this stage, not everything in the manifest has
all the required docstrings).
2020-03-08 17:40:27 +00:00
Daniel Thompson
799a66c9b9 wasp: Move the apps into their own directory. 2020-03-08 17:39:39 +00:00
Daniel Thompson
b5b96bd776 wasp: Integrate the touch driver
At this point we are starting to bring an event model for applications
but there's still a long way to go!
2020-03-08 10:18:08 +00:00
Daniel Thompson
1ebafc083b wasp: simulator: Add CST816S simulation 2020-03-07 11:50:26 +00:00
Daniel Thompson
1b334f7ad9 wasp: pinetime: Enable the cst816s by default 2020-03-07 11:48:17 +00:00
Daniel Thompson
5c0d86d938 docs: Fix some errors in the sphinx board 2020-02-23 20:51:26 +00:00
Daniel Thompson
41647556c1 clock: Reduce the update rate of the battery meter
In addition to the fix (which is simple) we also modify the button handling
of the simulator because, rather by acident, it relies on the bugs in the
battery meter redraw to ensure the simulator stays active.
2020-02-23 20:19:37 +00:00
Daniel Thompson
3ba356f6c4 docs: Add a sphinx board
The simulator board does rather too much when we import watch.py. This
change means we don't need SDL just to generate the documentation!
2020-02-23 20:16:23 +00:00
Daniel Thompson
b508f4dc26 wasp: Add a simple font renderer 2020-02-19 19:57:08 +00:00
Daniel Thompson
0c4754fc74 wasp: Start collecting the fonts in a single directory 2020-02-19 19:57:08 +00:00
Daniel Thompson
df11539c29 wasp: Simple shell commands (based on upysh) 2020-02-19 19:57:08 +00:00
Daniel Thompson
f689c90498 wasp: Add full dd-mm-yyyy calender tracking 2020-02-19 19:57:08 +00:00
Daniel Thompson
b2c5b482d5 wasp: pinetime: Enable filesystem support 2020-02-09 19:49:52 +00:00
Daniel Thompson
bb033577da drivers: st7789: Optimize RLE decoding loop
Migrate the filling of the line buffer into a seperate function.
This does naturally reduce the cost of the loop management but
much more importantly allows us to use viper native code
generator.
2020-02-08 07:49:38 +00:00
Daniel Thompson
1f2c25a7bd wasp: clock: Add a simple battery meter 2020-02-03 22:35:16 +00:00
Daniel Thompson
b124a747dd wasp: simulator: Add battery level simulation
In order to get best test coverage the act of reading the battery
results in the battery either charging or discharging.
2020-02-03 22:29:57 +00:00
Daniel Thompson
3892f07e62 wasp: Add simple clock app
At this point both the simulator and a PineTime will come up
and show a clock (although in the case of the PineTime the clock
will just come up at 12:00).
2020-02-03 19:26:08 +00:00
Daniel Thompson
fc74f7e37b wasp: simulator: Add RTC support 2020-02-03 19:23:10 +00:00
Daniel Thompson
a5caa845b7 wasp: simulator: Add support for machine.[light|deep]sleep() 2020-02-03 19:22:54 +00:00
Daniel Thompson
d0f18a15fa wasp: simulator: Fix column and row select 2020-02-03 19:14:44 +00:00
Daniel Thompson
127df66335 wasp: pinetime: Basic RTC support
Currently this supports time only (no date) and it based on the
RTCounter class which is customized for nRF ports. At present
the nRF port doesn't have proper machine.rtc support so we have
implemented within wasp instead.
2020-02-03 19:12:04 +00:00
Daniel Thompson
e21f2a79ca wasp: simulator: Add ST7789 simulation 2020-02-01 20:20:53 +00:00
Daniel Thompson
9eb5d19e35 wasp: dsd6/nitrogen: Fix the frozen manifests 2020-02-01 13:44:28 +00:00
Daniel Thompson
fed9c58205 wasp: pinetime: Start an RTC at board board 2020-02-01 13:42:11 +00:00
Daniel Thompson
262d93c76c wasp: simulator: First steps towards a simulator
Currently this just traces SPI activity from the ST7789 driver but its
a good baseline to start building up test functions from.
2020-01-31 19:36:55 +00:00
Daniel Thompson
e36caf5997 wasp: Add a super-simple vibrator driver 2020-01-31 19:34:04 +00:00
Daniel Thompson
0acbcc415b wasp: Reorganise the board support 2020-01-30 22:11:31 +00:00