diff --git a/components/badge23/espan.c b/components/badge23/espan.c index b59346e24da5b6c5bafc5e6671110e9e0945ee1f..f8ba3fd9b827e15e46b7c273a9e6f52022b5920e 100644 --- a/components/badge23/espan.c +++ b/components/badge23/espan.c @@ -52,6 +52,7 @@ static esp_err_t i2c_master_init(void) } #define CAPTOUCH_POLLING_PERIOD 10 +static uint8_t hw_init_done = 0; void os_app_main(void) { @@ -65,10 +66,11 @@ void os_app_main(void) init_buttons(); captouch_init(); - vTaskDelay(2000 / portTICK_PERIOD_MS); + //vTaskDelay(2000 / portTICK_PERIOD_MS); set_global_vol_dB(0); display_init(); + hw_init_done = 1; while(1) { manual_captouch_readout(1); vTaskDelay((CAPTOUCH_POLLING_PERIOD) / portTICK_PERIOD_MS); @@ -82,3 +84,8 @@ void os_app_main(void) ESP_ERROR_CHECK(i2c_driver_delete(I2C_MASTER_NUM)); ESP_LOGI(TAG, "I2C de-initialized successfully"); } + +uint8_t hardware_is_initialized(){ + return hw_init_done; +} + diff --git a/components/badge23/include/badge23/espan.h b/components/badge23/include/badge23/espan.h index 2f40b8ab762024cb872b4ce99c7ac27497191963..7915f33e09ea0752b7b01903d018534cca7d6dd6 100644 --- a/components/badge23/include/badge23/espan.h +++ b/components/badge23/include/badge23/espan.h @@ -1,2 +1,4 @@ #pragma once +#include <stdint.h> void os_app_main(void); +uint8_t hardware_is_initialized(void); diff --git a/python_payload/main.py b/python_payload/main.py index 1bbeed1cfff9bb45b2aa9908ae2252b7b762fe0a..571cdf042f1c604a3c2a8472a359ab646a269648 100644 --- a/python_payload/main.py +++ b/python_payload/main.py @@ -73,7 +73,9 @@ def set_rel_volume(vol): def main(): global CURRENT_APP_RUN - time.sleep_ms(5000) + while not init_done(): + pass + captouch_autocalib() for module in MODULES: diff --git a/usermodule/mp_hardware.c b/usermodule/mp_hardware.c index 36ecb91ea367cdb4a6696a51c1974de1f9025d65..70522b900b83d984a9bcdf5f6f76d9a001ea6b0b 100644 --- a/usermodule/mp_hardware.c +++ b/usermodule/mp_hardware.c @@ -16,8 +16,14 @@ #include "badge23/captouch.h" #include "badge23/display.h" #include "badge23/spio.h" +#include "badge23/espan.h" #include "badge23_hwconfig.h" +STATIC mp_obj_t mp_init_done(size_t n_args, const mp_obj_t *args) { + return mp_obj_new_int(hardware_is_initialized()); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_init_done_obj, 0, 1, mp_init_done); + STATIC mp_obj_t mp_display_update(size_t n_args, const mp_obj_t *args) { display_update(); return mp_const_none; @@ -128,6 +134,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_version_obj, mp_version); STATIC const mp_rom_map_elem_t mp_module_hardware_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_badge_audio) }, + { MP_ROM_QSTR(MP_QSTR_init_done), MP_ROM_PTR(&mp_init_done_obj) }, { MP_ROM_QSTR(MP_QSTR_get_captouch), MP_ROM_PTR(&mp_get_captouch_obj) }, { MP_ROM_QSTR(MP_QSTR_captouch_autocalib), MP_ROM_PTR(&mp_captouch_autocalib_obj) }, { MP_ROM_QSTR(MP_QSTR_get_button), MP_ROM_PTR(&mp_get_button_obj) },