• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MagicMirror on Pi Zero W

Scheduled Pinned Locked Moved Tutorials
46 Posts 19 Posters 53.0k Views 21 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    rootsudo
    last edited by yawns Mar 27, 2017, 8:09 AM Mar 14, 2017, 5:46 PM

    How to install MagicMirror on Pi Zero W

    This guide is not my own and the information provided came from many contributors: @evos, @Wieber, & @randombullet. I spent the past 24 hours playing with my new pi and this is what worked for me.

    I built my pi using a windows 10 machine.

    Tested 3.14

    The Beginnings:

    1. Download Jessie Lite and use Win32DiskImager to write img to SD card (8GB card recommended)
    2. Boot SD card and verify you can login
    3. Create wpa_supplicant.conf via windows text editor and plug SD back into windows machine
    network={
       ssid="NAME_OF_WIFI_AP"
       psk="WIFI_PASSWORD"
    }
    
    1. Place wpa_supplicant.conf in Boot folder of SD card
    2. Boot SD card and login
    3. Enable SSH: sudo raspi-config -> Select Interfacing Options -> select SSH -> select Enable -> select Finish

    You are now ready to connect to your pi via Putty. Please do so for the next portion.

    The fun parts:

    1. sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb
    2. sudo dpkg -i node_latest_armhf.deb
    3. sudo apt-get install npm
    4. sudo apt-get install git
    5. cd /home/pi/
    6. git clone https://github.com/MichMich/MagicMirror
    7. cd MagicMirror
    8. sudo npm install #This will take a LONG time, expect 30 minutes
    9. sudo apt-get install midori
    10. sudo apt-get install unclutter
    11. sudo aptitude install xinit
    12. sudo apt-get install matchbox
    13. sudo raspi-config -> Boot Options -> B1 Desktop/CLI -> B2 Console Autologin
    14. sudo nano /home/pi/start.sh
    #! /bin/bash
    cd /home/pi/MagicMirror
    node serveronly &
    sleep 45
    sudo xinit /home/pi/startMidori.sh
    

    15 Control + x > Y > Return
    16 sudo chmod a+x /home/pi/start.sh
    17 sudo mv /home/pi/start.sh /etc/init.d/startMagicMirror.sh
    18 sudo update-rc.d startMagicMirror.sh defaults 100
    19 sudo apt-get install x11-xserver-utils
    20 sudo nano /home/pi/startMidori.sh

    #!/bin/sh
    xset -dpms # disable DPMS (Energy Star) features.
    xset s off # disable screen saver
    xset s noblank # don’t blank the video device
    matchbox-window-manager &
    unclutter &
    midori -e Fullscreen -a http://localhost:8080
    

    21 Control + x > Y > Return
    22 sudo nano /boot/config.txt

    disable_overscan=1
    framebuffer_width=1050 #match your res
    framebuffer_height=1680 #match your res
    framebuffer_depth=32
    framebuffer_ignore_alpha=1
    hdmi_pixel_encoding=1
    hdmi_group=2
    display_rotate=1
    

    23 Control + x > Y > Return
    24 sudo reboot

    Congrats, your pi should now boot to MagicMirror. To configure your modules please follow the ‘Readme’ on the Github: https://github.com/MichMich/MagicMirror

    Source - https://forum.magicmirror.builders/topic/1183/how-i-got-my-magic-mirror-working-on-a-raspberry-pi-0-zero/2

    I actually got it to working just hours ago, on Pi Day!

    M G P 3 Replies Last reply Jun 12, 2017, 6:45 PM Reply Quote 6
    • R Offline
      rmd6502
      last edited by Mar 27, 2017, 4:37 AM

      Nice and thorough tutorial!
      I followed most of it, but got off the train at Midori since I already had chromium-browser installed on my pi.
      What I did instead was modify package.json to add a serveronly script thusly:

        "scripts": {
          "start": "electron js/electron.js",
          "serveronly": "node serveronly"
        },
      

      then modified serveronly/index.js to kick off chrome thusly:

      const spawn = require('child_process').spawn
      ...
      console.log("Ready to go! Please point your browser to: http://" + bindAddress + ":" + config.port);
              process.env.DISPLAY=':0.0'
              var browser = spawn('chromium-browser',['http://localhost:8080', '--kiosk', '--incognito'])
      

      Without --incognito I would get an annoying popup from Chrome telling me it didn’t shut down cleanly, and would I like to restore my window configuration.
      I then added

      su - pi -c "cd /home/pi/Documents/MagicMirror && PATH=/usr/local/bin:${PATH} && /usr/local/bin/npm run serveronly" &
      

      to /etc/rc.local (how’s that for lazy?)
      Anyway, HTH

      1 Reply Last reply Reply Quote 1
      • M Offline
        Mitchfarino Module Developer
        last edited by Apr 16, 2017, 4:09 PM

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • M Offline
          Mitchfarino Module Developer
          last edited by Apr 16, 2017, 8:57 PM

          Thanks for posting this, I’ve followed it through my Pi Zero (not the W)

          The minute I try and add any kind of config, I just get a blank screen. Is there something I am missing?

          I just tried it with the clock module, and it doesn’t give me anything.

          If I corrupt the config file in any way, I get the standard error message saying to create a config.js file.

          Do you have any idea what my issue could be?

          H 1 Reply Last reply Apr 17, 2017, 9:14 AM Reply Quote 0
          • H Offline
            Hawking @Mitchfarino
            last edited by Hawking Apr 17, 2017, 9:17 AM Apr 17, 2017, 9:14 AM

            @Mitchfarino
            I’m using the Zero W but have exactly the same problem (just a blank screen).
            I found that the clock module gives me frequent errors in /var/log/daemon.log (complaining about missing “moment”, similar to my post here) do you get these as well?
            However also most of the other modules don’t work for me. What worked for me was to remove all default modules from the config file and just use the very simple “halloworld” module

            {
                            module: "helloworld",
                            position: "top_bar",
                            config: {
                                    text: "Hello world!"
                            }
              }
            

            Then I got at least some text on my empty screen and knew that in principle MM was working. I also could get the externally installed MMM-Globe and MMM-SystemStats running.
            But of course it would be good to get the default modules running…

            I also got this empty page if I requested the website from my regular PC using Firefox, so I think it is not related to a shortcoming of the midori browser.

            I tried Jessie and Jessie Light and different versions of node.js/npm. During the npm install step I get several errors/warnings, however some people said that some of these are normal…

            I 1 Reply Last reply Apr 19, 2017, 12:08 PM Reply Quote 0
            • I Offline
              Iseknutz @Hawking
              last edited by Apr 19, 2017, 12:08 PM

              @Hawking @Mitchfarino
              I have the same problem too. I have set up the MM2 on Pi Zero W, everything looks good, but only the modules “helloworld” and “alert” are working. If I try to use the clock module I got a blank, black screen.
              Did you solve the problem? Maybe the other modules use any functions that the Pi Zero don’t understand…?

              1 Reply Last reply Reply Quote 0
              • M Offline
                McSorley
                last edited by Apr 19, 2017, 1:25 PM

                Wish I found this earlier! Spent a few days trying to get it running myself using docker but failed at every turn.

                I will give this a run through later today and report back my findings.

                1 Reply Last reply Reply Quote 0
                • B Offline
                  blueeyed1
                  last edited by Apr 19, 2017, 8:18 PM

                  I have same problem, too. Any idea of solution?

                  1 Reply Last reply Reply Quote 0
                  • H Offline
                    Hawking
                    last edited by Hawking Apr 19, 2017, 8:26 PM Apr 19, 2017, 8:22 PM

                    @Iseknutz said in MagicMirror on Pi Zero W:

                    Did you solve the problem? Maybe the other modules use any functions that the Pi Zero don’t understand…?

                    No, I didn’t solve the problem yet.
                    I found out that the working modules (helloworld and alert) don’t use the “moment” js library but the modules that result in a blank screen (calendar, clock, compliments, newsfeed and weatherforcast) do. As the error in my /var/log/daemon also contains “ReferenceError: Can’t find variable: moment” I think it is likely that something went wrong in installation of (the moment.js library of) node. And indeed, the installation with

                    sudo npm install
                    

                    gave some warnings and errors in my case. As only the Pi Zeros seem to be concerned it must be something due to our “special” installation. The Pi Zero needs a special (ARM) node variant. The version one gets via

                    sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb
                    sudo dpkg -i node_latest_armhf.deb
                    

                    is quite old (version 4.2.1; the regular installer of MM2 updates nodes to version 6 if the version of node is below 5.1.0 and in an other thread somebody reported that version 7 is working for a regular Pi as well) However, I also tried to use version 6 and 7, but the result was still a blank screen.
                    I also get this blank screen if I access the provided data via network using Firefox of a regular PC, so I think it is not related to some issues with the midori browser.

                    But I’m not not at all an expert in this issue, so I might have done something wrong or it could be an other reason (the working modules are also in other ways simpler than the other ones). I would be happy if somebody could tell us how to solve this issue.

                    strawberry 3.141S M 2 Replies Last reply Apr 20, 2017, 12:29 PM Reply Quote 0
                    • strawberry 3.141S Offline
                      strawberry 3.141 Project Sponsor Module Developer @Hawking
                      last edited by Apr 20, 2017, 12:29 PM

                      @Hawking you should check if moment weas installed properly it sits in the vendor directory in node_modules, if it isnt there run npm install in the vendor directory

                      Please create a github issue if you need help, so I can keep track

                      H 1 Reply Last reply Apr 20, 2017, 10:25 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 1 / 5
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy