
For den utålmodige: Byggeinstruksjoner finner du nederst på siden 🙂
For noen år tilbake (startet i 2021) solgte treningskjeden Sats treningsspeil med abonnement, speilet ble kalt Mentra Rflex. Kona bestilte et slikt speil på prøve da de ble lansert, men vi ble ganske raskt enige om at 13000 pluss månedsabonnement ble litt i heftigste laget, så speilet ble sendt i retur. Vi snakket allerede da om at det måtte jo være mulig å gjøre noe annet morsomt med dette speilet enn å være låst til Sats sin løsning. Det gikk et par år, og Sats la ned salget av speilene. Det dukket da opp flere speil på finn til en rimelig pris, og tanken om å få gjort ‘noe annet’ med et slikt speil dukket opp igjen. Litt googling førte oss på sporet av et lignende speil i USA, Lululemon – produsenten hadde gått konkurs og speilet hadde i praksis blitt ubrukelig til noe annet enn et helt vanlig speil. Som vanlig var det noen som hadde klart å knekke koden og fått det til å fungere på en annen måte, nemlig som et såkalt Magic Mirror.
I prinsippet er et Magic Mirror en helt vanlig skjerm plassert bak en spesiell type speil som gjør at skjermen og det som er på den vises ‘bak’ speilglasset. På githubsiden der denne løsningen var presentert fant vi en annen person som hadde et Rflex-speil, og det viste seg at innholdet i Rflex-speilet var veldig likt det som var i Lululemon-speilet, og kanskje spesielt skjermen/panelet som ble brukt, BOE DV430FHM-NN1. Denne viste seg å være den eksakt samme typen, et ganske standard BOE-panel som det fantes tredjeparts LCD-drivere til – tilgjengelig på eBay (og sikkert andre steder).
Utstyrt med denne informasjonen kjøpte vi et speil på finn, og bestilte et par sett med LCD-drivere på eBay. Og jammen fungerte det ikke helt strålende! Vi koblet opp en standard PC via HDMI-inngangen på LCD-driveren, og skjermen dukket opp som en ekstra skjerm på PCen. Dette var jo lovende, og vi monterte en Raspberry Pi i speilet (ikke inni, speilet er stort sett metall og WiFi-signalet ville nok slitt med å nå inn/ut). Vi justerte orienteringen av skjermen i Raspbian-grensesnittet 90 grader slik at det ble vist riktig på speilet, og da var vi vel i mål med konas treningsspeil? Nja, ikke helt.
Inni speilet er det nemlig både et kamera og dessuten har skjermen støtte for touch. På nevnte githubside kunne vi lese at vedkommende med Rflex-speilet trodde kanskje det skulle være mulig å bruke touch også, men hadde ikke kommet i mål med dette. Vi hadde en mistanke. Samtidig dukket det opp nok et speil på finn, denne gangen var det til salgs for høystbydende over 500,- (!). Jeg bød 700, og en kjapp tur/retur Hamar var vi enda et speil rikere.
Nærmere inspeksjon av innholdet i speilet viste at tilkoblingene fra skjermen og kameraet minnet mistenkelig om helt vanlig USB: 1 sort kabel, 1 hvit, 1 grønn og 1 sort. Kunne det være…?
Frem med loddebolten! Vi loddet på standard USB-A -kabel til både kamera og skjerm og koblet til en Raspberry Pi:


Woho! Det viser seg også at Raspbian har innebygget støtte for touchskjermer og kan vise et tastatur på skjermen som gjør at man kan skrive inn tekst i tillegg til å styre mus via touch. Så da var det bort med trådløst tastatur og mus som vi hadde koblet til og som nå var helt unødvendig. Vi testet også Messenger med videosamtale, og jammen fungerte ikke det helt greit også. Da var konas treningsspeil i boks!
Far må jo også ha noe å leke med – et smartspeil så dagens lys. Bygget på samme måte som treningsspeilet, men med litt annen informasjon på skjermen.
Vi bruker kameraet til å detektere bevegelse foran skjermen, da kan skjermen være av når ingen ser på det, og slå seg på når noen står foran det. Til dette benyttes motion som kjører kommandoer for å slå av og på skjermen i speilet. For å vise relevant informasjon på speilet bruker vi p.t. MagicMirror², men det spørs om ikke det blir Home Assistant på speilet etter hvert, når vi bare får laget et fancy dashboard. 🙂
NB!
Det viser seg at det er (i alle fall) to forskjellige versjoner av dette speilet:


Det øverste (modelltype RFLEX-01-W) er det vi tror er det vanligste, det nederste (modelltype MFS-REC-01) er litt annerledes, bl.a. med inngang til USB-C og HDMI. Ingen av disse portene så ut til å virke når vi koblet til en PC, så det er mulig at disse er utganger, ikke innganger. På innsiden er det forskjell på systemkortet (som for øvrig kjører en nedlåst versjon av Android), høyttalere, forsterker og kamera, på utsiden er det forskjell på feltet bak med inn/utganger, der den første har en relativt stor utsparing, mens den andre har en veldig liten. Det medfører at det ikke er plass til en Pi i utsparingen på den siste, så der har vi montert Pi’en innvendig, da med en USB-dongle med en stor antenne som faktisk virker fint:

