Read the statement by Michael Teeuw here.
MMM-Navigate, Navigation inside MagicMirror with Rotary Encoder
-
@AxLED
I bought some new Rotary Encoders and with each one i had the same result. No press result will send, when i press the button :-( !But when i put cw or cww on pin 19, the press signal will send when i turn cw or cww.
I tried other Pins for the press Signal, but it also doesn´t work.
I am confused…! Any ideas what i can try to solve my Problem?
Greets
Eisblume -
@Eisblume
So the pin is correct. Some ideas.
Press contains two operations, pressing and release. Did you try press and release in different speeds?
How long are your cables between rotary and pi? Could also be a debouncing problem. Which pi are you using? (I tested the module on pi 1 and pi 3).
AxLED -
@AxLed
I use a Raspberry Pi 3 b+. The F2F cables between the rotary and the pi are 20cm long.
I tried different speeds for pressing and releasing.When i debug the code, no action arrives when i press the button.
Is it possible that there are problem with other modules I use ??
Eisblume
-
@Eisblume
Conflicts with other modules are possible, but i dont think so, because press on cw/ccw works. You can try to change debounce time in node helper (i think, i am not sure about as i am on the road right now). I will check for the final line in node helper and let you know if i am in front of my computer.
AxLED -
@Eisblume
I found the line in node_helper.js, its line 35const C = new Gpio(self.config.GPIOPins[2], 'in', 'both',{debounceTimeout : 20 }); //BCM Pin 19
Here you can try to increase/reduce the debounceTimeout between 10 and 50 (in steps of 10) and see if there is a difference for your “pressed” problem.
AxLED
-
@AxLed
I tried every very with different press speed. It doesn’t work. No press Signal will be sent :-(I don´t understand why cw and cww works fine, but not the press - Button?
Edit:
I test the Rotary with this: https://github.com/martinohanlon/KY040
Here the press button works fine.pi@raspberrypi:~/EncoderTest/KY040/examples $ python python3.py
turned - 0
turned - 0
turned - 1
turned - 1
button pressed
button pressed
button pressed
button pressed
button pressed
button pressed -
@Eisblume
Please post your config and make sure your private keys are x-ed. So i can try to copy your setup to my test pi and maybe find out whats the reason. That your rotary encoder generally works is good to know.
AxLED -
Ok, thanks @AxLed !!
config.js:
/* Magic Mirror Config Sample * * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. * * For more information how you can configurate this file * See https://github.com/MichMich/MagicMirror#configuration * */ var config = { address: "0.0.0.0", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "", "0.0.0.0", "::" to listen on any interface // Default, when address config is left out, is "localhost" port: 8080, ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.1/120", "192.168.1.1/24"], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], language: "de", timeFormat: 24, units: "metric", modules: [ { module: "alert", }, { module: "clock", position: "top_left" }, { module: "MMM-Navigate", header: "Navigation", position: "top_left", config: { Alias: [ 'Seiten blättern', 'News (mehr/weniger Details)', 'Test notification', 'News - mehr Details', 'News - weniger Details', 'Neustart MagicMirror (PM2)', 'Neustart', 'Herunterfahren' ], Action: [ [{notification:'PAGE_INCREMENT',payload:''},{notification:'PAGE_DECREMENT',payload:''}],//action array, first press locks menu, after this rotation CW/CCW executes, second press release lock mode [{notification:'ARTICLE_MORE_DETAILS',payload:''},{notification:'ARTICLE_LESS_DETAILS',payload:''}], {notification: "SHOW_ALERT", payload: {type:"notification",message:"Dies ist eine Testnachricht"}},//single action, execute on press {notification:'ARTICLE_MORE_DETAILS',payload:''}, {notification:'ARTICLE_LESS_DETAILS',payload:''}, {notification: "REMOTE_ACTION", payload: {action: "RESTART"}}, {notification: "REMOTE_ACTION", payload: {action: "REBOOT"}}, {notification: "REMOTE_ACTION", payload: {action: "SHUTDOWN"}} ], GPIOPins: [26,20,19]//rotary cw, rotary ccw, rotary press (BCM Numbering) }, }, { module: 'MMM-Remote-Control', // uncomment the following line to show the URL of the remote control on the mirror // , position: 'bottom_left' // you can hide this module afterwards from the remote control itself config: { customCommand: {}, // Optional, See "Using Custom Commands" below customMenu: "custom_menu.json", // Optional, See "Custom Menu Items" below showModuleApiMenu: true, // Optional, Enable the Module Controls menu apiKey: "" // Optional, See API/README.md for details } }, { module: "updatenotification", position: "top_bar" }, { module: "calendar", header: "Familie Reetz", position: "top_left", config: { calendars: [ { symbol: "calendar-check", url: "webcal://pxxxxxxm/xxxxxxxKSw_tdQ8WGeTZVjgr6Vwn1HDxxxxxxx5OuupPnKOIExxxx" } ] } }, // { // module: "compliments", // position: "lower_third" // }, { module: "currentweather", position: "top_right", config: { location: "xxxx", locationID: "xxx", //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city appid: "xxxxx" } }, { module: "weatherforecast", position: "top_right", header: "Wettervorhersage", config: { location: "xxxx", locationID: "xxxx", //ID from https://openweathermap.org/city appid: "xxxxx" } }, { module: "newsfeed", position: "bottom_bar", config: { feeds: [ { title: "Tagesschau", url: "http://www.tagesschau.de/xml/rss2" //url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml" } ], showSourceTitle: true, showPublishDate: true } }, { module: "MMM-Fuel", position: "bottom_left", config: { api_key: "xxxxx", lat: 123456, lng: 654321, types: ["diesel"], radius: 15, max: 3 } }, { module: 'MMM-Dreambox', header: 'Vu+ Ultimo4K powered by VTi', position: 'bottom_right', config: { apiBase: 'http://192.168.1.50:90', //omxargs: ' --vol -6000 --win 0,625,590,957 --live ', omxargs: ' --win 600,60,1490,940 -o both ', refreshInterval: 1000 * 30, //refresh every 30 seconds apibouquet: 0, //bouquet, if there is more than one under apiservices (/web/getallservices), apiRecordingsID: 0, //which recording folder should be listed listmax: 10, apiabout: '/web/about', apiservices: '/web/getallservices', apiepgnow: '/web/epgnow?bRef=', apizap: '/web/zap?sRef=', apiTimerlist: '/web/timerlist', apiServicelistplayable: '/web/servicelistplayable?sRef=', apiLocations: '/web/getlocations', //where are the recording folders listed apiMovielist: '/web/movielist?dirname=' //link for opening recording folder and list recordings } }, ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;}
-
@Eisblume
I tested wih modules of your config.My testconfiguration:
- Raspberry Pi 1
- MagicMirror v2.7.1
- npm v6.8.0
- node v8.9.0
- no electron (as i dont run/installable on Pi 1), i run
node serveronly
- display: Webbrowser
My rotary encoder works as follows:
Seite blättern
(press works and gives a red frame an a lock sign, cw an ccw dont work, as MMM-Pages isnt part of your config)News (mehr/weniger Details)
(press works and gives a red frame an a lock sign, cw an ccw works)Test notification
(press works, no cw or ccw functionality by design)News - mehr Details
(press works, no cw or ccw functionality by design)News - weniger Details
(press works, no cw or ccw functionality by design)Neustart MagicMirror (PM2)
(dont work in my testconfiguration, as i dont use PM on RPI1)Neustart
(press works, there is a pop up notification to press twice for reeboot, requires MMM-Remote-Control)Herunterfahren
(press works, there is a pop up notification to press twice for shutdown, requires MMM-Remote-Control)
Two ideas:
- wrong cabeling, here are the 3 pins for CW, CW and PRESS of your config.js (
GPIOPins: [26,20,19]
)
- messed up setup, try to save your config and reinstall raspian an MM
Greets
AxLED
-
Thank you so much for your help. But It still doesn’t work.
The cabeling is correct I checked it many times ;-)
The crazy thing is, when I remove ground, the press button works, but not the cw and cww.
I think, I will try a clean reinstall on my RPi3.