Programera handkontroll till trådlösa strömbrytare från C-O

Berätta om dina pågående projekt.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Programera handkontroll till trådlösa strömbrytare från C-O

Inlägg av RoPa »

Hej,

Jag har länge irriterat mig på att handkontrollerna till de billiga trådlösa strömbrytarna som säljs på Jula, Classe med flera inte går att ställa om kanal på som på de lite dyrare Waveman till exempel.

Jag öppna den handkontroll och blev överraskad av den höga kvaliteten på innandömet och fick iden att försöka programera om den (bortlödd på bilden).
20120428_113241.jpg
Det var dock ingen framkomlig väg då MCU'n inte gick att spåra. Då jag tidigare använt PIC till lite saker så letade jag reda på en som var så lik som möjligt i pinout och landade på 16F630. Den är två pinnar mindre i kapseln men de flesta pinnarna stämde bra. Sagt och gjort, MCU bort, modda lite banor och i med en sockel för PIC'en (bilder nedan).
20120428_114556.jpg
20120428_122015.jpg
20120428_124405.jpg
20120428_124422.jpg
Att programera PIC och flytta fram och tillbaka blev jobbigt så jag kopplade ihop till en liten testmiljö, då fick jag även fler dioder att blinka med i testerna.
20120801_234251.jpg
Nu var det bara att börja programera.
RF koderna hade jag kartlagt och dekodat, två byte i kanal kod en nibble CRC och en nibble komando kod.
Hittade en CRC process på nätet men den visade sig inte stämma till 100% så jag fick dekodera CRC genereringen genom brute force... inte det roligaste. Till slut fick jag ut nästan alla kanalers CRC och fick ihop en CRC funktion som klarar alla utom en bit men jag nöjer mig med 32K kanaler... Det finns en sorts "code violation" i CRC'n och det är nog den som inte blev helt rätt.
Till detta tog jag hjälp av ett tidigare testkort med RS-232 serieport så jag kunde få en text konsol att ange kanaler + CRC värden via.
20120801_234132.jpg
Efter mycket om och men blev programmet klart men det ville inte få plats i 1K i en 16F630 så det fick bli ett byte till 16F616 som har 2K men i övrigt lika (koden är under 1K men den vill ändå inte länkas in).
Vid sluttester visade det sig att "sleep" läget drog för mycket ström, batteriet skulle ta slut för fort. :(
Efter ha postat en fråga här på forumet så rusade hjälpsamma kamrater till och så löste sig även det! :D

Kod och Schema kommer i nästa post.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av sodjan »

Aha, det var *det* som den var tänkt till ! :-)

En liten, liten detalj bara...

> Det finns en sorts "code violation" i CRC'n och det är nog den som inte blev helt rätt.

Inte "code validation" ?
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av RoPa »

Nej, faktiskt inte.
Om de två lägsta bitarna i kanal numret är ettor så adderas koden med värdet 4 och om det ger byte carry på byten så sätts byten till 12h (fråga inte varför men det fungerar så) se bifogad kod.
Hittade lite kod av micke.prag@... här http://developer.telldus.se/browser/tel ... bdd6d5641c
Det "violates" den CRC kod man skulle fått om kanal nummret matades in i CRC generatorn som alla andra kanal nummer. Utan denna "violation" så fungerar inte var fjärde kanal... (alla med bitarna xxxxxx11 i låga byten).

Schema får vänta till i morgon.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av RoPa »

Och här kommer ett schema över den bit som är intressant, PIC och tangenterna.
RF handkontroll.pdf
Funktionen i koden är att ge mig kontroll över åtta kanaler.

Handhavande:
* Tryck på en eller flera kanal knappar, tryck därefter på On eller Off --> Kontrollen skickar då ut motsvarande kommandon.
* Tryck två gånger på On --> Kontrollen skickar komando On till alla åtta kanalerna (alla på)
* Tryck två gånger på Off --> Kontrollen skickar komando Off till alla åtta kanalerna (alla av)
* Tryck en gång på On, tryck därefter på Off, tryck därefter på en kanal --> Kontrollen skickar Bind kommando på den kanalen (håll först in learning code knappen på strömbrytaren)
* Tryck en gång på Off, tryck därefter på On, tryck därefter på en kanal --> Samma funktion som ovan

