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). 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). 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. 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. 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!

Kod och Schema kommer i nästa post.