Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
9b2ef49
New version string for testing
mciliberto-wearableml May 28, 2024
126f565
Enabled writing of Logs files for IMU and Pressure sensor
ThiasTux May 29, 2024
9161ac0
Added separation of Log files into subfolder and single file for each…
ThiasTux May 29, 2024
2dfef06
Disable serial logging of battery status to avoid cluttering of seria…
ThiasTux May 30, 2024
ceb38d9
Added serial logging to SDLogger
ThiasTux May 30, 2024
c3f45ca
Added configuration of serial debug for SDLogger
ThiasTux May 30, 2024
0b64bc8
Removed serial initialization from main header
ThiasTux May 30, 2024
47bde19
Added debugging over serial of SDLogger (header parameters)
ThiasTux May 30, 2024
6ec7e94
Fixed creation of new file when new recording are started. Added debu…
ThiasTux May 30, 2024
cc1c09d
Added individual loggers for IMU and BARO
ThiasTux May 31, 2024
9950b21
Started transitioning main library for individual loggers for IMU and…
ThiasTux May 31, 2024
503b65f
Edit name of Baro logger for clarity. Added config callback.
mciliberto-wearableml Jun 3, 2024
a5790ed
Edit name of IMU logger for clarity. Added config callback.
mciliberto-wearableml Jun 3, 2024
7d46d95
Adapted to new naming for sensor loggers. Moved to config callback fo…
mciliberto-wearableml Jun 3, 2024
b23a7d7
Removed vscode folder from src
mciliberto-wearableml Jun 3, 2024
ff2bbc8
Enabled debugging in Arduino example
mciliberto-wearableml Jun 3, 2024
0c71d85
Fixed BARO header
mciliberto-wearableml Jun 3, 2024
e3cf77e
Fixed setting of config when sampling rate is 0
mciliberto-wearableml Jun 3, 2024
7967aa8
Added RGB LED status for recordings.
mciliberto-wearableml Jun 3, 2024
345c2a7
Fixed header of logs for actual name of sensors channels
ThiasTux Jun 4, 2024
f469e36
Readded sensor_id as column in logs
ThiasTux Jun 4, 2024
b5aec7c
Revert "Readded sensor_id as column in logs"
ThiasTux Jun 4, 2024
cb9e2c3
Removed ID from samples written to logs
ThiasTux Jun 4, 2024
ed48829
Added debugging to Recorder
ThiasTux Jun 4, 2024
4a52fb4
Merge branch 'main' of github.com:ThiasTux/open-earable into button_r…
ThiasTux Jun 4, 2024
9456f09
Updated Firmware version for possible future merge with upstream repo
ThiasTux Jun 4, 2024
6bc9bf7
Added first draft of script to setup Arduino environment
ThiasTux Jun 4, 2024
54bf42c
Changed firmware version to 1.3.1
ThiasTux Jun 5, 2024
a9895a3
Modified TaskManager behaviour to allow writing of all data when samp…
ThiasTux Jun 12, 2024
a490fa7
Added delays to example App to let console connect
ThiasTux Jun 12, 2024
098fa25
Increased firmware version due to rework for high IMU sampling rate
ThiasTux Jun 12, 2024
74a1ed4
Edit library properties in preparation of new release
ThiasTux Jun 12, 2024
f8fb41a
Increased version in readme
ThiasTux Jun 12, 2024
b2c995d
Added installation of board and libraries
ThiasTux Jun 12, 2024
41e5497
Added automatic detection of Arduino15 path for Linux and macOS
ThiasTux Jun 12, 2024
43f071b
Edit Arduino15 path to automatically include the board version
ThiasTux Jun 12, 2024
97aeb4d
Edited gitignore to add vscode Arduino development files
ThiasTux Jun 13, 2024
d35e16d
Added vscode file for Arduino development
ThiasTux Jun 13, 2024
82a2eeb
Completed install script to create a new board for Openearable. Teste…
ThiasTux Jun 13, 2024
5d6596e
Updated README for automatic configuration procedure
ThiasTux Jun 13, 2024
08b2c56
Updated README for automatic configuration procedure
ThiasTux Jun 13, 2024
633e547
Added note about v1.4.0 firmware and fixed ToC
ThiasTux Jun 13, 2024
2cf91da
Fixed folder for editing SDFat library
ThiasTux Jun 13, 2024
919d7f4
Added info about v1.4.0
ThiasTux Jun 13, 2024
c7990aa
Fixed readme
ThiasTux Jun 13, 2024
f560051
Set fixed delay for BLE streaming of data (10 Hz)
ThiasTux Jun 13, 2024
f4c527a
Merge branch 'v1.4.0'
ThiasTux Jun 13, 2024
fbee027
Added renaming of earable according to left/right. Increased library …
ThiasTux Jun 19, 2024
704dca0
Increased library version
ThiasTux Jun 19, 2024
e3415db
Changed gain to 40 as default value
ThiasTux Jun 21, 2024
887766f
Set dev branch example app for debugging
ThiasTux Jul 18, 2024
54889c7
Added dual channel recording for dual microphone eartips
ThiasTux Aug 6, 2024
018a9a3
Increase hardware version for dual mic
ThiasTux Aug 8, 2024
17ccc8d
Added configurable gains for each mic
ThiasTux Aug 8, 2024
9af5004
Reduced overhead when baro and imu are not being sampled
ThiasTux Aug 14, 2024
e3a4c93
Change default loop timing for edgeml
ThiasTux Aug 14, 2024
056b0bb
Removed LED status for recording
ThiasTux Aug 14, 2024
d3dac8a
Revert "Removed LED status for recording"
ThiasTux Aug 14, 2024
3b8e9c8
Swapped gains for inner/outer mic
ThiasTux Aug 19, 2024
972e567
Fixed wrong header for gyro data
ThiasTux Sep 3, 2024
f0b13eb
Added occlusion test
ThiasTux Sep 24, 2024
1f4e379
Added BLEDevice header
ThiasTux Sep 24, 2024
8cbd10e
improve dynamic memory efficiency
ThiasTux Sep 27, 2024
ee8e483
Reduced Recorder buffer size to improve dynamic memory allocation
ThiasTux Sep 30, 2024
534fcbd
Fixed starting of recorder. Reverted firmware version for compatibili…
ThiasTux Sep 30, 2024
95c09bc
Fixed incorrect sampling rate for some PDM values
ThiasTux Oct 24, 2024
b2febff
Merge branch 'main' of https://github.com/OpenEarable/open-earable
ThiasTux Oct 27, 2024
7b4a915
Fixed conflict on main library
ThiasTux Oct 27, 2024
6b2ddd0
Fixed left/right gain to reflect inner/outer gains in dashboard
ThiasTux Oct 28, 2024
e03bc55
Reverted to default name for sensor
ThiasTux Nov 1, 2024
cec32a2
Removed .vscode from tracked files due to PlatformIO deployment
ThiasTux Nov 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,6 @@
src/main.cpp

