Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit 1b0e665

Browse files
authored
Merge pull request #3 from AIWintermuteAI/mic
alpha version of Wio terminal mic support for EI
2 parents c7928d8 + e62c255 commit 1b0e665

19 files changed

+372
-27
lines changed

.gitmodules

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[submodule "user/libraries/Seeed_Arduino_FreeRTOS"]
2+
path = user/libraries/Seeed_Arduino_FreeRTOS
3+
url = https://github.com/Seeed-Studio/Seeed_Arduino_FreeRTOS
4+
[submodule "user/libraries/Seeed_Arduino_ooFreeRTOS"]
5+
path = user/libraries/Seeed_Arduino_ooFreeRTOS
6+
url = https://github.com/Seeed-Studio/Seeed_Arduino_ooFreeRTOS
7+
[submodule "user/libraries/Seeed_Arduino_LIS3DHTR"]
8+
path = user/libraries/Seeed_Arduino_LIS3DHTR
9+
url = https://github.com/Seeed-Studio/Seeed_Arduino_LIS3DHTR
10+
[submodule "user/libraries/Seeed_Arduino_mbedtls"]
11+
path = user/libraries/Seeed_Arduino_mbedtls
12+
url = https://github.com/Seeed-Studio/Seeed_Arduino_mbedtls
13+
[submodule "user/libraries/Seeed_Arduino_MultiGas"]
14+
path = user/libraries/Seeed_Arduino_MultiGas
15+
url = https://github.com/Seeed-Studio/Seeed_Arduino_MultiGas
16+
[submodule "user/libraries/Seeed_Arduino_SFUD"]
17+
path = user/libraries/Seeed_Arduino_SFUD
18+
url = https://github.com/Seeed-Studio/Seeed_Arduino_SFUD
19+
[submodule "user/libraries/Grove_BME280"]
20+
path = user/libraries/Grove_BME280
21+
url = https://github.com/Seeed-Studio/Grove_BME280
22+
[submodule "user/libraries/Seeed_Arduino_DPS310"]
23+
path = user/libraries/Seeed_Arduino_DPS310
24+
url = https://github.com/Seeed-Studio/Seeed_Arduino_DPS310
25+
[submodule "user/libraries/Seeed_SCD30"]
26+
path = user/libraries/Seeed_SCD30
27+
url = https://github.com/Seeed-Studio/Seeed_SCD30
28+
[submodule "user/libraries/Grove_6Axis_Accelerometer_And_Gyroscope_BMI088"]
29+
path = user/libraries/Grove_6Axis_Accelerometer_And_Gyroscope_BMI088
30+
url = https://github.com/Seeed-Studio/Grove_6Axis_Accelerometer_And_Gyroscope_BMI088
31+
[submodule "user/libraries/Seeed_Arduino_UltrasonicRanger"]
32+
path = user/libraries/Seeed_Arduino_UltrasonicRanger
33+
url = https://github.com/Seeed-Studio/Seeed_Arduino_UltrasonicRanger
34+
[submodule "user/libraries/Seeed_Arduino_TFlidar"]
35+
path = user/libraries/Seeed_Arduino_TFlidar
36+
url = https://github.com/Seeed-Studio/Seeed_Arduino_TFlidar

