Skip to content

Commit 15b3b8e

Browse files
committed
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
2 parents 9ac4be8 + 57b4c3f commit 15b3b8e

492 files changed

Lines changed: 58799 additions & 10602 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/settings.json

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,59 @@
11
{
22
"files.associations": {
3-
"chrono": "cpp"
3+
"chrono": "cpp",
4+
"list": "cpp",
5+
"array": "cpp",
6+
"atomic": "cpp",
7+
"bit": "cpp",
8+
"*.tcc": "cpp",
9+
"cctype": "cpp",
10+
"charconv": "cpp",
11+
"clocale": "cpp",
12+
"cmath": "cpp",
13+
"condition_variable": "cpp",
14+
"cstdarg": "cpp",
15+
"cstddef": "cpp",
16+
"cstdint": "cpp",
17+
"cstdio": "cpp",
18+
"cstdlib": "cpp",
19+
"cstring": "cpp",
20+
"ctime": "cpp",
21+
"cwchar": "cpp",
22+
"cwctype": "cpp",
23+
"deque": "cpp",
24+
"unordered_map": "cpp",
25+
"vector": "cpp",
26+
"exception": "cpp",
27+
"algorithm": "cpp",
28+
"functional": "cpp",
29+
"iterator": "cpp",
30+
"memory": "cpp",
31+
"memory_resource": "cpp",
32+
"netfwd": "cpp",
33+
"numeric": "cpp",
34+
"optional": "cpp",
35+
"random": "cpp",
36+
"ratio": "cpp",
37+
"string": "cpp",
38+
"string_view": "cpp",
39+
"system_error": "cpp",
40+
"tuple": "cpp",
41+
"type_traits": "cpp",
42+
"utility": "cpp",
43+
"fstream": "cpp",
44+
"initializer_list": "cpp",
45+
"iosfwd": "cpp",
46+
"iostream": "cpp",
47+
"istream": "cpp",
48+
"limits": "cpp",
49+
"mutex": "cpp",
50+
"new": "cpp",
51+
"ostream": "cpp",
52+
"sstream": "cpp",
53+
"stdexcept": "cpp",
54+
"streambuf": "cpp",
55+
"thread": "cpp",
56+
"cinttypes": "cpp",
57+
"typeinfo": "cpp"
458
}
559
}

src/CMakeLists.txt

