Build your own radio set and listen to web radios.
All you need to do is copy the image to a micro SD
card, edit the file called bootstrap-transistor.txt
to set your wifi, save it to bootstrap.txt
and insert it in the following hardware:
- Raspberry Pi Zero W 2
- Micro SD card (4GB should be enough if you don't want to store anything on it. If you want to store music or podcasts on your device then the bigger the better.)
- Pirate Audio 3W Stereo Amp
- A pair of 5W 4 Ohm 65mm Full Range Speaker
- On / Off switch
- Colourful Arcade Buttons (For the Big Next Button(TM) )
- Tactile Switch Buttons (For the power button)
- USB A to microB cable - Red – 10cm (To connect the On / Off switch power micro USB to the battery charger.)
- Adafruit PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A - 1000C
- LiPo Battery Pack – 2000mAh (more mAh means more autonomy, bigger is better but also more expensive)
- Right-angle Panel Mount Extension Cables (25cm) – USB micro-B (To connect to the battery charger and provide a power plug that goes outside the radio.)
- [optional] RasPiO Analog Zero (Optional. If you plug it, you will be able to use an old radio volume knob out of the box!)
(if you find better hardware parts please tell me!)
Get the components, assemble them together and build the case with a 3D printer:
(You will need to adapt the battery compartment to fit you own battery.)
Alternatively you could use your own case, or an old radio, or a cardboard box, or a wooden box, or a toaster...
- Download the latest image, that's the ZIP file named image. Unzip it.
- Flash the image on a SD card with etcher or RPI imager.
- On the SD carc copy the file named
bootstrap-transistor.txt
tobootstrap.txt
and fill in your wifi details. - Install the SD card in your radio and turn it on. (note that the first boot takes some time, be patient)
- Connect to the web interface: hold the play / pause button and you will see the IP address of the Transistor appear on its screen. Open that IP in your browser.
- From the interface, go to
browse
->webradios
->browse radio-browser.info
. There you can search for your radios and add them to favorites. - Enjoy.
The project is based on myMPDos which bring an Alpine Linux that works on the Raspberry Pi, along with MPD and a web interface to control MPD. This version simply adds the necessary configuration to work with the Transistor hardware.
This is the detailed usage of the pins (thanks to https://pinout.xyz). This is mostly of interest when you want to connect the buttons.
OOS: On Off Shim
AZ: Raspio Analog Zero
PA: Pirate Audio Amp + LCD
Powers and grounds don't appear in the picture, here is their pinout:
- Power 1: OOS / AZ
- Power 2: OOS / PA
- Ground 6: AZ
- Ground 9: AZ
- Ground 14: AZ
- Ground 20: AZ
- Ground 25: AZ / PA
- Ground 30: AZ
- Ground 34: AZ
- Ground 39: AZ / PA
The first channel of the Raspio Analog Zero (channel 0) is expecting to receive a potentiometer to set the sound volume: plug the ends of the potentiometer to 3.3v and ground, then plug the wiper (usually found in the middle of the three tabs) into the first channel of the Analog Zero.
These are the instructions to generate the image of the pins layout:
- cd to pinout directory
- edit
src/en/overlay/transistor.md
docker build -t pinout.xyz .
docker run -p 5000:5000 -e PINOUT_LANG=en pinout.xyz
- in browser open
http://localhost:5000/pinout/transistor
docker stop container_name
docker rm container_name
docker rmi pinout.xyz
Issues and pull requests are welcome.