Commit graph

217 commits

Author SHA1 Message Date
JF 09adb78b55 Fix/Workaround a memory leak each time a device connects to BLE. 2020-07-11 20:50:40 +02:00
JF 71842667a0 Remove debug (and bad) #includes. 2020-07-08 21:14:52 +02:00
JF 62de76ba99 Automatically switch the display on when receiving a notification 2020-07-04 18:10:30 +02:00
JF 4abbd7d0cf Add doc : how to add new symbols. 2020-07-04 14:14:31 +02:00
JF da39f402e5 Replace bitmap icons by font icons (provided by AwesomeFont and LVGL). These icons are smaller in memory and quicker to draw.
BLE and battery icon replaced in Clock screen.
Added heartbeat and step icons in Clock screen.
Replace all labels in Menu by icons.

Add doc to generate new font.
2020-07-04 13:58:15 +02:00
JF bb11891b6e Remove custom styles in Screens and define default style and "Big style" in LittleVgl during the initialization of LVGL. 2020-07-03 21:37:40 +02:00
JF ca549bcfd8 Add doc about memory usage analysis. 2020-07-03 14:45:01 +02:00
JF a83f067af9 Reduce RAM memory usage by tuning the stack of the stasks and the heap allocated for FreeRTOS.
Add Monitor to log the stack usage of each task.
2020-07-02 21:38:52 +02:00
JF 89e7033830 Fix buffer overflow opportunities in AlertNotificationService & AlertNotificationClient. 2020-06-28 11:59:14 +02:00
JF 4f9adb2372 Re-enable watchdog 2020-06-27 16:11:42 +02:00
JF f8ffb405a2 Merge branch 'nimble_1_3_0' into develop 2020-06-27 16:10:17 +02:00
JF002 e86991284f
Merge pull request #37 from darnel/fix-include
Fix #include to relative paths
2020-06-20 16:36:36 +02:00
JF 3dfba0b90d Update BLE status when BLE is connected. 2020-06-19 22:20:12 +02:00
JF b8f9d70667 Use PRIMASK instead of BASEPRI for critical sections in FreeRTOS. This is needed by NimBLE to be able to mask radio interrupt (which has priority 0). 2020-06-19 22:11:21 +02:00
JF 238cda0b90 Apply fix for errata 87 (FPU issue). 2020-06-19 22:10:30 +02:00
JF a0b5cbbc1c Disable all logging 2020-06-19 22:10:01 +02:00
Vojtěch Jirkovský 34fd4c5cf3 Fix link error because of missing file "nrf_common.ld" 2020-06-17 23:32:56 +02:00
Vojtěch Jirkovský 064e77f05a Fix #include to relative paths 2020-06-17 09:04:15 +02:00
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