Jean-François Milants
7f9cc51b05
Initialize SystemTask, DisplayApp and HeartRateTask as global static variable instead of variables on the heap. We don't need them on the heap as we know their size at build time, it'll reduce memory fragmentation and it'll make memory analysis easier.
2021-06-06 15:56:03 +02:00
Kieran Cawthray
f2d01166c3
Merge remote-tracking branch 'upstream/develop' into pinetimestyle
2021-06-04 08:57:40 +02:00
JF002
1b6acdedc2
Enable various compilation flags to reduce the binary size ( #401 )
...
* Add the following compilation flags:
* -fno-exceptions and -fno-non-call-exceptions : disable exception handling
* -fno-rtti : disable run time type information (needed by dynamic_cast, for example)
These flags reduce the binary size by about 100KB!
Also, -fstack-usage generate debug info (not in final binary) to allow tools like Puncover to do a stack analysis.
* Remove unused CMake variables in CMake_nRF5x.cmake (duplicated in src/CMakeLists.txt).
Replace -O0 by -Og in DEBUG builds. This generates a smaller binary (small enough for the internal memory) that is debugger friendly.
2021-06-01 21:03:01 +02:00
JF002
c0b0f8cb73
Remove debug defines (DEBUG & DEBUG_NRF_USER) from the build. These debug can be useful for debugging purposes but not in production (release). ( #400 )
...
This reduces the size of the binary by about 6KB!
This also removes filepath that were embedded into the binary (.bin) file.
2021-06-01 21:02:15 +02:00
Kieran Cawthray
565601ef50
Merge remote-tracking branch 'upstream/develop' into pinetimestyle
2021-05-21 14:34:25 +02:00
Florian
13e3463276
Timer App ( #355 )
...
* built timer app
* Style improvements
* making sure buttons stay hidden when the app is reopened and reappear after the timer runs out
* more sensible calculations of time deltas. eliminated that mysterious scaling factor
* changing the timer icon
2021-05-20 20:43:54 +02:00
Kieran Cawthray
108bbc3642
Fix it again..
2021-05-18 18:03:26 +02:00
Kieran Cawthray
6a92529272
Revert "Reset"
...
This reverts commit 378fa6b401
.
2021-05-18 17:45:16 +02:00
Kieran Cawthray
378fa6b401
Reset
2021-05-18 15:33:25 +02:00
Joaquim
cd4a3e1dfe
New Steps app
...
Settings to set the steps goal
More detail in Motion app
New 42px Font
2021-04-19 15:28:38 +01:00
Jean-François Milants
15b3b8e282
Merge branch 'develop' into motion-sensor
...
# Conflicts:
# src/CMakeLists.txt
# src/displayapp/Apps.h
# src/displayapp/DisplayApp.cpp
# src/displayapp/DisplayApp.h
# src/displayapp/lv_pinetime_theme.c
# src/displayapp/screens/ApplicationList.cpp
# src/drivers/TwiMaster.cpp
# src/systemtask/SystemTask.h
2021-04-09 21:16:21 +02:00
Jean-François Milants
9ac4be8b75
TwiMaster is now based on the NRFX TWI driver, as it handles more edge cases and workarounds for errors on the bus.
...
Reset the TWI bus after the soft-reset of the motion sensor to workaround issues on the TWI bus.
2021-04-08 20:07:24 +02:00
Jean-François Milants
68bdaee1cc
First integration of the motion sensor (bma 421) : step counting + wake on wrist rotation + app to see the value of the 3 axis in "real time".
2021-04-04 15:56:04 +02:00
Joaquim
1d3742e14f
Big UI and navigation Rewrite
...
new navigation
add some color to the apps
redesign menus
new settings menu
new quick settings
code clean up
size reduction by converting navigation images to font
and more...
2021-04-04 03:08:51 +01:00
Niall Cooling
e5e3fc02b8
Updated to include WatchFaceAnalog and fixed clashes
2021-03-22 17:23:49 +00:00
panky-codes
5345650880
Merged upstream
2021-03-20 22:45:29 +01:00
Jean-François Milants
405c85c160
Merge branch 'develop' of github.com:JF002/Pinetime into develop
...
# Conflicts:
# src/main.cpp
# src/systemtask/SystemTask.h
2021-03-20 11:41:49 +01:00
Niall Cooling
14bd790701
Resolved C++14 Cmake build issues so correctly building to C99/C++14 standards
2021-03-16 12:43:50 +00:00
panky-codes
1f8f527f9f
Merge branch 'develop' of github.com:JF002/Pinetime into feature/add-stop-watch
2021-03-11 10:54:58 +01:00
panky-codes
cc58b635a3
Basic logic done. Need to change the timer source to get ms. Also need to replace with paddle app in displayApp.cpp and ApplicationList.cpp later.
2021-03-11 10:54:14 +01:00
Jean-François Milants
9f67e6f652
Merge branch 'develop' into recovery-firmware
...
# Conflicts:
# src/CMakeLists.txt
# src/displayapp/DisplayApp.h
# src/systemtask/SystemTask.cpp
# src/systemtask/SystemTask.h
2021-03-07 08:44:14 +01:00
Joaquim
3d6e8c3beb
Merge from upstream
2021-03-06 19:55:36 +00:00
Niall Cooling
35aa4bb8d6
Refactored src/CMakelist to support C++14 and cleanup up redundant/incorrect -std= directives
2021-03-03 15:27:32 +00:00
Joaquim
ee6ce64571
Merge branch 'develop' of https://github.com/JF002/Pinetime into MultiFaceClock
2021-02-25 09:28:25 +00:00
Joaquim
8c53d0b70b
Multi face support, analog clock, 12/24 config
2021-02-24 19:40:24 +00:00
JF002
8a48850afd
Merge pull request #211 from roblabla/fix-flashing
...
Flash correct file name
2021-02-24 20:05:47 +01:00
Jean-François Milants
f864330d35
Merge branch 'LVGL7' of https://github.com/joaquimorg/Pinetime into joaquimorg-LVGL7
...
# Conflicts:
# src/CMakeLists.txt
# src/displayapp/DisplayApp.cpp
# src/displayapp/screens/Modal.cpp
# src/displayapp/screens/Modal.h
# src/displayapp/screens/Notifications.cpp
# src/displayapp/screens/Tile.h
2021-02-23 21:18:59 +01:00
roblabla
9f6d1c6948
Flash correct file name
2021-02-19 19:44:51 +01:00
Jean-François Milants
5fdfb2112e
Fix merge conflict.
2021-02-14 14:19:30 +01:00
JF002
4c3803450e
Merge pull request #161 from petterhs/calls
...
Call functionality with changed UUID for notification event characteristic
2021-02-14 12:03:49 +01:00
Jean-François Milants
740b3d7b58
Add new cmake option to disable the generation of DFU file (which needs adafruit-nrfutil on the build machine) : BUILD_DFU (disabled by default, enabled in docker build).
2021-02-01 21:07:53 +01:00
Joaquim
a4361de0cf
Cleanup
2021-02-01 12:14:49 +00:00
Joaquim
ccd423bcef
Merge branch 'develop' of https://github.com/JF002/Pinetime into LVGL7
2021-02-01 10:44:10 +00:00
Avamander
4371b7fecc
Update CMakeLists.txt
2021-01-30 19:11:07 +02:00
Joaquim
a456887eff
LVGL v7.10.0
2021-01-28 17:13:28 +00:00
Jean-François Milants
25f35c7d0e
Generate pinetime-recovery : a light version of InfiniTime design to be used as a recovery firmware : it only provides basic UI and BLE connectivity for OTA.
...
This new FW is build on the same codebasse than the actual InfiniTime. Only the display task is different (this allows to remove lvgl from the recovery fw, which is very heavy).
CMake builds and docker have been modified accordingly.
Note than the fw is converted into an image and then into a DFU in the cmake build (previously, it was only done in the
2021-01-26 20:31:45 +01:00
The King
8c3df5f021
Merge branch 'develop' into upstream-dev
2021-01-24 16:01:14 -05:00
Jean-François Milants
219bafb01a
Handle call notification the same way than other notifications.
...
Display the call notifications in the Notification app, with buttons to accept/reject the call.
2021-01-24 17:22:39 +01:00
jlukanc
51c8cadcb7
fix merge issue
2021-01-23 16:13:58 -05:00
jlukanc
4cbcc99c8d
fis merge conflict?
2021-01-23 16:12:06 -05:00
Jean-François Milants
522a1eb0be
Merge branch piggz/nav into develop:
...
- fix conflict
- add a icon for the navigation app.
2021-01-20 21:34:09 +01:00
Jean-François Milants
68674cec53
Add heart rate BLE service.
2021-01-17 16:34:14 +01:00
jlukanc
ce6c5d3bd3
add motorcontroller to cmake
2021-01-15 22:46:03 -05:00
jlukanc
fbb77baa3b
add non-blocking motor controller
2021-01-15 22:11:53 -05:00
Jean-François Milants
1a582815ba
First implementation of the HR sensor using 100% foss code (ported from waspos)
2021-01-10 17:57:26 +01:00
Jed
12617ed1bf
adds 2048 clone game
...
styles table
reads touch events
allows moving tiles
allows merging tiles
improves tile movement
allows merging tiles
adds score display
implements color
edit comments
adjust game logic
disallows double merges
2021-01-02 14:15:12 -06:00
ZephyrLabs
1d69c79942
Addition of new files in MakeList
...
added Paddle.cpp and Paddle.h
2020-12-03 19:46:36 +05:30
Ryan Hartlage
a30282bdd5
Flash the correct file when running FLASH_pinetime-app with JLink
2020-11-14 19:23:16 -05:00
JF
29f8074fcb
Refactoring of BLE service discovery : it is now implemented into the classes of the services.
2020-10-29 16:06:01 +01:00
JF
7de43a1660
Fix conflicts
2020-10-27 21:55:18 +01:00
JF
1bb2eb9dcd
Disable sleep mode on the SPI NOR Flash when the version is unknown. This is because the current bootloader (which does not exposes its version) cannot initialize the chip when it's in sleep mode.
...
This feature will be re-enabled when the bootloader expses it's version.
2020-10-27 19:38:45 +01:00
JF
ef5670c7e0
Integrate new notification UI with notifications coming from BLE
2020-10-20 20:57:39 +02:00
JF
55427d83b8
[WIP] Add new notification UI that use HW scrolling effects. Both notification apps are available in the menu, we can compare them.
2020-10-19 21:46:41 +02:00
JF
28bc434419
[WIP] New notification app that uses software scrolling effect.
2020-10-18 17:35:36 +02:00
Avamander
f68c7b65b3
Minor formatting, diagnostic and documentation changes
2020-10-09 11:36:16 +03:00
Avamander
cc3a9f3c79
Removed an incomplete message() call from CMakeLists.txt
2020-10-04 18:46:34 +03:00
Avamander
6c86d1d9d7
Fixed all the includes that were broken due to the renames
2020-10-02 22:16:48 +03:00
Avamander
4daab26926
Renamed displayapp/Screens to displayapp/screens
2020-10-02 21:49:55 +03:00
Avamander
e3fb2f0b89
Renamed DisplayApp/ to displayapp/
2020-10-02 21:46:41 +03:00
Avamander
30c261028e
Renamed Logging/ to logging/
2020-10-02 21:45:51 +03:00
Avamander
e25c4edbcf
Renamed SystemTask/ to systemtask/
2020-10-02 21:45:21 +03:00
Avamander
40a643d203
Renamed Components/ to components/
2020-10-02 21:44:27 +03:00
Avamander
455d8319e4
Reformatted the CMakeLists for consistency
2020-10-02 21:43:30 +03:00
JF
f3728c41bb
Add Immediate Alert Service, needed by the "Find Me" profile from BLE spec.
2020-09-27 20:59:06 +02:00
JF
5d3a974493
Add BatteryInformationService to expose the battery level to BLE host.
2020-09-27 20:02:47 +02:00
JF
d757344f1b
Docker post build : generate post build script with versions from the CMake project.
2020-09-08 22:15:10 +02:00
JF
a664dec07f
Add paint application.
2020-08-21 11:55:59 +02:00
JF
7d3af600bd
Add TouchModes : in Gestures mode, only 1 event is processed for each touchevent. This allows to recognize gesture and handle them in Screens or in DisplayApp.
...
In Polling mode, X/Y positions are sent continuously to lvgl, allowing to scroll inside a dropdown menu for example.
2020-08-20 21:09:45 +02:00
JF
e6a1aff6ce
Docker build : split build.sh into 2 scripts : build.sh that always exists and post_build.sh that is generated by cmake build.sh
2020-08-20 09:38:10 +02:00
JF
f197a3fe88
All output files (bin, hex, image, dfu) contain the version of the project in their filename.
...
Update Docker build script accordingly.
Also fix permission issue with docker build (all files belonged to root).
2020-08-19 21:52:46 +02:00
JF
1e1bb1c6b7
Build lvgl, nimble and nrf sdk as static libs. This allows to specify custom build param and to remove warnings from these libs.
...
This also speeds up the build of the whole project as those libs are now built once for the 3 targets.
2020-08-17 16:48:12 +02:00
JF
83f6d7d81b
Fix most of the warnings. Remaining warnings come from nimble source code.
2020-08-17 16:31:00 +02:00
JF
e6f5ab7b91
Merge develop and fix conflicts.
2020-08-14 19:54:43 +02:00
JF
f5328ec9eb
Refactor ScreenList to make it more generic : it can now contain any Screen type.
...
Integrate this new ScreenList in SystemInfo.
Add ApplicationList, which is a ScreenList of Tile. This allows to display a menu of more than 6 applications.
2020-08-14 09:46:37 +02:00
JF
bbfc20c3ff
Add new screen that allows the user to manually validate the new firmware he's just OTA'ed.
...
Still need to find a way to display this screen when needed.
2020-08-11 17:50:00 +02:00
JF002
3f72af1030
Merge pull request #40 from piggz/music
...
Music
2020-07-25 15:03:29 +02:00
JF
6af5bbcbc8
New implementation of the I²C/TWI driver.
...
Fix reset timing and add dummy reading in Cst816S to fix init error on some devices.
2020-07-19 20:30:44 +02:00
Adam Pigg
789e06fdb7
Merge branch 'develop' of https://github.com/JF002/Pinetime into music
2020-07-11 21:41:20 +01:00
Adam Pigg
7a1e6e6e5b
Add start of music appliction
2020-07-11 21:37:28 +01:00
JF
09adb78b55
Fix/Workaround a memory leak each time a device connects to BLE.
2020-07-11 20:50:40 +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
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
f8ffb405a2
Merge branch 'nimble_1_3_0' into develop
2020-06-27 16:10:17 +02:00
Vojtěch Jirkovský
34fd4c5cf3
Fix link error because of missing file "nrf_common.ld"
2020-06-17 23:32:56 +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
9898fed806
Update to nimble 1.3.0 + WIP : debug BLE connection issue with android phones.
2020-06-16 20:36:24 +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
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
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
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
0b8e6c3fa2
Add SPI NOR Flash driver, WIP.
2020-05-07 19:53:51 +02: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
b760b3f98c
Add a simple service to allow setting the time from a controlling
...
application
2020-05-05 20:58:15 +01:00
JF
e20fdfa494
Add new screen that is displayed during the OTA transfert.
2020-05-02 14:16:57 +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
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
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
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
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
4d2aacf863
Display battery level and BLE connection status using icon on Clock screen.
2020-03-14 16:33:47 +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
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
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
e65c9fa181
Integration of lvgl : continued...
2020-02-10 21:05:33 +01:00
JF
a97faf8e9e
First quick'n'dirty integration of LittleVGL. Needs some cleaning.
2020-02-08 18:01:02 +01:00
JF
aeb4cce8fe
Merge branch 'master' of https://github.com/JF002/Pinetime
2020-01-19 12:30:03 +01:00
Daniel Kucera
ffbeeba3e9
downgrade to cmake 3.10
2020-01-18 21:26:05 +01:00
JF
86d9f6e6c8
Set minimum version of cmake to 3.10
2020-01-18 20:52:33 +01:00
JF
f049f382f0
Encapsulate the drawing of the screen into Screens classes.
2020-01-18 18:17:52 +01:00
JF
3c29a11c78
Fix link error because of missing file "nrf_common.ld"
2020-01-12 16:26:20 +01: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 +01: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 +01: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 +01:00
JF
6abe5d8db8
Remove deleted files from CMakeLists.txt
2019-12-30 17:44:43 +01:00
JF
b744b96622
Add DateTimeController to manage the time.
...
Use messages in message queues to refresh the UI
2019-12-28 14:34:50 +01:00
JF
46eeefb53a
Add BleController to manage the BLE connection status
2019-12-27 17:05:49 +01:00
JF
fcbd341c1c
Implement battery measurement in BatteryController.
...
Update battery info on wake up (with button)
2019-12-27 16:05:35 +01: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 +01:00
JF
e8f9304d37
Code cleaning, implement BT connection, advertising, discovery and CTS in ble_manager module.
2019-12-23 19:57:45 +01:00
JF
6fbb6c8f70
Convert Spi and GFX to C++.
2019-12-07 17:11:50 +01:00
JF
5225706cc8
Add DisplayApp, and lcdfont. Update the display every second
2019-12-05 21:19:47 +01:00
JF
adf405a230
Add support for LCD (ST7789)
2019-12-05 19:23:46 +01:00
JF
2ea27e0cda
Initial commit
2019-11-17 20:47:04 +01:00