diff --git a/Audio_10_BT/Audio_10_BT.ino b/Audio_10_BT/Audio_10_BT.ino
index 5f761af2e308e4c9dffd4b10f3b3c4c6aa53f82e..04eb3d8d9c2224d5b234a535107f6a83ea8ae676 100644
--- a/Audio_10_BT/Audio_10_BT.ino
+++ b/Audio_10_BT/Audio_10_BT.ino
@@ -32,6 +32,10 @@
 #define PIN_CCPSE 22
 #define PIN_LED 23
 #define PIN_WAKEUP GPIO_NUM_15
+#define PIN_MUTE 14
+#define PIN_WSEL 25
+#define PIN_DIN 26
+#define PIN_BCLK 27
 
 #define TRIGGER_GND HIGH
 #define TRIGGER_5V LOW
@@ -74,18 +78,24 @@ RTC_DATA_ATTR struct States {
 } ccState;
 
 i2s_config_t i2s_config = {
-	.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN),
-	.sample_rate = 44100, 							// corrected by info from bluetooth
-	.bits_per_sample = (i2s_bits_per_sample_t)16, 	//the DAC module will only take the 8bits from MSB
+	.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX ),
+	.sample_rate = 48000, 							// corrected by info from bluetooth
+	.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, 	//the DAC module will only take the 8bits from MSB
 	.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
-	.communication_format = I2S_COMM_FORMAT_I2S_MSB,
+	.communication_format = I2S_COMM_FORMAT_I2S,
 	.intr_alloc_flags = 0,							// default interrupt priority
 	.dma_buf_count = 8,
 	.dma_buf_len = 64,
 	.use_apll = false
 };
 
