Project:Festival Radio

From CoMakingSpace Wiki

Revision as of 08:41, 28 February 2020 by Lukas (talk | contribs) (better photo)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

ProjectInfoBox

Festival Radio

Festival radio battery check.jpg
Status: basic functions implemented, now modding the case
Release Date: summer 2019
Initiator: Lukas
Team: Patrick, Martin
Materials Used: old radio, recycled laptop batteries,
Raspberry Pi Zero WH + JustBoom Amp HAT;
more in the "Shopping List" section
Approx. Cost: approx. 120 €


I am turning an old radio (a Studio Club 5007, but that doesn't really matter) into a digital music player for festivals and garden parties.

Originally I wanted to keep the old radio functions in, but soon scrapped that plan to gain more space for batteries and ease of assembly.

I was not very experienced with audio, electronics or Raspberry Pi, but was lucky to get help from Patrick and Martin with the tricky bits!

Major Steps

  • remove unneeded hardware
  • add batteries & charging electronics
  • get basic functionality (AP mode & Bluetooth)
  • convert the cassette tray into an SD card reader
  • find good spots for all components and secure them against shaking (carrying around)
  • (optional) display ID3 information about current song somewhere (old tuner scale?)
  • (very optional) add a "tuning" feature that biases the shuffle towards certain musical styles (e.g. relaxed - fast - heavy)

Starting Points

Shopping List

I got delayed with this project for a bit and wanted to get started quickly, so the sources were selected mainly for speed of delivery, not pricing:


  • optional: Tuner & Aux In
    • would need an ADC to be able to sample the audio signals and output them on the amplifier board
    • alternative: an extra AUX amplifier board and switch inputs (e.g. [1])

MAKE

Gallery

coming "soon" - ask if you're interested!

Pi Configuration

moOde audio experience:

  • set ALSA volume to 80 % as there is not quite enough power for 100 % (sound cuts out) - this setting prevents user errors
    • only efficient for local playback - bluetooth devices can still go too high(?)
    • resets to 100 % after every reboot...
  • bluetooth functionality was rather easy after finding the appropriate settings (bluetooth "on"/pairing agent "on")
  • SD cards inserted into the USB OTG card reader are automatically added to the library after setting "Automatically update MPD database on USB insert/remove" to YES
    • removing the SD card in the middle of a song will cause it to continue for a few seconds from RAM, then internal songs start playing -> make sure to put a few "always great" songs onto the remaining space of the internal SD!
    • BUG: this stopped working reliably after a few uses, perhaps due to hard shutdowns that damaged the SD?

Hardware Assembly

urgent TODOs:

  • come up with a solution to an apparent problem with the battery balancer: needs a charge coming in once before opening the output - problematic when 18650 cells are exchanged with fresh ones and it shuts down
    • Patrick had an idea involving a resistor which I can't quite remember :-(
      • Patrick idea is to add a resistor (maybe 100 Ohm) between B+ and P+ that can be switched in via a button. This would simulate a charge to the circuit and release it from its lockdown state. Not sure if the voltage on the power in/out side needs to be higher than the current battery voltage. In that case one could use a small battery (like a coin cell) to lift the voltage briefly.
  • start using IO pins
    • shutdown script for a push button
    • volume control (ideally sliding potis from original radio)
      • moOde audio has a "use rotary encoder" option to try out: could not get (sliding) potis to work
      • moOde's "GPIO button handler" only seems to work for buttons (1 pin per command, nothing as gradual as volume)
    • output battery status?
  • a bit of cooling?? the amp gets quite "warm"...


Raspi Configs

  • Boot config in config.txt:
    • Shutdown Pin: dtoverlay=gpio-shutdown,gpio_pin=4,active_low=0,gpio_pull=up
    • Enable UART for led: enable_uart=1