Commit graph

199 commits

Author SHA1 Message Date
JF 73e6cbde79 Fix builds that do not specify CMAKE_BUILD_TYPE during CMake generation. Apply Release by default. 2020-06-16 21:02:03 +02:00
JF f133d1e9ea Fix #include that were pointing to my own FS instead of relative paths to the SDK. 2020-06-16 20:44:11 +02:00
JF 9898fed806 Update to nimble 1.3.0 + WIP : debug BLE connection issue with android phones. 2020-06-16 20:36:24 +02:00
JF fab220d0b9 Fix idle timer bug that would prevent the screen from waking up. 2020-06-13 17:33:49 +02:00
JF 47851fb3b4 Display BLE MAC address in sysinfo Screen. 2020-06-08 21:51:34 +02:00
JF 9115c49bba Fix reset reason (it returns the actual reset reason instead of hard coded 'hard reset' value). 2020-06-07 20:31:13 +02:00
JF 421af9625b Add build date and time in sysinfo screen. 2020-06-07 20:16:39 +02:00
JF 81a0ad73d9 Set idle timeout to 15s before going to sleep. 2020-06-07 20:05:04 +02:00
JF e22c0609b5 Add uptime counter in DateTimeController and display it in SystemInfo screen. 2020-06-07 20:04:43 +02:00
JF dbdb26ae1f DfuService : fix Magic number : incorrect values were written in memory. 2020-06-07 14:10:17 +02:00
JF 46b8bf9fc1 Add new target (pinetime-graphics) that flash the bootloader logo into the spi flash memory. 2020-06-06 19:28:01 +02:00
JF e7723598a6 Automatically go to sleep after 5 sec of inactivity.
Advertise for  3 minutes at startup and on wake-up. Disable automatic continuous StartAdvertising.
2020-06-01 20:40:11 +02:00
JF de822cc3a2 Encapsulate DFU Image buffering and writing into spi flash in DfuImage.
Add some const in SPI driver.
2020-06-01 18:32:46 +02:00
JF f6aa41c214 Encapsulate notification send (sync/async) into DfuService::NotificationManager; 2020-06-01 17:35:28 +02:00
JF 07f74cee63 DFU : add timeout detection : abort dfu procedure after 10s without any data from the host. 2020-06-01 16:30:24 +02:00
JF dca559aad5 Improve DFU procedure :
- correctly write all bytes to flash
 - check CRC
 - Fix bug in notification : they cannot be sent from the control point handler (because it seems you cannot send a notification and a write acknowledge at the same time) using a timer (quick'n'dirty implementation to be improved)
 - Improve dfu screen
 - Reset if dfu image is correctly copied into flash and crc is ok.
2020-06-01 09:22:54 +02:00
JF 4717cf0a1d Add driver for writing into the internal flash.
Write the OK flag for mcuboot using this driver.
2020-05-24 20:30:06 +02:00
JF 4154dae01a Fix race condition in SpiMaster.cpp. 2020-05-24 17:46:43 +02:00
JF 073717980f Merge develop 2020-05-24 16:51:50 +02:00
JF 331481cd0c Refactor CMake files to allow building 2 binaries : one standalone and one compatible with mcuboot bootloader (the offset in memory is different).
Add documentation about mcuboot image generation and OTA.

