Table des matières

Cyble RF 433Mhz installé par ma communauté de commune

Le module radio fréquence Actaris pour compteur d’eau : un outil fiable, compact et intelligent pour la relève à distance, du réseau de distribution à l’habitat collectif. Module de communication radio compact compatible RADIAN™ totalement étanche, Cyble RF s’installe très facilement, sur site ou en usine, aussi bien sur un compteur d’eau froide que d’eau chaude. Sa pose sur site ne nécessite ni câblage ou fixation murale, ni dépose ou déplombage du compteur. Spécialement conçu pour résister aux environnements difficiles, Cyble RF est adapté à toutes les conditions rencontrées, du regard inondé à la gaine technique. Ses nombreuses fonctions intelligentes permettent, en complément du relevé d’index, d’obtenir :

protocole RADIAN

issue de web.archive.org

The Radian Protocol

A two-way 433 Mhz Radio Protocol

Radian Protocol is designed for all applications in water, electricity, gas and heat meter reading and data transmitting. Its two way caracteristics allows developed service solutions, including information exchange with final user.

reliability 	
  physical layer : FSK modulation, narrow band
  Logical Link Layer : packet numbering
two ways, half duplex, data transmission 	
relaying capability 	
  receive an repeat datagrams
  up to 7 nodes forward
sophisticated wake up mechanism 	
  standby mode
  wake-up signal => awaken mode

my address ?

 yes => let’s communicate !
  no => back to stand by

time to get data from a node : 2-3 s

both master - slave control and CSMA asynchronous communications

issue d'une doc d'un outil de reléve

f5943_cyblerfvacatris.pdf n'apporte rien de plus

autres piste

hacking

En 2011 j'ai lâché cette page web au vent du web.

En 2014 julien a accroché on a groupé quelques docs que l'on avait sur le sujet.

Il a décidé d’écouter H24 les compteurs de sa résidence avec un SDR et un gros disque dur.

En février 2016 il a réussi capturer plusieurs relève de compteur, on a commencé a gratter.

Mais il nous manquait comment calculer le CRC et comment faire le lien entre ce qu'il y a marqué sur notre compteur et la trame de relève.

SigmaPic a rejoint le projet et il a mit pas mal de chose a plat (enfin surtout les bit :-P ).

Restais encore cette problématique d’étiquette .

En décembre 2016 nous étions tous en train de sniffer nos compteur et julien a réussi a capturer la relève de son propre compteur.

1 mois plus tard signacPic arrivait a relever son propre compteur 88-8.

Protocol

Physical Layer

RF Transmission

Communication Frame

Any communication frame consists in:

  1. A preamble used to notify the receiver that data will be sent
  2. A sync word used to notify the receiver that data transmission is starting
  3. Some data

Preamble

Preamble is a series of 0101….0101 at 2400 bits/sec. There are two preamble durations:

In order to save energy, meter wakes-up every 2 seconds and check if someone is speaking. If nobody is speaking, meter goes back to sleep. This is the reason why long preamble is used when the master send a request.

a preamble with a master request

zoom on end of preamble

Sync pattern

Sync pattern starts with low level during 14.3ms followed by a high level during 14.3ms.

preamble and synch pattern of meter response

Data

Data are sent by UART:

Frame Structure

L(1) C(1) S(1) Receiver Address(5) S(1) Sender Address(5) S(1) Data + Checksum (4-240)

Meter Data mapping

Meter Address Encoding

example

Length Control Spacer Receiver Address Spacer Sender Address Spacer Data + Checksum
Master request 13 10 00 45 10 01 E2 40 00 45 67 89 AB CD 00 0A 40 DA DC
Meter Acq 12 06 00 45 67 89 AB CD 00 45 10 01 E2 40 00 0A 90 9E
Meter response 7C 11 00 45 67 89 AB CD 00 45 10 01 E2 40 00 01 08 00 D2 73 07 00 40 ….. cks (488402 litres)
Master Acq 12 06 00 45 10 01 E2 40 00 45 67 89 AB CD 00 0A 23 93

solutions de relève

CC1101

le CC1101 est un transceiver RF on peux régler un tas de paramètre , mais la fréquence réel n'est pas exactement celle que l'on règle.

//par exemple j'ai 2 carte CC101 pour un même réglage de fréquence un montage obtient une réponse l'autre non 
halRfWriteReg(FREQ0,0xC1); //Frequency Control Word, Low Byte CC1101_N1 814 824 (KO) ; CC1101_N2 810 820 (OK)
halRfWriteReg(FREQ0,0xB7);   //CC1101_N1 810 819.5 OK
mon compteur aussi fait F1 : 433808500  F2 : 433819500   

