This repository contains basic firmware for performing distributed, time synchronized sensing of analog channels on the PowerDué. Captured events are sent to a webserver over TCP. Additionally, Matlab scripts to post-process the captured data are also available.
- PowerDué Board
- Arduino IDE
- PowerDué Arduino Board Definitions v1.0.5+
- PowerDué Acoustic Scope
- An analog transducer (e.g. microphone)
The firmware for the acoustic sensor can easily configured in ADCConfig.h. The following parameters must be set properly:
- Device and System Parameters:
DEVICE_ID- an 8-byte character array uniquely identifying a device.WIFI_SSIDandWIFI_PASS- credentials to access a WiFi network.SERVER_IP- the IP address to send captured events to.
- Clock Synchronization Parameters:
MASTER_CLOCK- specify whether a certain device holds the reference clock which slaves synchronize with. (1for master,0for slaves).MASTER_CLOCK_IP- IP address of Master Clock device.SYNC_PORT- UDP port to run time synchronization algorithms on.SYNC_FREQUENCY- the period between synchronization attempts (in milliseconds)NTP_TASK_PRIORITY- FreeRTOS task priority for NTP tasks to run at
- ADC Parameters:
ADC_CHANNEL_MIC- the ADC channel number to sampleADC_SAMPLE_RATE- the sampling frequency of the ADCNUM_BUFFERS- the number of DMA buffers to cycle throughBUFFER_SIZE- the number of samples per bufferBUFFERS_TO_SEND- the number of buffers to send for each event
- Triggering Parameters:
WINDOW_COUNT- the number of buffer statistics to keep around for statistically analysisMIN_WINDOW_COUNT- the minimum number of windows to collect before triggeringTRIGGER_DEFAULT_STD_DISTANCE- the minimum std distance from the mean to detect outliers in the signal
Some Matlab scripts to post-process captured data in the scripts/matlab sub-directory. These scripts will be updated over time.