Re-enable watchdog
2020-05-24 16:36:04 +02:00
JF 3cc76d7673 Working demo of OTA using MCUBoot https://github.com/lupyuen/pinetime-rust-mynewt/releases/tag/v4.1.4 2020-05-24 09:15:59 +02:00
JF ce32863693 Fix offset issues in OTA procedure.
CRC verification : work in progress (not fully working for now).
2020-05-20 18:39:25 +02:00
JF be1ad9b070 Disable logging once again... 2020-05-17 10:25:42 +02:00
JF 79131f4fe3 Improve SPI driver (use a mutex to prevent race conditions). 2020-05-17 09:35:01 +02:00
JF 9753967d8a Update LittleVGL from 6.1.1 to 6.1.2. It fixes a memory leak when a screen used 2 lv_img objects (occured in Clock). 2020-05-17 09:27:36 +02:00
JF d6c6ac4cf5 Remove reference to NRF Softdevice in CMake and documentation.
Update documentation.
Remove Asserts when starting advertising to prevent crash (known bug).
Set version 0.5.0.
2020-05-16 16:13:22 +02:00
JF 56fba1c242 Merge branch 'nimble' of git.proxmox3:JF/PineTime into nimble 2020-05-16 15:30:54 +02:00
JF ee05577dd6 Fix race conditions on SPI and integrate the SPI NOR Flash driver into DFUService (WIP) 2020-05-11 18:50:37 +02:00
Adam Pigg ca0ef77368 TODO is done 2020-05-07 20:06:50 +01:00
JF 0b8e6c3fa2 Add SPI NOR Flash driver, WIP. 2020-05-07 19:53:51 +02:00
Adam Pigg b4e82dd11f Add support for reading the current time 2020-05-05 20:58:15 +01:00
Adam Pigg 206bdbf5eb Move PinetimeService to CurrentTimeService witha view to implement CTS
for time handling
2020-05-05 20:58:15 +01:00
Adam Pigg d33be52bc9 Run the alert notification service and simplify trhe pinetime service
initialization
2020-05-05 20:58:15 +01:00
Adam Pigg 49a9a93cef Add a very basic alert nofification service 2020-05-05 20:58:15 +01:00
Adam Pigg b760b3f98c Add a simple service to allow setting the time from a controlling
application
2020-05-05 20:58:15 +01:00
JF f96c048deb Read and log info from Start and Ini packets. 2020-05-03 15:48:42 +02:00
JF 59287e518c Improve dfu state machine 2020-05-03 14:27:48 +02:00
JF 66caada0d2 Merge branch 'nimble' into nimble-ota 2020-05-02 17:48:59 +02:00
JF ed168716b5 Add Asssert & debug messages. 2020-05-02 17:42:26 +02:00
JF 40e3ac61bd Update syscfg.h 2020-05-02 14:18:57 +02:00
JF e20fdfa494 Add new screen that is displayed during the OTA transfert. 2020-05-02 14:16:57 +02:00
JF 87c6556ad0 Defer the discovery of services using the system task. 2020-05-01 21:58:31 +02:00
JF 56b527925c Clean code of DfuService 2020-05-01 17:58:10 +02:00
JF 0195ece317 Working DfuService with quick'n'ugly code 2020-05-01 15:36:48 +02:00
JF 332b51464a Fix random crash caused by bad implementation of ble_npl_hw_enter_critical(). 2020-04-30 20:47:28 +02:00
JF 833c53424a Re-enable watchdog 2020-04-27 20:46:25 +02:00
JF 5291bcc7de Nimble OTA : work in progress 2020-04-27 20:16:03 +02:00
JF 746c164c59 BLE : Display the actual status of the connection on the screen. 2020-04-27 20:13:27 +02:00
Adam Pigg be67b5297d Remove references to BLE Manager 2020-04-27 14:41:08 +01:00
JF bdc10744fb Add Nimble in libs directory 2020-04-26 10:25:59 +02:00
JF 032fad094c NimbleController : CTS & ANS are now working together (even if the code is not as good as I would like). 2020-04-25 15:52:00 +02:00
JF 5fcb90a149 NimbleController : CTS & ANS working but not at the same time (conflict during discovery) 2020-04-25 13:09:47 +02:00
JF 89ccdd0003 NimbleController : Encapsulate CTS client in its own class. 2020-04-23 20:57:53 +02:00
JF 24a7b6e397 NimbleController : Encapsulate device info service in its own class. 2020-04-23 20:34:38 +02:00
JF 14d6954466 NimbleController : Implement device info service 2020-04-22 20:53:43 +02:00
JF a9254ee90e NimbleController : support CTS 2020-04-22 20:19:36 +02:00
JF 2c9ce1cfc7 Encapsulate nimble code into NimbleController.
Handle all GAP events.
2020-04-19 21:26:09 +02:00
JF dd6aecbf6b Integration of nimble, work in progress.
Advertising is working.
2020-04-19 20:44:59 +02:00
JF d5c2a58914 Update BLE and battery icons from https://gitlab.com/arteeh/pinetimeos : it saves ~60KB of flash! 2020-04-05 18:54:04 +02:00
JF 26fb9ed1cd Disable logging (again...). 2020-04-04 17:43:30 +02:00
JF d564b3cf15 Fix crash when the computer disconnect from the BLE connection. 2020-04-04 17:41:21 +02:00
JF 9ad1f05bc6 Improved BLE logging
Do not consider service discovery as error
Remove dulicated BLE observer
2020-03-29 13:58:06 +02:00
JF baca0fc3e5 Encapsulate Notification management in NotificationManager. It implement a static array of notifications to avoid dynamic allocation. 2020-03-28 19:05:28 +01:00
JF 68240704c7 Add support for BLE notification (ANS client).
Work In Progress!!!
2020-03-25 21:23:40 +01:00
JF 7e9a7e4d5f Fix bad memory alloaction in sysinfo screen. 2020-03-22 12:14:38 +01:00
JF fb64ba8fb6 Add new App : Sysinfo. It displays various info about the running system : version, date/time, battery, brightness and resetreason. It contains placeholder for future use (like mac address, uptime,...). 2020-03-22 12:03:17 +01:00
JF 8ed6ffaaf8 Add the possibility to the screen to handle a touch gesture.
A default action is taken if the current screen doesn't handle it.
2020-03-15 21:01:24 +01:00
JF 2ed76ac556 Encapsulate brightness controll into the class BrightnessController.
Add a new app to configure the brightness.
2020-03-15 18:03:11 +01:00
JF eabb54f15d Workaround for a issue when the FDS (flash data storage for BLE softdevice)) memory is full (it prevent the app from running correctly and just display a black screen) : if the fds cannot init, erase the memory and try again. 2020-03-15 18:00:41 +01:00
JF 4d2aacf863 Display battery level and BLE connection status using icon on Clock screen. 2020-03-14 16:33:47 +01:00
JF a91c68c931 Backup and restore vertical scroll offset when goind to sleep/wakeup to avoid scrambled display on wake-up. 2020-03-11 21:35:06 +01:00
JF 4de22601f5 Apply a "up" transition when an app is opened. 2020-03-10 20:21:41 +01:00
JF 35e221078b Add support for gestures and integrate it with the vertical scrolling transition. 2020-03-09 21:29:12 +01:00
JF 0a5cd60fe8 When a full screen refresh is done, apply a vertical scroll during the refresh. This makes the transition from one screen the another one smoother, even if the refresh rate is slow. 2020-03-08 21:46:25 +01:00
JF d834f40c10 Do not copy LittleVgl object in DislayApp, use reference instead.
Make Cst816s, SpiMaster and St7789 not copiable and not movable
2020-03-08 21:38:11 +01:00
JF 3f80a3debd Remove not needed code. 2020-03-06 21:54:36 +01:00
JF 4ffd8d1c91 Call ble_manager_init_peer_manager() _after_ the scheduler has been started. This fixes an issue that would prevent the firmware from running correctly after a full reset or after the flashing of the firmware.
Before this fix, ble_manager_init_peer_manager() was called before the scheduler, which trigged an assert in an IRQ routine.
2020-03-06 21:50:29 +01:00
JF 545636940f Merge branch 'littlevgl'
# Conflicts:
#	src/DisplayApp/Screens/Clock.cpp
#	src/DisplayApp/Screens/Clock.h
2020-03-03 19:59:01 +01:00
JF d88ec8c2f0 Workaround for the first touch that is taken twice into account. 2020-03-02 20:48:58 +01:00
JF 43ffeb15d1 Remove TODO as they are not needed anymore 2020-03-02 20:48:35 +01:00
JF 262336afa5 Fix Type in sdk_config 2020-03-02 20:19:50 +01:00
JF 6b5b0112e3 Re-Enable BLE 2020-03-02 20:13:42 +01:00
JF 64014f03ee Fix date/time conversion from CTS to internal date/time representation. 2020-03-02 20:13:30 +01:00
JF 824b8a7ebd Move version display from Clock screen to the modal window (accessible from tile menu) 2020-03-02 20:12:46 +01:00
JF dccef16180 Remove default lvgl font (roboto). 2020-03-01 21:15:39 +01:00
JF 6f1857c503 Add debugPins module that provides functions to set and clear debug GPIOs.
Disable logging once again.
2020-03-01 21:00:59 +01:00
JF 5bc0640b73 Fix typo in the name of the font "jetbrains_mono_extrabold_compressed" + use it as the default font. 2020-03-01 19:09:59 +01:00
JF a1d79e7ecc Fix Model that would crash when closing it. 2020-03-01 17:20:27 +01:00
JF 63c5725882 Simplify Tile to improve refresh speed (it's not a tile anymore...).
Disable debug mode of lvgl.
2020-03-01 16:01:53 +01:00
JF 40bdbe503c Instantiate spi, lcd, lvg and touchpanel as global variables instead of unique_ptr (avoids dynamic alloc at run-time. 2020-03-01 16:00:43 +01:00
JF 6d288b905a Configure lvgl theme and use 2*4lines buffers as video buffer (2 lines was not enough and caused perf issues) 2020-03-01 15:59:17 +01:00
JF e285ba9972 Fix double-buffering for spi display (it's actually using double-buffering, now) 2020-03-01 15:57:58 +01:00
JF 179b14f48c Add new Screens (gauge, meter,...) 2020-02-26 20:49:26 +01:00
JF 0aa1803ea2 Enable watchdog, and issue a WDT reset when the button is pushed for more than 7s. 2020-02-23 21:09:11 +01:00
JF f07ffab4c1 Re-enable BLE, BLE status on display and battery level on display. 2020-02-23 16:14:03 +01:00
JF 02772b996f Do not compile GFX and older fonts anymore.
Refactor SystemTask in its own class.
Refactor Screen to be able to close current screen and open a new one.
Re-enable sleep/wake up and propagate button event to Screens.
2020-02-23 13:44:39 +01:00
JF 2bdff7ed2b Re-enable BLE display on Clock screen 2020-02-20 18:17:53 +01:00
JF 79b4f006be Prevent unnecessary refresh in Clock screen. 2020-02-16 18:37:18 +01:00
JF 167a0ffc87 Add touch panel port to lvgl.
PoC of user interaction with 3 screen (clock, menu and app).
2020-02-16 18:32:36 +01:00
JF f30573a9b0 Add support for hardware assisted vertical scrolling. 2020-02-15 15:12:29 +01:00