u-Bat aims to design a deployable system on edge to detect and classify the audio signatures in real-time with an ultra-low power, ultra-light acoustic classifier.
- Operating system:
- Ubuntu 18.04 LTS or any linux system[1].
- Software setup:
- Download ULP-ACE repository.
- Python 2.7
- run
sudo apt update - install pip
sudo apt install python-pip pip install python- python 2 dependencies
pip install numpy scipy matplotlib
- run
- Python 3
- install pip3
sudo apt install python-pip3 pip3 install python- python 3 dependencies
pip install pydub pylab-sdk Wave pytest-shutil playsound numpy scipy matplotlib tqdm - other dependencies
sudo apt install ffmpeg - to change the permissions of the clean.sh:
sudo chmod 777 clean.sh
- install pip3
- Code Composer Studio (CCS) v10.2.0
- download on demand installer for CCS IDE
- update system:
sudo apt update - install dependent libraries
sudo apt install libc6:i386 libusb-0.1-4 libgconf-2-4 build-essential - install CCS
sudo chmod 777 *.runsudo ./*.run- select SimpleLink SDK for CC13xx, spectrum digital debug probes and boards while installing.
- launch CCS and Install the following packages/SDK through resource explorer.
- go to
Software -> SimpleLink SDK Plugins -> SimpleLink Audio Plugin 3.30.0006 - manage SimpleLink CC13x2 26x2 SDK version to 3.30.00.03
- go to
- import empty project and build the project
- go to
Software -> SimpleLink CC13x2 26x2 SDK 3.30.00.03 -> Examples -> Development Tools -> CC13152R LaunchPad -> TI Drivers -> empty project -> TI-RTOS-> CCS Complier -> empty - Build the empty project to generate TI-RTOS kernal.
- go to
- MATLAB
- download and install
sudo ./install- select the tools to be installed:
- MATLAB
- Audio toolbox
- DSP system toolbox
- Signal Processing toolbox
- download and install
- Hardware setup:
- TI's CC1352R launchpad
- Adafruit PDM MEMS Microphone.
- Microphone connections:
PDM microphone CC1352R launchpad 3.3V 3.3V GND GND SEL GND DAT DIO26 CLK DIO27 - serial port connection: Identify the port name of the serial connection using
dmesgcommand. Note the port name(ex/dev/ttyACM0).
In this framework, get the audio dataset for 1 class or 4 classes.
- Import the data_dump project into CCS[2]
- Build and flash the project in CSS.
- Navigate to
data_acquisitionfolder and runpython audio_frame_serial_print.py /dev/ttyACM0 68 NONE -b 460800replace/dev/ttyACMOwith the port name noted earlier. - Play the recordings for the microphone dataset.
- Press button 1 (BIN-1) on the board to start acquiring the data and button 2 (BIN-2) can be used to stop recording.
- The microphone recordings are dumped in the folder
samples/ - Follow steps 4-6 for all the recordings of every class + background noise.
- Follow 'Steps to execute' in the documentation
- Import it to any of the example demos given in the CCS_projects/ either single-class or multi-class.
- Paste the header files created by the framework -
header_filesinto the CCS project. - If it's multi-class (4-classes), connect four LEDs with 500-ohm resistor in series and refer to the below table for launchpad connections:
LEDs CC1352R launchpad LED1 (Dingo) Board_DIO21 LED2 (Kangaroo) Board_DIO22 LED3 (Fox) Board_DIO24 LED4 (Koala) Board_DIO29 - Build and flash the binary to the board using CCS.
- Use button 1 (BIN-1) and button 2 (BIN-2) to start and stop detecting respectively
- Add the UART code into the deployment folder for integration of LoRa @Nadir
- Analyse the neuron outputs and filter outputs for robustness of the algorithm. @Vishnu and Hemanth
- Convert MATLAB scripts to python @Abhishek -- By next week.
- A simple script that can install all the softwares and their dependencies. Bash script for it @Hemanth
- Try different dataset and their applications. @Vishnu and Hemanth
- Videos for the website. @Vishnu and Hemanth
- Change the python 3 script to python 2, take guidance from Sathya or Abhishek.
Footnotes:
- Windows support is not available yet, stay stunned to GitHub repository for updates
- Refer to the CCS documentation in case of any issue with importing projects.