Ultrasound has fascinated me for a long time (see my other pages about ultrasound recording and microphones), and I’ve been observing urban bats in NYC for several years. I’m fascinated by the urban wildlife that coexists with humans and particularly interested in making unheard voices accessible by playing them back at slower speed (AKA “time expansion”) so the fast details of their vocalizations and echoes are preserved.
Bat detectors translate ultrasound signals into audible sound, and they range in cost, complexity, and sound quality. The affordable models are usually heterodyne or frequency-division types, and only the expensive ones offer time expansion modes. Enter the Teensy microcontroller (like a super-fast Arduino) which has an audio library containing built-in modules for recording, analysis, and synthesis. The optional Audio Shield has an ADC that can be overclocked, so the building blocks are in place for inexpensive live ultrasound translation & recording, with a nice UI too! Thanks to the efforts of several Teensy forum members, I can now listen to my very own Teensy Bat Detector!
- Teensy forum thread for the Teensy Bat project
- Software repository from CorBer (with pre-compiled hex files so you don’t even need to use the Arduino IDE)
- Build guide and other construction info from Edwin
- Teensy Bat PCB & MEMS mic modules from Edwin (eBay)
- Helpful Teensy pinout diagrams
- My 3D-printed enclosure files (Thingiverse)
There is no onboard battery charger, so I added an Adafruit LiPo Backpack with slide switch between the Teensy USB power and the rest of the circuit, using these instructions. When plugged in to USB, it charges an attached Adafruit 2500mAh LiPo battery. Everything fits under the main PCB via standoffs included in the 3D-printed lid. The charger fits under the switch so the charge status LEDs are visible through the switch port in the case.
On the Adafruit charger board:
- Close jumper on back for 500mA charge current
- Put kapton tape on bottom of switch to insulate from components
- Cut jumper on switch pads and install switch with tiny wires so it fits on top of board
On the Teensy itself, cut jumper on bottom of board that connects Vin to Vusb
On the Teensy Bat PCB you should cut the RTC battery post flush with the board so it doesn’t interfere with the charger mount.
- Teensy Vusb to charger 5V
- Teensy Vin to charger BAT
- Teensy GND to charger GND
Edwin provides a detailed component list in his build guide (see links above), but here are some additional things to consider:
- I used 17mm tall tact switches and your encoders may be different heights than mine, so total height of the final “sandwich” may not match mine.
- The Teensy is suspended off of the main PCB via resistors instead of headers (part of a scheme to reduce digital noise in the analog front-end). This will affect the total height too. In my case I needed to slightly raise the headers for the TFT to make sure it would clear the top of the sandwich.
- I used an LT6234 opamp instead of the recommended TL972 (because I had one and it has theoretically lower noise)
- The Invensense ICS40730 and Knowles SPU0410LR5H-QB are the MEMS mic capsules that people have been trying. The Knowles capsule has a proven history in other bat detectors, but the Invensense has less self-noise so I chose that one.
Edwin’s PCB is designed to fit a common project box available on Amazon, but I used OpenSCAD to create a 3D-printable enclosure instead (see links above). The dimensions are easily customizable and it includes optional features on the lid to hold the Adafruit charger board and battery. It has openings for all ports, and there are matching button caps and knobs for the encoders. (I used fancy glow-in-the-dark PLA for them!) The enclosure has a 10mm hole for the mic port, and I included 2 different horns (90d and 45d) to increase sensitivity and directivity (see Edwin’s docs for horn recommendations).
Hopefully your 3D printer will do a better job than mine. Looks like I need to tighten my belts!
Usage and Improvements
- Overall, I’m amazed. I don’t have a long history with bats but I’ve used several commercial bat detectors and this one is similarly sensitive, has way more features, can record to SD card, and it’s hackable.
- People on the forum have mentioned a constant 23kHz noise, and I hear it too. Perhaps the PCB should have separate ground planes for the digital and analog sections? Maybe I should add shielding over the opamp? Resistor R2 should be chosen to match the MEMS mic, so there may be room for improvement there?