Het instellen van een USB Touchscreen, om je Raspberry Pi audioplayer mee te bedienen

In een vorig artikel heb ik verteld dat ik een Logitech Squeezebox Duet en de Logitech media server (LMS) software gebruik, om mijn mp3 collectie af te spelen en Spotify te streamen naar mijn Hifi set. Maar de op een iPod lijkende Duet controller, van meer dan zeven jaar oud, begon problemen te krijgen met opladen. Ik hoop dat ik dit kan herstellen, maar in de tussentijd, had ik wel vervanging nodig, om het zaakje te bedienen en niet enkel dmv de “Squeezer” app op mijn android smartphone.

De Logitech Squeezbox Duet controller.

Voordat ik mijn Squeezebox Duet gekocht had, ergens in 2009, was ik aan het experimenteren geweest met een touchscreen in combinatie met een Asus eeeBox minipc, maar was hier niet echt tevreden over. Toen kwam ik de Squeezebox Duet tegen en heb ik de touchscreen PC combinatie daarmee vervangen. Ik heb mijn LG Flatron L1510SF 15-inch touchscreen toen echter niet weggedaan. Nu in 2016 is een van de best door een gemeenschap van techneuten ondersteunde mini PCs, natuurlijk de Raspberry Pi. Ik was zelf ook bezig met Pi’s om er zowel video als audio spelers mee te maken. Er is ook al een heel scala aan kleinere touchscreens, die via de GPIO header of Display header, op de Rpi aangesloten kunnen worden. Maar een touchscreen die je gwoon via HDMI, DVI of VGA aansluit, met USB voor de touch-control, kom je een stuk minder tegen. Maar toen mijn Squeezebox Duet controller er de brui aan gaf, dacht ik gelijk: Waarom zou ik mijn oude USB touchscreen niet koppelen aan een Raspberry Pi waarop LMS draait?

Logitech Media Server (LMS) installeren

Het installeren van LMS op een Raspberry Pi is doodeenvoudig zeker als het audiospeler OS, Max2Play gebruikt. Je download the SD card image van Max2Play van hun website, schrijft deze naar een SD kaart met behulp van een tool zoals win32diskimager. Stopt de SD in de Rpi, verbind de Rpi met je netwerk d.m.v. een kabel en sluit de stroomadapter aan. Nu kan je de installatie interface van Max2play bereiken via een andere PC door in de webbrowser de URL:max2play/ in te voeren. In deze installatie interface, kan je instellen dat je LMS en Squeezeplayer software wil gebruik en deze wordt automatisch geinstalleerd. Op deze manier heb je een zogenaamde “hoofdloze” audiospeler, die lokaal muziek kan afspelen of via ander Squeezebox apparaten binnen je netwerk. Je kan dit bedienen via een telefoon app zoals Squeezer op android of via een web-interface op je laptop of PC.

Jivelite, de touchscreen interface voor LMS

De LG Flatron L1510SF USB aangestuurde touchscreen.

In mijn geval wou ik echter het touchscreen gebruiken om de Raspberry Pi met LMS rechtreeks te kunnen bedienen. Dit vergt wat extra werk. Allereerst moet je het scherm aan de Rpi koppelen, maar ook een muis en toetsenbord om wat zaken te kunnen instellen. Ten tweede moet je de grafische touchinterface for LMS met de naam JiveLite installeren. Dit gaat eenvoudig via installatie interface van Max2play, maar dit is wel een premium item. Een Max2play premium licentie kost je €9,99 per jaar. Het is ook mogelijk om LMS en Jivelite zelf te installeren zonder licentie-kosten, maar niet met het gemak van Max2play. De Jivelite setup van Max2play geeft ook de mogelijkheid om verschillend touchinterface skins te gebruiken. Deze zijn echter toegespits op de kleinere touchscreens en vergde enige aanpassing om het op de 1024×768 resolutie van mijn touchscreen tot hun recht te laten komen. Maar later meer hierover.

Het touchscreen calibreren