Vill man ha annan funktion är det bara att ändra logiken i programmet som skapar kommando strängen.

Har man tillgång till andra fabrikats protokoll kan man inkludera dessa.

Hårdvaran är modulär som ni ser ovan så om man vill kan man t.ex. byta RF modulen till annan frekvens eller till en IR.

Hoppas att det ska komma till nytta för någon. :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av Lennart Aspenryd »

Jag har länge haft funderingar på att utnyttja de material som redan finns Har mest kollat in Nexa!
Mycket intressant må jag säga.
Får studera och återkomma med frågor. :humm:
Användarvisningsbild
MiaM
Inlägg: 12882
Blev medlem: 6 maj 2009, 22:19:19

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av MiaM »

Intressant! Antar att du gör det här på alla fjärrkontrollerna, eller låter du en vara orginal och lär dina ombyggda efter den?

En idé för nån annan som ger sig på liknande projekt kan väl för övrigt vara att försöka leta reda på en fjärrkontroll som kör 9V-batteri istället för en som kör 12V-batteri och bygga om den. Jag har slutat använda wavemangrejerna i lägenheten för det är så tröttsamt att köpa batterier och jag har inte heller orkat dra kabel från nån annan 12V-källa (hej klockradion...) till fjärren...



De där fjärrkontrollerna verkar slumpa koder varje gång de nollställs.

Undrar om det skulle vara möjligt att tvinga dem att slumpa samma kod varje gång, d.v.s. typ dra i eventuell resetpinne på ett mer kontrollerat sätt (typ starta med reset *ej* dragen, och sen dra den ett exakt antal klockpulser styrt av fjärrens kristall). Det skulle ju kunna bli en add-on med typ en 4040 och kanske nån mer krets.
RoPa
Inlägg: 630
Blev medlem: 13 januari 2006, 10:32:06

Re: Programera handkontroll till trådlösa strömbrytare från

Inlägg av RoPa »

Jag har byggt om två kontroller hittils, med samma åtta koder i. Har inte tagit samma koder som de andra befintliga handkontrollerna men det skulle gå bra så länge de inte har koder i det intervall som min CRC check inte klarar.

Startpunkten för mina tankar var att kunna ha flera kontroller i samma rum, typ en vid soffan och en vid matplatsen, som kan styra samma lampor och att kunna styra fler än fyra lampor från en kontroll.

Den typ jag har "Everflourish" som säljs ac c-O har handkrontroller med fatsa koder och olika i "alla" enheter (dubletter förekommer säkert då antalet koder är begränsat). De byter inte koder vid batteri byte så har man programerat en mottagare på en kanal så är den kvar.

De pyttiga 12V batteriet är kasst, 2uA stdb. är inte mycket men dygnet runt så blir det en del och RF delen skulle gå utmärkt att köra på 9V, dock måste ju handkontrollen bli en anaingen stärre för att få plats med det.

Nästa steg i detta projekt är att använda det överblivna 1K minnet till ett litet RS-232 gränssnitt och koppla in en handkontroll till ett styrprogram i en dator för att kunna automatisera. "varför köpa när man kan bygga?" :wink:

En annan ide är att i stället för att ha åtta kanaler ha åtta "profiler" på godtyckligt antal kanaler.
Då tänker jag mig att via en IR serieport på enheten (måste moddas in men det finns plats) skjuta in åtta sekvenser med Ch on/off för olika sekvenser. Kräver enbart enkelriktad kommunikation. Dessa lagras sedan i EEPROM, kan lösas utan serieport om man kopplar in ISP och skriver till EEPROM.

Finns det kontroller som tar 9V batterier?
Skriv svar