diff --git a/.DS_Store b/.DS_Store
index 63d8d76..6af0f90 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/firmware-arduino/.DS_Store b/firmware-arduino/.DS_Store
new file mode 100644
index 0000000..ebd2fba
Binary files /dev/null and b/firmware-arduino/.DS_Store differ
diff --git a/firmware-cpp/.gitignore b/firmware-arduino/.gitignore
similarity index 100%
rename from firmware-cpp/.gitignore
rename to firmware-arduino/.gitignore
diff --git a/firmware-cpp/.vscode/extensions.json b/firmware-arduino/.vscode/extensions.json
similarity index 100%
rename from firmware-cpp/.vscode/extensions.json
rename to firmware-arduino/.vscode/extensions.json
diff --git a/firmware-cpp/README.md b/firmware-arduino/README.md
similarity index 100%
rename from firmware-cpp/README.md
rename to firmware-arduino/README.md
diff --git a/firmware-cpp/data/startup.mp3 b/firmware-arduino/data/startup.mp3
similarity index 100%
rename from firmware-cpp/data/startup.mp3
rename to firmware-arduino/data/startup.mp3
diff --git a/firmware-cpp/include/README b/firmware-arduino/include/README
similarity index 100%
rename from firmware-cpp/include/README
rename to firmware-arduino/include/README
diff --git a/firmware-cpp/lib/README b/firmware-arduino/lib/README
similarity index 100%
rename from firmware-cpp/lib/README
rename to firmware-arduino/lib/README
diff --git a/firmware-cpp/partition.csv b/firmware-arduino/partition.csv
similarity index 100%
rename from firmware-cpp/partition.csv
rename to firmware-arduino/partition.csv
diff --git a/firmware-cpp/platformio.ini b/firmware-arduino/platformio.ini
similarity index 82%
rename from firmware-cpp/platformio.ini
rename to firmware-arduino/platformio.ini
index 9f7ff1a..64e61a9 100644
--- a/firmware-cpp/platformio.ini
+++ b/firmware-arduino/platformio.ini
@@ -17,11 +17,10 @@ monitor_speed = 115200
lib_deps =
bblanchon/ArduinoJson@^7.1.0
links2004/WebSockets@^2.4.1
- https://github.com/esp-arduino-libs/ESP32_Button.git
+ ESP32Async/ESPAsyncWebServer@^3.7.6
+ https://github.com/esp-arduino-libs/ESP32_Button.git#v0.0.1
https://github.com/pschatzmann/arduino-audio-tools.git#v1.0.1
- https://github.com/pschatzmann/arduino-libopus.git
- ESP32Async/AsyncTCP
- ESP32Async/ESPAsyncWebServer
+ https://github.com/pschatzmann/arduino-libopus.git#a1.1.0
; board_build.arduino.memory_type = qio_opi
; board_build.flash_mode = qio
@@ -40,4 +39,4 @@ build_flags =
-std=gnu++17
-D CORE_DEBUG_LEVEL=5
-D DEBUG_ESP_PORT=Serial
- -D TOUCH_SENSOR_ENABLE=1
\ No newline at end of file
+ -D TOUCH_SENSOR_ENABLE=1 ; Enable touch sensor driver
\ No newline at end of file
diff --git a/firmware-cpp/src/Audio.cpp b/firmware-arduino/src/Audio.cpp
similarity index 89%
rename from firmware-cpp/src/Audio.cpp
rename to firmware-arduino/src/Audio.cpp
index e325c42..d2fd452 100644
--- a/firmware-cpp/src/Audio.cpp
+++ b/firmware-arduino/src/Audio.cpp
@@ -183,43 +183,15 @@ I2SStream i2sInput;
StreamCopy micToWsCopier(wsStream, i2sInput);
const int MIC_COPY_SIZE = 64;
-void micTask1(void *parameter) {
- auto i2sConfig = i2sInput.defaultConfig(RX_MODE);
- i2sConfig.bits_per_sample = BITS_PER_SAMPLE;
- i2sConfig.sample_rate = SAMPLE_RATE;
- i2sConfig.channels = CHANNELS;
- i2sConfig.i2s_format = I2S_LEFT_JUSTIFIED_FORMAT;
- i2sConfig.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
-
- i2sConfig.pin_bck = I2S_SCK;
- i2sConfig.pin_ws = I2S_WS;
- i2sConfig.pin_data = I2S_SD;
- i2sConfig.port_no = I2S_PORT_IN;
- i2sInput.begin(i2sConfig);
-
- while (1) {
- if (scheduleListeningRestart && millis() >= scheduledTime) {
- transitionToListening();
- }
-
- if (deviceState == LISTENING && webSocket.isConnected()) {
- micToWsCopier.copyBytes(MIC_COPY_SIZE);
- }
-
- vTaskDelay(1);
- }
-}
-
void micTask(void *parameter) {
- // start I2S input stream.
+ // Configure and start I2S input stream.
auto i2sConfig = i2sInput.defaultConfig(RX_MODE);
i2sConfig.bits_per_sample = BITS_PER_SAMPLE;
i2sConfig.sample_rate = SAMPLE_RATE;
i2sConfig.channels = CHANNELS;
i2sConfig.i2s_format = I2S_LEFT_JUSTIFIED_FORMAT;
i2sConfig.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
-
- // I2S input pins a
+ // Configure your I2S input pins appropriately here:
i2sConfig.pin_bck = I2S_SCK;
i2sConfig.pin_ws = I2S_WS;
i2sConfig.pin_data = I2S_SD;
@@ -227,16 +199,16 @@ void micTask(void *parameter) {
i2sInput.begin(i2sConfig);
while (1) {
- // Checking to see if a transition to listening mode is scheduled.
+ // Check to see if a transition to listening mode is scheduled.
if (scheduleListeningRestart && millis() >= scheduledTime) {
transitionToListening();
}
if (deviceState == LISTENING && webSocket.isConnected()) {
- // smaller chunk size to avoid blocking too long
+ // Use smaller chunk size to avoid blocking too long
micToWsCopier.copyBytes(MIC_COPY_SIZE);
- // yielding frequently
+ // Yield more frequently
vTaskDelay(1);
} else {
vTaskDelay(10);
@@ -278,7 +250,7 @@ void webSocketEvent(WStype_t type, uint8_t *payload, size_t length)
currentVolume = doc["volume_control"].as