The thinking is this…
- The device will be in a small form factor to be worn on a lanyard.
- There will be connectors up the top for plugging in a wired headset. The same module can then work for a wide variety of headsets (e.g. earphones, if that's what you prefer… over-the-head headsets, earmuff-headsets or in-helmet headsets) and external amplified speakers/microphones.
- Down the bottom will be a SD card slot (for media), charging port, and and analogue I/O ports
- The device will embed a WiFi module, over which it can stream audio in both directions, hopefully in a manner compatible with PulseAudio or JACK.
- The device will embed a Bluetooth module for possible interconnection with a mobile phone.
- The device will be able to play back Ogg/Vorbis stand-alone from SD card, perhaps record to it as well.
- The device will embed a radio receiver module to listen to radio on various bands:
- 88-108MHz WFM
- 540-1600kHz AM
- Stretch goals:
- 300kHz-30MHz: AM, maybe SSB later
- 144-148MHz: NFM, maybe SSB
- 430-450MHz: NFM, maybe SSB
- 50-54MHz: NFM, maybe SSB
The ESP8266 or ESP32 would be a natural choice for the brains of the operation. Ideally, I'd like the ability to stream uncompressed audio if needed. 48kHz 16-bit stereo audio requires 1.536Mbps of data throughput, not including overheads like framing and headers.
The microphone channel would need half that again… going in the opposite direction. WiFi starts at 2Mbps half-duplex, so could conceivably stream stereo audio in one direction, and running at 11Mbps, should be able to just muster bi-directional audio. The ESP8266 should be able to handle streaming over UDP just fine.
This MCU though is not quite up to the task of doing real-time audio compression/decompression though, so that is better off-loaded to another chip. The VLSI VS1053 or VS1063 is an attractive option for this. It supports decoding of MP3, Ogg/Vorbis and FLAC, and encoding to Ogg/Vorbis, and embeds its own audio CODEC, so it's a good choice for doing the DSP leg-work needed.
Bluetooth… well, I'll have to research this, but the thinking is that I get a module that can provide stereo audio outputs and a mono input, and it becomes another analogue device, with some digital link back to the MCU to tell it when there's Bluetooth activity (to pause music, etc).
Battery, I'm already thinking a 18650 cell (just the one). They're plentiful, and sticking to one cell avoids the need of battery-balance circuitry. We can build a charger that supports USB and/or 7-12V DC charging.
Radio module, I have some clock chips made by Silicon Labs that are I²C controlled and have a wide frequency range, which would make a good local oscillator to get the target signal to 10.7MHz or 455kHz. It'd be a nice first attempt at a homebrew wideband receiver. I'll worry about the details of this after I get the rest working.
The UI will consist of some directional buttons and a small display (probably monochrome LCD with a backlight).