13.3inch Magic Mirror
| ||
Overview
Introduction
13.3inch Magic Mirror, Voice Assistant, Touch Control, Raspberry Pi 3A+ Inside
Features
- Comes with Raspberry Pi 3A+ as the controller, 64-bit 1.4GHz quad-core processor, dual-band WiFi, and supports Bluetooth 4.2.
- 13.3inch IPS screen,1920 x 1080 high resolution.
- Display through one-way mirror, and it can show you news, weather, time and more user-defined content.
- Support English/Chinese dialogues, adapts Snowboy hotwords detection engine, Google Assistant for English, and IFLYTEK for Chinese.
- Toughened glass panel with capacitive touch control, support up to 10-point touch with up to 6H hardness.
- Support wall-mounting installation with 75×75mm mounting hole (M4 screw).
- Comes with a 75° tilt angle stand.
Writing Image
- Write Image for Compute Module Boards eMMC version
- Write Image for Compute Module Boards Lite version
USB2.0
The USB port is disabled by default on the CM4 to save power. If you need to start, you need to add the following demo to the config.txt file:
dtoverlay=dwc2,dr_mode=host
Then restart.
If you use the latest Raspberry Pi OS (image after October 30, 2021) USB2.0 is OTG mode by default, and CM4 will report an error:
config failed, hub doesn't have any ports! (err -19)
However, USB can still be used. If you want to remove this error, remove otg_mode=1 in [cm4] of config.txt, and add dtoverlay=dwc2, dr_mode=host (USB cannot be recognized without adding it).
You can use Magic Mirros in two ways:
Method one, using a pre-configured mirror. The second method is to configure the environment running the program on the original image of the Raspberry Pi.
It is recommended to install pre-configured images for newbies or first-time installations. The pre-configured images have already installed the required libraries and drivers, and the program runs automatically after booting.
Method 1. Pre-configured image
- 1. Download the pre-configured image and write it to your TF card.
- 2. Add the following lines to wpa_supplicat.conf files in the BOOT directory. (if you didn't find the files, create them.)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=US network={ ssid="your_real_wifi_ssid" psk="your_real_password" }
Note: you need to change your_real_wifi_ssid and your_real_password" to the real ssid and password.
- 3. Inset the card to Raspberry Pi and power on it.
Method 2. Configure image manually
- 1. Write Raspbian image
- Download the lasted Raspbian image from the Rasberry Pi website and write it to an empty micro SD card.
- Create a new Txt file under the BOOT directory of the micro SD card and name it SSH.
- Modify the config.txt file which is located in the BOOT directory, and add the following lines to the config.txt file.
hdmi_group=2 hdmi_mode=82 hdmi_cvt 1920 1080 60 6 0 0 0
- Save and insert the micro SD card into Raspberry Pi.
- Connect the Magic mirror to the network and power on Raspberry Pi.
- After booting, you can access Raspberry Pi via SSH, or directly connect the keyboard and mouse.
- 2. Install WM8960 sound card driver.
- Open the terminal and use the following commands to install.
git clone https://github.com/waveshare/WM8960-Audio-HAT cd WM8960-Audio-HAT sudo ./install.sh sudo reboot
- Modify the config.txt file, remove the following line from the file, or comment on it.
#dtparam=audio=on
- Then reboot Raspberry Pi.
sudo reboot
- After rebooting, check the driver by the following command.
sudo dkms status
- If you can get the information below, it means that the driver was installed successfully.
pi@raspberrypi:~ $ sudo dkms status wm8960-soundcard, 1.0, 4.19.58-v7l+, armv7l: installed
- Test the sound card.
- Test playing: aplay -l
pi@raspberrypi:~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
- Test recording: arecord -l
pi@raspberrypi:~ $ arecord -l **** List of CAPTURE Hardware Devices **** card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
- 3. Install Magic Mirror driver.
- Open the terminal and type the following commands.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt install -y nodejs git clone https://github.com/MichMich/MagicMirror cd MagicMirror/ npm install
- After installing, run the command to display.
DISPLAY=:0 npm start
cd ~/MagicMirror/modules git clone https://github.com/waveshare/MMM-VoiceAssistant.git cd MMM-VoiceAssistant cp config/config.js.en ~/MagicMirror/config/config.js #Display English #cp config/config.js.cn ~/MagicMirror/config/config.js #Display Chinese cd ~/MagicMirror DISPLAY=:0 npm star
sudo apt-get update sudo apt-get install python3-dev python3-venv python3 -m venv env env/bin/python -m pip install --upgrade pip setuptools wheel source env/bin/activate
- Note: The following steps should be taken in the virtual environment, if you close the terminal and restart it, you should use the command below to enter the environment again first.
source ~/env/bin/activate
- 5. Install Snowboy.
- Install libraries:
sudo apt-get install swig sudo apt-get install libatlas-base-dev sudo apt-get install portaudio19-dev sudo apt-get install flac pip3 install PyAudio pip3 install SpeechRecognition
- Download Snowboy:
git clone https://github.com/Kitt-AI/snowboy.git cd snowboy/swig/Python3 make cd ../../examples/Python3
- Modify snowbiydecoder.py file. Change from.import snowboydetect to import snowboydetect. Save and enable snowboy
cd ~/snowboy/examples/Python3 python3 demo.py resources/models/smart_mirror.umdl
- Try to say snowboy, you will hear ding and the information below are printed on the mirror.
INFO:snowboy:Keyword 1 detected at time: 2019-12-03 11:30:16
- 6. Install Google Assistant Service
- Create .asoundrc file in /home/pi directory (the user directory)
nano .asoundrc
- Add the following lines to the .asoundrc file.
pcm.!default { type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:0,0" } } pcm.speaker { type plug slave { pcm "hw:0,0" } }
- According to the official guide to installing Google Assistant Service
- Please follow the third step of the official guide to configure and create the OAuth Client ID JSON file. Don't forget to copy the JSON file to your Raspberry Pi.
- Following the fourth step of the guide to register the device model.
- Install Google Assistant SDK.
(env) $ sudo apt-get install portaudio19-dev libffi-dev libssl-dev (env) $ python -m pip install --upgrade google-assistant-sdk[samples]
- Authorize model
(env) $ python -m pip install --upgrade google-auth-oauthlib[tool]
- Genegrate credential.
(env) $ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --save --headless --client-secrets /path/to/client_secret_ client-id .json
- Then you will get an URL, please copy it and open it on the browser of your PC.
Please visit this URL to authorize this application: https://...
- Go to the URL, you are asked to log in to your Google Account and get the authorization code by following the guides, Copy the code to the terminal:
Please go to this URL: https://... Enter the authorization code:
- If the authorization process is done successfully, you will get the information below:
credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json
- Use the following command to test.
googlesamples-assistant-pushtotalk --project-id my-dev-project --device-model-id my-model
- Run the following command to test that my-dev-project is the Google Cloud Platform project ID of the Actions Console project created. To find the project ID in the Actions Console, my-model is the name of the device model registered in the previous step.
googlesamples-assistant-pushtotalk --project-id my-dev-project --device-model-id my-model
- Press Enter, and try to ask something.
- 7. Set auto-run.
- Install PM2.
sudo npm install -g pm2
- Setup pm2
pm2 startup
- You will get the information below, please copy the command and run it on the terminal.
[PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
- Run Magic mirror by PM2
cd MagicMirror/modules/MMM-VoiceAssistant/pi pm2 start mm.sh
- Run Snowboy by PM2
cd MagicMirror/modules/MMM-VoiceAssistant/pi pm2 start snowboy.sh
- Set auto-run:
pm2 save
- If you want to disable the services, you can also use the following command:
pm2 stop mm pm2 stop snowboy
- 8. Keep display lighting all the time.
- Modify lightdm.conf.
sudo nano /etc/lightdm/lightdm.conf
- Find the line "Xserver-command" below [SeatDefaults] section and change it from
#xserver-command=X
to
xserver-command=X -s 0 -dpms
- -s # – set screen saver not enabled.
- dpms turn off power saving management.
- Then save and reboot.
sudo reboot
Note
- 1. If the wakeup word is unworkable for you, please log in Snowboy website
- https://snowboy.kitt.ai, And add the new wakeup word.
- Click the recording icon to record voice and test if the voice model is workable.
- Download the model file and copy it to ~/MagicMirror/modules/MMM-VoiceAssistant/pi directory.
- Modify Snowboy.sh file.
nano snowboy.sh
- Modify the name to the one you download, for English, you need to modify the snowboy.umdl to yours.
cd ~/MagicMirror/modules/MMM-VoiceAssistant/pi ~/env/bin/python3 demo.py smart_mirror.umdl snowboy.umdl
- 2. Google Assistant Service can only support 500 requests every day.
Open ~/MagicMirror/modules/MMM-VoiceAssistant/pi/audiofileinput.py. You can enter the following code.
Follow the previous Google Assistant Service installation section to register an account, device model, and install authorization.
Finally, replace DEVICE_ID and DEVICE_MODEL_ID in the program with the corresponding values.
About the Buttons
1. Turn on or off the LCD display. If the LCD is not used for a long time, it can be turned off through this button to reduce power consumption.
2. Direction keys.
3. Enter.
4. Menu and Return.
Resource
Drawing
Software
Authentication Information
FAQ
12V 1A outer diameter 3.5 and inner diameter 1.35. If you want to use other power supplies, you need to ensure that the power supply ripple is within ±5%
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)