Allereerst wou ik het touchscreen werkend krijgen op de Raspberry Pi. Toen ik aan het researchen was hoe dit voor elkaar te krijgen kwam ik dit artikel tegen. Dit beschrijft een methode voor exact hetzelfde scherm als dat ik heb. Allereerst moet je xinput-calibrator installeren. Je kan dit het best locaal op de Rpi doen dmv van het aangesloten muis en toetsenbord. Je opent een terminal scherm en typt: sudo apt-get install -y xinput-calibrator. Daar start je xinput-calibrator, door xinput-calibrator te typen in je terminal scherm, gevolgd door <enter>. Nu wordt het calibratie scherm geopend en kan je de instructies volgen. Voor een goede precisie wordt gebruik van een stylus aanbevolen. Na het aanstippen van de hoeken, sluit het scherm zich en verschijnt de calibratie parameters in je terminal scherm. Deze parameters moeten ingevoegd worden in het bestand /etc/X11/xorg.conf.d/99-calibration.conf. Toen ik dit deed met de parameters zoals ze op mijn scherm verschenen zorgde dit toch voor problemen. De grafische gebruikers-interface LXDE kwam niet meer te voorschijnen toen ik Rpi met de nieuwe instellingen opnieuw opstartte. Uiteindelijk heb ik de instelling uit het artikel gekopieerd, omdat het hier om exact hetzelfde LG touchscreen ging. Dat was het truckje, waardoor het touchscreen nu naar behoren werkt.

De Joggler skin aanpassen aan je resolutie

Nu wou ik nog een JiveLite skin die goed bij de resolutie en schermverhoudingen van mijn touchscreen paste. De aanwezige Joggler skin, kwam het al het dichste bij het beoogde eindresultaat maar had wel aanpassingen nodig om het mooi schermvullend te maken. Om dit voor elkaar te krijgen moet de code van het skin bestand /opt/jivelite/jivelite/share/jive/applets/JogglerSkin/JogglerSkinApplet.lua op regel 259 aangepast worden als volgt:

Framework:setVideoMode(1024, 768, 0, false)

Waar de waarde 1024 en 768 de resolutie en beeldverhouding van mijn LG vertegenwoordigen. Als je ook de visuele VU meter of Spectrum analyse mooi op het scherm wil krijgen (Enkel voor lokaal afgespeelde muziek). Moet ook nog het volgende deel van de code van het eerder genoemde bestand aanpassen. De aanpassing zijn in vette letters aangegeven.

-- Visualizer: Spectrum Visualizer
s.nowplaying_spectrum_text = _uses(s.nowplaying_visualizer_common, {
npvisu = {
hidden = 0,
position = LAYOUT_NONE,
x = 0,
y = 2 * TITLE_HEIGHT + 4,
w = 1024,
h = 566 - (2 * TITLE_HEIGHT + 4 + 45),
border = { 0, 0, 0, 0 },
padding = { 0, 0, 0, 0 },

spectrum = {
position = LAYOUT_NONE,
x = 0,
y = 2 * TITLE_HEIGHT + 4,
w = 1024,
h = 566 - (2 * TITLE_HEIGHT + 4 + 45),
border = { 0, 0, 0, 0 },
padding = { 0, 0, 0, 0 },

Na opnieuw opstarten van de JiveLite gebruikersinterface, of een reboot van heel het system, heb je een layout die mooi past op het scherm. Sommige knoppen hebben nog niet de perfecte schaal, maar alles functioneerd. Ik hou natuurlijk wel een oogje open voor verbeterde versies van een 1024×768 skin voor JiveLite. Als je dit leest en je hebt er één of je bent er één tegengekomen, dan hoor ik dat natuurlijk graag.

Een klein ding is nog niet helemaal zoals ik wil en dat is dat de muis aanwijzer op het scherm zichtbaar is. Max2play heeft een speciale add-on voor de kleinere touchscreen waar in dit door middel van een handige check-box aan of uit te zetten is. Maar deze add-on ondersteund niet mijn scherm en ik kan het dus jammer genoeg niet gebruiken. Alle suggestie om dit op een andere manier toch voor elkaar te krijgen zijn welkom. Voor een indruk hoe dit apparaat eruit ziet en werkt kan ik je aanraden om even mijn youtube filmpje hier beneden te bekijken.