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.

    Raspberry Pi Zero W for Magic Mirror

    Scheduled Pinned Locked Moved Hardware
    79 Posts 10 Posters 58.0k Views 11 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.
    • D Offline
      davidgagne @sdetweil
      last edited by

      @sdetweil I followed your tutorial on adding the Jeopardy module (just to see what would happen) and it worked fine. The last step is npm start and when I did that I got this:

      > magicmirror@2.27.0 start
      > ./run-start.sh $1
      
      [2024-05-29 10:30:09.649] [LOG] Starting MagicMirror: v2.27.0
      [2024-05-29 10:30:10.200] [LOG] Loading config ...
      [2024-05-29 10:30:10.267] [LOG] config template file not exists, no envsubst
      [2024-05-29 10:30:19.159] [LOG] Loading module helpers ...
      [2024-05-29 10:30:19.394] [LOG] No helper found for module: alert.
      [2024-05-29 10:30:53.041] [LOG] Initializing new module helper ...
      [2024-05-29 10:30:53.066] [LOG] Module helper loaded: updatenotification
      [2024-05-29 10:30:53.220] [LOG] No helper found for module: clock.
      [2024-05-29 10:31:18.754] [LOG] Initializing new module helper ...
      [2024-05-29 10:31:18.854] [LOG] Module helper loaded: calendar
      [2024-05-29 10:31:19.537] [ERROR] Whoops! There was an uncaught exception... 
      [2024-05-29 10:31:20.316] [ERROR] Error: Cannot find module 'request'
      Require stack:
      - /home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js
      - /home/dvg/MagicMirror/js/app.js
      - /home/dvg/MagicMirror/serveronly/index.js
          at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
          at Module._resolveFilename (/home/dvg/MagicMirror/node_modules/module-alias/index.js:49:29)
          at Module._load (node:internal/modules/cjs/loader:901:27)
          at Module.require (node:internal/modules/cjs/loader:1115:19)
          at require (node:internal/modules/helpers:130:18)
          at Object.<anonymous> (/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js:8:17)
          at Module._compile (node:internal/modules/cjs/loader:1241:14)
          at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
          at Module.load (node:internal/modules/cjs/loader:1091:32)
          at Module._load (node:internal/modules/cjs/loader:938:12)
          at Module.require (node:internal/modules/cjs/loader:1115:19)
          at require (node:internal/modules/helpers:130:18)
          at loadModule (/home/dvg/MagicMirror/js/app.js:183:19)
          at loadModules (/home/dvg/MagicMirror/js/app.js:213:10)
          at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
          at async App.start (/home/dvg/MagicMirror/js/app.js:261:3) {
        code: 'MODULE_NOT_FOUND',
        requireStack: [
          '/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js',
          '/home/dvg/MagicMirror/js/app.js',
          '/home/dvg/MagicMirror/serveronly/index.js'
        ]
      } 
      [2024-05-29 10:31:20.470] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection? 
      [2024-05-29 10:31:20.593] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MagicMirrorOrg/MagicMirror/issues 
      [2024-05-29 10:34:40.779] [INFO] System information:
      ### SYSTEM: manufacturer: Raspberry Pi Foundation; model: Raspberry Pi Zero W Rev 1.1; raspberry: [object Object]; virtual: false
      ### OS: platform: linux; distro: Raspbian GNU/Linux; release: 11; arch: arm; kernel: 6.1.21+
      ### VERSIONS: electron: undefined; used node: 20.8.0; installed node: 20.8.0; npm: 10.1.0; pm2: 5.4.0
      ### OTHER: timeZone: America/New_York; ELECTRON_ENABLE_GPU: undefined
      Starting chromium browser now, have patience, it takes a minute
      Chromium_browser not installed
      

      FYI: There is definitely an internet connection, so we can rule that out. Otherwise I have no idea.

      S 2 Replies Last reply Reply Quote 0
      • S Offline
        sdetweil @davidgagne
        last edited by sdetweil

        @davidgagne yep,

        not my tutorial just one I reference

        see this
        https://forum.magicmirror.builders/topic/15778/fix-for-black-screen-in-2-16-and-later

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        D 2 Replies Last reply Reply Quote 0
        • D Offline
          davidgagne @sdetweil
          last edited by

          @sdetweil Hmmm. Okay. I tried that for the ‘alert’ module but it didn’t seem to have any impact:

          dvg@hyperspace:~/MagicMirror $ cd modules/
          dvg@hyperspace:~/MagicMirror/modules $ ls
          default  MMM-JEOPARDY
          dvg@hyperspace:~/MagicMirror/modules $ cd default/
          dvg@hyperspace:~/MagicMirror/modules/default $ ls
          alert  calendar  clock  compliments  defaultmodules.js  helloworld  newsfeed  updatenotification  utils.js  weather
          dvg@hyperspace:~/MagicMirror/modules/default $ cd alert
          dvg@hyperspace:~/MagicMirror/modules/default/alert $ ls package.json
          ls: cannot access 'package.json': No such file or directory
          dvg@hyperspace:~/MagicMirror/modules/default/alert $ npm init -y
          Wrote to /home/dvg/MagicMirror/modules/default/alert/package.json:
          
          {
            "name": "alert",
            "version": "1.0.0",
            "description": "The alert module is one of the default modules of the MagicMirror². This module displays notifications from other modules.",
            "main": "alert.js",
            "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
            },
            "keywords": [],
            "author": "",
            "license": "ISC"
          }
          
          
          dvg@hyperspace:~/MagicMirror/modules/default/alert $ cd ..
          dvg@hyperspace:~/MagicMirror/modules/default $ cd ..
          dvg@hyperspace:~/MagicMirror/modules $ cd ..
          dvg@hyperspace:~/MagicMirror $ pm2 start MagicMirror
          [PM2] Applying action restartProcessId on app [MagicMirror](ids: [ 0 ])
          [PM2] [MagicMirror](0) ✓
          [PM2] Process successfully started
          ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
          │ id │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
          ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
          │ 0  │ MagicMirror    │ default     │ 2.27.0  │ fork    │ 16303    │ 0s     │ 744  │ online    │ 0%       │ 18.5mb   │ dvg      │ disabled │
          └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
          

          Same result; just a bunch more restarts and nothing appearing. (The Pi desktop is there, though.)

          S 1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @davidgagne
            last edited by

            @davidgagne why alert? it’s the mmm-jeopady module that is missing a library

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • S Offline
              sdetweil @davidgagne
              last edited by

              @davidgagne said in Raspberry Pi Zero 2 W for Magic Mirror:

              async App.start (/home/dvg/MagicMirror/js/app.js:261:3) {
              code: ‘MODULE_NOT_FOUND’,
              requireStack: [
              ‘/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js’,

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              D 1 Reply Last reply Reply Quote 0
              • D Offline
                davidgagne @sdetweil
                last edited by

                @sdetweil So, because I am relentless, I rebooted to see if that would help. It didn’t, but now it looks like I have a different problem altogether:

                cd MagicMirror/
                pm2 start MagicMirror
                [PM2] Spawning PM2 daemon with pm2_home=/home/dvg/.pm2
                [PM2] PM2 Successfully daemonized
                [PM2][ERROR] Script not found: /home/dvg/MagicMirror/MagicMirror
                
                S 1 Reply Last reply Reply Quote 0
                • S Offline
                  sdetweil @davidgagne
                  last edited by

                  @davidgagne pm2 status

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  1 Reply Last reply Reply Quote 0
                  • D Offline
                    davidgagne @sdetweil
                    last edited by

                    @sdetweil Oh. I thought the alert module was also indicating it was missing. Okay, I’ve tried npm init -y inside the MMM-Jeopardy dir, too, now.

                    pm2 status gives me:

                    ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
                    │ id │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
                    ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
                    │ 0  │ MagicMirror    │ default     │ 2.27.0  │ fork    │ 1865     │ 11s    │ 28   │ online    │ 21.4%    │ 38.6mb   │ dvg      │ disabled │
                    └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
                    

                    And now a subsequent pm2 start MagicMirror gives me:

                    [PM2] Applying action restartProcessId on app [MagicMirror](ids: [ 0 ])
                    [PM2] [MagicMirror](0) ✓
                    [PM2] Process successfully started
                    ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
                    │ id │ name           │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
                    ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
                    │ 0  │ MagicMirror    │ default     │ 2.27.0  │ fork    │ 1986     │ 0s     │ 34   │ online    │ 0%       │ 22.6mb   │ dvg      │ disabled │
                    └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
                    

                    But there’s still nothing displaying (aside from the generic Pi OS desktop, I mean).

                    S 1 Reply Last reply Reply Quote 0
                    • S Offline
                      sdetweil @davidgagne
                      last edited by

                      @davidgagne there are more commands after npm init

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      D 2 Replies Last reply Reply Quote 0
                      • D Offline
                        davidgagne @sdetweil
                        last edited by

                        @sdetweil Ah. I see that. But … I don’t think the Jeopardy module is the main problem here. I’d prefer to simply remove that and try to get back to where I can even get MM to run in the first place; then I’ll screw around with adding modules. As it is I still can’t get MM to even run at all (plus all the restarts).

                        1 Reply Last reply Reply Quote 0
                        • D Offline
                          davidgagne @sdetweil
                          last edited by

                          @sdetweil Am I wrong about this? It actually appears that ‘electron’ is the missing module. But that’s not in /modules it’s in /js … Do I follow the same npm init steps to get it?

                          S 2 Replies Last reply Reply Quote 0
                          • S Offline
                            sdetweil @davidgagne
                            last edited by

                            @davidgagne no the electron missing is a problem in MagicMirror code…

                            hang on…

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            1 Reply Last reply Reply Quote 0
                            • S Offline
                              sdetweil @davidgagne
                              last edited by

                              @davidgagne ok, lets clean up and restart

                              all command line commands

                              pm2 flush (to get clear out the old logs) 
                              
                              pm2 status
                              
                              cd ~/MagicMirror
                              npm start 
                              

                              all show work… and if you loaded the missing library in the MMM-Jeopardy module then all should be ok.

                              then ctrl-q on the MM screen should stop it

                              then

                              pm2 restart 0
                              

                              and MM should come back up

                              Sam

                              How to add modules

                              learning how to use browser developers window for css changes

                              D 2 Replies Last reply Reply Quote 0
                              • D Offline
                                davidgagne @sdetweil
                                last edited by

                                @sdetweil Okay! I’m doing this right now and will keep you posted. THANK YOU AGAIN.

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  davidgagne @sdetweil
                                  last edited by

                                  `@sdetweil Sadly that didn’t seem to work at all.

                                  pm2 flush gave me:

                                  [PM2] Spawning PM2 daemon with pm2_home=/home/dvg/.pm2
                                  [PM2] PM2 Successfully daemonized
                                  [PM2] Flushing /home/dvg/.pm2/pm2.log
                                  [PM2] Logs flushed
                                  

                                  Then pm2 status gave me:

                                  ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
                                  │ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
                                  ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
                                  │ 0  │ MagicMirror        │ fork     │ 0    │ online    │ 23.3%    │ 40.3mb   │
                                  └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
                                  

                                  Then I did cd ~/MagicMirror/ and ran npm start which spit out this:

                                  > magicmirror@2.27.0 start
                                  > ./run-start.sh $1
                                  
                                  [2024-05-29 23:08:58.949] [LOG] Starting MagicMirror: v2.27.0
                                  [2024-05-29 23:08:59.437] [LOG] Loading config ...
                                  [2024-05-29 23:08:59.497] [LOG] config template file not exists, no envsubst
                                  [2024-05-29 23:09:07.135] [LOG] Loading module helpers ...
                                  [2024-05-29 23:09:07.356] [LOG] No helper found for module: alert.
                                  [2024-05-29 23:09:36.395] [LOG] Initializing new module helper ...
                                  [2024-05-29 23:09:36.558] [LOG] Module helper loaded: updatenotification
                                  [2024-05-29 23:09:36.688] [LOG] No helper found for module: clock.
                                  [2024-05-29 23:10:00.038] [LOG] Initializing new module helper ...
                                  [2024-05-29 23:10:00.109] [LOG] Module helper loaded: calendar
                                  [2024-05-29 23:10:00.684] [ERROR] Whoops! There was an uncaught exception... 
                                  [2024-05-29 23:10:01.570] [ERROR] Error: Cannot find module 'request'
                                  Require stack:
                                  - /home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js
                                  - /home/dvg/MagicMirror/js/app.js
                                  - /home/dvg/MagicMirror/serveronly/index.js
                                      at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
                                      at Module._resolveFilename (/home/dvg/MagicMirror/node_modules/module-alias/index.js:49:29)
                                      at Module._load (node:internal/modules/cjs/loader:901:27)
                                      at Module.require (node:internal/modules/cjs/loader:1115:19)
                                      at require (node:internal/modules/helpers:130:18)
                                      at Object.<anonymous> (/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js:8:17)
                                      at Module._compile (node:internal/modules/cjs/loader:1241:14)
                                      at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
                                      at Module.load (node:internal/modules/cjs/loader:1091:32)
                                      at Module._load (node:internal/modules/cjs/loader:938:12)
                                      at Module.require (node:internal/modules/cjs/loader:1115:19)
                                      at require (node:internal/modules/helpers:130:18)
                                      at loadModule (/home/dvg/MagicMirror/js/app.js:183:19)
                                      at loadModules (/home/dvg/MagicMirror/js/app.js:213:10)
                                      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                                      at async App.start (/home/dvg/MagicMirror/js/app.js:261:3) {
                                    code: 'MODULE_NOT_FOUND',
                                    requireStack: [
                                      '/home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js',
                                      '/home/dvg/MagicMirror/js/app.js',
                                      '/home/dvg/MagicMirror/serveronly/index.js'
                                    ]
                                  } 
                                  [2024-05-29 23:10:01.664] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection? 
                                  [2024-05-29 23:10:01.745] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MagicMirrorOrg/MagicMirror/issues 
                                  [2024-05-29 23:12:53.308] [INFO] System information:
                                  ### SYSTEM: manufacturer: Raspberry Pi Foundation; model: Raspberry Pi Zero W Rev 1.1; raspberry: [object Object]; virtual: false
                                  ### OS: platform: linux; distro: Raspbian GNU/Linux; release: 11; arch: arm; kernel: 6.1.21+
                                  ### VERSIONS: electron: undefined; used node: 20.8.0; installed node: 20.8.0; npm: 10.1.0; pm2: 5.4.0
                                  ### OTHER: timeZone: America/New_York; ELECTRON_ENABLE_GPU: undefined
                                  Starting chromium browser now, have patience, it takes a minute
                                  Chromium_browser not installed
                                  

                                  This all seemed pointless, but I ran pm2 restart 0 anyway and got this:

                                  Use --update-env to update environment variables
                                  [PM2] Applying action restartProcessId on app [0](ids: [ '0' ])
                                  [PM2] [MagicMirror](0) ✓
                                  ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
                                  │ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
                                  ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
                                  │ 0  │ MagicMirror        │ fork     │ 47   │ online    │ 0%       │ 23.5mb   │
                                  └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
                                  

                                  At this point I’m going to give up and go back to square one and flash the drive again and start over. Ugh.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    sdetweil @davidgagne
                                    last edited by

                                    @davidgagne said in Raspberry Pi Zero W for Magic Mirror:

                                    024-05-29 23:10:01.570] [ERROR] Error: Cannot find module ‘request’
                                    Require stack:

                                    • /home/dvg/MagicMirror/modules/MMM-JEOPARDY/node_helper.js

                                    no… just fix the MMM-Jeopardy module as I suggested yesterday

                                    two steps
                                    you only did 1

                                    … the more concerning part is that pm2 didn’t get setup as a service and start on boot… i haven’t looked at the log yet

                                    Sam

                                    How to add modules

                                    learning how to use browser developers window for css changes

                                    S D 2 Replies Last reply Reply Quote 0
                                    • S Offline
                                      sdetweil @sdetweil
                                      last edited by

                                      @davidgagne the install log looks good…

                                      don’t know what is going on… will have to think on it while I sleep…

                                      time to rest… til tomorrow

                                      Sam

                                      How to add modules

                                      learning how to use browser developers window for css changes

                                      1 Reply Last reply Reply Quote 0
                                      • D Offline
                                        davidgagne @sdetweil
                                        last edited by

                                        @sdetweil I understand what you’re saying about fixing the Jeopardy module, but I really think that’s secondary to not getting MM to run in the first place (and it not starting as a service on boot). Once I get MM running reliably in the first place I will play around with modules. :-)

                                        1 Reply Last reply Reply Quote 0
                                        • D Offline
                                          davidgagne
                                          last edited by

                                          How to Get MagicMirror to Run on a Raspberry Pi Zero W Rev 1.1

                                          Late-May 2024

                                          Huge thanks to @sdetweil for all his help!


                                          1. Flash card with Legacy 32-bit.
                                          2. Connect via ssh to run script:
                                            bash -c  "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/raspberry.sh)"
                                            

                                            Answer yes to disable screen saver and use pm2 questions.

                                          3. Remove chromium with:
                                            sudo apt-get remove chromium-browser
                                            sudo apt autoremove
                                            
                                          4. Add Firefox with:
                                            sudo apt-get update
                                            sudo apt-get install firefox-esr
                                            
                                          5. Enable VNC using GUI (Interface Options):

                                            sudo raspi-config

                                          6. Connect via TigerVNC (Apple app)
                                          7. Edit installers/mm.sh via VNC using Pi's baked-in text editor by adding:
                                            cd ~/MagicMirror
                                            export external_browser=firefox
                                            DISPLAY=:0 npm start
                                            
                                          8. Execute fix'em-up script:
                                            bash -c "$(curl -sL https://raw.githubusercontent.com/sdetweil/MagicMirror_scripts/master/fixuppm2.sh)"
                                            
                                          9. cd ~/MagicMirror/
                                            pm2 start MagicMirror
                                            
                                          10. sudo reboot

                                          Note: On my Pi Zero W it takes a solid ten minutes from reboot to actually seeing MM output via HDMI.

                                          S C plainbrokeP 4 Replies Last reply Reply Quote 1
                                          • S Offline
                                            sdetweil @davidgagne
                                            last edited by sdetweil

                                            @davidgagne thanks.

                                            5 and 6 are optional
                                            as 7 can be done with nano over ssh

                                               scroll down with keyboard arrow keys
                                               hit enter to add a line
                                               type the export line
                                               ctrl-x to exit nano, yes to save contents
                                            

                                            8 and 9 over ssh
                                            9 pm2 can be run from any folder location

                                            Sam

                                            How to add modules

                                            learning how to use browser developers window for css changes

                                            D 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • 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