13.3inch Magic Mirror C4

From Waveshare Wiki
Jump to: navigation, search
13.3inch Magic Mirror C4
13.3inch Magic Mirror C4

13.3inch CM4 Magic Mirror, Mini-Computer, Speech Assistant, Touch Control
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Overview

This is a 13.3inch magic mirror, a Mini-Computer that is powered by the Raspberry Pi CM4. This display uses 13.3inch IPS display panel and a 10-points capacitive touch panel. This magic mirror can show news, weather, and more user-defined content.

Features

  • Embedded Raspberry Pi CM4, 64-bit 1.5GHz Quad-core, dual-band WIFI, Bluetooth5.0
  • IPS display, 1920x1080 HD resolution
  • One-way mirror, can display news, weather and time.
  • Toughened glass capacitive touch panel, 6H hardness, supports up to 10-points touch
  • Embedded ferrite Hi-Fi speaker
  • Embedded Microphone And Speaker, Adopts Snowboy Hotword Detection Engine
  • 75x75mm spacing mounting holes (M4 screw hole) for general wall mount
  • Comes with 75° tilt angle stand

Write Raspberry Pi OS

  • Download the lasted Raspberry Pi OS 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 micro SD card and name it as SSH.
  • Modify config.txt file which is located at BOOT directory, add the following lines to 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 to Raspberry Pi.
  • Connect the Magic mirror to network and power on Raspberry Pi.
  • After booting, you can access Raspberry Pi via SSH, or directly connect keyboard and mouse.

Check the USB Audio Card

  • Test the sound output device
aplay -l
  • Test the sound input device
arecord -l

Install Magic Mirror driver

  • Open terminal and run 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
MgicMirror-1.png
  • Install MMM-VoiceAssistant model and display
cd ~/MagicMirror/modules
git clone https://github.com/waveshare/MMM-VoiceAssistant.git
cd MMM-VoiceAssistant
cp config/config.js.en ~/MagicMirror/config/config.js
cd ~/MagicMirror
DISPLAY=:0 npm star
MgicMirror-2.png

Install Python3 virtual environment

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 firstly

source ~/env/bin/activate

Install snowboy

  • Install independency 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 smart mirror, 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

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"
  }
}
  • Accoding to the official guide to install Google Assistant Service
  • Please follow the third step of the official guide to configure and create 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 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, please do notrecommend the json file for properly using.
(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 browser of your PC.
Please visit this URL to authorize this application: https://...
  • Go to the URL, you are asked to log in your Google Account and get the authorization code by following 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 as 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
  • Note: my-dev-project is the Google Could Platform ID of Actions Console porject you created. You need to find the project ID in Actions Console. my-model is the device model name you create
  • Press Enter, and try to ask something.

Set auto-run

  • Install PM2
sudo npm install -g pm2
  • Setup pm2
pm2 startup
  • You will get informatin below, please copy the command and run it on 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 snowbiy by PM2
cd MagicMirror/modules/MMM-VoiceAssistant/pi
pm2 start snowboy.sh
  • Set auto-run
pm2 save
  • If you want to disable the sevices, you can aslo use the following command
pm2 stop mm
pm2 stop snowboy

kepp 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
  • Then save and reboot
sudo reboot

RS232

To use the RS232 interface, please modify the config.txt file:

sudo nano /boot/config.txt

Add the following line the file and save

dtoverlay=uart3

RS485

To use the RS485, you need to enable the serial port of PI

sudo raspi-config

Choose Interface Option -> Serial -> No -> Yes, then reboot

Keys description

13.3inch-HDMI-LCD-H-Manual-02.jpg

  • 1: Open or Close LCD display. If you don't need the LCD for long time, you can use this button to reduce consumption
  • 2: Direction button
  • 3: "OK" function
  • 4: Open menu and "Return" function

Notices

1. If the wakeup word is unworkable for you, please log in snowboy website
https://snowboy.kitt.ai, And add the new wakeup word.
MgicMirror-3.png
Click recording icon to record voice and test if the voice model is workable
MgicMirror-4.png
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 request every day.

Open ~/MagicMirror/modules/MMM-VoiceAssistant/pi/audiofileinput.py. You can enter the following code
13.3inch mmirror.png

Follow the previous 6. 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

Resource

3D Drawings

Software


Support

If you require technical support, please go to the Support page and open a tickets.