RPi2 BugFix: KaKu Lampen
Met de nieuwe RPI 2 was het (nog) niet mogelijk om de tutorial van tweaker WeetJeWel te gebruiken waarmee je de lampen in je huis via de RPI kan schakelen. Ik ben even in de code gedoken om te kijken of ik het kon oplossen en dat is gelukt
. Voor de oplossing; scroll naar einde van deze post...
Probleem
Het probleem ligt hem erin dat de micro seconden delay functie niet goed werkt op de RPI2. Wanneer je 190 microseconden delay wilt (=190uS), krijg je 19 milli seconden (=19mS). Zie afbeelding hieronder:

Door deze fout is de transmit timing van de transmitter ongeldig geworden voor de ontvangers. Na de aanpassing in de code is de timing weer correct, zie afbeelding hieronder:

De aanpassing is mogelijk gemaakt door de code van WeetJeWel aan te passen. Ik heb de delay routines vervangen voor hardcoded delay routines. Waarschijnlijk minder efficiënt omdat het blocking delays zullen zijn, maar het werkt wel weer
.
Oplossing
Omdat ik geen kopieermachine wil zijn van de tutorial van WeetJeWel plaats ik hier alleen hetgene wat je anders moet doen in zijn tutorial. De rest blijft hetzelfde.
Bij stap 3 van WeetJeWel moet je voor de RPI 2 dit
vervangen voor
Overigens werkt bovenstaande ook voor de "oudere" Rpi's. Ik heb het getest op Action ontvangst modulen. Willen jullie laten weten of het bij jullie ook werkt?
En ik ga nú slapen want heb nu al veels te lang met de RPI zitten spelen

edit 2017-09-12
Blijkbaar werkte de dropbox link niet meer, geupdate. zou nu weer moeten werken!

Probleem
Het probleem ligt hem erin dat de micro seconden delay functie niet goed werkt op de RPI2. Wanneer je 190 microseconden delay wilt (=190uS), krijg je 19 milli seconden (=19mS). Zie afbeelding hieronder:

Door deze fout is de transmit timing van de transmitter ongeldig geworden voor de ontvangers. Na de aanpassing in de code is de timing weer correct, zie afbeelding hieronder:

De aanpassing is mogelijk gemaakt door de code van WeetJeWel aan te passen. Ik heb de delay routines vervangen voor hardcoded delay routines. Waarschijnlijk minder efficiënt omdat het blocking delays zullen zijn, maar het werkt wel weer

Oplossing
Omdat ik geen kopieermachine wil zijn van de tutorial van WeetJeWel plaats ik hier alleen hetgene wat je anders moet doen in zijn tutorial. De rest blijft hetzelfde.
Bij stap 3 van WeetJeWel moet je voor de RPI 2 dit
code:
1
| wget -O lights.zip https://www.dropbox.com/s/nxdrkuk94w9fpqo/lights.zip?dl=1 |
vervangen voor
code:
1
| wget -O lights.zip https://www.dropbox.com/s/f7yh3dig68rtaws/20150702V1-lights.zip?dl=0 |
Overigens werkt bovenstaande ook voor de "oudere" Rpi's. Ik heb het getest op Action ontvangst modulen. Willen jullie laten weten of het bij jullie ook werkt?
En ik ga nú slapen want heb nu al veels te lang met de RPI zitten spelen


edit 2017-09-12
Blijkbaar werkte de dropbox link niet meer, geupdate. zou nu weer moeten werken!
03-'15 Sonos PLAY:1 mods
12-'14 Drukke dagen
Reacties
"Het probleem ligt hem erin dat de micro seconden delay functie niet goed werkt op de RPI2."
Enig idee waardoor dat komt? (Ontwerp)foutje in de hardware of is dit een softwarefout?
Enig idee waardoor dat komt? (Ontwerp)foutje in de hardware of is dit een softwarefout?

[Reactie gewijzigd op zondag 8 februari 2015 10:14]