Der kunne vi også gjenbruke USB-C -porten på speilet til strømforsyningen til Pi’en (vises nederst til høyre på bildet over). Her var også kameraet allerede utstyrt med en vanlig USB-A -kabel, så der slapp vi å lodde på den. Men det viktigste var at panelet var det samme, så vi kunne bruke den samme LCD-driveren. Alle tilkoblinger var også de samme.
Byggeinstruksjoner
- Sjekk at du har riktig LCD-panel inni speilet! Vi har åpnet flere speil og alle hadde samme panel, men man vet jo aldri…(utfør punktene 5-7 under)
- Bestill LCD-driver på eBay (lenke lenger opp i teksten) eller andre steder du måtte finne en slik enhet
- Vent på at det dukker opp i postkassa…:)
- Finn frem det du trenger: Skrutrekker, saks, dobbeltsidig tape, 2 stk USB-A -kabler du kan ofre til prosjektet, Raspberry Pi med strømtilkobling, HDMI-kabel og LCD-driver
- Legg speilet med speilsiden ned på et mykt underlag
- Skru opp alle skruene som fester bakdekslet på speilet (det er ganske mange…)
- Løft av dekslet og sett det til side, så vil innsiden se slik ut (eller i alle fall ganske likt)
- Dobbeltsjekk at du har riktig panel!
- Løsne kabelen fra kameraet, vær forsiktig for tilkoblingen sitter ikke veldig godt på printkortet til kameraet. Den andre enden av kabelen skal det loddes en USB-A -kabel på
- Disse tre kablene skal kobles fra. Merk at de fleste er festet litt løst med en hvit masse – denne sitter ikke veldig godt så man klarer å trekke ut kabelen likevel, evt. hjelp til litt med en skrutrekker. Kabelen nederst til høyre er den som sørger for touchegenskapene til skjermen, og som vi skal lodde en USB-A -kontakt på
- Skru løs wifi-antennene og trekk ut kablene fra chassiet til speilet
- Nå kan det være lurt å skru løs utsparingen der wifi-antennene satt for å komme litt bedre til, samt fjerne de to skruene som holder dekslet over strømforsyningskortet på plass.
- Løft opp dekslet til strømforsyningskortet, og fjern de to kablene på bildet
- Dette kortet, Androidkortet, kan du fjerne helt, dvs. koble fra alle ledninger og skru løs kortet og arkiver det på passende sted 🙂
- Dette er alt som skal fjernes
- Nå er det på tide å plukke ut kabelen til kameraet og touch-delen av skjermen, dersom du ønsker å kunne bruke denne funksjonaliteten. Så er det bare å finne frem loddebolten og kappe et par USB-kabler du har til overs, så du får 2 kabler med USB-A i den ene enden
- Dette er den nye LCD-driveren
- Her er Androidkortet og de gamle kablene til LCD-panelet fjernet, og den nye LCD-driveren ligger omtrent midt på bildet, med ledningene lagt ca. dit de skal tilkobles. Merk at utsparingen er skrudd på plass igjen, og USB-kablene er lagt på plass og trukket inn i utsparingen
- Koble til kabler der de passer (merk orientering, kontaktene passer bare en vei, men med makt kan mye gå galt! :D) på strømforsyningskortet og på skjermen. Skru på plass dekslet til strømforsyningskortet
- Da skal det se omtrent slik ut, kanskje bortsett fra at du har funnet en bedre måte å feste LCD-driveren på enn vi 🙂 Merk HDMI-kabelen (hvit) som nå er tilkoblet LCD-driveren og trukket ut i utsparingen sammen med de andre kablene
- Kabelen til kontrollpanelet til LCD-driveren har vi ført ut på kanten av speilet, og lagt to tynne (grill-)pinner på hver side av kabelen for å unngå at den blir klemt, og montert panelet inni en 3D-printet boks (link lenger ned) som er festet med dobbeltsidig tape på siden av speilet
- Bakdeksel ferdig påmontert, og Pi satt fast med dobbeltsidig tape
- Da er det bare å koble til strøm og satse på at alt er koblet riktig sammen 🙂
Mulige ToDo:
- Koble Pi til strømforsyning i speilet (litt usikker på denne da Pi er sær på strøm)
- Flytte Pi inn i speilet, da bør man bruke en USB WiFi-dongle på en USB-forlengelseskabel slik at den stikker ut av speilet
- Kjøpe fjernkontroll som kan brukes i stedet for knappepanelet som fulgte med LCD-driveren
Script for å slå av skjerm (merk at vi ikke fikk dette til å fungere godt med Wayland, så vi bruker standard X-windows på Pi’en) – lagre som egen fil i f.eks. /usr/local/sbin/hdmi-off-x.sh:
!/bin/bash
export DISPLAY=:0.0
xrandr –display :0 –output HDMI-2 –off
# Bruk HDMI-1 dersom skjermen er koblet til HDMI-porten nærmest strømporten
Script for å slå på skjerm (lagre som egen fil i f.eks. /usr/local/sbin/hdmi-on-x.sh):
!/bin/bash
export DISPLAY=:0.0
xrandr –display :0 –output HDMI-2 –auto –rotate right
# Bruk HDMI-1 dersom skjermen er koblet til HDMI-porten nærmest strømporten. ‘–rotate right’ er for å få skjermen rotert så den er riktig vei når skjermen slås på igjen
3D-modell til skjermknapper:
Denne fant vi på Thingiverse og passer 100% til knappepanelet. Festet med dobbeltsidig tape på siden av speilet.