Een breadboard versie van de RaPiRadio is functioneel! Grootste pain in the a** was de analoge potentiometers in de RaPi krijgen. Eerst waren er I2C-problemen, dan de npm-libraries voor MPC3008 die niet wilden installeren (ondertussen denk ik wel beter zicht te hebben op hoe dat aan te pakken). Daarom maar besloten om over te stappen op Johnny-Five als input-framework, aangezien daar alles wel zou werken. Dus: nieuwe chips besteld (PCF-8591, de AD convertor die in J5 ondersteund werd), en, jawel, tot de conclusie komen dat het zaakje niet werkt. De devs zijn echter geweldig, en RW hemzelve zocht mee naar een oplossing. Na enkele bugfixes werkte de chip, en kon de pret beginnen!
De mopidy-aansturing was gelukkig al redelijk in orde, dus na het opzetten van enkele knoppen en potentiometers was het redelijk snel werkende. Redelijk, want het laden van 2 libraries (J5 en mopidy) moet natuurlijk wat op elkaar afgestemd worden, en dat gaat tegenwoordig niet zonder Promises! Nu had ik die al wel eens gebruikt, maar nog niet echt zelf geschreven. Beetje bijlezen in de You Don’t Know JS series, en ook dat kwam in orde.
Er was nog een kleine opstoot bij het gebruik van de potentiometers voor het aansturen van het volume: voordien had ik reeds getest met pushbuttons om volume up / volume down commando’s te geven: geen probleem. Veranderingen in de analoge waarden kwamen echter zo snel, dat mopidy niet kon volgen. Eerst stak de twijfel de kop op: toch maar terug drukknoppen gebruiken? Maar dan zouden al de vorige inspannigen voor niets geweest zijn. Dan maar proberen om het aantal calls te verminderen, en de performance werd aanvaardbaar. Tenminste…
Tenminste als je even abstractie maakt van de geluidskwaliteit! Deze was immers abominabel slecht. Niet echt aangenaam om naar de luisteren. Er bestaan wel audio DACS (zoals hifiberry), maar met zo’n €30 zijn die ook weer niet zo goedkoop. Ik had via aliexpress nog wel een goedkope usb audiokaart liggen die zou kunnen dienen… maar dat betekent natuurlijk dat de A+ die ik voor het project had voorzien niet meer voldoet! Aaargh! Waarschijnlijk zal de oorspronkelijke raspberry pi B gebruikt worden, met zijn 2 USB poorten heeft hij net genoeg aansluitingen voor dit gebruik.
Verdere stappen zijn dus:
- Opkuisen van de code
- Nieuwe SD kaart maken met install voor rapi B (en fatsoenlijk documenteren)
- IKEA hacking!
- Nieuwe features toevoegen:
- “intensity” knop toevoegen voor selecteren van podcasts/playlists
- Internet radiostations toevoegen
- TTS toevoegen voor status messages
Laten we zeggen, een goede stap vooruit, maar we zijn er nog niet… 🙂