Deze delay functie is onderdeel van de WiringPi library. De maker van WiringPi geeft aan dat voor delays groter dan 100uS hij een library gebruikt van het OS (linux, Wheezy).Raven schreef op zondag 08 februari 2015 @ 10:03:
"Het probleem ligt hem erin dat de micro seconden delay functie niet goed werkt op de RPI2."
Enig idee waardoor dat komt? (Ontwerp)foutje in de hardware of is dit een softwarefout?
Er gaat dus iets mis tussen WiringPi en het OS. Het valt wel op dat de vertraging precies een factor 100x groter is. Het kan een programmeerfout zijn of omdat de nieuwe Linux hardware multicore is / andere processor heeft en dat daardoor de timing routines voor deze nauwkeurigheid niet meer correct werken.
Als je dit echt zou willen oplossen, zou je in de wiringpi library moeten beginnen door te kijken welke OS call er gebruikt wordt voor de microsecond delay

Ik wil binnenkort een video maken hoe je dit zo simpel mogelijk verwezenlijkt op een rpi2. Vind je goed als ik jouw source hiervoor hergebruik?

hallo,
help!
heeft iemand voor mij een werkende image met de webinterface software ook erop? heb het hard nodig voor school en de handleiding werkt niet! ik heb een elro wat wel werkt met een command intypen(./elro 1 A on) op de raspberry zelf, maar als ik de webinterface wil gaan gebruiken gebeurt er niks. ik heb de raspberry B+ en de 2 B. als iemand een werkende image heeft, stuur dan een mailtje naar stijntjuh@outlook.com
alvast bedankt!
help!
heeft iemand voor mij een werkende image met de webinterface software ook erop? heb het hard nodig voor school en de handleiding werkt niet! ik heb een elro wat wel werkt met een command intypen(./elro 1 A on) op de raspberry zelf, maar als ik de webinterface wil gaan gebruiken gebeurt er niks. ik heb de raspberry B+ en de 2 B. als iemand een werkende image heeft, stuur dan een mailtje naar stijntjuh@outlook.com
alvast bedankt!
Fantastische oplossing! dank!
Een werkende image is al gauw 4gbStijn.Johan schreef op zondag 08 februari 2015 @ 13:40:
hallo,
help!
heeft iemand voor mij een werkende image met de webinterface software ook erop? heb het hard nodig voor school en de handleiding werkt niet! ik heb een elro wat wel werkt met een command intypen(./elro 1 A on) op de raspberry zelf, maar als ik de webinterface wil gaan gebruiken gebeurt er niks. ik heb de raspberry B+ en de 2 B. als iemand een werkende image heeft, stuur dan een mailtje naar stijntjuh@outlook.com
alvast bedankt!

Volg de tutorial van WeeJeWel en deze voor de webinterface en je bent binnen 2 uur klaar.
Maybe, just maybe, someone cares.: Lampen schakelen met je smartphone & een Raspberry Pi
Wauw heb nog nooit iemand gezien die zo simpel zn project wil hebbenStijn.Johan schreef op zondag 08 februari 2015 @ 13:40:
hallo,
help!
heeft iemand voor mij een werkende image met de webinterface software ook erop? heb het hard nodig voor school en de handleiding werkt niet! ik heb een elro wat wel werkt met een command intypen(./elro 1 A on) op de raspberry zelf, maar als ik de webinterface wil gaan gebruiken gebeurt er niks. ik heb de raspberry B+ en de 2 B. als iemand een werkende image heeft, stuur dan een mailtje naar stijntjuh@outlook.com
alvast bedankt!
Je kan ook de pilight gebruiken. Dan heb je ondersteuning voor Raspberry Pi 1 + 2, Hummingboard, BananaPi, een hele zooi ondersteunde apparaten, webGUI, Android apps, eventing enz. Allemaal via pure Raspberry Pi GPIO 

[Reactie gewijzigd op dinsdag 24 februari 2015 23:21]
Reageren is niet meer mogelijk