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 +07:00
JF
4d2aacf863
Display battery level and BLE connection status using icon on Clock screen.
2020-03-14 16:33:47 +07: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 +07:00
JF
4de22601f5
Apply a "up" transition when an app is opened.
2020-03-10 20:21:41 +07:00
JF
35e221078b
Add support for gestures and integrate it with the vertical scrolling transition.
2020-03-09 21:29:12 +07: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 +07: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 +07:00
JF
3f80a3debd
Remove not needed code.
2020-03-06 21:54:36 +07: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 +07:00
JF
545636940f
Merge branch 'littlevgl'
...
# Conflicts:
# src/DisplayApp/Screens/Clock.cpp
# src/DisplayApp/Screens/Clock.h
2020-03-03 19:59:01 +07:00
JF
d88ec8c2f0
Workaround for the first touch that is taken twice into account.
2020-03-02 20:48:58 +07:00
JF
43ffeb15d1
Remove TODO as they are not needed anymore
2020-03-02 20:48:35 +07:00
JF
262336afa5
Fix Type in sdk_config
2020-03-02 20:19:50 +07:00
JF
6b5b0112e3
Re-Enable BLE
2020-03-02 20:13:42 +07:00
JF
64014f03ee
Fix date/time conversion from CTS to internal date/time representation.
2020-03-02 20:13:30 +07:00
JF
824b8a7ebd
Move version display from Clock screen to the modal window (accessible from tile menu)
2020-03-02 20:12:46 +07:00
JF
dccef16180
Remove default lvgl font (roboto).
2020-03-01 21:15:39 +07: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 +07: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 +07:00
JF
a1d79e7ecc
Fix Model that would crash when closing it.
2020-03-01 17:20:27 +07: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 +07: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 +07: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 +07:00
JF
e285ba9972
Fix double-buffering for spi display (it's actually using double-buffering, now)
2020-03-01 15:57:58 +07:00
JF
179b14f48c
Add new Screens (gauge, meter,...)
2020-02-26 20:49:26 +07: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 +07:00
JF
f07ffab4c1
Re-enable BLE, BLE status on display and battery level on display.
2020-02-23 16:14:03 +07: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 +07:00
JF
2bdff7ed2b
Re-enable BLE display on Clock screen
2020-02-20 18:17:53 +07:00
JF
79b4f006be
Prevent unnecessary refresh in Clock screen.
2020-02-16 18:37:18 +07: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 +07:00
JF
f30573a9b0
Add support for hardware assisted vertical scrolling.
2020-02-15 15:12:29 +07:00
JF
52539a5ff1
Log Touchpanel data (position + gesture!)
2020-02-12 19:57:04 +07:00
JF
e65c9fa181
Integration of lvgl : continued...
2020-02-10 21:05:33 +07:00
JF
a97faf8e9e
First quick'n'dirty integration of LittleVGL. Needs some cleaning.
2020-02-08 18:01:02 +07:00
JF
be7be86033
Improve clock accuraty and reduce clock drifting over time (before : 1/2h per day, now : 0 minutes in 24h).
2020-01-31 20:01:33 +07:00
JF
6491a7c3a0
Remove test code
2020-01-26 15:39:49 +07:00
JF
640e8cd1fe
GFX : wait end of transfert using a task notification.
...
Code cleaning in SpiMaster.
2020-01-26 15:35:18 +07:00
JF
5fa4f5abe0
Better integration of SPI with DMA and IRQ. Using only 'End' IRQ. Perf could be improved by using 'Started' IRQ to prepare the next buffer while the current one is beeing sent.
2020-01-26 13:37:10 +07:00
JF
eb7a1b3ac9
[WIP] Max SPI speed reached (119ms for a full refresh. Theo max : 240*240*16 = 115.2ms) using IRQ and DMA.
...
Code needs some cleaning before integration.
2020-01-22 21:08:53 +07:00
JF
aa3e5c0c6f
[WIP] Use IRQ in SPI driver to improve performances
2020-01-22 19:45:53 +07:00
JF
b4bd41cd56
Implement the SPI driver using DMA.
2020-01-19 19:47:49 +07:00
JF
aeb4cce8fe
Merge branch 'master' of https://github.com/JF002/Pinetime
2020-01-19 12:30:03 +07:00
Daniel Kucera
ffbeeba3e9
downgrade to cmake 3.10
2020-01-18 21:26:05 +07:00
JF
2b3e6b1cde
Refactor ctor() and Ini() of SpiMaster.
2020-01-18 20:53:32 +07:00
JF
86d9f6e6c8
Set minimum version of cmake to 3.10
2020-01-18 20:52:33 +07:00
JF
f049f382f0
Encapsulate the drawing of the screen into Screens classes.
2020-01-18 18:17:52 +07:00
JF
fb99520c98
Add version (major.minor.patch) in CMake files.
...
Display the version on the display.
2020-01-18 14:50:24 +07:00
JF
6ca081739e
Update comment about system task
2020-01-18 14:28:13 +07:00
JF
b34ff32f76
DateTimeController is now updated in the system task.
...
It runs every 1s in Running mode, and every 1h in sleep mode.
This should allow to keep the watch on time for more than 4 hours.
2020-01-18 13:56:25 +07:00
JF
8daa830ee0
Apply Hardware reset on display during wake-up, as softreset might not be enough to wake the display up.
2020-01-18 13:55:22 +07:00
JF
c1f3a31b51
Disable SPI, I²C, touch controller and display controller in sleep mode.
...
Re-enable them on wake up.
Remove delays that were not needed in st7889 driver.
Hopefully, it'll improve the battery life!
2020-01-17 22:16:45 +07:00
JF
6abf12ffb7
Detect BLE disconnection (in addition to BLE connection) and update the display accordingly.
2020-01-12 16:39:03 +07:00
JF
3c29a11c78
Fix link error because of missing file "nrf_common.ld"
2020-01-12 16:26:20 +07:00
JF
f23ef842ca
Improve date/time accuracy and handle counter overflow.
2020-01-12 16:00:45 +07:00
JF002
9baf00bbfe
Merge pull request #11 from JF002/date-library
...
Date/Time management
2020-01-11 17:16:52 +07:00
JF
8253c099d9
Add date library ( https://github.com/HowardHinnant/date ) to manage the date and time.
...
The date is now properly processed (31 December 2019 23:59:59 + 1s => 1 January 2020 00:00:00)
2020-01-11 17:14:12 +07:00
JF
04c7b1429f
Increase configMINIMAL_STACK_SIZE to fix crash issue caused by freertos timers.
2020-01-09 22:00:54 +07:00
JF
bbe4e500c3
Improve power consumption and SLEEP mode :
...
- Disable IDLE hook (it would wake the device up as soon as possible).
- Logger task sleep for 100ms (disable logging for better battery life)
- Logging is disabled by default
- Apply fix for ERRATA 87 (clear FPU interrupt before going to sleep). Ports files from FreeRTOS are now in the sources (they where in the SDK before)
2020-01-05 11:09:07 +07:00
JF
ee530baaa0
Add basic touch panel driver.
...
Handle touch event in display app : draw a big square at the touch point coordinates.
2020-01-03 16:32:31 +07:00
JF
27d0e1e02f
Add documentation about building a stub using NRF52-DK.
2020-01-02 15:19:28 +07:00
JF
16c7ce8929
Send command DisplayOn/Off to LCD when enabling/disabling the display.
2020-01-02 14:48:33 +07:00
JF
e08cfe07c7
Apply reset signal on pin P0.26 for LCD during init.
2020-01-02 14:47:59 +07:00
JF
6abe5d8db8
Remove deleted files from CMakeLists.txt
2019-12-30 17:44:43 +07:00
JF
b744b96622
Add DateTimeController to manage the time.
...
Use messages in message queues to refresh the UI
2019-12-28 14:34:50 +07:00
JF
46eeefb53a
Add BleController to manage the BLE connection status
2019-12-27 17:05:49 +07:00
JF
11aa5e3d88
Replace pin numbers by constants
2019-12-27 17:05:09 +07:00
JF
fcbd341c1c
Implement battery measurement in BatteryController.
...
Update battery info on wake up (with button)
2019-12-27 16:05:35 +07:00
JF
11d5403558
Add small font, display date, Ble connection and battery power in display app (hard-coded values for now).
2019-12-27 15:12:09 +07:00
JF
b5b3c4270b
Measure and log battery voltage from SystemTask
2019-12-27 15:11:21 +07:00
JF
75e74904e8
Use push button to go to sleep/wake up.
...
Use a queue to transmit messages between system and display task (sleep & wake up for now).
2019-12-26 18:33:40 +07:00
JF
e8f9304d37
Code cleaning, implement BT connection, advertising, discovery and CTS in ble_manager module.
2019-12-23 19:57:45 +07:00
JF
981dc3fce1
Track the time using RTC
2019-12-21 22:31:06 +07:00
JF
ecf307c559
Add BLE and CTS client. Time can be retrieved from a CTS server (like NRFConnect) once it's bond.
...
WIP, the code is really ugly
2019-12-21 17:58:00 +07:00
JF
528fc56616
The font is now fixed width.
...
HUGE performance improvement of the display driver.
2019-12-07 19:15:33 +07:00
JF
6fbb6c8f70
Convert Spi and GFX to C++.
2019-12-07 17:11:50 +07:00
JF
0db16bd827
Add missing return statements which fix crashes in release mode.
...
Add flag to compiler so that it generates an error when a returning function does not return something...
2019-12-06 20:46:21 +07:00
JF
5225706cc8
Add DisplayApp, and lcdfont. Update the display every second
2019-12-05 21:19:47 +07:00
JF
adf405a230
Add support for LCD (ST7789)
2019-12-05 19:23:46 +07:00
JF
66182d15bc
First code tested on the actual pinetime hardware
2019-12-02 19:42:10 +07:00
JF
2ea27e0cda
Initial commit
2019-11-17 20:47:04 +07:00