Lines changed: 18 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -374,95 +374,6 @@ list(APPEND IMAGE_FILES
374374
displayapp/icons/bluetooth/os_bt_connected.c
375375
displayapp/icons/bluetooth/os_bt_disconnected.c
376376

377-
displayapp/icons/navigation/arrive-left.c
378-
displayapp/icons/navigation/arrive-right.c
379-
displayapp/icons/navigation/arrive-straight.c
380-
displayapp/icons/navigation/arrive.c
381-
displayapp/icons/navigation/close.c
382-
displayapp/icons/navigation/continue-left.c
383-
displayapp/icons/navigation/continue-right.c
384-
displayapp/icons/navigation/continue-slight-left.c
385-
displayapp/icons/navigation/continue-slight-right.c
386-
displayapp/icons/navigation/continue-straight.c
387-
displayapp/icons/navigation/continue-uturn.c
388-
displayapp/icons/navigation/continue.c
389-
displayapp/icons/navigation/depart-left.c
390-
displayapp/icons/navigation/depart-right.c
391-
displayapp/icons/navigation/depart-straight.c
392-
displayapp/icons/navigation/end-of-road-left.c
393-
displayapp/icons/navigation/end-of-road-right.c
394-
displayapp/icons/navigation/ferry.c
395-
displayapp/icons/navigation/flag.c
396-
displayapp/icons/navigation/fork-left.c
397-
displayapp/icons/navigation/fork-right.c
398-
displayapp/icons/navigation/fork-slight-left.c
399-
displayapp/icons/navigation/fork-slight-right.c
400-
displayapp/icons/navigation/fork-straight.c
401-
displayapp/icons/navigation/invalid.c
402-
displayapp/icons/navigation/invalid-left.c
403-
displayapp/icons/navigation/invalid-right.c
404-
displayapp/icons/navigation/invalid-slight-left.c
405-
displayapp/icons/navigation/invalid-slight-right.c
406-
displayapp/icons/navigation/invalid-straight.c
407-
displayapp/icons/navigation/invalid-uturn.c
408-
displayapp/icons/navigation/merge-left.c
409-
displayapp/icons/navigation/merge-right.c
410-
displayapp/icons/navigation/merge-slight-left.c
411-
displayapp/icons/navigation/merge-slight-right.c
412-
displayapp/icons/navigation/merge-straight.c
413-
displayapp/icons/navigation/new-name-left.c
414-
displayapp/icons/navigation/new-name-right.c
415-
displayapp/icons/navigation/new-name-sharp-left.c
416-
displayapp/icons/navigation/new-name-sharp-right.c
417-
displayapp/icons/navigation/new-name-slight-left.c
418-
displayapp/icons/navigation/new-name-slight-right.c
419-
displayapp/icons/navigation/new-name-straight.c
420-
displayapp/icons/navigation/notification-left.c
421-
displayapp/icons/navigation/notification-right.c
422-
displayapp/icons/navigation/notification-sharp-left.c
423-
displayapp/icons/navigation/notification-sharp-right.c
424-
displayapp/icons/navigation/notification-slight-left.c
425-
displayapp/icons/navigation/notification-slight-right.c
426-
displayapp/icons/navigation/notification-straight.c
427-
displayapp/icons/navigation/off-ramp-left.c
428-
displayapp/icons/navigation/off-ramp-right.c
429-
displayapp/icons/navigation/off-ramp-sharp-left.c
430-
displayapp/icons/navigation/off-ramp-sharp-right.c
431-
displayapp/icons/navigation/off-ramp-slight-left.c
432-
displayapp/icons/navigation/off-ramp-slight-right.c
433-
displayapp/icons/navigation/off-ramp-straight.c
434-
displayapp/icons/navigation/on-ramp-left.c
435-
displayapp/icons/navigation/on-ramp-right.c
436-
displayapp/icons/navigation/on-ramp-sharp-left.c
437-
displayapp/icons/navigation/on-ramp-sharp-right.c
438-
displayapp/icons/navigation/on-ramp-slight-left.c
439-
displayapp/icons/navigation/on-ramp-slight-right.c
440-
displayapp/icons/navigation/on-ramp-straight.c
441-
displayapp/icons/navigation/rotary.c
442-
displayapp/icons/navigation/rotary-left.c
443-
displayapp/icons/navigation/rotary-right.c
444-
displayapp/icons/navigation/rotary-sharp-left.c
445-
displayapp/icons/navigation/rotary-sharp-right.c
446-
displayapp/icons/navigation/rotary-slight-left.c
447-
displayapp/icons/navigation/rotary-slight-right.c
448-
displayapp/icons/navigation/rotary-straight.c
449-
displayapp/icons/navigation/roundabout.c
450-
displayapp/icons/navigation/roundabout-left.c
451-
displayapp/icons/navigation/roundabout-right.c
452-
displayapp/icons/navigation/roundabout-sharp-left.c
453-
displayapp/icons/navigation/roundabout-sharp-right.c
454-
displayapp/icons/navigation/roundabout-slight-left.c
455-
displayapp/icons/navigation/roundabout-slight-right.c
456-
displayapp/icons/navigation/roundabout-straight.c
457-
displayapp/icons/navigation/turn-left.c
458-
displayapp/icons/navigation/turn-right.c
459-
displayapp/icons/navigation/turn-sharp-left.c
460-
displayapp/icons/navigation/turn-sharp-right.c
461-
displayapp/icons/navigation/turn-slight-left.c
462-
displayapp/icons/navigation/turn-slight-right.c
463-
displayapp/icons/navigation/turn-stright.c
464-
displayapp/icons/navigation/updown.c
465-
displayapp/icons/navigation/uturn.c
466377
)
467378

