Read the statement by Michael Teeuw here.
Voice enabled SmartMirror² - snips inside
-
I recently stumbled upon a nice Mini MagicMirror²
It is built around a Pi Zero but the recently released Pi3 A+ is a better fit.
Printing the enclosure is straightforward on a Prusa i3 MK3. There is something missing. Snips !
I had a Google AIY Voice hat (gen 1) laying around which has been used for a Snips satellite.
The voice hat fits nicely onto the Pi3 A+. It also has connectors for 5V and GND which is used for powering the screen
The HDMI cable is built from a flat ribbon cable and two angled connectors.
The mic board of the voice hat is attached to the top. The biggest challenge was to find a speaker that would fit into the enclosure. Finding a 4Ohm speaker small enough to fit in it not easy. The smaller ones are usually below 1 Watt.
I didn’t know about a special type of speaker called exciter.
The Dayton Audio DAEX19CT-4 Coin Type 19mm Vented Exciter 5W 4 Ohm is a nice fit.
Last piece is a suitable two-way mirror. Forget about foil. The guy in the video bought pre-cut plastic/acrylic mirror but I did not find a good source. You can supposedly buy custom made ones here.
From a recent MagicMirror project I learned to go for glass mirrors.
There is company in Germany GlasStar that makes these according to the dimensions you need them in. I ordered 3 mirrors for a price of 89€ (inluces VAT and shipping). They sent me 4 mirrors. Same quality like the bigger one I ordered recently.
Worked out perfectly.
Why would you need snips in a magic mirror ? Have a look at this video
It simply makes sense to control your mirror with your voice rather then a touchscreen.
What else is it used for ? It is used to check on the hot water temperature (eBUS-Vaillant) and the heating system.
Another idea would be to leave out the speaker and print the text from snips onto the screen. That way the MagicMirror could be used as snips satellite without the need for a speaker.
-
This is now at version 3. It turns out that the speaker (exciter) is not ideal since the case does not provide enough surface for the exciter. Version 2 switched from Google AIY Voice (gen 1) to the speaker/mic combo from Raspiaudio. This device has some nice speaker included and is a drop-in replacement for the Google AIY voice (gen 1) but with a smaller footprint.
This needed an updated case to have holes for the speaker grills. Interestingly the mic is so sensitive that there is no longer a need for holes like when a respeaker 2 is used.
What still bothered me was the luminance of the display in conjuction with the mirror. It works great in a room that has little daylight. Unfortunately in daylight the mirror is not optimal. It is likely not the fault of the mirror. I found that the screen should have a luminance of at least 350cd/m²
That being said version 3 will have a brighter screen. This is the hard part. Finding a suitable screen is time-consuming. The screen in version 1 is most likely in the area of 250 cd/m² which seems to be some sort of standard in these Raspberry suited screens.
Alibaba.com has tons of TFT with up to 1000 cd/m² but none of them come with a HDMI converter board. I was not able to find a single model that has more then 500 cd/m², is 3.5" and has HDMI.
Try searching for screens you will suddenly be overwhelmed with a whole new world for interfaces (RGB, SPI, MCU, LVDS) and a mix of ribbon cables (40pin, 50pin, 54pin)
First things first. 40pin to HDMI converter from Adafruit seems like the way to go. Buyer beware, not all 40pin connectors are created equal. Double check the datasheet and compare to this screen from Adafruit.
Eventually, I settled for a 4.3" screen from Riverdi which has no touch (!), RGB interface, 40pin (compatible) and still fits into the Pyramid case. Different from the screens from China, Riverdi screens seem to be readily available in Europe.
It has 550 cd/m² which hopefully will be enough for daylight bathrooms. If not I might order a brighter display from China.
-
Ok, so the Riverdi screen works with the Adafruit HDMI board. It is way brighter.
This is needed in config.txt on the Pi to make it run.
hdmi_drive=1
hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=87
hdmi_timings=480 0 1 41 2 272 0 2 10 2 0 0 0 60 0 9009000 3set the framebuffer to your liking: e.g.
framebuffer_width=720
framebuffer_height=480I also did change the edid of the Adafruit board but don’t know if this is neccessary.
If the above is not enough change the edid like soThe nice thing about this screen is that is can be switched on/off via
vcgencmd display_power 1
Ok, so the Riverdi screen works with the Adafruit HDMI board. It is way brighter.This is needed in config.txt on the Pi to make it run.
hdmi_drive=1
hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=87
hdmi_timings=480 0 1 41 2 272 0 2 10 2 0 0 0 60 0 9009000 3set the framebuffer to your liking: e.g.
framebuffer_width=720
framebuffer_height=480I also did change the edid of the Adafruit board but don’t know if this is neccessary.
If the above is not enough change the edid like soThe nice thing about this screen is that is can be switched on/off via
vcgencmd display_power 1