Op het moment ben ik bezig met een poging om een set draadloze energiemeters aan te sluiten op de computer. De set (Voltcraft EnergyCount 3000) bestaat uit draadloze meters en een ontvanger. Deze ontvanger bestaat uit twee chips (blobs, uC en transciever) die via een SPI interface met elkaar praten. Deze interface heb ik afgetapt en wil ik gebruiken om het protocol te achterhalen om later de boel aan te kunnen sturen via de computer.
Het probleem zit hem in het decoderen van de communicatie. Waar ik zover achter gekomen ben:
De transciever wordt eerst ingesteld door de uC door het versturen van een reeks bytes. Deze bytes zijn gegroepeerd in paren. Aan de hand van de configuratiebytes ben ik er nog niet achter gekomen welke chip het kan zijn. Hier ben ik nog mee bezig. De configuratiebytes zijn als volgt: 8282 8283 91AC A0A1 A2A3 8694 9596 97A8 A9BF C0C1 C2C3 9088 BBBC B8B9 BAC4 C5C6 F2F3 FDC7 F8F9 FA92 FC8C AE82 82F4 AD2D 8205. Deze bytes zijn altijd hetzelfde.
Het grote probleem is de data; waar vind ik die? Als ik de data uit de transciever uitlees ontvang ik het data gebaseerd op '5' en op '7'. Waarbij de '5' data ook ontvangen wordt als er geen meters gevonden worden, daar zit dus geen echte data in. De data bestaat uit de volgende mogelijkheden:
0x50 (komt heel vaak voor, opvulling?)
0x51 0x0Y, met Y een waarde tussen 0 and 7. (Octale data?)
0x53 0xF0 (komt af te toe voor, iets van een terminator?)
0x58 (komt in groepen voor, maar niet altijd)
0x5B 0xF0 (terminator denk ik, komt alleen voor na 0x58)
0x70
0x71 0x0Y, met Y een waarde tussen 0 and 7. (Octale data?)
0x73 0xF0 (komt af te toe voor, iets van een terminator?)
0x78 (komt in groepen voor, maar niet altijd)
0x7B 0xF0 (terminator denk ik, komt alleen voor na 0x78)
Ik heb geprobeerd om logica te vinden in de waardes Y. Deze lijken echter compleet willekeurig te zijn. Wanneer ik een meter reset en deze uitlees, hem weer reset en weer uitlees krijg ik compleet andere data.
En nu zit ik vast, hoe ga ik nu verder? Wat kan ik doen om er achter te komen hoe ik met de chips kan communiceren?
Het probleem zit hem in het decoderen van de communicatie. Waar ik zover achter gekomen ben:
De transciever wordt eerst ingesteld door de uC door het versturen van een reeks bytes. Deze bytes zijn gegroepeerd in paren. Aan de hand van de configuratiebytes ben ik er nog niet achter gekomen welke chip het kan zijn. Hier ben ik nog mee bezig. De configuratiebytes zijn als volgt: 8282 8283 91AC A0A1 A2A3 8694 9596 97A8 A9BF C0C1 C2C3 9088 BBBC B8B9 BAC4 C5C6 F2F3 FDC7 F8F9 FA92 FC8C AE82 82F4 AD2D 8205. Deze bytes zijn altijd hetzelfde.
Het grote probleem is de data; waar vind ik die? Als ik de data uit de transciever uitlees ontvang ik het data gebaseerd op '5' en op '7'. Waarbij de '5' data ook ontvangen wordt als er geen meters gevonden worden, daar zit dus geen echte data in. De data bestaat uit de volgende mogelijkheden:
0x50 (komt heel vaak voor, opvulling?)
0x51 0x0Y, met Y een waarde tussen 0 and 7. (Octale data?)
0x53 0xF0 (komt af te toe voor, iets van een terminator?)
0x58 (komt in groepen voor, maar niet altijd)
0x5B 0xF0 (terminator denk ik, komt alleen voor na 0x58)
0x70
0x71 0x0Y, met Y een waarde tussen 0 and 7. (Octale data?)
0x73 0xF0 (komt af te toe voor, iets van een terminator?)
0x78 (komt in groepen voor, maar niet altijd)
0x7B 0xF0 (terminator denk ik, komt alleen voor na 0x78)
Ik heb geprobeerd om logica te vinden in de waardes Y. Deze lijken echter compleet willekeurig te zijn. Wanneer ik een meter reset en deze uitlees, hem weer reset en weer uitlees krijg ik compleet andere data.
En nu zit ik vast, hoe ga ik nu verder? Wat kan ik doen om er achter te komen hoe ik met de chips kan communiceren?
Geluk is een weerloos oud vrouwtje, alleen op straat met een bom geld