Kaynağa Gözat

More refactoring

- Display is a separated entity
- Make battery configuration consistent with others
- Led config part of led.c
- Jack config moved to monitor.c
philippe44 5 yıl önce
ebeveyn
işleme
64fcc0edec
49 değiştirilmiş dosya ile 140 ekleme ve 187 silme
  1. 4 1
      build-scripts/ESP32-A1S-sdkconfig.defaults
  2. 4 1
      build-scripts/I2S-4MFlash-sdkconfig.defaults
  3. 4 1
      build-scripts/NonOTA-I2S-4MFlash-sdkconfig.defaults
  4. 5 1
      build-scripts/NonOTA-SqueezeAmp-sdkconfig.defaults
  5. 5 1
      build-scripts/SqueezeAmp4MBFlash-sdkconfig.defaults
  6. 5 1
      build-scripts/SqueezeAmp8MBFlash-sdkconfig.defaults
  7. 6 0
      components/display/CMakeLists.txt
  8. 12 0
      components/display/component.mk
  9. 0 0
      components/display/display.c
  10. 0 0
      components/display/display.h
  11. 0 0
      components/display/driver_SSD13x6.c
  12. 0 0
      components/display/tarablessd13x6/fonts/LICENSE-apache
  13. 0 0
      components/display/tarablessd13x6/fonts/LICENSE-liberation-mono
  14. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c
  15. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c
  16. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c
  17. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c
  18. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c
  19. 0 0
      components/display/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c
  20. 0 0
      components/display/tarablessd13x6/fonts/font_liberation_mono_13x21.c
  21. 0 0
      components/display/tarablessd13x6/fonts/font_liberation_mono_17x30.c
  22. 0 0
      components/display/tarablessd13x6/fonts/font_liberation_mono_9x15.c
  23. 0 0
      components/display/tarablessd13x6/fonts/font_line_1.c
  24. 0 0
      components/display/tarablessd13x6/fonts/font_line_2.c
  25. 0 0
      components/display/tarablessd13x6/fonts/font_tarable7seg_16x32.c
  26. 0 0
      components/display/tarablessd13x6/fonts/font_tarable7seg_32x64.c
  27. 0 0
      components/display/tarablessd13x6/ifaces/default_if_i2c.c
  28. 0 0
      components/display/tarablessd13x6/ifaces/default_if_spi.c
  29. 0 0
      components/display/tarablessd13x6/ssd13x6.c
  30. 0 0
      components/display/tarablessd13x6/ssd13x6.h
  31. 0 0
      components/display/tarablessd13x6/ssd13x6_default_if.h
  32. 0 0
      components/display/tarablessd13x6/ssd13x6_draw.c
  33. 0 0
      components/display/tarablessd13x6/ssd13x6_draw.h
  34. 0 0
      components/display/tarablessd13x6/ssd13x6_err.h
  35. 0 0
      components/display/tarablessd13x6/ssd13x6_font.c
  36. 0 0
      components/display/tarablessd13x6/ssd13x6_font.h
  37. 4 8
      components/services/battery.c
  38. 1 2
      components/services/component.mk
  39. 46 3
      components/services/led.c
  40. 10 13
      components/services/monitor.c
  41. 1 4
      components/services/services.c
  42. 0 4
      components/services/tarablessd13x6/.gitignore
  43. 0 3
      components/services/tarablessd13x6/CMakeLists.txt
  44. 0 106
      components/services/tarablessd13x6/Kconfig
  45. 0 9
      components/services/tarablessd13x6/LICENSE
  46. 0 16
      components/services/tarablessd13x6/README.md
  47. 0 2
      components/services/tarablessd13x6/component.mk
  48. 31 9
      main/Kconfig.projbuild
  49. 2 2
      main/esp_app_main.c

+ 4 - 1
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

+ 4 - 1
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

+ 4 - 1
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

+ 5 - 1
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

+ 5 - 1
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

+ 5 - 1
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

+ 6 - 0
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/
+                   
+)
+
+

+ 12 - 0
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 

+ 0 - 0
components/services/display.c → components/display/display.c


+ 0 - 0
components/services/display.h → components/display/display.h


+ 0 - 0
components/services/driver_SSD13x6.c → components/display/driver_SSD13x6.c


+ 0 - 0
components/services/tarablessd13x6/fonts/LICENSE-apache → components/display/tarablessd13x6/fonts/LICENSE-apache


