Skip to content

Commit

Permalink
diy: add M5StickCPlus2 support
Browse files Browse the repository at this point in the history
Add Configuration Profile
Add Code to Support Power Management for M5StickCPlus2
  • Loading branch information
3rdIteration authored and JamieDriver committed Aug 7, 2024
1 parent f189172 commit d48d60f
Show file tree
Hide file tree
Showing 8 changed files with 239 additions and 11 deletions.
7 changes: 7 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,13 @@ test_build_display_m5stickcplus:
after_script:
- mv build build_display_m5stickcplus

test_build_display_m5stickcplus2:
extends: .test_build_template
before_script:
- cp configs/sdkconfig_display_m5stickcplus2.defaults sdkconfig.defaults
after_script:
- mv build build_display_m5stickcplus2

test_build_display_m5cores3:
extends: .test_build_template
before_script:
Expand Down
109 changes: 109 additions & 0 deletions configs/sdkconfig_display_m5stickcplus2.defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=n
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=n
CONFIG_ADC_CAL_LUT_ENABLE=n
CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR=y
CONFIG_APP_REPRODUCIBLE_BUILD=y
CONFIG_BF20A6_SUPPORT=n
CONFIG_BF3005_SUPPORT=n
CONFIG_BOARD_TYPE_M5_STICKC_PLUS_2=y
CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK=y
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
CONFIG_BOOTLOADER_WDT_ENABLE=n
CONFIG_BTDM_CTRL_BLE_MAX_CONN=1
CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED=n
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=517
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=11
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=5632
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_NVS_PERSIST=y
CONFIG_BT_NIMBLE_ROLE_BROADCASTER=n
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n
CONFIG_BT_NIMBLE_SM_LEGACY=n
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="j"
CONFIG_BUTTON_LONG_PRESS_TIME_MS=500
CONFIG_BUTTON_SERIAL_TIME_MS=100
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_STACK_CHECK_MODE_STRONG=y
CONFIG_COMPILER_WARN_WRITE_STRINGS=y
CONFIG_DEBUG_MODE=y
CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE=y
CONFIG_EFUSE_VIRTUAL=y
CONFIG_ESP32_REV_MIN_3=y
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO=y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n
CONFIG_ESP_CONSOLE_NONE=y
CONFIG_ESP_DEBUG_OCDAWARE=n
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=n
CONFIG_ESP_MAIN_TASK_STACK_SIZE=12288
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=y
CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=n
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=0
CONFIG_ESP_WIFI_MGMT_SBUF_NUM=6
CONFIG_ESP_WIFI_NVS_ENABLED=n
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=2
CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=6
CONFIG_ETH_USE_ESP32_EMAC=n
CONFIG_ETH_USE_SPI_ETHERNET=n
CONFIG_FATFS_PER_FILE_CACHE=n
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=n
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=3
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2560
CONFIG_GC0308_SUPPORT=n
CONFIG_GC032A_SUPPORT=n
CONFIG_GC2145_SUPPORT=n
CONFIG_HTTPD_ERR_RESP_NO_DELAY=n
CONFIG_LOG_COLORS=n
CONFIG_LWIP_DHCPS=n
CONFIG_LWIP_IPV6=n
CONFIG_LWIP_NETIF_LOOPBACK=n
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=n
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=n
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=n
CONFIG_MBEDTLS_HARDWARE_MPI=n
CONFIG_MBEDTLS_HAVE_TIME=n
CONFIG_MBEDTLS_PEM_PARSE_C=n
CONFIG_MBEDTLS_PEM_WRITE_C=n
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=n
CONFIG_MBEDTLS_SSL_ALPN=n
CONFIG_MBEDTLS_SSL_RENEGOTIATION=n
CONFIG_MBEDTLS_X509_CRL_PARSE_C=n
CONFIG_MBEDTLS_X509_CSR_PARSE_C=n
CONFIG_MQTT_PROTOCOL_311=n
CONFIG_MQTT_TRANSPORT_SSL=n
CONFIG_NEWLIB_NANO_FORMAT=y
CONFIG_NT99141_SUPPORT=n
CONFIG_OV2640_SUPPORT=n
CONFIG_OV3660_SUPPORT=n
CONFIG_OV5640_SUPPORT=n
CONFIG_OV7670_SUPPORT=n
CONFIG_OV7725_SUPPORT=n
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_OFFSET=0x9000
CONFIG_SC030IOT_SUPPORT=n
CONFIG_SCCB_CLK_FREQ=200000
CONFIG_SPIFFS_CACHE=n
CONFIG_SPIFFS_GC_MAX_RUNS=1
CONFIG_SPIFFS_MAX_PARTITIONS=1
CONFIG_SPIFFS_PAGE_CHECK=n
CONFIG_SPIFFS_USE_MAGIC=n
CONFIG_SPIFFS_USE_MTIME=n
CONFIG_SPIRAM=y
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n
CONFIG_SPIRAM_MEMTEST=n
CONFIG_UART_ISR_IN_IRAM=y
CONFIG_UNITY_ENABLE_DOUBLE=n
CONFIG_UNITY_ENABLE_FLOAT=n
CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=n
CONFIG_VFS_SUPPORT_IO=n
CONFIG_WS_TRANSPORT=n
11 changes: 11 additions & 0 deletions diy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,17 @@ There are a number of hardware devices that can run Jade firmware with minimal c
* USB VendorID:0403 ProductID:6001 (Different to retail Jade, will require custom Electrum/HWI builds until they add support to these device IDs)
* Typically supports Secure Boot V1