468379
list(APPEND SOURCE_FILES
@@ -485,17 +396,28 @@ list(APPEND SOURCE_FILES
485396
displayapp/screens/FirmwareUpdate.cpp
486397
displayapp/screens/Music.cpp
487398
displayapp/screens/Navigation.cpp
399+
displayapp/screens/Motion.cpp
488400
displayapp/screens/FirmwareValidation.cpp
489401
displayapp/screens/ApplicationList.cpp
490402
displayapp/screens/Notifications.cpp
491403
displayapp/screens/Twos.cpp
492404
displayapp/screens/HeartRate.cpp
493405
displayapp/screens/Motion.cpp
406+
displayapp/screens/FlashLight.cpp
407+
displayapp/screens/List.cpp
408+
displayapp/screens/BatteryInfo.cpp
409+
410+
## Settings
411+
displayapp/screens/settings/QuickSettings.cpp
412+
displayapp/screens/settings/Settings.cpp
413+
displayapp/screens/settings/SettingWatchFace.cpp
414+
displayapp/screens/settings/SettingTimeFormat.cpp
415+
displayapp/screens/settings/SettingWakeUp.cpp
416+
displayapp/screens/settings/SettingDisplay.cpp
494417

495418
## Watch faces
496419
displayapp/icons/bg_clock.c
497420
displayapp/screens/WatchFaceAnalog.cpp
498-
499421
displayapp/screens/WatchFaceDigital.cpp
500422

501423
##
@@ -527,6 +449,7 @@ list(APPEND SOURCE_FILES
527449
components/ble/AlertNotificationService.cpp
528450
components/ble/MusicService.cpp
529451
components/ble/NavigationService.cpp
452+
displayapp/fonts/lv_font_navi_80.c
530453
components/ble/BatteryInformationService.cpp
531454
components/ble/ImmediateAlertService.cpp
532455
components/ble/ServiceDiscovery.cpp
@@ -542,6 +465,8 @@ list(APPEND SOURCE_FILES
542465
displayapp/LittleVgl.cpp
543466
displayapp/fonts/jetbrains_mono_extrabold_compressed.c
544467
displayapp/fonts/jetbrains_mono_bold_20.c
468+
displayapp/fonts/jetbrains_mono_76.c
469+
displayapp/fonts/lv_font_sys_48.c
545470
displayapp/lv_pinetime_theme.c
546471

547472
systemtask/SystemTask.cpp
@@ -633,6 +558,7 @@ list(APPEND RECOVERYLOADER_SOURCE_FILES
633558

634559

635560
set(INCLUDE_FILES
561+
636562
BootloaderVersion.h
637563
logging/Logger.h
638564
logging/NrfLogger.h
@@ -984,7 +910,7 @@ add_custom_command(TARGET ${EXECUTABLE_RECOVERY_MCUBOOT_NAME}
984910
COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin"
985911
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.out "${EXECUTABLE_RECOVERYY_MCUBOOT_FILE_NAME}.hex"
986912
COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}.bin ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME}
987-
COMMAND python ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME} recoveryImage > recoveryImage.h
913+
COMMAND python3 ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_RECOVERY_MCUBOOT_FILE_NAME} recoveryImage > recoveryImage.h
988914
COMMENT "post build steps for ${EXECUTABLE_RECOVERY_MCUBOOT_FILE_NAME}"
989915
)
990916

@@ -1058,7 +984,7 @@ add_custom_command(TARGET ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_NAME}
1058984
COMMAND ${CMAKE_OBJCOPY} -O binary ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin"
1059985
COMMAND ${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.out "${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.hex"
1060986
COMMAND ${CMAKE_SOURCE_DIR}/tools/mcuboot/imgtool.py create --align 4 --version 1.0.0 --header-size 32 --slot-size 475136 --pad-header ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}.bin ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME}
1061-
COMMAND python ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME} recoveryLoaderImage > recoveryLoaderImage.h
987+
COMMAND python3 ${CMAKE_SOURCE_DIR}/tools/bin2c.py ${IMAGE_MCUBOOT_RECOVERYLOADER_FILE_NAME} recoveryLoaderImage > recoveryLoaderImage.h
1062988
COMMENT "post build steps for ${EXECUTABLE_MCUBOOT_RECOVERYLOADER_FILE_NAME}"
1063989
)
1064990

Lines changed: 47 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,77 @@
11
#include "BatteryController.h"
22
#include <hal/nrf_gpio.h>
3+
#include <nrfx_saadc.h>
34
#include <libraries/log/nrf_log.h>
45
#include <algorithm>
6+
#include <math.h>
57

68
using namespace Pinetime::Controllers;
79

