1
0
Fork 0
Commit graph

330 commits

Author SHA1 Message Date
Daniel Thompson
8c35282214 wasp: Rename Debounce to PinHandler
Debounce was a lousy name...
2020-04-06 22:04:20 +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
c593e1e9f9 wasp: draw565: Allow the drawing context to be reset
The main reason to reset the drawing context is so that it can be reset
before we call foreground() on an application.
2020-04-06 22:04:20 +01:00
Daniel Thompson
b2622b579d wasp: Add button presses to the event system.
Here the biggest changes are in the test application because we
refactor a number of the tests to make better use of the button.

Although applications may consume button events it does have a
default behavior which is to switch to the default application
(usually the clock).
2020-04-06 22:04:20 +01:00
Daniel Thompson
0cc7987689 apps: Remove unused support for effect animation
After a bit of testing I have not yet come up with a fast, visually
acceptable horizontal animated effect. Instead we simply reply on
screen blanking during the redraw... meaning there is no need for an
effect hint.
2020-04-06 22:04:20 +01:00
Daniel Thompson
d10f3dbc49 wasp: Get the terminology straight
As it turned out Direction was only a Direction because there were things
missing from the enumeration!
2020-04-06 22:04:20 +01:00
Daniel Thompson
0ac2321e82 wasp: Factor out the sleep/wake code
Pulling this out into a method allows it to be called by an application.
2020-04-06 22:04:20 +01:00
Daniel Thompson
afb9bd16b6 wasp: Add support for brightness caching and keep-awake signalling 2020-03-26 22:12:05 +00:00
Daniel Thompson
af33c7d79b wasp: Major documentation string improvements. 2020-03-26 21:46:10 +00:00
Daniel Thompson
a9413db5cf wasp: Move the constants into seperate container classes 2020-03-26 20:42:03 +00: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
5a234c16ad wasp: Rotate the swipe UI by 90 degrees
This is something of an experiment but now the app roll is traversed using
horizontal swipes and applications should primarily use vertical swipes
to navigate internally. This is mostly because if "feels" better but it
also leaves the vertical scrolling hardware available for use by the
app.
2020-03-13 19:02:29 +00:00
Daniel Thompson
3ded49c5ef fonts: sans24: Minor refactor to reduce memory allocation
This is a useful but modest optimization (maybe 3% in string
rendering.
2020-03-09 21:33:29 +00:00
Daniel Thompson
820764081e drivers: st7789: Automatically park ready for the next call to write data
This makes line-by-line drawing more efficient because don't have to
handle the dc line. The optimization targets font rendering and if good
for slightly less than 10% rendering improvement.
2020-03-09 21:32:34 +00:00
Daniel Thompson
69bc452c65 draw565: Optimize the font rendering
This is a big one... more than 4x increase in font rendering performance!
2020-03-09 21:29:35 +00:00
Daniel Thompson
031d139b7c wasp: draw565: Refactor to allow apps to focus on the drawable. 2020-03-09 00:00:13 +00: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
24438ad05d testapp: Smoother transitions between tests 2020-03-08 21:31:17 +00:00
Daniel Thompson
d236db68dc testapp: Show the render time for the string test 2020-03-08 21:22:54 +00:00
Daniel Thompson
cfffeddd77 wasp: testapp: Extend with a string render test 2020-03-08 20:48:48 +00:00
Daniel Thompson
a864a93706 wasp: manager: Blankt the display during app transitions 2020-03-08 20:47:19 +00:00
Daniel Thompson
adf9a33c9e drivers: cst816s: Minor tweaks to the generated documentation. 2020-03-08 17:40: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
138425f4d4 wasp: manager: Start refining the application interface
This is the first step in starting to formalize the seperation of
applications from the system manager.
2020-03-07 11:52:42 +00:00
Daniel Thompson
1ebafc083b wasp: simulator: Add CST816S simulation 2020-03-07 11:50:26 +00:00
Daniel Thompson
9664c394a6 drivers: nrf_rtc: Add a higher res monotonic timer 2020-03-07 11:49:35 +00:00
Daniel Thompson
1b334f7ad9 wasp: pinetime: Enable the cst816s by default 2020-03-07 11:48:17 +00:00
Daniel Thompson
e5f455b5ba drivers: cst816s: Decouple from the watch module 2020-03-07 11:47:25 +00:00
Daniel Thompson
948454a33b wasp: cst816s: Initial PoC driver 2020-03-06 21:09:43 +00:00
Daniel Thompson
7fc4592383 wasp: draw565: Add some docstrings 2020-02-23 20:52:09 +00:00
Daniel Thompson
c3d4ddafbc wasp: clock: Add some docstrings 2020-02-23 20:51:58 +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
019ca1b4ed wasp: clock: Add date indication 2020-02-19 19:57:08 +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
9c299afe41 wasp: Add pure-python SPI NOR FLASH drivers 2020-02-09 19:47:02 +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
b48df32eb1 wasp: manager: Wake up on a change of charging state 2020-02-04 08:49:10 +00:00
Daniel Thompson
2d0df5aed5 wasp: clock: Tweak the greying of the high order digits 2020-02-04 08:48:13 +00:00
Daniel Thompson
be6c6b02b0 wasp: clock: Reduce battery meter redraws
The ADC on nRF doesn't run precisely stable which means the battery
meter can flicker if updated too often. This will eventually
be fixed by the framework but, for now, let's just force the
update rate to be fairly slow.
2020-02-04 08:47:14 +00:00
Daniel Thompson
5489437f78 wasp: demo: Power up the display before launching the demo 2020-02-04 08:44:21 +00:00
Daniel Thompson
1d8b900d40 waps: widgets: Improve the battery meter athtetics
Add some extra internal padding and draw the battery in red when
power is critically low.
2020-02-04 08:43:49 +00:00
Daniel Thompson
3e0cb4eed5 wasp: manager: Avoid spurious garbage collection
Running garbage collection when idle it a waste of power...
2020-02-03 22:45:12 +00:00
Daniel Thompson
1f2c25a7bd wasp: clock: Add a simple battery meter 2020-02-03 22:35:16 +00:00
Daniel Thompson
57035ce080 wasp: st7789: Make fill() control sizing 2020-02-03 22:34:54 +00:00
Daniel Thompson
118b7bab00 wasp: st7789: Reuse the pre-allocated linebuffer 2020-02-03 22:32:53 +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
8168dd5939 wasp: st7789: Add positioning support to rleblit 2020-02-03 19:09:16 +00:00
Daniel Thompson
38c18b6403 wasp: fonts: Add a large font for digital clock apps 2020-02-03 19:08:40 +00:00
Daniel Thompson
e21f2a79ca wasp: simulator: Add ST7789 simulation 2020-02-01 20:20:53 +00:00
Daniel Thompson
c7e11d6020 wasp: Adopt a low power mode shortly after booting
This is useful for battery run-down testing and so on.
2020-02-01 20:20:30 +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
Daniel Thompson
a34d65d7fd wasp: Add battery support 2020-01-30 21:46:35 +00:00
Daniel Thompson
d3d98c8ffb wasp: Re-enable REPL by default
The demo is still there but it needs to be activated by hand
(or the manifest can be updated to include main.py by default.
2020-01-29 17:30:57 +00:00
Daniel Thompson
80bee2d305 wasp: drivers: st7789: Remove redunant delay 2020-01-28 21:19:36 +00:00
Daniel Thompson
e88165b429 wasp: drivers: st7789: native code gen for rleblit
This is a useful performance boost... but there is still
scope to get this a lot quicker.
2020-01-28 18:45:27 +00:00
Daniel Thompson
6474317574 wasp: pinetime: Fix backlight flicker during bootup 2020-01-28 18:45:27 +00:00
Daniel Thompson
8f231430b3 logo: Gather together the bitmaps into a single variable
The PineTime demo will also now cycle through both the Pine64 and
MicroPython logos.
2020-01-28 18:45:26 +00:00
Daniel Thompson
06b8730af8 wasp: Turn-key demo
Press ^C to terminate the demo and start programming in python!
2020-01-28 18:45:26 +00:00
Daniel Thompson
3157bcc310 wasp: drivers: st7789: Replace with custom uPy driver
This driver was rewritten from scratch, borrowing some idioms
from the SSD1306 driver to ensure an efficient implementation
in uPy.
2020-01-28 18:45:15 +00:00
Daniel Thompson
7ea3acc21a wasp: Add a RLE encoded Pine logo 2020-01-23 18:54:26 +00:00
Daniel Thompson
2805a719f2 wasp: st7789: Add a simple proof-of-concept display driver 2020-01-21 22:10:50 +00:00