Open Hardware for Acoustic Sensor Networks
Experiments on wireless acoustic sensor networks require nodes equipped with microphones and a basic communication technique. After considering some existing hardware platforms we decided to work with Raspberry PIs in our project. The reasons for this decision are as follows:
- Raspberry Pis offer for a reasonable amount of money a good computational performance
- Raspberry Pis have a nice Linux support and a very active community
- Many students know the platform, so entering the project is easy for them
- Interfaces are well documented
- WiFi-support integrated
Next, we searched for microphones and soundcards to connect them to the nodes. Unfortunately, the number of multi-microphone soundcards is very small. So we decided to pick-up our previous work on multi-channel soundcards (it was based on a BeagleXM, see picture) and develop a compact soundcard for the Raspberry PIs. We came up with two solutions as described in the following sections.
Basic Design Considerations
The Designs presented here are part of an ongoing research project
- We do not reach HIFI-quality: Our data is recorded in real-environments so the environmental noise is usually much higher than the noise from the digitalization process.
- Some designs may be suboptimal in terms of part costs, so removing or changing parts may enable cheaper designs with the same performance.
- All printed curcuit boards can be assambled by hand, so we avoid to small components
- We use currently 2-layer boards to keep the costs small (we get the PCBs directly from China). A four layer board may enable better SNR values.
- NO Gurantee that it works. Connecting the board to a PI may damage the PI if something is wrong, e.g., our design has an error or you made a mistake during assambly,.... Your risk!
Raspberry PI Octo Soundcard interface
During our search for multi-channel soundcards we found the Octo Soundcard from Audioinjector. A pretty nice design with a standard ALSA interface. However, the form factor was suboptimal for our project, since the soundcard works with break-out cables to connect microphones and loudspeakers. A good descision for HIFI equippment, but a lot of cables for a "compact" wireless acoustic sensor network.
Hence, we decided to build a 2-layer design hosting 6 microphones for recording audiosignals and 1 playback channel. This design (blue PCB in the picture) can be mounted on top of the Octo soundcard, realizing a compact form factor. We limited the amount of channels to 6 as the space on top of the design is limited.
PCB Design Microphone Board for Octo Soundcard
The files describing the design can be found here
If you need a scenario dependend number of microphones and/or loudspeakers, this design may be an appropriate starting point. The maximum number of recording and playback channels is limited by the Octo soundcard to (8 playback and 8 recording). Changing the amount of channels is a copy-paste-delete task in the schematics, however, the routing may be challenging.
Quad node on Raspberry PI
We also tried to shrink the form factor and the costs by creating a complete soundcard with integrated microphones. Here, a four channel soundcard without playback functionalities was designed by students. Also we tried a new interface for exchanging data and integrated a special chip for compensating sampling rate offsets in hardware. This soundcard can change the sample rate at a very fine granularity.
However, the interface (I2C) has the drawback of a very high computational load on one core of the PI, so we are not so happy about the development. In the future we will change the interface to I2S and take the way of the Octo soundcard. We publish this design to show the hardware mechanism for adjusting the sampling rate at fine granularities.
Licence information
Permission is hereby granted, free of charge, to any person obtaining a copy of this hardware design information and associated documentation files (the "Design"), to deal in the Design without restriction, including without limitation the rights to use, copy, modify and merge the Design, subject to the following conditions:
- The Design is used for non-commercial research and education purposes.
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
- Publication, Distribution, Sublicensing, and/or Selling of copies or parts of the Software requires special agreements with the University of Paderborn and is in general not permitted.
- Modifications or contributions to the software must be published under this license. The University of Paderborn is granted the non-exclusive right to publish modifications or contributions in future versions of the Software free of charge.
THE DESIGN IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This license is subject to German law and the competent German court. Persons using the Design are encouraged to notify the Department of Communications Engineering at University of Paderborn about bugs. Please reference us in your publications if it was used for them.