# VS Code
**/.vscode
**/.vscode
**/.vscode/c_cpp_properties.json
**/.vscode/settings.json
97 changes: 82 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@ This firmware is compatible with hardware version:

## Table of Contents
- [Introduction](#Introduction)
- [Note about v1.4.0](#note-about-v140)
- [Setup](#Setup)
- [Arduino IDE](#Arduino-IDE)
- [Arduino Libraries](#Arduino-Libraries)
- [SD Card Setup](#SD-Card-Setup)
- [SPI Setup](#SPI-Setup)
- [sdfat Library Setup](#sdfat-Library-Setup)
- [BMP280 Library Setup](#BMP280-Library-Setup)
- [Automatic setup (Preferred)](#automatic-setup-preferred-method)
- [Manual setup (Not recommended)](#manual-setup-not-recommended)
- [Arduino IDE](#Arduino-IDE)
- [Arduino Libraries](#Arduino-Libraries)
- [SD Card Setup](#SD-Card-Setup)
- [SPI Setup](#SPI-Setup)
- [sdfat Library Setup](#sdfat-Library-Setup)
- [BMP280 Library Setup](#BMP280-Library-Setup)
- [Usage](#Usage)
- [Install OpenEarable](#Install-OpenEarable)
- [Default Firmware](#Default-Firmware)
Expand All @@ -44,16 +47,79 @@ This firmware is compatible with hardware version:
OpenEarable is designed to enable ear-based sensing applications by offering a flexible and open-source hardware platform. It incorporates a range of sensors, including a 9-axis inertial measurement unit, an ear canal pressure and temperature sensor, an inward-facing ultrasound microphone, a speaker, a push button, and a controllable RGB LED. With these features, OpenEarable provides researchers and developers with the ability to explore various application scenarios.
For more information visit the [OpenEarable](https://open-earable.teco.edu/) website.

OpenEarable is controlled and streams sensor data via BLE (Bluetooth Low Energy). Audio is played from and recorded to the internal SD card (required card SanDisk Extreme Class 3, must be formatted as exFAT). OpenEarable is compatible with the provided [dashboard](https://github.com/OpenEarable/dashboard) and [edge-ml](https://edge-ml.org/).
OpenEarable is controlled and streams sensor data via BLE (Bluetooth Low Energy). Audio is played from and recorded to the internal SD card (required card SanDisk Extreme Class 3, must be formatted as exFAT). OpenEarable is compatible with the provided [dashboard](https://github.com/OpenEarable/dashboard) and [edge-ml](https://edge-ml.org/).

### Note about firmwares >v1.4.0

#### SD card logging

Version 1.4.0 of the firmware is designed for offline data collection. By default, all data (IMU, Baro/Temp and Audio) are logged on the SD card. **Choose a very fast SDCard!!** Here's some examples we tested:
- Samsung EVO Plus
- SanDisk Extreme Pro

Note that even for the same class, not all SDcard from different manufacturers have the same performance!!

#### Bluetooth streaming

Because the main focus is to log the data locally on the SD card, this version of the firmware streams limited amount of data over BLE. By default, the streaming over BLE happens at 10 Hz, no matter what sampling rate you set for the recordings.

#### RGB led

In order to let researcher know whether the device is recording or not without being always connected to the dashboard, the RGB led is used to show the recording status. If a certain colour is on, then the corresponding sensor data is being recorded:

- Red: Microphone
- Green: Baro/Temp
- Blue: IMU

Obviously, any combination of sensors enabled/disable will result in a mixed colour for the led (within the hardware limits!!) (i.e. if microphone and baro/tempo are being recorded then the led would be yellow).

#### Device naming

The new firmware introduces the possibility to change the names of the devices programmatically. This simplifies the usage in data collections where a left and a right earable are used. By default, the name is "OpenEarable" as per previous firmwares.
The left or right names can be given when programming and **MUST BE** `OELeft` or `OERight`.
The firmware will then

#### Dashboard

In order to use the new version of the firmware, especially if the custom names are used for left/right earables, we suggest to use the modified dashboard available [here](https://github.com/ThiasTux/openearable-dashboard).


## Setup
**⚠️ $${\rm\color{red}Please~Note:}$$ We recommend deploying the firmware using the [open-earable-PlatformIO wrapper](https://github.com/OpenEarable/open-earable-PlatformIO).**

### Arduino IDE
### Automatic setup (Preferred method!!)

Clone this repo in your Arduino library folder, usually in under `Documents/Arduino/libraries`:

```bash
git clone https://github.com/ThiasTux/open-earable OpenEarable
```

If you are on Linux or macOS, you can setup you environment using the script in `script/install.sh`. In order to so, please install the `arduino-cli` following the guide [here](https://arduino.github.io/arduino-cli/0.35/installation/).

#### macOS
For macos using brew:

```bash
brew install arduino-cli
```

#### Env setup

To setup the environment, navigate to `scripts` and then run:

```bash
./install.sh
```

The script uses `arduino-cli` to download and install all the dependencies (i.e. board, libraries, etc.) and to make the required changes to the libraries. The script also generate a new board so that the original Mbed OS Nano installation remains untouched in case you are developing also with other Nano boards (plus it doesn't get touched if the Nano board installation gets updated).

### Manual setup (Not recommended)

#### Arduino IDE
Download and install the Arduino IDE. OpenEarable is based on the "Arduino Nano 33 BLE Sense" board. Therefore, you first have to install the required dependencies ("Arduino Mbed OS Nano Boards" via boards manager) in your Arduino IDE following this [Setup Guide](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-board-manager#mbed-os-nano).

### Arduino Libraries
#### Arduino Libraries
The following Arduino Libraries have to be installed in your Arduino IDE by navigating to `Sketch -> Include Library -> Manage Libraries`:
- [EdgeML-Arduino (version 1.3.3)](https://github.com/edge-ml/EdgeML-Arduino), which includes the following dependencies that are also required and automatically installed:
- [ArduinoBLE](https://github.com/arduino-libraries/ArduinoBLE)
Expand All @@ -62,11 +128,11 @@ The following Arduino Libraries have to be installed in your Arduino IDE by navi
- [SdFat - Adafruit Fork](https://github.com/adafruit/SdFat)


### SD Card Setup
#### SD Card Setup
In order to be compatible with the OpenEarable library the SD card needs to be formatted with the exFAT format.
Make sure to have a sufficiently fast SD card. (Required SD Card: SandDisk class 10 and class A30)

### SPI, Wire, and Variant Setup
#### SPI, Wire, and Variant Setup

The default Arduino implementation of the SPI library does not meet the required speed. To address this, optimized SPI files are provided. Follow the steps below to integrate these files into Arduino.
All referenced files can be found in the "resources" folder in the "spi_files" subfolder.
Expand All @@ -93,7 +159,7 @@ To fully integrate the optimized SPI files, changes to the Arduino Nano 33 BLE b

10. Navigate back to the `Arduino15` folder. Navigate to `packages/arduino/hardware/mbed_nano/4.0.4/variants/ARDUINO_NANO33BLE`. Replace `pins_arduino.h` and `variant.cpp `with the files provided under `resources/variant` of this repository.

### sdFat Library Setup
#### sdFat Library Setup
One of the library dependencies is the SdFat library from Bill Greiman.
This library is used to send data to the SD card.
To achieve the desired write speeds of up to 1.5Mbps the library has to be modified slighlty.
Expand All @@ -102,16 +168,17 @@ To achieve the desired write speeds of up to 1.5Mbps the library has to be modif

3. Inside the `src` folder, replace the `SdFatConfig.h` with the provided `SdFatConfig.h` file found in the `resources/sdfat_config` folder of this repository.

### BMP280 Library Setup
#### BMP280 Library Setup
The BMP280 library has to be slightly modified.
1. Go to the `Arduino/libraries` folder (commonly found in your `Documents` folder) and locate the `Adafruit_BMP280_Library` folder.
2. Replace the files `Adafruit_BMP280.cpp` and `Adafruit_BMP280.h` with the files found in the `resources/Adafruit_BMP280_Library` folder of this repository.


### Reboot
#### Reboot
To make sure that all your changes are applied correctly, restart your computer.

## Usage

### Install OpenEarable
Now that all dependencies are configured, the last step is to install this repository as a library as follows:

Expand Down Expand Up @@ -146,7 +213,7 @@ void loop()
With this minimum sketch, all internal functionality is activated and OpenEarable becomes controllable via our [Dashboard](https://github.com/OpenEarable/dashboard), via [EdgeML](https://edge-ml.org/), and via the BLE API.

### Flashing
To flash the firmware, make sure you select `Arduino Nano 33 BLE` as target and the port that your OpenEarable is connected to. Then simply press the `Upload` arrow.
To flash the firmware, make sure you select `Openearable` as target (or `Arduino Nano 33 BLE` if you used the manual setup procedure) and the port that your OpenEarable is connected to. Then simply press the `Upload` arrow.

### Dashboard

Expand Down
13 changes: 9 additions & 4 deletions examples/App/App.ino
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,29 @@
* OpenEarable Dashboard: openearable.github.io/dashboard/
* edge-ml: app.edge-ml.org
*
* Firmware-version: 1.3.0
* Release-date: 6.10.2023
* Firmware-version: 1.4.1
* Release-date: 17.06.2024
*/

#include "Arduino.h"
#include "OpenEarable.h"

// Set DEBUG to true in order to enable debug print
#define DEBUG false
#define DEBUG true

// Change name to OELeft or OERight before flashing ("OpenEarable" if left as default value)
String d_name = "OpenEarable";

void setup()
{
#if DEBUG
Serial.begin(115200);
delay(5000);
open_earable.debug(Serial);
delay(5000);
#endif

open_earable.begin();
open_earable.begin(d_name);
}

void loop()
Expand Down
8 changes: 4 additions & 4 deletions library.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name=OpenEarable
version=1.3.0
author=TECO / KIT
maintainer=TECO <roeddiger@teco.edu>
version=1.4.1
author=Mathias / Mobisys
maintainer=Mathias <mathias.ciliberto@gmail.com>
sentence=Firmware to use OpenEarable with the provided dashboard and edge-ml.org.
paragraph=The firmware exposes a BLE API to control the IMU, pressure sensor, microphone, RGB LED and audio player. It also notifies about button state and battery changes.
category=Sensors
architectures=mbed_nano, nrf52
url=https://github.com/OpenEarable/open-earable/tree/v1.3.0
url=https://github.com/ThiasTux/open-earable
includes=OpenEarable.h
depends=EdgeML-Arduino, ArduinoBLE, Arduino_LPS22HB, STM32duino LSM6DSR, Adafruit BMP280 Library, DFRobot_BMX160
125 changes: 125 additions & 0 deletions scripts/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
#!/bin/bash
# Install board
echo "Installing mbed_nano board version"
arduino-cli core install arduino:mbed_nano

# Install dependecies
# Install EDGEML (1.3.3)
echo "Installing libraries..."
arduino-cli lib install EdgeML-Arduino@1.3.3
arduino-cli lib install 'Adafruit BMP280 Library'
arduino-cli lib install "DFRobot_BMX160"
arduino-cli lib install "SdFat - Adafruit Fork"

tmp_output=$(arduino-cli core search arduino:mbed_nano | grep arduino:mbed_nano)
MBED_NANO_VERSION=$(echo "$tmp_output" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')
$version_number

echo $MBED_NANO_VERSION

OS=$(uname)

# Path to your Arduino15 folder (replace with your actual path)
if [[ "$OS" == "Linux" ]]; then
echo "This is a Linux system."
ARDUINO_15_PATH="/home/$(whoami)/.arduino15"
elif [[ "$OS" == "Darwin" ]]; then
echo This is a macOS system.
ARDUINO_15_PATH="/Users/$(whoami)/Library/Arduino15"
fi

echo $ARDUINO_15_PATH

# Resources folder path (replace with your actual path)
RESOURCES_PATH="../resources"

# Check if Arduino15 folder exists
if [ ! -d "$ARDUINO_15_PATH" ]; then
echo "Error: Arduino15 folder not found at $ARDUINO_15_PATH"
exit 1
fi

# Check if Resources folder exists
if [ ! -d "$RESOURCES_PATH" ]; then
echo "Error: Resources folder not found at $RESOURCES_PATH"
exit 1
fi

# SPI, Wire, and Variant Setup
SPI_DIR="$RESOURCES_PATH/spi_files/SPI"
WIRE_DIR="$RESOURCES_PATH/wire_files/Wire"
VARIANT_DIR="$RESOURCES_PATH/variant"

# Create new board for OpenEarable
BOARD_DIR="$ARDUINO_15_PATH/packages/arduino/hardware/mbed_nano/$MBED_NANO_VERSION"
NEW_BOARD_DIR="$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION"

echo "Creating folder for new Openearable board..."
mkdir "$ARDUINO_15_PATH/packages/arduino/hardware/openearable"
cp -R $BOARD_DIR $NEW_BOARD_DIR
rm -rf "$NEW_BOARD_DIR/variants/NANO_RP20240_CONNECT"

echo "Replacing board names..."
if [[ "$OS" == "Linux" ]]; then
sed -i '/^nanorp2040connect/d' "$NEW_BOARD_DIR/boards.txt"
sed -i 's/nano33ble.name=Arduino Nano 33 BLE/nano33ble.name=Openearable/' "$NEW_BOARD_DIR/boards.txt"
elif [[ "$OS" == "Darwin" ]]; then
sed -i="" '/^nanorp2040connect/d' "$NEW_BOARD_DIR/boards.txt"
sed -i="" 's/nano33ble.name=Arduino Nano 33 BLE/nano33ble.name=Openearable/' "$NEW_BOARD_DIR/boards.txt"
fi

LIB_DIR="$NEW_BOARD_DIR/libraries/"

# Replace SPI library
echo "Replacing SPI library..."
rm -rf "$LIB_DIR/SPI"
cp -r "$SPI_DIR" "$LIB_DIR"

# Replace Wire library
echo "Replacing Wire library..."
rm -rf "$LIB_DIR/Wire"
cp -r "$WIRE_DIR" "$LIB_DIR"

# Copy RingBuffer files
echo "Copying RingBuffer files..."
cp "$RESOURCES_PATH/wire_files/RingBuffer.h" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/cores/arduino"
cp "$RESOURCES_PATH/wire_files/RingBuffer.cpp" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/cores/arduino"

# Replace nrfx_spim files
echo "Replacing nrfx_spim files..."
cp "$RESOURCES_PATH/spi_files/nrfx_spim.h" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/include/"
cp "$RESOURCES_PATH/spi_files/nrfx_spim.c" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/cores/arduino/mbed/targets/TARGET_NORDIC/TARGET_NRF5x/TARGET_SDK_15_0/modules/nrfx/drivers/src/"

# Replace variant files
echo "Replacing variant files..."
cp "$RESOURCES_PATH/variant/pins_arduino.h" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/variants/ARDUINO_NANO33BLE"
cp "$RESOURCES_PATH/variant/variant.cpp" "$ARDUINO_15_PATH/packages/arduino/hardware/openearable/$MBED_NANO_VERSION/variants/ARDUINO_NANO33BLE"

# sdFat Library Setup
SDFAT_LIB_DIR="$HOME/Documents/Arduino/libraries/SdFat_-_Adafruit_Fork/src" # Update path if needed

# Check if sDFat library exists
if [ ! -d "$SDFAT_LIB_DIR" ]; then
echo "Warning: SdFat library not found at $SDFAT_LIB_DIR"
echo "Please install the SdFat library from Bill Greiman."
exit 1
fi
# Replace SdFatConfig.h
echo "Replacing SdFatConfig.h..."
cp "$RESOURCES_PATH/sdfat_config/SdFatConfig.h" "$SDFAT_LIB_DIR/"

# sdFat Library Setup
BMP280_LIB_DIR="$HOME/Documents/Arduino/libraries/Adafruit_BMP280_Library" # Update path if needed

# Check if sDFat library exists
if [ ! -d "$BMP280_LIB_DIR" ]; then
echo "Warning: BMP280 library not found at $BMP280_LIB_DIR"
echo "Please install the BMP280 library."
exit 1
fi
# Replace SdFatConfig.h
echo "Replacing BMP280 Files..."
cp "$RESOURCES_PATH/Adafruit_BMP280_Library/Adafruit_BMP280.cpp" "$BMP280_LIB_DIR/"
cp "$RESOURCES_PATH/Adafruit_BMP280_Library/Adafruit_BMP280.h" "$BMP280_LIB_DIR/"

echo "Done. If you have issues, please reboot first."
17 changes: 0 additions & 17 deletions src/.vscode/settings.json

This file was deleted.

Loading