-String sMessage;
+static const i2s_pin_config_t pin_config = {
+	.bck_io_num = PIN_BCLK,
+	.ws_io_num = PIN_WSEL,
+	.data_out_num = PIN_DIN,
+	.data_in_num = I2S_PIN_NO_CHANGE
+};
+
 bool blockOpto = true;
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -101,8 +111,6 @@ void cb_a2d(esp_a2d_cb_event_t event, esp_a2d_cb_param_t* param) {
 
 		if (param->conn_stat.state == ESP_A2D_CONNECTION_STATE_DISCONNECTED) {
 			Serial.write("DISCONNECTED\n");
-			//TODO: change inside state, or does radio change??
-			// Maybe stop opto
 			digitalWrite(PIN_CCINS, TRIGGER_GND);
 			digitalWrite(PIN_CCPSE, TRIGGER_GND);
 			digitalWrite(PIN_CCMOD, TRIGGER_5V);
@@ -340,8 +348,6 @@ bool send_media_cmd(uint8_t cmd) {
 }
 
 void new_gear_state() {
-	
-	//TODO: maybe need to stop music play somewhere else
 
 	// make sure it is a new brake operation
 	if (ccState.timeStamp > (ccState.brakeTime + 200)) {
@@ -353,14 +359,17 @@ void new_gear_state() {
 		{
 		case GearState::empty:
 			esp_a2d_sink_disconnect(ccState.lastDevice);
+			digitalWrite(PIN_MUTE, TRIGGER_5V);
 			ccState.gearTime = 50;
 			break;
 		case GearState::connected:
 			send_media_cmd(ESP_AVRC_PT_CMD_PAUSE);
+			digitalWrite(PIN_MUTE, TRIGGER_5V);
 			ccState.gearTime = 150;
 			break;
 		case GearState::play2:
 			send_media_cmd(ESP_AVRC_PT_CMD_PAUSE);
+			digitalWrite(PIN_MUTE, TRIGGER_5V);
 			ccState.gearTime = 952;
 			break;
 		case GearState::idle:
@@ -376,6 +385,7 @@ void new_gear_state() {
 			break;
 		case GearState::play1:
 			send_media_cmd(ESP_AVRC_PT_CMD_PLAY);
+			digitalWrite(PIN_MUTE, TRIGGER_GND);
 			ccState.gearTime = 782;
 			break;
 		default:
@@ -384,6 +394,7 @@ void new_gear_state() {
 			ccState.gear = GearState::empty;
 			digitalWrite(PIN_CCINS, TRIGGER_GND);
 			digitalWrite(PIN_CCPSE, TRIGGER_GND);
+			digitalWrite(PIN_MUTE, TRIGGER_5V);
 			digitalWrite(PIN_CCMOD, TRIGGER_5V);
 			break;
 		}
@@ -399,6 +410,7 @@ void setup_pin_mods() {
 	pinMode(PIN_CCMOD, OUTPUT);
 	pinMode(PIN_CCINS, OUTPUT);
 	pinMode(PIN_OPTO, OUTPUT);
+	pinMode(PIN_MUTE, OUTPUT);
 
 	pinMode(PIN_CCEJT, INPUT);
 	pinMode(PIN_LED, INPUT);
@@ -421,6 +433,7 @@ void setup_default_states() {
 
 	digitalWrite(PIN_CCPSE, TRIGGER_GND);
 	digitalWrite(PIN_CCMOD, TRIGGER_5V);
+	digitalWrite(PIN_MUTE, TRIGGER_5V);
 	if (ccState.gear == GearState::connected)
 		digitalWrite(PIN_CCINS, TRIGGER_5V);
 	else
@@ -429,11 +442,6 @@ void setup_default_states() {
 
 
 void setup() {
-	
-	//setup_freq_measure();
-	//setup_operation_measure();
-	//return;
-
 	Serial.begin(115200); delay(1000);
 	Serial.println("MB Audio 10 BT start");
 
@@ -444,11 +452,7 @@ void setup() {
 	else
 		Serial.println("was something else");
 
-	Serial.print("Geartime: ");
-	Serial.println(ccState.gearTime);
-
 	setup_pin_mods();
-
 	setup_default_states();
 
 	if (!bt_init("Mercedes Audio 10 BT", cb_a2d, cb_audiodata, cb_avrc_ct)) {
@@ -469,34 +473,6 @@ void setup() {
 ///////////////////////////////////////////////////////////////////////////////
 // loop
 
-void loop_input() {
-
-	if (Serial.available()) {
-		char cInput = Serial.read();
-
-		if (cInput != '\n')
-			sMessage += String(cInput);
-		else
-			sMessage = "";
-
-		if (sMessage == "sleep") {
-			go_to_sleep();
-		}
-		else if (sMessage == "play") {
-			send_media_cmd(ESP_AVRC_PT_CMD_PLAY);
-		}
-		else if (sMessage == "pause") {
-			send_media_cmd(ESP_AVRC_PT_CMD_PAUSE);
-		}
-		else if (sMessage == "next") {
-			send_media_cmd(ESP_AVRC_PT_CMD_FORWARD);
-		}
-		else if (sMessage == "prev") {
-			send_media_cmd(ESP_AVRC_PT_CMD_BACKWARD);
-		}
-	}
-}
-
 void loop_emulation() {
 
 	// get current states ////////////////////////////////////////////////////////
@@ -530,7 +506,7 @@ void loop_emulation() {
 		}
 	}
 	else if (readLED == LOW && ccState.optoTime != 2 * OPTO_PERIOD) {
-		Serial.println("end PWM signal");
+		//Serial.println("end PWM signal");
 		digitalWrite(PIN_OPTO, LOW);
 		ccState.optoTime = 2 * OPTO_PERIOD;
 	}
@@ -560,7 +536,7 @@ void loop_emulation() {
 	if (ccState.gearTime < 100 && ccState.gear != GearState::empty) {
 		digitalWrite(PIN_CCINS, TRIGGER_GND);
 
-		Serial.println("Gear: empty");
+		//Serial.println("Gear: empty");
 
 		ccState.gear = GearState::empty;
 	}
@@ -569,7 +545,7 @@ void loop_emulation() {
 		if (ccState.gear == GearState::idle)
 			digitalWrite(PIN_CCPSE, TRIGGER_GND);
 
-		Serial.println("Gear: connected");
+		//Serial.println("Gear: connected");
 
 		ccState.gear = GearState::connected;
 	}
@@ -580,72 +556,46 @@ void loop_emulation() {
 		else if (ccState.gear == GearState::is1)
 			digitalWrite(PIN_CCMOD, TRIGGER_5V);
 
-		Serial.println("Gear: idle");
-
 		ccState.gear = GearState::idle;
 	}
 	//is1
 	else if (240 <= ccState.gearTime && ccState.gearTime < 320 && ccState.gear != GearState::is1) {
 		digitalWrite(PIN_CCMOD, TRIGGER_GND);
-
-		Serial.println("Gear: is1");
-
 		ccState.gear = GearState::is1;
 	}
 	//rev
 	else if (320 <= ccState.gearTime && ccState.gearTime < 385 && ccState.gear != GearState::rev) {
 		digitalWrite(PIN_CCMOD, TRIGGER_5V);
-
-		Serial.println("Gear: rev");
-
 		ccState.gear = GearState::rev;
 	}
 	//is2
 	else if (385 <= ccState.gearTime && ccState.gearTime < 560 && ccState.gear != GearState::is2) {
 		digitalWrite(PIN_CCMOD, TRIGGER_GND);
-
-		Serial.println("Gear: is2");
-
 		ccState.gear = GearState::is2;
 	}
 	//ff
 	else if (560 <= ccState.gearTime && ccState.gearTime < 625 && ccState.gear != GearState::ff) {
 		digitalWrite(PIN_CCMOD, TRIGGER_5V);
-
-		Serial.println("Gear: ff");
-
 		ccState.gear = GearState::ff;
 	}
 	//is3
 	else if (625 <= ccState.gearTime && ccState.gearTime < 750 && ccState.gear != GearState::is3) {
 		digitalWrite(PIN_CCMOD, TRIGGER_GND);
-
-		Serial.println("Gear: is3");
-
 		ccState.gear = GearState::is3;
 	}
 	//play1
 	else if (750 <= ccState.gearTime && ccState.gearTime < 815 && ccState.gear != GearState::play1) {
 		digitalWrite(PIN_CCMOD, TRIGGER_5V);
-
-		Serial.println("Gear: play1");
-
 		ccState.gear = GearState::play1;
 	}
 	//is4
 	else if (815 <= ccState.gearTime && ccState.gearTime < 920 && ccState.gear != GearState::is4) {
 		digitalWrite(PIN_CCMOD, TRIGGER_GND);
-
-		Serial.println("Gear: is4");
-
 		ccState.gear = GearState::is4;
 	}
 	//play2
 	else if (920 <= ccState.gearTime && ccState.gear != GearState::play2) {
 		digitalWrite(PIN_CCMOD, TRIGGER_5V);
-
-		Serial.println("Gear: play2");
-
 		ccState.gear = GearState::play2;
 	}
 
@@ -658,15 +608,11 @@ void loop_emulation() {
 
 void loop() {
 
-	//loop_freq_measure();
-	//loop_operation_measure();
-	//return;
-
 	if (digitalRead(PIN_WAKEUP) == LOW)
 		go_to_sleep();
 
 	// delay 0
-	loop_input();
+	//loop_input();
 
 	// delay 5
 	loop_emulation();