diff --git a/build-scripts/ESP32-A1S-sdkconfig.defaults b/build-scripts/ESP32-A1S-sdkconfig.defaults index b26123a5..cb56b9b8 100644 --- a/build-scripts/ESP32-A1S-sdkconfig.defaults +++ b/build-scripts/ESP32-A1S-sdkconfig.defaults @@ -12,9 +12,12 @@ CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=-1 +CONFIG_LED_GREEN_GPIO_LEVEL=1 CONFIG_LED_RED_GPIO=-1 +CONFIG_LED_RED_GPIO_LEVEL=1 CONFIG_JACK_GPIO=-1 -CONFIG_BAT_CONFIG="" +CONFIG_BAT_CHANNEL=-1 +CONFIG_BAT_SCALE="0" CONFIG_I2S_BCK_IO=27 CONFIG_I2S_WS_IO=26 CONFIG_I2S_DO_IO=25 diff --git a/build-scripts/I2S-4MFlash-sdkconfig.defaults b/build-scripts/I2S-4MFlash-sdkconfig.defaults index d61358ce..cd01f32c 100644 --- a/build-scripts/I2S-4MFlash-sdkconfig.defaults +++ b/build-scripts/I2S-4MFlash-sdkconfig.defaults @@ -9,9 +9,12 @@ CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=-1 +CONFIG_LED_GREEN_GPIO_LEVEL=1 CONFIG_LED_RED_GPIO=-1 +CONFIG_LED_RED_GPIO_LEVEL=1 CONFIG_JACK_GPIO=-1 -CONFIG_BAT_CONFIG="" +CONFIG_BAT_CHANNEL=-1 +CONFIG_BAT_SCALE="0" CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 diff --git a/build-scripts/NonOTA-I2S-4MFlash-sdkconfig.defaults b/build-scripts/NonOTA-I2S-4MFlash-sdkconfig.defaults index 29b8b12d..6aaaf371 100644 --- a/build-scripts/NonOTA-I2S-4MFlash-sdkconfig.defaults +++ b/build-scripts/NonOTA-I2S-4MFlash-sdkconfig.defaults @@ -9,9 +9,12 @@ CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=-1 +CONFIG_LED_GREEN_GPIO_LEVEL=1 CONFIG_LED_RED_GPIO=-1 +CONFIG_LED_RED_GPIO_LEVEL=1 CONFIG_JACK_GPIO=-1 -CONFIG_BAT_CONFIG="" +CONFIG_BAT_CHANNEL=-1 +CONFIG_BAT_SCALE="0" CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 diff --git a/build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults b/build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults index 020404b6..a77a22eb 100644 --- a/build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults +++ b/build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults @@ -8,16 +8,20 @@ CONFIG_JACK_LOCKED=y CONFIG_BAT_LOCKED=y CONFIG_I2C_LOCKED=y CONFIG_SPDIF_LOCKED=y +CONFIG_LED_LOCKED=y CONFIG_DISPLAY_CONFIG="" CONFIG_I2C_CONFIG="" CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=12 +CONFIG_LED_GREEN_GPIO_LEVEL=0 CONFIG_LED_RED_GPIO=13 +CONFIG_LED_RED_GPIO_LEVEL=0 CONFIG_JACK_GPIO=34 CONFIG_JACK_GPIO_LEVEL=0 -CONFIG_BAT_CONFIG="channel=7,scale=20.24" +CONFIG_BAT_CHANNEL=7 +CONFIG_BAT_SCALE="20.24" CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 diff --git a/build-scripts/SqueezeAmp4MBFlash-sdkconfig.defaults b/build-scripts/SqueezeAmp4MBFlash-sdkconfig.defaults index 67329f92..c9f2130c 100644 --- a/build-scripts/SqueezeAmp4MBFlash-sdkconfig.defaults +++ b/build-scripts/SqueezeAmp4MBFlash-sdkconfig.defaults @@ -8,16 +8,20 @@ CONFIG_JACK_LOCKED=y CONFIG_BAT_LOCKED=y CONFIG_I2C_LOCKED=y CONFIG_SPDIF_LOCKED=y +CONFIG_LED_LOCKED=y CONFIG_DISPLAY_CONFIG="" CONFIG_I2C_CONFIG="" CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=12 +CONFIG_LED_GREEN_GPIO_LEVEL=0 CONFIG_LED_RED_GPIO=13 +CONFIG_LED_RED_GPIO_LEVEL=0 CONFIG_JACK_GPIO=34 CONFIG_JACK_GPIO_LEVEL=0 -CONFIG_BAT_CONFIG="channel=7,scale=20.24" +CONFIG_BAT_CHANNEL=7 +CONFIG_BAT_SCALE="20.24" CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 diff --git a/build-scripts/SqueezeAmp8MBFlash-sdkconfig.defaults b/build-scripts/SqueezeAmp8MBFlash-sdkconfig.defaults index 4681bb66..712cdff1 100644 --- a/build-scripts/SqueezeAmp8MBFlash-sdkconfig.defaults +++ b/build-scripts/SqueezeAmp8MBFlash-sdkconfig.defaults @@ -8,16 +8,20 @@ CONFIG_JACK_LOCKED=y CONFIG_BAT_LOCKED=y CONFIG_I2C_LOCKED=y CONFIG_SPDIF_LOCKED=y +CONFIG_LED_LOCKED=y CONFIG_DISPLAY_CONFIG="" CONFIG_I2C_CONFIG="" CONFIG_SPI_CONFIG="" CONFIG_SET_GPIO="" CONFIG_ROTARY_ENCODER="" CONFIG_LED_GREEN_GPIO=12 +CONFIG_LED_GREEN_GPIO_LEVEL=0 CONFIG_LED_RED_GPIO=13 +CONFIG_LED_RED_GPIO_LEVEL=0 CONFIG_JACK_GPIO=34 CONFIG_JACK_GPIO_LEVEL=0 -CONFIG_BAT_CONFIG="channel=7,scale=20.24" +CONFIG_BAT_CHANNEL=7 +CONFIG_BAT_SCALE="20.24" CONFIG_I2S_NUM=0 CONFIG_I2S_BCK_IO=33 CONFIG_I2S_WS_IO=25 diff --git a/components/display/CMakeLists.txt b/components/display/CMakeLists.txt new file mode 100644 index 00000000..4672e0c6 --- /dev/null +++ b/components/display/CMakeLists.txt @@ -0,0 +1,6 @@ +idf_component_register(SRCS "led.c" "audio_controls.c" "buttons.c" "services.c" "monitor.c"INCLUDE_DIRS + INCLUDE_DIRS . ../tools/ + +) + + diff --git a/components/display/component.mk b/components/display/component.mk new file mode 100644 index 00000000..295c75c4 --- /dev/null +++ b/components/display/component.mk @@ -0,0 +1,12 @@ +# +# Component Makefile +# +# This Makefile should, at the very least, just include $(SDK_PATH)/Makefile. By default, +# this will take the sources in the src/ directory, compile them and link them into +# lib(subdirectory_name).a in the build directory. This behaviour is entirely configurable, +# please read the SDK documents if you need to do this. +# + +COMPONENT_SRCDIRS := . tarablessd13x6 tarablessd13x6/fonts tarablessd13x6/ifaces +COMPONENT_ADD_INCLUDEDIRS := . +COMPONENT_ADD_INCLUDEDIRS += ./tarablessd13x6 \ No newline at end of file diff --git a/components/services/display.c b/components/display/display.c similarity index 100% rename from components/services/display.c rename to components/display/display.c diff --git a/components/services/display.h b/components/display/display.h similarity index 100% rename from components/services/display.h rename to components/display/display.h diff --git a/components/services/driver_SSD13x6.c b/components/display/driver_SSD13x6.c similarity index 100% rename from components/services/driver_SSD13x6.c rename to components/display/driver_SSD13x6.c diff --git a/components/services/tarablessd13x6/fonts/LICENSE-apache b/components/display/tarablessd13x6/fonts/LICENSE-apache similarity index 100% rename from components/services/tarablessd13x6/fonts/LICENSE-apache rename to components/display/tarablessd13x6/fonts/LICENSE-apache diff --git a/components/services/tarablessd13x6/fonts/LICENSE-liberation-mono b/components/display/tarablessd13x6/fonts/LICENSE-liberation-mono similarity index 100% rename from components/services/tarablessd13x6/fonts/LICENSE-liberation-mono rename to components/display/tarablessd13x6/fonts/LICENSE-liberation-mono diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c b/components/display/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c b/components/display/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c b/components/display/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c b/components/display/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c b/components/display/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c diff --git a/components/services/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c b/components/display/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c rename to components/display/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c diff --git a/components/services/tarablessd13x6/fonts/font_liberation_mono_13x21.c b/components/display/tarablessd13x6/fonts/font_liberation_mono_13x21.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_liberation_mono_13x21.c rename to components/display/tarablessd13x6/fonts/font_liberation_mono_13x21.c diff --git a/components/services/tarablessd13x6/fonts/font_liberation_mono_17x30.c b/components/display/tarablessd13x6/fonts/font_liberation_mono_17x30.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_liberation_mono_17x30.c rename to components/display/tarablessd13x6/fonts/font_liberation_mono_17x30.c diff --git a/components/services/tarablessd13x6/fonts/font_liberation_mono_9x15.c b/components/display/tarablessd13x6/fonts/font_liberation_mono_9x15.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_liberation_mono_9x15.c rename to components/display/tarablessd13x6/fonts/font_liberation_mono_9x15.c diff --git a/components/services/tarablessd13x6/fonts/font_line_1.c b/components/display/tarablessd13x6/fonts/font_line_1.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_line_1.c rename to components/display/tarablessd13x6/fonts/font_line_1.c diff --git a/components/services/tarablessd13x6/fonts/font_line_2.c b/components/display/tarablessd13x6/fonts/font_line_2.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_line_2.c rename to components/display/tarablessd13x6/fonts/font_line_2.c diff --git a/components/services/tarablessd13x6/fonts/font_tarable7seg_16x32.c b/components/display/tarablessd13x6/fonts/font_tarable7seg_16x32.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_tarable7seg_16x32.c rename to components/display/tarablessd13x6/fonts/font_tarable7seg_16x32.c diff --git a/components/services/tarablessd13x6/fonts/font_tarable7seg_32x64.c b/components/display/tarablessd13x6/fonts/font_tarable7seg_32x64.c similarity index 100% rename from components/services/tarablessd13x6/fonts/font_tarable7seg_32x64.c rename to components/display/tarablessd13x6/fonts/font_tarable7seg_32x64.c diff --git a/components/services/tarablessd13x6/ifaces/default_if_i2c.c b/components/display/tarablessd13x6/ifaces/default_if_i2c.c similarity index 100% rename from components/services/tarablessd13x6/ifaces/default_if_i2c.c rename to components/display/tarablessd13x6/ifaces/default_if_i2c.c diff --git a/components/services/tarablessd13x6/ifaces/default_if_spi.c b/components/display/tarablessd13x6/ifaces/default_if_spi.c similarity index 100% rename from components/services/tarablessd13x6/ifaces/default_if_spi.c rename to components/display/tarablessd13x6/ifaces/default_if_spi.c diff --git a/components/services/tarablessd13x6/ssd13x6.c b/components/display/tarablessd13x6/ssd13x6.c similarity index 100% rename from components/services/tarablessd13x6/ssd13x6.c rename to components/display/tarablessd13x6/ssd13x6.c diff --git a/components/services/tarablessd13x6/ssd13x6.h b/components/display/tarablessd13x6/ssd13x6.h similarity index 100% rename from components/services/tarablessd13x6/ssd13x6.h rename to components/display/tarablessd13x6/ssd13x6.h diff --git a/components/services/tarablessd13x6/ssd13x6_default_if.h b/components/display/tarablessd13x6/ssd13x6_default_if.h similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_default_if.h rename to components/display/tarablessd13x6/ssd13x6_default_if.h diff --git a/components/services/tarablessd13x6/ssd13x6_draw.c b/components/display/tarablessd13x6/ssd13x6_draw.c similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_draw.c rename to components/display/tarablessd13x6/ssd13x6_draw.c diff --git a/components/services/tarablessd13x6/ssd13x6_draw.h b/components/display/tarablessd13x6/ssd13x6_draw.h similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_draw.h rename to components/display/tarablessd13x6/ssd13x6_draw.h diff --git a/components/services/tarablessd13x6/ssd13x6_err.h b/components/display/tarablessd13x6/ssd13x6_err.h similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_err.h rename to components/display/tarablessd13x6/ssd13x6_err.h diff --git a/components/services/tarablessd13x6/ssd13x6_font.c b/components/display/tarablessd13x6/ssd13x6_font.c similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_font.c rename to components/display/tarablessd13x6/ssd13x6_font.c diff --git a/components/services/tarablessd13x6/ssd13x6_font.h b/components/display/tarablessd13x6/ssd13x6_font.h similarity index 100% rename from components/services/tarablessd13x6/ssd13x6_font.h rename to components/display/tarablessd13x6/ssd13x6_font.h diff --git a/components/services/battery.c b/components/services/battery.c index e3ab43fa..7cf14d04 100644 --- a/components/services/battery.c +++ b/components/services/battery.c @@ -46,7 +46,6 @@ int battery_value_svc(void) { /**************************************************************************************** * */ -#ifdef CONFIG_BAT_CONFIG static void battery_callback(TimerHandle_t xTimer) { battery.sum += adc1_get_raw(battery.channel) * battery.scale / 4095.0; if (++battery.count == 30) { @@ -55,27 +54,25 @@ static void battery_callback(TimerHandle_t xTimer) { ESP_LOGI(TAG, "Voltage %.2fV", battery.avg); } } -#endif /**************************************************************************************** * */ void battery_svc_init(void) { -#ifdef CONFIG_BAT_CONFIG - char *p; - if ((p = strcasestr(CONFIG_BAT_CONFIG, "channel")) != NULL) battery.channel = atof(strchr(p, '=') + 1); - if ((p = strcasestr(CONFIG_BAT_CONFIG, "scale")) != NULL) battery.scale = atof(strchr(p, '=') + 1); + battery.channel = CONFIG_BAT_CHANNEL; + battery.scale = atof(CONFIG_BAT_SCALE); #ifndef BAT_LOCKED char *nvs_item = config_alloc_get_default(NVS_TYPE_STR, "bat_config", "n", 0); if (nvs_item) { + char *p; if ((p = strcasestr(nvs_item, "channel")) != NULL) battery.channel = atoi(strchr(p, '=') + 1); if ((p = strcasestr(nvs_item, "scale")) != NULL) battery.scale = atof(strchr(p, '=') + 1); free(nvs_item); } #endif - if (battery.scale) { + if (battery.channel != -1) { ESP_LOGI(TAG, "Battery measure channel: %u, scale %f", battery.channel, battery.scale); adc1_config_width(ADC_WIDTH_BIT_12); @@ -86,5 +83,4 @@ void battery_svc_init(void) { } else { ESP_LOGI(TAG, "No battery"); } -#endif } diff --git a/components/services/component.mk b/components/services/component.mk index 295c75c4..ace79fdb 100644 --- a/components/services/component.mk +++ b/components/services/component.mk @@ -7,6 +7,5 @@ # please read the SDK documents if you need to do this. # -COMPONENT_SRCDIRS := . tarablessd13x6 tarablessd13x6/fonts tarablessd13x6/ifaces +COMPONENT_SRCDIRS := . COMPONENT_ADD_INCLUDEDIRS := . -COMPONENT_ADD_INCLUDEDIRS += ./tarablessd13x6 \ No newline at end of file diff --git a/components/services/led.c b/components/services/led.c index 372c60d1..251828c4 100644 --- a/components/services/led.c +++ b/components/services/led.c @@ -17,6 +17,7 @@ #include "esp_log.h" #include "driver/gpio.h" #include "led.h" +#include "accessors.h" #define MAX_LED 8 #define BLOCKTIME 10 // up to portMAX_DELAY @@ -33,10 +34,15 @@ static struct led_s { TimerHandle_t timer; } leds[MAX_LED]; -void led_svc_init(void) { - ESP_LOGI(TAG, "Initializing led"); -} +static struct { + int gpio; + int state; +} green = { CONFIG_LED_GREEN_GPIO, CONFIG_LED_GREEN_GPIO_LEVEL}, + red = { CONFIG_LED_RED_GPIO, CONFIG_LED_RED_GPIO_LEVEL }; +/**************************************************************************************** + * + */ static void vCallbackFunction( TimerHandle_t xTimer ) { struct led_s *led = (struct led_s*) pvTimerGetTimerID (xTimer); @@ -53,6 +59,9 @@ static void vCallbackFunction( TimerHandle_t xTimer ) { xTimerChangePeriod(xTimer, (led->on ? led->ontime : led->offtime) / portTICK_RATE_MS, BLOCKTIME); } +/**************************************************************************************** + * + */ bool led_blink_core(int idx, int ontime, int offtime, bool pushed) { if (!leds[idx].gpio || leds[idx].gpio<0 ) return false; @@ -99,6 +108,9 @@ bool led_blink_core(int idx, int ontime, int offtime, bool pushed) { return true; } +/**************************************************************************************** + * + */ bool led_unpush(int idx) { if (!leds[idx].gpio || leds[idx].gpio<0) return false; @@ -108,6 +120,9 @@ bool led_unpush(int idx) { return true; } +/**************************************************************************************** + * + */ bool led_config(int idx, gpio_num_t gpio, int onstate) { if(gpio<0){ ESP_LOGW(TAG,"LED GPIO not configured"); @@ -127,6 +142,9 @@ bool led_config(int idx, gpio_num_t gpio, int onstate) { return true; } +/**************************************************************************************** + * + */ bool led_unconfig(int idx) { if (idx >= MAX_LED) return false; @@ -135,3 +153,28 @@ bool led_unconfig(int idx) { return true; } + +/**************************************************************************************** + * + */ +void set_led_gpio(int gpio, char *value) { + char *p; + + if (strcasestr(value, "green")) { + green.gpio = gpio; + if ((p = strchr(value, ':')) != NULL) green.state = atoi(p + 1); + } else if (strcasestr(value, "red")) { + red.state = gpio; + if ((p = strchr(value, ':')) != NULL) red.state = atoi(p + 1); + } +} + +void led_svc_init(void) { +#ifndef LED_LOCKED + parse_set_GPIO(set_led_gpio); +#endif + ESP_LOGI(TAG,"Configuring LEDs green:%d (active:%d), red:%d (active:%d)", green.gpio, green.state, red.gpio, red.state); + + led_config(LED_GREEN, green.gpio, green.state); + led_config(LED_RED, red.gpio, red.state); +} diff --git a/components/services/monitor.c b/components/services/monitor.c index 75d44357..0a1c4b05 100644 --- a/components/services/monitor.c +++ b/components/services/monitor.c @@ -88,24 +88,23 @@ bool spkfault_svc (void) { * */ void set_jack_gpio(int gpio, char *value) { - bool low = false; + char *p; + int active = 1; - if (!strcasecmp(value, "jack_l")) { - jack_gpio = gpio; - low = true; - } else if (!strcasecmp(value, "jack_h")) { + if (strcasestr(value, "jack")) { jack_gpio = gpio; + if ((p = strchr(value, ':')) != NULL) active = atoi(p + 1); } if (jack_gpio != -1) { gpio_pad_select_gpio(jack_gpio); gpio_set_direction(jack_gpio, GPIO_MODE_INPUT); - gpio_set_pull_mode(jack_gpio, low ? GPIO_PULLUP_ONLY : GPIO_PULLDOWN_ONLY); + gpio_set_pull_mode(jack_gpio, active ? GPIO_PULLDOWN_ONLY : GPIO_PULLUP_ONLY); - ESP_LOGI(TAG,"Adding jack (%s) detection GPIO %d", low ? "low" : "high", gpio); + ESP_LOGI(TAG,"Adding jack (%s) detection GPIO %d", active ? "high" : "low", gpio); // re-use button management for jack handler, it's a GPIO after all - button_create(NULL, jack_gpio, low ? BUTTON_LOW : BUTTON_HIGH, false, 250, jack_handler_default, 0, -1); + button_create(NULL, jack_gpio, active ? BUTTON_HIGH : BUTTON_LOW, false, 250, jack_handler_default, 0, -1); } } @@ -115,14 +114,12 @@ void set_jack_gpio(int gpio, char *value) { void monitor_svc_init(void) { ESP_LOGI(TAG, "Initializing monitoring"); -#ifdef CONFIG_JACK_GPIO - jack_gpio = CONFIG_JACK_GPIO; #if CONFIG_JACK_GPIO_LEVEL == 1 - set_jack_gpio(CONFIG_JACK_GPIO, "jack_h"); + set_jack_gpio(CONFIG_JACK_GPIO, "jack:1"); #else - set_jack_gpio(CONFIG_JACK_GPIO, "jack_l"); -#endif + set_jack_gpio(CONFIG_JACK_GPIO, "jack:0"); #endif + #ifndef CONFIG_JACK_LOCKED parse_set_GPIO(set_jack_gpio); #endif diff --git a/components/services/services.c b/components/services/services.c index fc118741..aa972540 100644 --- a/components/services/services.c +++ b/components/services/services.c @@ -45,6 +45,7 @@ void set_power_gpio(int gpio, char *value) { if (parsed) ESP_LOGI(TAG, "set GPIO %u to %s", gpio, value); } + /**************************************************************************************** * @@ -88,11 +89,7 @@ void services_init(void) { ESP_LOGW(TAG, "no SPI configured"); } - ESP_LOGD(TAG,"Configuring LEDs green:%d red:%d", CONFIG_LED_GREEN_GPIO, CONFIG_LED_RED_GPIO); led_svc_init(); - led_config(LED_GREEN, CONFIG_LED_GREEN_GPIO, 0); - led_config(LED_RED, CONFIG_LED_RED_GPIO, 0); - battery_svc_init(); monitor_svc_init(); } \ No newline at end of file diff --git a/components/services/tarablessd13x6/.gitignore b/components/services/tarablessd13x6/.gitignore deleted file mode 100644 index 4140eec1..00000000 --- a/components/services/tarablessd13x6/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.vscode -build -.DS_Store - diff --git a/components/services/tarablessd13x6/CMakeLists.txt b/components/services/tarablessd13x6/CMakeLists.txt deleted file mode 100644 index 7498b266..00000000 --- a/components/services/tarablessd13x6/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -set(COMPONENT_SRCDIRS ". fonts ifaces") -set(COMPONENT_ADD_INCLUDEDIRS ".") -register_component() diff --git a/components/services/tarablessd13x6/Kconfig b/components/services/tarablessd13x6/Kconfig deleted file mode 100644 index cc2cb11a..00000000 --- a/components/services/tarablessd13x6/Kconfig +++ /dev/null @@ -1,106 +0,0 @@ -menu "TarableSSD1306" - -config SSD1306_ENABLE_DEFAULT_I2C_INTERFACE - bool "Enable default i2c master interface code" - default y - help - Provides initialization code for both the i2c bus and i2c display device. - -config SSD1306_DEFAULT_I2C_SPEED - depends on SSD1306_ENABLE_DEFAULT_I2C_INTERFACE - int "Bus speed for i2c master" - default 250000 - help - Default i2c interface speed in Hz - -config SSD1306_DEFAULT_I2C_PORT_NUMBER - depends on SSD1306_ENABLE_DEFAULT_I2C_INTERFACE - int "I2C port number to use" - default 0 - -config SSD1306_DEFAULT_I2C_SCL_PIN - depends on SSD1306_ENABLE_DEFAULT_I2C_INTERFACE - int "Default SCL pin number" - default 22 - -config SSD1306_DEFAULT_I2C_SDA_PIN - depends on SSD1306_ENABLE_DEFAULT_I2C_INTERFACE - int "Default SDA pin number" - default 21 - -config SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - bool "Enable default SPI interface" - default y - help - Provides initialization code for both the i2c device and spi attached display. - -config SSD1306_DEFAULT_SPI_HOST - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - int - default 1 if SSD1306_USE_HSPI_HOST - default 2 if SSD1306_USE_VSPI_HOST - - choice - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - prompt "Default SPI host" - default SSD1306_USE_HSPI_HOST - - config SSD1306_USE_HSPI_HOST - bool "HSPI" - - config SSD1306_USE_VSPI_HOST - bool "VSPI" - endchoice - -config SSD1306_DEFAULT_SPI_FREQUENCY - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - int "Default frequency for SPI attached display" - default 1000000 - -config SSD1306_DEFAULT_SPI_MOSI_PIN - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - int "Default MOSI pin number" - default 13 - -config SSD1306_DEFAULT_SPI_SCLK_PIN - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - int "Default SCLK pin number" - default 14 - -config SSD1306_DEFAULT_SPI_DC_PIN - depends on SSD1306_ENABLE_DEFAULT_SPI_INTERFACE - int "Default DC pin number" - default 33 - -config SSD1306_ERROR_ABORT - bool "Call abort() on all errors" - default y - -config SSD1306_CLIPDEBUG - int - default 0 if CLIPDEBUG_NONE - default 1 if CLIPDEBUG_WARNING - default 2 if CLIPDEBUG_ERROR - - choice - prompt "Clipping debug level" - default CLIPDEBUG_WARNING - - - config CLIPDEBUG_NONE - bool "None" - help - Drawing operations clip silently. - - config CLIPDEBUG_WARNING - bool "Warning" - help - If a drawing operation is clipped a warning is written to the console. - - config CLIPDEBUG_ERROR - bool "Error" - help - If a drawing operation is clipped an error is written to the console along with an abort. - endchoice - -endmenu diff --git a/components/services/tarablessd13x6/LICENSE b/components/services/tarablessd13x6/LICENSE deleted file mode 100644 index 41c0c99a..00000000 --- a/components/services/tarablessd13x6/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2017 Tara Keeling - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/components/services/tarablessd13x6/README.md b/components/services/tarablessd13x6/README.md deleted file mode 100644 index e0d16354..00000000 --- a/components/services/tarablessd13x6/README.md +++ /dev/null @@ -1,16 +0,0 @@ - - -# SSD1306 Component for the ESP32 and ESP-IDF SDK - -## About: -This is a simple component for the SSD1306 display. -It supports multiple display sizes on both i2c and spi interfaces. - -Check out the wiki where most of the relevant information is. - -***Examples:*** https://github.com/TaraHoleInIt/tarablessd1306_examples diff --git a/components/services/tarablessd13x6/component.mk b/components/services/tarablessd13x6/component.mk deleted file mode 100644 index d985d1e8..00000000 --- a/components/services/tarablessd13x6/component.mk +++ /dev/null @@ -1,2 +0,0 @@ -COMPONENT_SRCDIRS := . fonts ifaces -COMPONENT_ADD_INCLUDEDIRS := . diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 69268b08..0981c9b4 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -29,6 +29,8 @@ menu "Squeezelite-ESP32" bool config SPDIF_LOCKED bool + config LED_LOCKED + bool menu "Audio Output" choice OUTPUT_TYPE prompt "Output Type" @@ -41,6 +43,7 @@ menu "Squeezelite-ESP32" select BAT_LOCKED select I2C_LOCKED select SPDIF_LOCKED + select LED_LOCKED config A1S bool "ESP32-A1S module" select I2C_LOCKED @@ -49,7 +52,7 @@ menu "Squeezelite-ESP32" endchoice menu "DAC I2S settings" - visible if !SQUEEZEAMP && !A1S + visible if BASIC_I2C_BT config I2S_NUM int "I2S channel (0 or 1). " default 0 @@ -83,7 +86,7 @@ menu "Squeezelite-ESP32" endmenu menu "SPDIF settings" - visible if !SQUEEZEAMP && !A1S + visible if BASIC_I2C_BT config SDIF_NUM int "I2S channel for SDPIF (0 or 1)" default 0 @@ -202,9 +205,11 @@ menu "Squeezelite-ESP32" default "" help Set parameters of shared GPIO with special values. - =Vcc|GND|amp|jack_h|jack_l[,=Vcc|GND|amp|jack_h|jack_l] - 'amp' means a GPIO that is set when playback starts - 'jack_h' means the audio_gpio insertion detection (1=inserted, use 'jack_l' when 0=inserted) - see also "Jack Insertion GPIO" + =Vcc|GND|amp|jack[:0|1][,=Vcc|GND|amp|jack[:0|1]] + 'amp' => GPIO that is set when playback starts + 'jack' => GPIO used for audio jack detection + 'green', 'red' => GPIO for status LED + '[:0|1] means set the active value for that GPIO can be low or high config ROTARY_ENCODER string "Rotary Encoder configuration" default "" @@ -220,12 +225,22 @@ menu "Squeezelite-ESP32" default 12 if SQUEEZEAMP help Set to -1 for no LED + config LED_GREEN_GPIO_LEVEL + int "Green led ON level" + depends on LED_GREEN_GPIO != -1 + default 0 if SQUEEZEAMP + default 1 if !SQUEEZEAMP config LED_RED_GPIO int "Red led GPIO" default -1 if !SQUEEZEAMP default 13 if SQUEEZEAMP help Set to -1 for no LED + config LED_RED_GPIO_LEVEL + int "Red led ON level" + depends on LED_RED_GPIO != -1 + default 0 if SQUEEZEAMP + default 1 if !SQUEEZEAMP endmenu menu "Audio JACK" visible if !SQUEEZEAMP @@ -242,12 +257,19 @@ menu "Squeezelite-ESP32" endmenu menu "Battery measure" visible if !SQUEEZEAMP - config BAT_CONFIG - string "Set channel and scale" - default "" if !SQUEEZEAMP - default "channel=7,scale=20.24" if SQUEEZEAMP + config BAT_CHANNEL + int "Set channel (0..7)" + default -1 if !SQUEEZEAMP + default 7 if SQUEEZEAMP help - Read a value every 10s on ADC1. Configuration format: channel=0..7,scale= + Read a value every 10s on ADC1 on set Channel + config BAT_SCALE + string "Set scaling factor" + depends on BAT_CHANNEL != -1 + default "" if !SQUEEZEAMP + default "20.24" if SQUEEZEAMP + help + Set the scaling factor for this 12 bits ADC endmenu endmenu \ No newline at end of file diff --git a/main/esp_app_main.c b/main/esp_app_main.c index e9a95bf9..f361874b 100644 --- a/main/esp_app_main.c +++ b/main/esp_app_main.c @@ -322,8 +322,8 @@ void register_default_nvs(){ ESP_LOGD(TAG,"Registering default value for key %s", "dac_config"); config_set_default(NVS_TYPE_STR, "dac_config", "", 0); - ESP_LOGD(TAG,"Registering default value for key %s, value %s", "bat_config", CONFIG_BAT_CONFIG); - config_set_default(NVS_TYPE_STR, "bat_config", CONFIG_BAT_CONFIG, 0); + ESP_LOGD(TAG,"Registering default value for key %s", "bat_config"); + config_set_default(NVS_TYPE_STR, "bat_config", "", 0); ESP_LOGD(TAG,"Registering default value for key %s", "metadata_config"); config_set_default(NVS_TYPE_STR, "metadata_config", "", 0);