AudioMoth: Difference between revisions
m (→Hardware) |
m (→What) |
||
Line 13: | Line 13: | ||
Ideas: | Ideas: | ||
* general clean-up | * general clean-up | ||
** fix white space, remove many of the empty lines (earlier CR/LF mistake?) | ** fix white space, remove many of the empty lines (earlier CR/LF mistake?), like these https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L154 | ||
** fix sprintf statements | ** fix sprintf statements, like these https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L167 | ||
** fix complicated and non-portable casts (sensitive to endianness) | ** fix complicated and non-portable casts (sensitive to endianness), like this https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L161 | ||
* update tool-chain to newer version | * update tool-chain to newer version | ||
** update gcc | ** update gcc |
Revision as of 13:56, 8 April 2020
Project AudioMoth | |
---|---|
Status | In progress |
Contact | bertrik |
Last Update | 2020-04-08 |
What
I have an AudioMoth board, and plan to improve its software:
- https://www.openacousticdevices.info/
- https://github.com/OpenAcousticDevices/AudioMoth-Project source code
Ideas:
- general clean-up
- fix white space, remove many of the empty lines (earlier CR/LF mistake?), like these https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L154
- fix sprintf statements, like these https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L167
- fix complicated and non-portable casts (sensitive to endianness), like this https://github.com/bertrik/AudioMoth-Firmware-Basic/blob/master/main.c#L161
- update tool-chain to newer version
- update gcc
- attempt to make it possible to compile with platformio
- document it and upstream it when it works
- extend functions
- add trigger functionality, maybe a specific bat trigger (high pass filter)?
- crest (instantaneous vs average) trigger?
- save files in sub-directories (per day) instead of a flat filesystem?
Hardware
See https://circuithub.com/projects/OpenAcoustics/AudioMoth
The microphone is a SPM0408LE5H. Can't find much about its ultrasonic performance. The official graph shows a hint of resonance above 10k so it does have ultrasonic sensitivity. For frequencies higher than the resonance peak the response of a typical microphone drops off steeply with 6 dB/octave. I have been able to record some pipistrelle bats with it (40 - 50 kHz).
The processor is EFM32WG380F256, link
Software
My fork on github: https://github.com/bertrik/AudioMoth-Project
Running the tools
Running the tools (configuration tool, flash tool, etc) requires the --no-sandbox option (at least on my system), for example
./AudioMothConfigurationAppSetup1.2.5.AppImage --no-sandbox
IDE for development
A brave attempt for all the steps to get the firmware compiled was written here: https://github.com/OpenAcousticDevices/AudioMoth-Project/wiki/AudioMoth
Compiling
platformio
It compiles and produces a firmware.bin file, but it's not recognized by the flashing tool as a valid file.
Use this platformio.ini file:
[platformio] src_dir = src,fatfs_src include_dir = inc,fatfs_inc [env:default] framework = zephyr platform = siliconlabsefm32 board = efm32wg_stk3800
Install platformio:
sudo apt install python3-pip sudo pip3 install platformio sudo pip3 install -U PyYAML
Compile it:
pio run