Commit Graph

236 Commits

Author SHA1 Message Date
anschrammh
53519391ef Refactored the watch faces to only have one source file, added the possibility to choose which watch face to use when compiling 2023-12-18 23:11:56 +01:00
anschrammh
f78a1f3a1a Updated the notification callback logic 2023-12-18 21:20:57 +01:00
anschrammh
0787496aa4 Updated the notification state callback to pass the handle to the registered callback function 2023-12-18 21:19:52 +01:00
anschrammh
83b1571067 Updated the GadgetBridge parser api to be able to interact with received notifications (DISMISS, OPEN, REPLY etc) 2023-12-18 21:16:48 +01:00
anschrammh
c0a6b2c93f Changed the random number generator static seed by using the current elapsed time in ms 2023-12-18 21:12:08 +01:00
0521ea37a9 Now setting some BLE connection parameters to try improving the watch's power consumption, shaved two mA off :( 2023-12-02 22:31:01 +01:00
anschrammh
9e16ed302d Added a new watchface which replaces the old one for now. Will add a way
to choose which watchface to select in the application configuration file
(app_config.h).
2023-11-29 08:39:35 +01:00
anschrammh
fd0f44e888 Reworked and added the user feedback callback function to make the API consistent, implemented it on some screens/app already 2023-11-27 08:40:25 +01:00
anschrammh
8b16cf98aa It is now possible to swipe from right to left on the menu screen to open back the previously used application 2023-11-27 08:38:12 +01:00
anschrammh
68e1accde7 Added the possibility to enable the watchdog timer in case something goes sideways using the app_config.h file (enabled by default) 2023-11-27 08:37:08 +01:00
598feba07a Menu screen items are now displayed in a circular pattern and not as a straight list anymore 2023-11-04 16:28:26 +01:00
da65442ad5 Started to implement some functions of the watch power management system (dynamically change CPU clock), more to be done. 2023-11-04 12:27:33 +01:00
b5efc4f3a2 Cleaned up some code, calling vibrate functions where needed. 2023-11-04 12:11:40 +01:00
518c78f879 Added two new helper function to vibrate the watch on item click and vibrate the watch on received message notifications. 2023-11-04 12:10:42 +01:00
54c35bcde8 Regenerated used fonts (14, 16, 24, 28 and 30) to add accented characters used in the french and german languages. Added parentheses around macro value in app_config.h, Updated the firmware_version.h file. 2023-11-04 12:09:02 +01:00
0580425401 Reworked the menu_screen internal working to be able to register an item clicked callback used to vibrate the watch as a configurable feedback to the user. 2023-11-03 14:42:20 +01:00
8ee9f96de2 Moved helper function used to vibrate the watch when an item was clicked to an other source file to clean things up 2023-11-03 14:40:12 +01:00
Anatole SCHRAMM
06c02f76ba Added the possibility to set the notification's displayed hour format (12H/24H) 2023-10-25 13:39:06 +02:00
Anatole SCHRAMM
6b06e28394 Enabling the settings save feature (called when leaving the settings screen) only when the HARDWARE_PLATFORM is set to SMART_WATCH_PCB_RELEASE 2023-10-25 12:46:43 +02:00
Anatole SCHRAMM
01ba704adc Taking into account the newly available HARDWARE_PLATFORM for various file configurations 2023-10-25 12:44:48 +02:00
Anatole SCHRAMM
627754a5e6 Cleaned and added and new HARDWARE_PLATFORM to set the BLE name of the device as well as enable specific features if it is the release firmware ie the watch that is used daily 2023-10-25 12:43:41 +02:00
anschrammh
f31b3a2896 Corrected received notification time formatting, changed a lv_label_set_text to lv_label_set_text_static 2023-10-25 08:23:52 +02:00
3c36ec92ad Added the watch_power_management folder to the header include list 2023-10-22 09:03:46 +02:00
0fcfae7d1c Reworked the RTC driver to internally track the years from 2000 and not 1900 as there are only 7 bits for storing the years and this would overflow in 2028 ... 2023-10-22 09:02:38 +02:00
111ebd65c5 Did more code cleaning, integrated notification logic, a few things still needed to be fully functional 2023-10-22 09:00:33 +02:00
4107a5461f Added new settings to the notification section of the settings (Vibrations duration and strength for the message notifications and for the call notifications), added switches to enable or disable notifications 2023-10-22 08:59:28 +02:00
77a87d401e Added new functions to the API, work is almost done for the popup part of the notification, still need to design the notification history app 2023-10-22 08:57:23 +02:00
5b74ae2676 Added missing (void *) cast 2023-10-22 08:55:26 +02:00
ab08d61ee2 Fixed badly computed vibration strength, which could'nt reach 255... 2023-10-22 08:54:13 +02:00
24c3d8f397 Added missing stdio include file 2023-10-22 08:52:10 +02:00
e878184b5d Added a few function around power management, work is still in progress aand the API might change 2023-10-22 08:50:19 +02:00
f7c66602e7 Minor clean 2023-10-22 08:48:41 +02:00
anschrammh
a89e0db18a increased the available memory to lvgl from 30k to 35k of RAM 2023-10-19 08:32:27 +02:00
anschrammh
d796c4c0fa Fixed a bug where on watch screen creation, depending on the current battery state, I paused a timer which was not yet created... 2023-10-19 08:32:26 +02:00
anschrammh
b19c7defc7 Added an event callback to know what setting category is opened and closed, reworked the way the side screen is cleaned (refactoring), added a background color on the selected item of the list 2023-10-19 08:32:25 +02:00
anschrammh
bf9816457b Added the GadgetBridge notification popup (Work In Progress), removed the compass app update code from the loop, plus other ongoing code cleanup/rework of this file 2023-10-19 08:32:24 +02:00
anschrammh
af71c44af4 The compass app now updates it's azimuth and temperature by itself with a timer and doesn't rely on the main loop to do so. It also, through a callback, put the magnetometer in active or standby mode to save power when leaving the app 2023-10-19 08:32:20 +02:00
anschrammh
2fc99479c5 Updated the GadgetBridge parser to fix an issue where a double quote was added in the parsed data if we received a notification text with 35 characters, removed the const attribute of the parameter passed in the event callback 2023-10-19 08:07:26 +02:00
anschrammh
59a42c7309 Changed battery_unit_e enumeration values names to capital letters for consistency sake 2023-10-19 08:03:02 +02:00
anschrammh
73b0a6f2f3 Minor change trying to make the mmc_sdio driver more robust 2023-10-19 08:00:25 +02:00
anschrammh
43dc3ce89e Cosmetic change 2023-10-19 07:58:42 +02:00
anschrammh
8f53359cb8 Added the folder for a new module which work is still in progress : the power management block 2023-10-19 07:57:48 +02:00
7af7c7f95d Minor watch settings renaming 2023-10-15 11:04:49 +02:00
5cd5080fc9 Removed a potential memory leak in the GadgetBridge parser state machine 2023-10-15 11:02:55 +02:00
anschrammh
5b0dea4cd7 Remapping the accelerometer axes when changing the display's orientation so that the wakeup gesture continues to work as expected 2023-10-11 13:30:05 +02:00
anschrammh
34bf170dee Minor changes : added the static keyword to some global variables to at least limit their scope to the file 2023-10-03 20:46:38 +02:00
1e1cb3e459 Updated firmware version number 2023-10-01 19:48:25 +02:00
1f43db8e18 Updated the watch's settings screen so that the selected item in the list on the left side is highlighted. 2023-10-01 19:45:12 +02:00
d1f1481f13 Commented the functions of the API and corrected a last issue (I hope) with an integer overflow causing some sync issues. Music player should be perfect now ! 2023-10-01 19:43:19 +02:00
1a425cce58 Now vibrating the watch on a menu item click if it is configured to do so 2023-10-01 19:40:05 +02:00
72ddebfb8b Minor update to function comment 2023-10-01 19:38:58 +02:00
0bb9c1fe7e Removed the touch_panel_feedback_cb callback function which vibrated the screen every time the touch screen was used 2023-10-01 19:36:48 +02:00
5deafc767d Added a new function which should be called on every item click. It will vibrate the watch to give some user feedback if the watch is configured to do so 2023-10-01 19:35:26 +02:00
07e5867d21 Updated the watch_peripherals_vibrate_with_pattern function sighature, the parameter is now a const 2023-10-01 19:34:08 +02:00
anschrammh
50b12e4548 Reworked the way the music player is keeping track of the play time of the current playing song so it doesn't desync when closing the player app or when the screen goes off 2023-09-27 23:07:20 +02:00
f5d3e33dab Fixed the date shown in the about section of the settings, months were off by one ... 2023-08-08 20:42:25 +02:00
Anatole SCHRAMM
ece0d08ae7 Added more documentation comments 2023-07-06 15:28:18 +02:00
Anatole SCHRAMM
8af4e2467e Now updating the battery percentage sent by the BLE battery service 2023-07-06 15:14:38 +02:00
anschrammh
10cb049ab1 Changed the logic of the music player when clicking on the next and previous buttons, now, a short click goes to the next/previous track and a long click forwards/rewinds the song by X seconds 2023-05-30 19:12:05 +02:00
anschrammh
5a62e05e0e Automatically centers the date number in the date windows of the watch's face 2023-05-30 19:10:39 +02:00
anschrammh
bc37beb5c0 Added a new function to the watch peripherals API to vibrate the watch with a custom pattern 2023-05-30 19:09:26 +02:00
Anatole SCHRAMM
5276ce1664 Added a timer to update the playing's music current position, will have to do a minor rework for it to be flawless. 2023-05-16 13:45:41 +02:00
c9f84fd5c1 Added missing strcasecmp function prototype in the include file 2023-05-14 22:17:55 +02:00
fa574d0baa Added some new words translation for the music player screen 2023-05-14 22:16:44 +02:00
47e31a1210 Rephrased some API comments 2023-05-14 22:15:14 +02:00
17164c722e Integrated the music player screen to the watch's firmware + minor other things 2023-05-14 22:14:38 +02:00
cf7c52c1eb Commented the API 2023-05-14 22:13:26 +02:00
df4ab1f790 Proper comments format 2023-05-14 22:12:26 +02:00
6df9ab5aad Added the music player icon + saving the menu list scroll position when leaving an app 2023-05-14 22:11:47 +02:00
edb127e626 Updated the gadget bridge parser 2023-05-14 22:10:13 +02:00
23f592bcc1 Finally added the music player used to control the music playback of the phone through the BLE connection. It works great, some minor adjustements to do though. 2023-05-14 22:09:43 +02:00
2f50aa50c6 With the current driver state, it is possible to detect heart beats and thus compute the current heart rate. More things to come. 2023-05-12 15:24:59 +02:00
880dd9cb0e MAX3010X driver continued and to be continued ... 2023-05-12 12:31:01 +02:00
61d8f80551 Renamed MAX3010X.h/c driver files 2023-05-11 21:57:20 +02:00
anschrammh
dc2f1dcecc Replaced lv_color_make(0xFF, 0xFF,0xFF) with lv_color_white(). 2023-05-11 07:22:56 +02:00
anschrammh
42c01e1d08 Continued to work on the MAX3010X driver, setup function is complete, still a lot to port/implement 2023-05-11 07:18:11 +02:00
3ae5bb9bdf Continued to implement/port the MAX30102 using the sparkfun library. Still work to be done ! 2023-05-08 21:30:58 +02:00
ee5a466666 Renamed register name define to be easier to understand 2023-05-08 21:29:15 +02:00
3cfbfdc843 Moved registers defines of the various I2C drivers I wrote from the header file to the source file because they do not need to be exposed. Started to write/port the Heart Rate Sensor (MAX30102) driver 2023-05-07 08:50:23 +02:00
anschrammh
dba1a5182d Did some renaming 2023-05-03 22:52:17 +02:00
anschrammh
fdc8eb4c99 Removed warning due to missing header files and unused variable 2023-05-03 22:50:36 +02:00
b435687e33 Added the find my phone app/feature source files 2023-05-01 21:05:26 +02:00
6936eb2a0e Minor change : removed the capital letter at the front of some parameters 2023-05-01 21:02:26 +02:00
99263462ad Added the find my phone app/feature with it's related translation in english, french and german 2023-05-01 21:01:28 +02:00
8a636a238c Added a new icon used for the find my phone app 2023-05-01 21:00:30 +02:00
30a841227b Quickly calibrated the compass to check if it worked with the PCB in the casing and with the magnetic connector nearby, and it does 2023-04-23 21:02:27 +02:00
7a6810a56e Added BLE pairing security when this is the first time the watch is paired to a phone. Depending on the capabilities of the device, it might be required to enter a pass key for bonding. 2023-04-22 22:40:41 +02:00
41febe5fef Added missing include to get rid of the explicit declaration warning 2023-04-22 22:37:54 +02:00
ebf7f07789 Implemented a few new callbacks 2023-04-22 13:23:20 +02:00
e698dfb274 Now displaying the BLE device MAC address in the connectivity tab 2023-04-22 13:21:35 +02:00
3fe41b0971 Added new functions to the API 2023-04-22 13:20:44 +02:00
a550c52c39 Added a function to generate a random 6 digit number, this number could be used as the bluetooth pairing code 2023-04-22 13:20:15 +02:00
2206b6f2fb Added enum to string utility function for the IO action 2023-04-22 13:16:39 +02:00
anschrammh
13b3ecfacf Changed log write frequency 2023-04-20 13:16:03 +02:00
anschrammh
17d8c9949d Added new data to save to flash and new accessor functions, work is still in progress ! 2023-04-20 13:15:15 +02:00
anschrammh
ef0abe0ab7 Added new informations in the about section (raw magnetometer data, raw pressure and temperature and more). 2023-04-20 13:14:05 +02:00
anschrammh
fcc152f64d Changed some core logic, now sending the watch's battery information when connected every 5 minutes to the phone so that gadget bridge can draw and update the battery graph. Added annd implemented a few callbacks used by the watch_settings screen 2023-04-20 13:13:06 +02:00
anschrammh
552644a412 Minor date number placement rework 2023-04-20 13:09:51 +02:00
anschrammh
5ea4d8fb38 Re enabled the tick hook function in FreeRTOS used by the millis function 2023-04-20 13:09:28 +02:00
anschrammh
5f7ac5a1d1 Introduced a new event which can be passed to the calling application : BLE_SERVICE_MODE_UNSUBSCRIBED, added a function to the API allowing to set the battery service level (still need to check if a device is subscribed to the characteristic to send the new value ot it). 2023-04-20 13:08:23 +02:00