Commit Graph

357 Commits

Author SHA1 Message Date
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
dd5ab56bc0 Updated the LVGL demo Code::Blocks project file, started to work on the notification screen to display incoming text messages, emails and more. 2023-10-01 19:51:54 +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
anschrammh
6330ecac76 Added some doc to some functions 2023-09-27 00:52:59 +02:00
anschrammh
08be2b5946 Reworked the way the playing track time is computed so that there no sync issues when we leave the music player app while a song is still playing 2023-09-26 23:26:35 +02:00
anschrammh
b0ba6c36e4 Rewriting the music player to have a better sync between phone track play time and what is displayed on the watch 2023-09-21 12:47: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
0e6828634f Updated lvgl simulator watch face source file 2023-06-15 23:06:03 +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
anschrammh
6e8802399b music_player_screen slight timer update 2023-05-16 08:42:41 +02:00
8ee1be93c6 Added the music player UI mockup 2023-05-14 22:18: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
890e461b90 Finished the UI of the music player, still need to properly increment the current track play position 2023-05-14 22:08:12 +02:00
66fa33cde1 Now saving the scroll position of the menu to resum it when exiting an app 2023-05-14 22:06:58 +02:00
677c3f3a67 Made slights adjustement to the parser to correctly parse the artist song tag when the album tag is present 2023-05-14 22:06:09 +02:00
faefc7df74 Music player screen is almost done, a few things more to tweak 2023-05-13 00:19:19 +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
8aa309b0c6 Minor changes + added the initialization code for the music player screen 2023-05-11 07:19:19 +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
anschrammh
23d3c47374 Renamed the music control screen to music player screen and continued dev on it, not finished though 2023-05-11 07:16:58 +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
004dbde4df Developping a music control screen/app for the watch in the lvgl simulator, work is in progress 2023-05-04 07:35:34 +02:00
anschrammh
0d74cf001c Renaming 2023-05-03 22:53:52 +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
6f57d01242 Updated lvgl simulator and GadgetBridge parser code::block's layout files 2023-05-01 21:10:29 +02:00
b435687e33 Added the find my phone app/feature source files 2023-05-01 21:05:26 +02:00
a9c9e7688c Updated the lvgl simulator files to include the new find my phone app feature 2023-05-01 21:04:21 +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
b45c5fdcbf Updated the Gadget Bridge parser to parse debug frames needed when implementing the notification manager 2023-04-23 20:27:29 +02:00
e3321d67ab Updated settings screen in the lvgl simulator 2023-04-22 22:52:49 +02:00
5bc20d03d7 Added two new messages to parse 2023-04-22 22:51:33 +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
1859f31275 Updated lvgl simulation files 2023-04-20 13:16:51 +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
anschrammh
03f86ea483 Finished to implement the millis api? It uses the FreeRTOS tick hook function to keep track of running time. 2023-04-20 13:01:50 +02:00
anschrammh
2df2f332bf Exposed the magnetometer's internal temperature sensor reading. It is not precise and not accurate, but interesting 2023-04-20 12:57:44 +02:00
anschrammh
8ea47fb03c Added description comment 2023-04-20 12:56:05 +02:00
anschrammh
e2fb8b3822 Reworked the watch's sleep feature and internal workings, added a new sleep mode when BLE is enabled, now sending the watch's battery level, voltage and state to the GadgetBridge app when it connects to the watch 2023-04-13 13:41:42 +02:00
anschrammh
9f241454c6 Finally reworked the way date and time are set so that they have the expected value and behaviour 2023-04-13 13:40:00 +02:00
anschrammh
0789cc62ad Commented debug traces out so that they are not diplayed on the serial port anymore 2023-04-13 13:38:50 +02:00
anschrammh
82ad6d16ba Added a function in the lvgl input device binding file to be able to know if the touch screen was touched or not 2023-04-13 13:37:50 +02:00
anschrammh
c885568e34 Wrapped and added new functions to the watch_peripherals module to be able to prepare the watch for different sleep modes, and being able to detect different wakeup sources. Changed the function used for the BMA456 driver required micro seconds delay 2023-04-13 13:36:48 +02:00
anschrammh
92de986dba Added a new event to the ble_service_state_change event callback function to be able to detect when a BLE master device subscribed to a particular characteristic. Also reworked the allocated buffers for the BLE stack, because of a strage issue, where it is hard for the phone to reconnect to the watch. 2023-04-13 13:34:38 +02:00
anschrammh
cfc42779dd Added new app_utils module/lib containing miscellaneous utility functions like blocking delays and such. Still need to fully implement the elapsed_ms function. 2023-04-13 13:31:54 +02:00
anschrammh
4184be2763 Changed the way the lvgl tick is handled, it was previously called from
the FreeRTOS vApplicationTickHook function and is now called by a timer
interrupt every ms. This permits to stop the timer and thus lvgl when it
is not needed.
2023-04-13 13:27:07 +02:00
anschrammh
89c33cd7f7 Updated settings screen in the simulator 2023-04-11 01:04:58 +02:00
8c1627b9b2 Officially added the gadget bridge parser I developed to the W800_Smart_Watch firmware 2023-04-10 21:26:25 +02:00
2b80115e47 Added some functionalities on the UI side in the code blocks simulator 2023-04-10 21:24:04 +02:00
090e1a2d61 Added the API function doc comments 2023-04-10 21:23:02 +02:00
dea34c70e8 Added a persistency setting : the Activity one, which will be used to save the step counter feature (Enabled or not) as well as other activity related parameters 2023-04-10 21:21:59 +02:00
288a64d1ce Did some cleanup by removing direct access to the watch sensor for initialization, added the gadget bridge parser I coded, and other minor stuff 2023-04-10 21:20:38 +02:00
22621219f3 Corrected a potential bug, made the date and time rollers disabled when set automatic time and date is enabled. Added the set automatic time and date feature which time and dates, if enabled, are sent by the Gadget Bridge Android Application 2023-04-10 21:19:19 +02:00
1c39e02f11 Added new line at the end of the file 2023-04-10 21:17:01 +02:00
da59200c77 Minor changes, nothing major 2023-04-10 21:16:27 +02:00
92d3279eb9 Big refactoring and cleanup by removing sensors initialization code from the gfx_task.c file and moving it to the watch_peripherals.c source file. This is way more logical IMO. This change also allows to enable or disable the wrist tilt wakeup with a function call 2023-04-10 21:15:47 +02:00
b8a11a8a79 Renamed QMC5883L_Mode_Control enumeration values to make it clear they are to be used in the magnetometer API 2023-04-10 21:13:18 +02:00
efae9a917e Added a function to the pressure sensor API to be able to know if a measurement is currently being made 2023-04-10 21:12:01 +02:00
f4ffc96d5a Added the CodeBlocks project used to develop the Gadget Bridge parser code 2023-04-10 10:07:57 +02:00
3bd772837c Minor change 2023-04-10 10:02:22 +02:00
Anatole SCHRAMM
e67754b878 Minor work on the translation module, work in progress, more to be done 2023-04-05 14:47:00 +02:00
Anatole SCHRAMM
bd6d5fc6d1 Finally cleaned the wm_type_def.h file which was provided by WinnerMicro's SDK... 2023-04-05 14:27:22 +02:00
Anatole SCHRAMM
d4c516177d Added comment on modified nimble stack default value 2023-04-05 09:26:10 +02:00
anschrammh
9f7e516984 Added the uint64_t type as a typedef. Will have to do some cleanup in file as it is a mess... 2023-04-05 08:19:08 +02:00
anschrammh
4da41970a6 Registered the setTimeFormatSettingsCallback 2023-04-05 08:17:59 +02:00
anschrammh
8d408b5125 Added translations in the menu item list (on the left hand side of the configuration screen), added time format (12H/24H) setting restoration callback 2023-04-05 08:17:24 +02:00
anschrammh
d0c933c78c Added new words to translate in the enum and started to translate some of them, work in progress 2023-04-05 08:13:38 +02:00
anschrammh
92a275dc1c Slight improvement in the rf modem management for BLE 2023-04-05 08:08:15 +02:00
anschrammh
08b1b8de90 Added header with date, licence and author 2023-04-05 08:04:52 +02:00
c26a88d21c Added a function to the API allowing to register a step count indicator callback used to refresh the step counter of the watch face twice or three time a second. 2023-04-02 21:14:57 +02:00
ad61388bf6 Now starting the rf modem in bluetooth mode 2023-04-02 21:13:14 +02:00
f2b17bffd3 Added the option to only set the rf modem in bluetooth mode when starting it, this makes the power consumption drop significantly 2023-04-02 21:12:45 +02:00
f040e22af7 Deleted unused function prototype 2023-04-02 11:25:32 +02:00
2bfddce356 Fixed bad library path in Makefile ... 2023-03-31 10:57:09 +02:00
2650cf85f9 Merge branch 'master' of http://82.64.196.164/git/Th3maz1ng/W800_Smart_Watch 2023-03-31 10:28:39 +02:00
a7dd2b6af0 Removed blank line 2023-03-31 10:27:53 +02:00
anschrammh
1ef9face5a Updated lvgl simulated screen files 2023-03-30 13:27:24 +02:00
anschrammh
ea79af772b Halfed the BLE prefered MTU size changing it to 256 instead of 512 2023-03-30 13:26:28 +02:00
anschrammh
6a9639700b Added new functions to the watch face API such as watch_face_set_step_count_indicator or watch_face_is_in_use 2023-03-30 13:24:48 +02:00
anschrammh
61f7e21cb3 Added more information in the about section of the settings screen : battery voltage, factory reset button and other things 2023-03-30 13:16:35 +02:00
anschrammh
47753131d6 Added BLE support to the app, fixed a graphical glitch happening when
waking up the watch by touching the screen where the second hand was
jumping from the old time to the new time
2023-03-30 13:14:35 +02:00
anschrammh
3156976f7a Removed the BLE device name from this header file 2023-03-30 13:11:19 +02:00
anschrammh
b5cc52df81 Commented a trace statement in the ble service in order to keep the serial traces clean 2023-03-30 13:09:55 +02:00
anschrammh
e8583254e6 Wrapped the SDIO MMC IO busy wait statement in a function such that it can be called by any API needing it 2023-03-30 13:08:57 +02:00
anschrammh
2b79a31165 Fixed an issue when sending commands to the LCD screen while a DMA
transfer is in progress causing graphical issues
Detail :
A DMA transfer may be in progress when trying to send single byte commands to the LCD screen. This could badly configure the display as soon as the data/command select pin was set to command while the DMA was still sending data bytes.
The fix : doing a busy wait in the lcd_set_data function to be sure the bus is free to use.
2023-03-30 13:05:53 +02:00
anschrammh
a58c453f58 Added a define to easily set the BLE advertised name of the W800SmartWatch 2023-03-30 12:56:32 +02:00
anschrammh
160a2f88db Added new watch face background image with the steps counter icon 2023-03-26 23:30:50 +02:00
anschrammh
ef6e9c3779 Added new firmware_version.h file which will list all the changes with their associated version number. It also containes the firmware build time and date 2023-03-26 23:25:35 +02:00
anschrammh
fe94e2b896 Pushing updates done to the LVGL emulator project files 2023-03-26 23:24:39 +02:00
anschrammh
beb7a86af1 Added a lot of settings handling callbacks, added the code to test the BMA456 step counter feature and it seems to work just fine 2023-03-26 23:22:45 +02:00
anschrammh
721db527ce Added the ble modem and service source files (at last) 2023-03-26 23:21:27 +02:00
anschrammh
85e5fec2cd Updated the watch face background image 2023-03-26 23:19:08 +02:00
anschrammh
622681128c Reworked the vibration duration when touching the screen 2023-03-26 23:18:14 +02:00
anschrammh
214e174ffc Implemented the logic to detect and read the charge controller status pins using two different policies :
- the first one (also used right now) is using interrupts on the two lines
- the second one was doing some polling using a timer interrupt to check the controller status
2023-03-26 23:17:20 +02:00
anschrammh
9f574f0486 Added new features and graphics to the watch face :
Added a battery icon which is blinking when the battery is low
Addes a charging and charged battery icon
Added a step count counter widget with icon and count
Added a bluetooth status icon showing when ble is enabled,disabled and when a device is connected
Added the possibility to hide the hour and minute hands with a long press on the screen, this enables to see information which might be hidden by the hands ...
2023-03-26 23:13:30 +02:00
anschrammh
8a9b805b95 Added new persistency methods, reworked some old ones and added every settings set functions 2023-03-26 23:09:36 +02:00
anschrammh
9458948f59 Added support for new settings with their callbacks, adjusted vibration motor duration, added a factory reset button and now saving the settings to flash memory when leaving the settings screen 2023-03-26 23:07:43 +02:00
anschrammh
22805a4e54 Added the I2C clock speed parameter to the app_config.h file. Max working clock speed seems to be 300kHz 2023-03-26 23:04:43 +02:00
anschrammh
f1af0cd0d6 Adjusted rtc's year setting ... 2023-03-24 16:39:22 +01:00
anschrammh
f1e71bba67 Turned off a lot of functionalities related to TCP IP and WiFi to free some RAM, might be turned on back again later if needed and if RAM space left :P 2023-03-24 15:26:11 +01:00
anschrammh
d05aa72135 Updated all the settings callbacks to be compatible with the new setting system 2023-03-24 15:23:17 +01:00
anschrammh
4c1f1e168a Updated a log trace to be more meaningful 2023-03-24 15:22:15 +01:00