d’où la nécessité de calibrer le registre FREQ0 en utilisant une clef TNT qui fait SDR

rpi + CC1101

schéma de câblage

5V,GND ---> RPi HE26 ---.-----2*GND; 2*3.3V , SCLK ,MISO , MOSI , CSn, GDO2, GDO0 -------->  CC1101 HE10
                        |
                      debug_connector(HE14)

RPi PIN allocation

WiringPi Pin = WPP

Fonction WPP Name Header Name WPP Fonction
3.3v 1 2 5v
8 SDA 3 4 5v
9 SCL 5 6 0v
7 GPIO7 7 8 TxD 15
0v 9 10 RxD 16
GDO0 0 GPIO0 11 12 GPIO1 1
GDO2 2 GPIO2 13 14 0v
LED 3 GPIO3 15 16 GPIO4 4
3.3v 17 18 GPIO5 5
MOSI 12 MOSI 19 20 0v
MISO 13 MISO 21 22 GPIO6 6
SCLK 14 SCLK 23 24 CE0 10 Csn
GND 0v 25 26 CE1 11
#define GDO2 2 //header  13
#define GDO1_MISO 13
#define GDO0 0 //header  11
#define MOSI 12
#define cc1101_CSn 10 ////header  24 
#define LED  3 //header 15

HE10 CC101

Top view

Fonction Header Fonction
3.3v 1 2 3.3V
MOSI 3 4 SCLK
MISO 5 6 GDO2
CSn 7 8 GDO0
GND 9 10 GND

Flipped view from bottom

Fonction Header Fonction
3.3v 2 1 3.3V
MOSI 4 3 SCLK
MISO 6 5 GDO2
CSn 8 7 GDO0
GND 10 9 GND

debug_connector(HE14)

SALEAE led(1)

Fonction Header Fonction
D1 1 2 D2
D3 3 4 D4
D5 5 6 D6
D7 7 8 D8
GND 9 10 GND
           DB9 TDA (face
(GND) 5    4    3    2   1 (data)
         9    8    7   6(5v)    

HE14

Fonction Header Fonction
(D1 saleae)DATA TDA 1 2 (D2 saleae)LED
(D3 saleae)SCLK 3 4 (D4 saleae)SI
(D5 saleae)GDO2 5 6 (D6 saleae)SO
(D7 saleae)GDO0 7 8 (D8 saleae)CSn
GND 9 10 GND
3.3 11 12 GND
DATA TDA 13 14 5V

code

le zip a un mo t d3 pa5se il s'agit du nom du fichier zip radian_trx.zip

config

le code livré ne compilera pas (gcc radian_trx.c -o radian_trx -lwiringPi -lpthread -Wall) parce qu’il y a 2 paramètres a ajuster + 2 tipo

script

sudo crontab -e
55 9 * * *  sudo /home/pi/radian_trx/web_tx_releve >/dev/null 2>&1
55 9 * * *  sudo /home/pi/radian_trx/web_tx_releve >> /var/log/crontab.log

performance

minepi + CC1101(2) + lambda/4 derrière cloison volet ouvert rssi=185 lqi=128 F_est=255
minepi + CC1101(2) + lambda/4 dans cloison volet ouvert rssi=185 lqi=128 F_est=255
minepi + CC1101(2) + ant spirale derrière cloison volet ouvert rssi=183-4 lqi=128 F_est=255

Mbed+ CC1101

RTL SDR

=⇒SDR console OK

Avec une fréquence de sampling de 31.25 ksps c'est 2.5Go de données sur 12h. Ça parait lourd mais sur un HDD de 1To ça te permet quand même d'enregistrer 1024/2.5=410 jours ouvrées.

matos

antennes

http://www.ta-formation.com/cours/e-antennes.pdf

classement selon http://www.modelisme.com/forum/aero-vol-en-immersion/195087-amplifier-un-signal-uhf-433mhz-optimiser-la-reception.html

du moin bon gain au meilleur

  1. Monopole 1/2 Onde
  2. Monopole 1/4 onde
  3. Dipole 1/2 onde
  4. Dipole 1/4 onde (env 70ohm)
  5. Antenne V inversée 1/2 onde
  6. Antenne V inversée 1/4 onde
  7. Antenne Moxon (env 50ohm)
  8. Antenne Yagi , patch ou quad (Antenne directive)