10+
Battery *Battery::instance = nullptr;
11+
12+
Battery::Battery() {
13+
instance = this;
14+
}
15+
816
void Battery::Init() {
917
nrf_gpio_cfg_input(chargingPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup);
1018
nrf_gpio_cfg_input(powerPresentPin, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pullup);
19+
}
20+
21+
void Battery::Update() {
22+
23+
isCharging = !nrf_gpio_pin_read(chargingPin);
24+
isPowerPresent = !nrf_gpio_pin_read(powerPresentPin);
25+
26+
// Non blocking read
27+
SaadcInit();
28+
nrfx_saadc_sample();
29+
30+
}
1131

32+
void Battery::SaadcInit() {
1233
nrfx_saadc_config_t adcConfig = NRFX_SAADC_DEFAULT_CONFIG;
13-
nrfx_saadc_init(&adcConfig, SaadcEventHandler);
34+
APP_ERROR_CHECK(nrfx_saadc_init(&adcConfig, adcCallbackStatic));
35+
1436
nrf_saadc_channel_config_t adcChannelConfig = {
1537
.resistor_p = NRF_SAADC_RESISTOR_DISABLED,
1638
.resistor_n = NRF_SAADC_RESISTOR_DISABLED,
1739
.gain = NRF_SAADC_GAIN1_5,
1840
.reference = NRF_SAADC_REFERENCE_INTERNAL,
1941
.acq_time = NRF_SAADC_ACQTIME_3US,
2042
.mode = NRF_SAADC_MODE_SINGLE_ENDED,
21-
.burst = NRF_SAADC_BURST_DISABLED,
43+
.burst = NRF_SAADC_BURST_ENABLED,
2244
.pin_p = batteryVoltageAdcInput,
2345
.pin_n = NRF_SAADC_INPUT_DISABLED
2446
};
25-
nrfx_saadc_channel_init(0, &adcChannelConfig);
47+
APP_ERROR_CHECK(nrfx_saadc_channel_init(0, &adcChannelConfig));
48+
APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1));
49+
2650
}
2751

28-
void Battery::Update() {
29-
isCharging = !nrf_gpio_pin_read(chargingPin);
30-
isPowerPresent = !nrf_gpio_pin_read(powerPresentPin);
52+
void Battery::SaadcEventHandler(nrfx_saadc_evt_t const * p_event) {
3153

32-
nrf_saadc_value_t value = 0;
33-
nrfx_saadc_sample_convert(0, &value);
54+
const float battery_max = 4.18; // maximum voltage of battery ( max charging voltage is 4.21 )
55+
const float battery_min = 3.20; // minimum voltage of battery before shutdown ( depends on the battery )
3456

35-
// see https://forum.pine64.org/showthread.php?tid=8147
36-
voltage = (value * 2.0f) / (1024/3.0f);
37-
int percentRemaining = ((voltage - 3.55f)*100.0f)*3.9f;
38-
percentRemaining = std::max(percentRemaining, 0);
39-
percentRemaining = std::min(percentRemaining, 100);
57+
if (p_event->type == NRFX_SAADC_EVT_DONE) {
58+
59+
APP_ERROR_CHECK(nrfx_saadc_buffer_convert(&saadc_value, 1));
4060

41-
percentRemainingBuffer.insert(percentRemaining);
61+
voltage = (static_cast<float>(p_event->data.done.p_buffer[0]) * 2.04f) / (1024 / 3.0f);
62+
voltage = roundf(voltage * 100) / 100;
4263

43-
// NRF_LOG_INFO("BATTERY " NRF_LOG_FLOAT_MARKER " %% - " NRF_LOG_FLOAT_MARKER " v", NRF_LOG_FLOAT(percentRemaining), NRF_LOG_FLOAT(voltage));
44-
// NRF_LOG_INFO("POWER Charging : %d - Power : %d", isCharging, isPowerPresent);
45-
}
64+
percentRemaining = static_cast<int>(((voltage - battery_min) / (battery_max - battery_min)) * 100);
65+
66+
percentRemaining = std::max(percentRemaining, 0);
67+
percentRemaining = std::min(percentRemaining, 100);
4668

47-
void Battery::SaadcEventHandler(nrfx_saadc_evt_t const * event) {
69+
percentRemainingBuffer.insert(percentRemaining);
4870

49-
}
71+
nrfx_saadc_uninit();
72+
}
73+
}
74+
75+
void Battery::adcCallbackStatic(nrfx_saadc_evt_t const *event) {
76+
instance->SaadcEventHandler(event);
77+
}

0 commit comments

Comments
 (0)