### M5Stack M5StickC PLUS 2
![M5Stack M5StickC PLUS2](img/M5StickCPlus.jpg)
* [Vendor Product Page](https://shop.m5stack.com/products/m5stickc-plus2-esp32-mini-iot-development-kit)
* ~$20 USD
* Extra 2mb PSRAM (When compared to M5StickC PLUS)
* Two button interface (Long press front button to select)
* Includes 200mAh battery
* Fully assembled with case
* USB VendorID:0403 ProductID:6001 (Different to retail Jade, will require custom Electrum/HWI builds until they add support to these device IDs)
* Typically supports Secure Boot V2

### M5Stack Basic Core
![M5Stack Basic Core](img/M5Stack-Basic.jpg)
* [Vendor Product Page](https://shop.m5stack.com/products/esp32-basic-core-lot-development-kit-v2-7)
Expand Down
28 changes: 17 additions & 11 deletions main/Kconfig.projbuild
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ menu "Blockstream Jade"
config BOARD_TYPE_M5_STICKC_PLUS
bool "M5StickC Plus"
select HAS_AXP
config BOARD_TYPE_M5_STICKC_PLUS_2
bool "M5StickC Plus 2"
config BOARD_TYPE_TTGO_TDISPLAY
bool "TTGO T-DISPLAY"
config BOARD_TYPE_TTGO_TDISPLAYS3
Expand Down Expand Up @@ -99,7 +101,7 @@ menu "Blockstream Jade"
config DISPLAY_INVERT
bool "Invert colors"
default y if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_JADE_V2 || \
BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || \
BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2 || \
BOARD_TYPE_M5_FIRE || BOARD_TYPE_TTGO_TDISPLAYS3 || BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
help
Invert the colors in the dipslay. Some devices may have inverted colors depending on revision
Expand All @@ -113,7 +115,7 @@ menu "Blockstream Jade"

config HAS_AXP
bool "Use the AXP192 power controller"
depends on !BOARD_TYPE_M5_FIRE && !BOARD_TYPE_M5_BLACK_GRAY && !BOARD_TYPE_TTGO_TDISPLAY && !BOARD_TYPE_TTGO_TDISPLAYS3 && !BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA || BOARD_TYPE_M5_CORE2
depends on !BOARD_TYPE_M5_FIRE && !BOARD_TYPE_M5_BLACK_GRAY && !BOARD_TYPE_M5_STICKC_PLUS_2 && !BOARD_TYPE_TTGO_TDISPLAY && !BOARD_TYPE_TTGO_TDISPLAYS3 && !BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA || BOARD_TYPE_M5_CORE2
default n
help
Jade v1 (and some other devices) come with the AXP192 to manage power to ESP, display, camera
Expand Down Expand Up @@ -187,15 +189,15 @@ menu "Blockstream Jade"
int "BTN A"
default 37 if BOARD_TYPE_JADE_V1_1
default 38 if BOARD_TYPE_JADE_V2
default 39 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_STICKC_PLUS
default 39 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2
default 0 if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_TTGO_TDISPLAYS3
default 12 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default -1
config INPUT_BTN_B
int "BTN B"
default 39 if BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_JADE_V2
default 37 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_STICKC_PLUS
default 35 if BOARD_TYPE_TTGO_TDISPLAY
default 35 if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS_2
default 14 if BOARD_TYPE_TTGO_TDISPLAYS3
default 16 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default -1
Expand All @@ -213,6 +215,7 @@ menu "Blockstream Jade"
default 33 if BOARD_TYPE_JADE_V1_1
default 40 if BOARD_TYPE_JADE_V2
default 38 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY
default 37 if BOARD_TYPE_M5_STICKC_PLUS_2
default 0 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default -1
endmenu
Expand Down Expand Up @@ -365,14 +368,14 @@ menu "Blockstream Jade"
config DISPLAY_WIDTH
int "Display width in pixels"
range 0 640
default 240 if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS
default 240 if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2
default 320 if BOARD_TYPE_QEMU_LARGER || BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_TTGO_TDISPLAYS3 || BOARD_TYPE_M5_CORES3 || BOARD_TYPE_M5_CORE2 || BOARD_TYPE_JADE_V2
default 480 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default 240
config DISPLAY_HEIGHT
int "Display height in pixels"
range 0 640
default 135 if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS
default 135 if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2
default 240 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_CORE2
default 170 if BOARD_TYPE_JADE_V2 || BOARD_TYPE_QEMU_LARGER || BOARD_TYPE_TTGO_TDISPLAYS3
default 200 if BOARD_TYPE_M5_CORES3
Expand All @@ -384,12 +387,12 @@ menu "Blockstream Jade"
config DCS_ADDRESS_MODE_MIRROR_X_SELECTED
bool "Mirror X"
default y if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_JADE_V2 || \
BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_TTGO_TDISPLAYS3
BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2 || BOARD_TYPE_TTGO_TDISPLAYS3
default n if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_CORES3 || BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
config DCS_ADDRESS_MODE_SWAP_XY_SELECTED
bool "Swap X and Y"
default y if BOARD_TYPE_JADE || BOARD_TYPE_JADE_V1_1 || BOARD_TYPE_JADE_V2
default y if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_TTGO_TDISPLAYS3 || BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default y if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2 || BOARD_TYPE_TTGO_TDISPLAYS3 || BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default n if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_CORES3
config DISPLAY_OFFSET_X
int "X offset"
Expand Down Expand Up @@ -419,7 +422,7 @@ menu "Blockstream Jade"
int "MOSI pin number"
default 2 if BOARD_TYPE_JADE_V1_1
default 17 if BOARD_TYPE_JADE_V2
default 15 if BOARD_TYPE_JADE || BOARD_TYPE_M5_STICKC_PLUS
default 15 if BOARD_TYPE_JADE || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2
default 19 if BOARD_TYPE_TTGO_TDISPLAY
default 23 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_M5_CORE2
default 37 if BOARD_TYPE_M5_CORES3
Expand All @@ -430,7 +433,7 @@ menu "Blockstream Jade"
default 14 if BOARD_TYPE_JADE
default 12 if BOARD_TYPE_JADE_V1_1
default 47 if BOARD_TYPE_JADE_V2
default 13 if BOARD_TYPE_M5_STICKC_PLUS
default 13 if BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2
default 18 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY || BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_CORE2 || BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default 36 if BOARD_TYPE_M5_CORES3
default -1
Expand All @@ -440,7 +443,7 @@ menu "Blockstream Jade"
default 0 if BOARD_TYPE_JADE_V1_1
default 21 if BOARD_TYPE_JADE_V2
default 3 if BOARD_TYPE_M5_CORES3
default 5 if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_CORE2
default 5 if BOARD_TYPE_TTGO_TDISPLAY || BOARD_TYPE_M5_STICKC_PLUS || BOARD_TYPE_M5_STICKC_PLUS_2 || BOARD_TYPE_M5_CORE2
default 14 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY
default 39 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default -1
Expand All @@ -452,6 +455,7 @@ menu "Blockstream Jade"
default 15 if BOARD_TYPE_M5_CORE2
default 16 if BOARD_TYPE_TTGO_TDISPLAY
default 23 if BOARD_TYPE_M5_STICKC_PLUS
default 14 if BOARD_TYPE_M5_STICKC_PLUS_2
default 27 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY
default 35 if BOARD_TYPE_M5_CORES3
default 9 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
Expand All @@ -461,6 +465,7 @@ menu "Blockstream Jade"
default 21 if BOARD_TYPE_JADE
default 46 if BOARD_TYPE_JADE_V2
default 18 if BOARD_TYPE_M5_STICKC_PLUS
default 12 if BOARD_TYPE_M5_STICKC_PLUS_2
default 23 if BOARD_TYPE_TTGO_TDISPLAY
default 33 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY
default 47 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
Expand All @@ -469,6 +474,7 @@ menu "Blockstream Jade"
int "Backlight pin number"
default 4 if BOARD_TYPE_TTGO_TDISPLAY
default 32 if BOARD_TYPE_M5_FIRE || BOARD_TYPE_M5_BLACK_GRAY
default 27 if BOARD_TYPE_M5_STICKC_PLUS_2
default 48 if BOARD_TYPE_TTGO_TDISPLAYS3PROCAMERA
default -1
config PIN_NUM_DC
Expand Down
3 changes: 3 additions & 0 deletions main/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
#elif defined(CONFIG_BOARD_TYPE_M5_STICKC_PLUS) || defined(CONFIG_BOARD_TYPE_M5_CORE2)
// These have AXP192 but configured differently from the Jade
#include "power/m5stickcplus.inc"
#elif defined(CONFIG_BOARD_TYPE_M5_STICKC_PLUS_2)
// Board with IP5303 Power PMU
#include "power/m5stickcplus2.inc"
#elif defined(CONFIG_BOARD_TYPE_M5_CORES3)
// M5 Core S3 has AXP2101
#include "power/m5stackcores3.inc"
Expand Down
84 changes: 84 additions & 0 deletions main/power/m5stickcplus2.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
// M5StickCPlus implmentation - uses IP5303 Power PMU
//
#include <driver/gpio.h>
#include <esp_adc/adc_oneshot.h>

#define POWER_HOLD_GPIO 4
#define BATTERY_ADC_CHANNEL ADC_CHANNEL_2

static adc_oneshot_unit_handle_t adc1_handle = NULL;

esp_err_t power_init(void)
{
// Set the power hold pin to keep the device from powering down straight away
gpio_reset_pin(POWER_HOLD_GPIO);
gpio_set_direction(POWER_HOLD_GPIO, GPIO_MODE_OUTPUT);
gpio_set_level(POWER_HOLD_GPIO, 1);

// Initialise the ADC to measure battery level
//-------------ADC1 Init---------------//
adc_oneshot_unit_init_cfg_t init_config1 = {
.unit_id = ADC_UNIT_1,
};
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
JADE_ASSERT(adc1_handle);

//-------------ADC1 Config---------------//
adc_oneshot_chan_cfg_t config = {
.bitwidth = ADC_BITWIDTH_DEFAULT,
.atten = ADC_ATTEN_DB_12,
};
ESP_ERROR_CHECK(adc_oneshot_config_channel(adc1_handle, BATTERY_ADC_CHANNEL, &config));

return ESP_OK;
}

esp_err_t power_shutdown(void)
{
gpio_set_level(POWER_HOLD_GPIO, 0);
return ESP_OK;
}

esp_err_t power_screen_on(void) { return ESP_OK; }
esp_err_t power_screen_off(void) { return ESP_OK; }

esp_err_t power_backlight_on(const uint8_t brightness) { return ESP_OK; }
esp_err_t power_backlight_off(void) { return ESP_OK; }

esp_err_t power_camera_on(void) { return ESP_OK; }
esp_err_t power_camera_off(void) { return ESP_OK; }

uint16_t power_get_vbat(void)
{
JADE_ASSERT(adc1_handle);

int vbat = 0;
ESP_ERROR_CHECK(adc_oneshot_read(adc1_handle, BATTERY_ADC_CHANNEL, &vbat));
return (uint16_t)(vbat * 1.7);
}

uint8_t power_get_battery_status(void)
{
const uint16_t vbat = power_get_vbat();
if (vbat > 4000) {
return 5;
} else if (vbat > 3800) {
return 4;
} else if (vbat > 3600) {
return 3;
} else if (vbat > 3400) {
return 2;
} else if (vbat > 3200) {
return 1;
}
return 0;
}

bool power_get_battery_charging(void) { return 0; }
uint16_t power_get_ibat_charge(void) { return 0; }
uint16_t power_get_ibat_discharge(void) { return 0; }
uint16_t power_get_vusb(void) { return 0; }
uint16_t power_get_iusb(void) { return 0; }
uint16_t power_get_temp(void) { return 0; }

bool usb_connected(void) { return true; }
6 changes: 6 additions & 0 deletions main/process/dashboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -2132,6 +2132,12 @@ static void handle_display_battery_volts(void)
#ifdef CONFIG_HAS_AXP
const int ret = snprintf(power_status, sizeof(power_status), "%umv", power_get_vbat());
JADE_ASSERT(ret > 0 && ret < sizeof(power_status));
#elif defined(CONFIG_BOARD_TYPE_M5_STICKC_PLUS_2)
const uint16_t vbat = power_get_vbat();
if (vbat > 0) {
const int ret = snprintf(power_status, sizeof(power_status), "%umv", vbat);
JADE_ASSERT(ret > 0 && ret < sizeof(power_status));
}
#elif defined(CONFIG_HAS_IP5306)
const float approx_voltage = power_get_vbat() / 1000.0;
const int ret = snprintf(power_status, sizeof(power_status), "Approx %.1fv", approx_voltage);
Expand Down
2 changes: 2 additions & 0 deletions main/process/ota_defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#define JADE_OTA_BOARD_TYPE "M5BLACKGRAY"
#elif defined(CONFIG_BOARD_TYPE_M5_STICKC_PLUS)
#define JADE_OTA_BOARD_TYPE "M5STICKCPLUS"
#elif defined(CONFIG_BOARD_TYPE_M5_STICKC_PLUS_2)
#define JADE_OTA_BOARD_TYPE "M5STICKCPLUS2"
#elif defined(CONFIG_BOARD_TYPE_M5_CORES3)
#define JADE_OTA_BOARD_TYPE "M5CORES3"
#elif defined(CONFIG_BOARD_TYPE_M5_CORE2)
Expand Down

0 comments on commit d48d60f

Please sign in to comment.