+ 0 - 0
components/services/tarablessd13x6/fonts/LICENSE-liberation-mono → components/display/tarablessd13x6/fonts/LICENSE-liberation-mono


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c → components/display/tarablessd13x6/fonts/font_droid_sans_fallback_11x13.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c → components/display/tarablessd13x6/fonts/font_droid_sans_fallback_15x17.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c → components/display/tarablessd13x6/fonts/font_droid_sans_fallback_24x28.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c → components/display/tarablessd13x6/fonts/font_droid_sans_mono_13x24.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c → components/display/tarablessd13x6/fonts/font_droid_sans_mono_16x31.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c → components/display/tarablessd13x6/fonts/font_droid_sans_mono_7x13.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_liberation_mono_13x21.c → components/display/tarablessd13x6/fonts/font_liberation_mono_13x21.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_liberation_mono_17x30.c → components/display/tarablessd13x6/fonts/font_liberation_mono_17x30.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_liberation_mono_9x15.c → components/display/tarablessd13x6/fonts/font_liberation_mono_9x15.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_line_1.c → components/display/tarablessd13x6/fonts/font_line_1.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_line_2.c → components/display/tarablessd13x6/fonts/font_line_2.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_tarable7seg_16x32.c → components/display/tarablessd13x6/fonts/font_tarable7seg_16x32.c


+ 0 - 0
components/services/tarablessd13x6/fonts/font_tarable7seg_32x64.c → components/display/tarablessd13x6/fonts/font_tarable7seg_32x64.c


+ 0 - 0
components/services/tarablessd13x6/ifaces/default_if_i2c.c → components/display/tarablessd13x6/ifaces/default_if_i2c.c


+ 0 - 0
components/services/tarablessd13x6/ifaces/default_if_spi.c → components/display/tarablessd13x6/ifaces/default_if_spi.c


+ 0 - 0
components/services/tarablessd13x6/ssd13x6.c → components/display/tarablessd13x6/ssd13x6.c


+ 0 - 0
components/services/tarablessd13x6/ssd13x6.h → components/display/tarablessd13x6/ssd13x6.h


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_default_if.h → components/display/tarablessd13x6/ssd13x6_default_if.h


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_draw.c → components/display/tarablessd13x6/ssd13x6_draw.c


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_draw.h → components/display/tarablessd13x6/ssd13x6_draw.h


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_err.h → components/display/tarablessd13x6/ssd13x6_err.h


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_font.c → components/display/tarablessd13x6/ssd13x6_font.c


+ 0 - 0
components/services/tarablessd13x6/ssd13x6_font.h → components/display/tarablessd13x6/ssd13x6_font.h


+ 4 - 8
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				
 }

+ 1 - 2
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 

+ 46 - 3
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);
+}

+ 10 - 13
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	

+ 1 - 4
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();
 }

+ 0 - 4
components/services/tarablessd13x6/.gitignore

@@ -1,4 +0,0 @@
-.vscode
-build
-.DS_Store
-

+ 0 - 3
components/services/tarablessd13x6/CMakeLists.txt

@@ -1,3 +0,0 @@
-set(COMPONENT_SRCDIRS ". fonts ifaces")
-set(COMPONENT_ADD_INCLUDEDIRS ".")
-register_component()

+ 0 - 106
components/services/tarablessd13x6/Kconfig

@@ -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

+ 0 - 9
components/services/tarablessd13x6/LICENSE

@@ -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.

+ 0 - 16
components/services/tarablessd13x6/README.md

@@ -1,16 +0,0 @@
-<!---
- Copyright (c) 2017 Tara Keeling
- 
- This software is released under the MIT License.
- https://opensource.org/licenses/MIT
--->
-
-# 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

+ 0 - 2
components/services/tarablessd13x6/component.mk

@@ -1,2 +0,0 @@
-COMPONENT_SRCDIRS := . fonts ifaces
-COMPONENT_ADD_INCLUDEDIRS := .

+ 31 - 9
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. 
-				<gpio_1>=Vcc|GND|amp|jack_h|jack_l[,<gpio_n>=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"
+				<gpio_1>=Vcc|GND|amp|jack[:0|1][,<gpio_n>=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"
+		config BAT_CHANNEL	
+			int "Set channel (0..7)"
+			default -1 if !SQUEEZEAMP
+			default 7 if SQUEEZEAMP
+			help
+				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 "channel=7,scale=20.24" if SQUEEZEAMP
+			default "20.24" if SQUEEZEAMP
 			help
-				Read a value every 10s on ADC1. Configuration format: channel=0..7,scale=<scale>
+				Set the scaling factor for this 12 bits ADC
 	endmenu	
 	
 endmenu

+ 2 - 2
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);