Decodificare videocitofono ELVOX con Arduino

Sto provando di decodificare il bus del video citofono, ho fatto delle analisi con l’oscilloscopio che riporto qua.

Il segnale è modulato sopra l’alimentazione a 2 fili, la forma d’onda acquisita con l’oscilloscopio in modalità AC è questa:

Immagine che contiene schermata, testo, Software multimediale, Software per la grafica  Il contenuto generato dall'IA potrebbe non essere corretto.

Dal momento in cui il dispositivo si accende passano circa 50 ms, poi c’è un treno di impulsi di cui il primo è quello più lungo di sincronismo che dura 20 ms.

Immagine che contiene testo, schermata  Il contenuto generato dall'IA potrebbe non essere corretto.

L’ampiezza è di 1.7 Vpp e la frequenza è di cica 62 KHz.

La durata totale è di 117 ms, ogni bit sembra durare 590 us. Da queste informazioni si può pensare a questo messaggio:

Immagine che contiene testo, schermata, Software multimediale, Software per la grafica  Il contenuto generato dall'IA potrebbe non essere corretto.Immagine che contiene testo, schermata, Software multimediale, Software per la grafica  Il contenuto generato dall'IA potrebbe non essere corretto.

Sembra che la durata di uno zero o di un uno sia sempre 526 uS che quindi vuol dire una velocità di 1900 bit per secondo. Una misura più precisa porta a dire che potrebbero essere 500 us, da cui uscirebbero 2000 bit/s

Da qui il messaggio sembra essere :

Immagine che contiene schermata, testo, Software per la grafica, Software multimediale  Il contenuto generato dall'IA potrebbe non essere corretto.Immagine che contiene testo, schermata, Software per la grafica, Software multimediale  Il contenuto generato dall'IA potrebbe non essere corretto.

Cioè:

0000 1000 1110 1110 1110 1000 1000 1000 1000 1000

1110 1000 1000 1000 1110 1110 1110 1110 1000 1000

1000 1000 1000 1110 1110 1110 1000 1000 1000 1110

1110 1000 1000 1110 1000 1000 1110 1000 1000 1000

1000 1000 1110 1000 1000 1110 1000 1110 1000 1000

Considerando il gruppo 0000 come preambolo, allora verrebbe

0111 0000 0100 0111 1000 0011 1000 1100 1001 0000 0100 1010 0

Sembrano essere 6 byte, l’ultimo zero non conta (credo).

Adesso devo capire come fare con Arduino a leggere questo, probabilmente devo fare uno stadio di ingresso con un PLL per agganciare solo questa frequenza, non so se riesce a fare una cosa diretta senza altro hardware. Pensavo di usare un LM567. Idee?

Notevole studio…. Complimenti !!!