README.md

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,13 @@ The arduino-cli tool is used to build and upload the Edge Impulse firmware to th
1010
* [Arduino CLI](https://arduino.github.io/arduino-cli/installation/).
1111

1212

13-
## Building the application
14-
The Edge Impulse firmware depends on libraries and the samd core for Arduino. Running the following script will install all the dependencies for you:
13+
## Building and flashing the firmware
1514

1615
```shell
1716

18-
cd ~/Arduino/libraries/
19-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_FreeRTOS
20-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_ooFreeRTOS
21-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_LIS3DHTR
22-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_mbedtls -b edge-impulse
23-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_MultiGas
24-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_SFUD
25-
git clone https://github.com/Seeed-Studio/Grove_BME280
26-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_DPS310
27-
git clone https://github.com/Seeed-Studio/Seeed_SCD30
28-
git clone https://github.com/Seeed-Studio/Grove_6Axis_Accelerometer_And_Gyroscope_BMI088
29-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_UltrasonicRanger
30-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_TFlidar
31-
git clone https://github.com/Seeed-Studio/Seeed_Arduino_edgeimpulse
32-
cd Seeed_Arduino_edgeimpulse
17+
git submodule update --init --recursive -j 8
18+
./arduino-cli config init
19+
./arduino-cli config set directories.user ./user #that will set your user directory for Arduino CLI to user folder in current directory - change back after you finish building
3320
./arduino-build.sh --build
21+
arduino-cli upload --fqbn=Seeeduino:samd:seeed_wio_terminal -p /dev/ttyACM0 -i build/*.bin
3422
```

arduino-build.sh

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,18 @@ INCLUDE+=" -I ./src/QCBOR/inc"
1515
INCLUDE+=" -I ./src/QCBOR/src"
1616
INCLUDE+=" -I ./src/cm_backtrace"
1717
INCLUDE+=" -I ./src/mbedtls_hmac_sha256_sw/"
18-
1918
INCLUDE+=" -I ./src/cm_backtrace"
2019

21-
2220
FLAGS+=" -O3"
2321
FLAGS+=" -g3"
2422
FLAGS+=" -DEI_SENSOR_AQ_STREAM=int"
2523
FLAGS+=" -DEIDSP_QUANTIZE_FILTERBANK=0"
2624
FLAGS+=" -D__STATIC_FORCEINLINE=__STATIC_INLINE"
2725

28-
2926
if [ "$COMMAND" = "--build" ];
3027
then
3128
echo "Building $PROJECT"
32-
arduino-cli compile --fqbn $BOARD --build-properties build.project_flags="$INCLUDE $FLAGS" $PROJECT &
29+
arduino-cli compile --fqbn $BOARD --output-dir ./build --build-properties build.project_flags="$INCLUDE $FLAGS" $PROJECT &
3330
pid=$! # Process Id of the previous running command
3431
while kill -0 $pid 2>/dev/null
3532
do
@@ -45,12 +42,12 @@ then
4542
fi
4643
elif [ "$COMMAND" = "--flash" ];
4744
then
48-
arduino-cli upload -p $(arduino-cli board list | grep Arduino | cut -d ' ' -f1) --fqbn $BOARD -i *.bin
45+
arduino-cli upload --fqbn=$BOARD -p $(arduino-cli board list | grep Arduino | cut -d ' ' -f1) -i ./build/*.bin
4946
elif [ "$COMMAND" = "--all" ];
5047
then
5148
arduino-cli compile --fqbn $BOARD $PROJECT
5249
status=$?
53-
[ $status -eq 0 ] && arduino-cli upload -p $(arduino-cli board list | grep Arduino | cut -d ' ' -f1) --fqbn $BOARD -i *.bin
50+
[ $status -eq 0 ] && arduino-cli upload -p $(arduino-cli board list | grep Arduino | cut -d ' ' -f1) --fqbn $BOARD -i ./build/*.bin
5451
else
5552
echo "Nothing to do for target"
5653
fi

src/ingestion-sdk-platform/wio-terminal/ei_device_wio_terminal.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ typedef enum
4848
TFMINI,
4949
BMI088,
5050
ULTRASONIC,
51-
SCD30
51+
SCD30,
52+
MICROPHONE
5253

5354
}used_sensors_t;
5455

@@ -215,6 +216,11 @@ bool EiDeviceWioTerminal::get_sensor_list(const ei_device_sensor_t **sensor_list
215216
sensors[ULTRASONIC].frequencies[0] = 62.5f;
216217
sensors[ULTRASONIC].frequencies[1] = 100.0f;
217218

219+
sensors[MICROPHONE].name = "Built-in microphone";
220+
sensors[MICROPHONE].start_sampling_cb = &ei_microphone_setup_data_sampling;
221+
sensors[MICROPHONE].max_sample_length_s = 5;
222+
sensors[MICROPHONE].frequencies[0] = 8000.0f;
223+
218224
sensors[SCD30].name = "External CO2+Temp sensor(Grove-SCD30)";
219225
sensors[SCD30].start_sampling_cb = &ei_scd30_setup_data_sampling;
220226
sensors[SCD30].max_sample_length_s = available_bytes / (100 * SIZEOF_N_SCD30_SAMPLED);
@@ -379,4 +385,4 @@ static bool get_wifi_connection_status_c(void)
379385
static bool get_wifi_present_status_c(void)
380386
{
381387
return false;
382-
}
388+
}

src/ingestion-sdk-platform/wio-terminal/ei_device_wio_terminal.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,12 @@
3232
#include "ei_tfmini.h"
3333
#include "ei_bmi088.h"
3434
#include "ei_ultrasonic.h"
35+
#include "ei_microphone.h"
3536
#include "ei_scd30.h"
3637
#include "sfud_fs_commands.h"
3738

3839
/** Number of sensors used */
39-
#define EI_DEVICE_N_SENSORS 8
40+
#define EI_DEVICE_N_SENSORS 9
4041

4142
/** C Callback types */
4243
typedef int (*c_callback)(uint8_t out_buffer[32], size_t *out_size);
@@ -72,4 +73,4 @@ class EiDeviceWioTerminal : public EiDeviceInfo
7273
/* Reference to object for external usage ---------------------------------- */
7374
extern EiDeviceWioTerminal EiDevice;
7475

75-
#endif
76+
#endif

0 commit comments

Comments
 (0)