A Minimalistic DAB+ Digital Radio (not Only) for Visually Impaired. an Arduino Controlled Digital Radio.
1557 Views, 12 Favorites, 0 Comments
A Minimalistic DAB+ Digital Radio (not Only) for Visually Impaired. an Arduino Controlled Digital Radio.
An easy-to-use DAB+ radio for the visually impaired. While the radio can be operated with a few knobs and buttons, it is configured initially with an intuitive web interface. Key components of the device are an Arduino D1 R32 microcontroller and a DABshield board for radio reception. The radio is very easy to replicate. It uses a 3D printed housing, and mainly off the shelf electronics components. All documentation including Fusion 360 design files and the software is public.
Supplies
There is a complete parts list (BOM) with references included in the GitHub repository. Key components are:
- Arduino D1 R32 ESP32
- DABshield
The Idea
The radio was developed for an elderly visually impaired lady. The idea was to make the device as easy to use as possible. The radio is operated with six station buttons, an on/off switch, and a volume control. The elements are easy to reach with large buttons. The preferred radio stations need to be selected from the large number of DAB+ stations and assigned to the station buttons, when the radio is set up initially. A display has been omitted.
Description of the Device
Digital Audio Broadcasting (DAB) is a digital radio standard being used predominatly in Europe, but also in Australia, and in parts of Africa and Asia (Wikipedia).
The described radio is based on the DAB+ module “DABshield”, which is controlled by an Arduino microcontroller board “D1 R32”. It has the UNO form factor and can interface with UNO shields. The ESP32 microcontroller monitors 6 station buttons and the volume control. It also has a WiFi module for remote control of the radio.
The radio is housed in a 3D-printed housing. All mechanical parts were designed with Fusion 360. The electronics are mounted on a carrier PCB (KiCAD). The microcontroller module and the “DABshield” are plugged on top of each other. The switches for the control of the device are also soldered onto the carrier board. This makes the radio easy and uncomplicated to replicate.
3D Printing the Housing Parts
All housing parts are 3D printed. You will find the Fusion 360 design data and STL files in the GitHub repository. Furthermore, there are 3mf files for BambuStudio. If you work with a different slicer, use the STL files for reproduction.
M2 and M3 nuts are inserted into some parts (top cover and side covers) for the mechanical connection of the parts. To insert the nuts, the 3D print must be paused at the correct point in time. The 3mf files are arranged accordingly.
Acquiring the Electronics Parts
The core of the radio is the DABshield, which is described in detail by its developers on the DABshield website. The module has the Arduino UNO shield form factor, but can also interface with the more modern D1 R32 microcontroller board. There is a complete software library for DABshield, that works very well also with the ESP32 microcontroller. You can order DABshield from their website.
You may use the original WeMos Esp32 D1 R32 microcontroller, or any of its clones. I am using ESP32 NodeMCU D1 R32 , but there are similar models as well.
The printed circuit board was designed with KiCAD. The Gerber files are included in the GitHub repository. I have used JLCPCB for manufacturing of the boards. However, there are many alternative PCB manufacturers that deliver excellent quality for little money.
The rest of the electronics components is off-the-shelf. If you use other switches, you might need to adapt the PCB and/or the 3D printed parts.
Fitting the Carrier Boards
Start assembling the device by fitting the carrier board. The switch, buttons and LED are mounted on the back of the board. The pin headers for connecting the DABshield and the microcontroller are positioned on the component side. The details can be found in the KiCAD design files. The photos show the front and back of the board.
Prepare the Volume Encoder and the Speakers
The encoder for the volume setting is mounted on a carrier block. Note the correct position of the 5 pins of the module in the 6-pin socket.
The two speakers are connected with a 3.5 mm jack plug. The common pole of the plug is the negative pole.
Assembling the Device
The successive steps for assembling the appliance are shown in above photos. The front cover can initially be removed to allow access to the micro-USB socket of the microcontroller module. In this way, the software can be loaded onto the module.
Uploading the Software
Although the Arduino IDE could also do the job, I prefer using Visual Studio Code with the platformIO extension. If you do not know this environment, please note, that there are numerous tutorials on Visual Studio Code and platformIO on youTube.
In order to install the software on the DAB+ radio’s microcontroller, download a copy of the github repository and store it on your computer, locally. Open the sub-folder “software” in Visual Studio Code (first photo). As all configuration data including the necessary libraries is included in the platformIO.ini file, no further configuration of the software is needed. Connect the Arduino R32 of the radio to your computer using a micro-USB cable. Start the compilation and the data transfer with the check button of the platformIO extension. The program will notify, when the process is completed.
However, the software uses a flash disk (“LittleFS”), which includes all web page data (HTML, JS, and CSS files). This data is included in the “data” subfolder of “software”. In order to upload the filesystem to the controller, click on the platformIO icon (see picture, click #1) (2nd and 3rd photo). Then, click on “Build Filesystem Image” (click #2) to generate the image for the flash disk. Finally, upload the image to the microcontroller with the “Upload Filesystem Image” button (click #3). If the computer does not connect to the microcontroller, it might help to re-sart VS Code.
Operating the Radio
The user interface has been reduced to a minimum. In addition to the on/off switch and a volume control, it only consists of 6 station buttons. As the radio is intended for the visually impaired, the haptics of the controls are important.
The radio is powered with a wall plug 12V power supply.
All settings of the radio, i.e. the programming of the station buttons, the selected station and the volume, are stored in the flash memory of the microcontroller. They are immediately available when the device is switched on.
To program the station buttons in the initial setup, the device is connected to a cell phone or computer via a WiFi connection. If no connection data (SSID and password) of a WiFi network has been stored, the device switches to “Access Point Mode” when it is switched on. In this operating mode, a WiFi network with the SSID “mini_DAB” is created. You can connect to this network without using a password. The user interface is called up with a web browser by entering the address “192.168.4.1” in the address field of the browser.
The setup screen displays a scrollable list of available DAB+ radio stations. If you select an entry, the radio tunes to the station. Below the station list, the continuous text information of the selected station is displayed.
If the location of the radio has been changed, it is advisable to start a new station search. To do this, click on the corresponding button. The saved station list and the selected assignment of the station buttons will then be deleted. The new station list is automatically saved in the flash memory.
There are 6 assignable station buttons further down. These correspond to the 6 physical buttons on the radio. To assign a station to the buttons, first select it in the station list. Then click and hold on one of the station buttons. The station is then saved for this button. The volume can also be changed via the website.
As soon as you leave the setup page, the radio works independently with the preset parameters.
Have Fun With the Minimalistic DAB+ Radio
Please let me know in the comments, if you are facing any difficulties reproducing the radio.