Témétrie multi protocoles Frsky, Hott, Jeti et CRSF (ExpressLRS et Crossfire)

pierrotm777

Membre Sénior
Bonjour à tous,

Je démarre un nouveau sujet sur un projet que j'ai démarré hier.
Encore une télémétrie, mais cette fois ci utilisant un nouveau composant extrêmement puissant, le RP2040 Zero.

Specification


  • RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom
  • Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz
  • 264KB of SRAM, and 2MB of on-board Flash memory
  • USB-C connector, keeps it up to date, easier to use
  • The castellated module allows soldering direct to carrier boards
  • USB 1.1 with device and host support
  • Low-power sleep and dormant modes
  • Drag-and-drop programming using mass storage over USB
  • 29 × multi-function GPIO pins (20× via edge pinout, others via solder points)
  • 2 × SPI, 2 × I2C, 2 × UART, 4 × 12-bit ADC, 16 × controllable PWM channels
  • Accurate clock and timer on-chip
  • Temperature sensor
  • Accelerated floating-point libraries on-chip
  • 8 × Programmable I/O (PIO) state machines for custom peripheral support

RP2040-Zero-M-1.jpgRP2040-Zero-details-7.jpg

Je n'est rien inventé, j'ai suivi le sujet de Michel Strens sur Rcgroups ici .
Et le code du projet est ici .

J'ai donc réalisé un proto en utilisant,comme à mon habitude un circuit imprimé pré percé.
20230129_181606.jpg

Comme d'habitude, gps, vario, accélération, lecture 4 tensions (Vbat ou Courant) et autre, mais aussi 8S via 2 ads1115 (quadruple convertisseur analogique/numérique) sont intégrés.
Le module peut aussi:
- lire deux entrées SBUS en provenance de deux récepteurs.
- générer un e sortie SBUS.
- générer jusqu'à 16 sorties PWM pour 16 servos.

Ici, ce n'est pas l'IDE d'Arduino qui est utilisé mais platformio via Visual Studio Code.

Je pense que d'autres protocoles pourraient être envisagebles vu la mémoire disponible.
SXRL de Spektrum, qui sait.

Pour la programmation du module et sa configuration, voir ici:

Tous les fichiers de fabrications sont sur mon github .

Liste de composants:
Code:
Connecteurs tulipes:
1 barette Round hole Single row 1*40P
1 barette Single row female 1*40P (sliver)
https://fr.aliexpress.com/item/1005002316045744.html?spm=a2g0o.order_list.order_list_main.17.21ef5e5bMNVAFN&gatewayAdapt=glo2fra

Connecteur 2x40points (1 barette)
https://fr.aliexpress.com/item/1005003128181705.html?spm=a2g0o.detail.0.0.310017ddTK2s3d&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.291025.0&scm_id=1007.13339.291025.0&scm-url=1007.13339.291025.0&pvid=fded9d59-4d53-4498-9db3-448865d2dfc5&_t=gps-id%3ApcDetailBottomMoreThisSeller%2Cscm-url%3A1007.13339.291025.0%2Cpvid%3Afded9d59-4d53-4498-9db3-448865d2dfc5%2Ctpp_buckets%3A668%232846%238110%231995&pdp_ext_f=%7B%22sku_id%22%3A%2212000024253067130%22%2C%22sceneId%22%3A%223339%22%7D&pdp_npi=3%40dis%21EUR%210.82%210.79%21%21%21%21%21%400b89a67e16778498140897302e6202%2112000024253067130%21rec%21FR%21183348266&gatewayAdapt=glo2fra

Connecteur droit 3 rangées (en option pour 9 sorties PWM)
3X40P Row Straight (1 barette)
https://fr.aliexpress.com/item/1005003104883563.html?spm=a2g0o.productlist.main.45.16e222a0FMz5ba&algo_pvid=4cd236b1-1530-4d15-9089-91939f79b018&aem_p4p_detail=202303030531543226563795243360011558397&algo_exp_id=4cd236b1-1530-4d15-9089-91939f79b018-22&pdp_ext_f=%7B%22sku_id%22%3A%2212000024114258686%22%7D&pdp_npi=3%40dis%21EUR%210.88%210.88%21%21%21%21%21%402145294416778503146553719d0718%2112000024114258686%21sea%21FR%21183348266&curPageLogUid=Ub2mpI0OF5Zr&ad_pvid=202303030531543226563795243360011558397_23&ad_pvid=202303030531543226563795243360011558397_23

Connecteur droit 1 rangée
1x40p male
https://fr.aliexpress.com/item/1005002577212594.html?spm=a2g0o.productlist.seoads.1.16e222a0FMz5ba&ad_pvid=202303030531571885600531207100012241832_1&s=p

Rp2040-Zero (sans connecteur)
https://fr.aliexpress.com/item/1005005222742593.html?spm=a2g0o.productlist.main.1.3a554508KIfEyZ&algo_pvid=c3cae31a-cc0e-46a6-9f9b-1f593d2500f0&aem_p4p_detail=202303030537299093378260079190004569256&algo_exp_id=c3cae31a-cc0e-46a6-9f9b-1f593d2500f0-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000032247154066%22%7D&pdp_npi=3%40dis%21EUR%216.45%214.96%21%21%21%21%21%40214528be16778506494766155d070d%2112000032247154066%21sea%21FR%21183348266&curPageLogUid=yN6mbfgB0nSw&ad_pvid=202303030537299093378260079190004569256_1&ad_pvid=202303030537299093378260079190004569256_1

Régulateur A1117-5V
https://fr.aliexpress.com/item/1005005069714704.html?spm=a2g0o.productlist.main.23.2407741fS8eot0&algo_pvid=9f766b1e-7dc7-4ffd-bb45-081a1e2e8b75&algo_exp_id=9f766b1e-7dc7-4ffd-bb45-081a1e2e8b75-11&pdp_ext_f=%7B%22sku_id%22%3A%2212000031517889176%22%7D&pdp_npi=3%40dis%21EUR%211.02%210.81%21%21%21%21%21%402145288516782921044304146d0710%2112000031517889176%21sea%21FR%21183348266&curPageLogUid=MfbEcwvaioKM


Résistances 1206
https://fr.aliexpress.com/item/1005004188603967.html?spm=a2g0o.productlist.main.1.7fad2d45LhVVGZ&algo_pvid=570d440c-9e73-4602-90bd-85e7cae28253&aem_p4p_detail=2023030305410711898268925295480004808632&algo_exp_id=570d440c-9e73-4602-90bd-85e7cae28253-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000028325020552%22%7D&pdp_npi=3%40dis%21EUR%210.25%210.24%21%21%21%21%21%402100b77316778508679212118d0720%2112000028325020552%21sea%21FR%21183348266&curPageLogUid=5PvRR7YK4HWJ&ad_pvid=2023030305410711898268925295480004808632_1&ad_pvid=2023030305410711898268925295480004808632_1
10 x 220R  (options si 9 Pwm utilisés)
4 x 22K
4 x 3.3K

Condensateurs céramiques 1206
https://fr.aliexpress.com/item/4000575704043.html?spm=a2g0o.productlist.main.1.472c2620rp3Yvb&algo_pvid=126d051d-f220-4d4b-b5a2-fe9f70a49366&aem_p4p_detail=20230303054825519168260107870004595371&algo_exp_id=126d051d-f220-4d4b-b5a2-fe9f70a49366-0&pdp_ext_f=%7B%22sku_id%22%3A%2210000003227121672%22%7D&pdp_npi=3%40dis%21EUR%214.34%214.34%21%21%21%21%21%402145265416778513050128959d06e0%2110000003227121672%21sea%21FR%21183348266&curPageLogUid=dyGAvaaaCRW2&ad_pvid=20230303054825519168260107870004595371_1&ad_pvid=20230303054825519168260107870004595371_1
10 x 100nf X7R

Baromètre BMP280
https://fr.aliexpress.com/item/1005005230466856.html?spm=a2g0o.productlist.main.21.4feb6669rbdixR&algo_pvid=c159e0b4-250f-4fe1-9946-6d6a5d113dc5&aem_p4p_detail=202303030550234088463767526560011592312&algo_exp_id=c159e0b4-250f-4fe1-9946-6d6a5d113dc5-10&pdp_ext_f=%7B%22sku_id%22%3A%2212000032303491355%22%7D&pdp_npi=3%40dis%21EUR%210.47%210.47%21%21%21%21%21%402145288516778514233828614d0710%2112000032303491355%21sea%21FR%21183348266&curPageLogUid=JfF8G6qJcre8&ad_pvid=202303030550234088463767526560011592312_11&ad_pvid=202303030550234088463767526560011592312_11

Gps Beitian BN220
https://fr.aliexpress.com/item/1005004792829198.html?spm=a2g0o.productlist.main.9.13712c76NEGRX8&algo_pvid=caff64e4-70a4-4e26-9663-05e55c9c9191&aem_p4p_detail=202303030551412901572795828720011207441&algo_exp_id=caff64e4-70a4-4e26-9663-05e55c9c9191-4&pdp_ext_f=%7B%22sku_id%22%3A%2212000030505868935%22%7D&pdp_npi=3%40dis%21EUR%218.78%215.27%21%21%21%21%21%402100b88516778515016836368d06c2%2112000030505868935%21sea%21FR%21183348266&curPageLogUid=mqruwdZBnb8T&ad_pvid=202303030551412901572795828720011207441_5&ad_pvid=202303030551412901572795828720011207441_5

Pont de cour-circuit pas 2,54mm
quantité 1
https://fr.aliexpress.com/item/1005004402796742.html?spm=a2g0o.productlist.main.7.8e7f0fJy0fJyPU&algo_pvid=fc9abd2a-7cd4-48aa-b8d0-7e47a44aecf3&aem_p4p_detail=202303030601294626695666900500005088622&algo_exp_id=fc9abd2a-7cd4-48aa-b8d0-7e47a44aecf3-3&pdp_ext_f=%7B%22sku_id%22%3A%2212000029051483881%22%7D&pdp_npi=3%40dis%21EUR%210.88%210.88%21%21%21%21%21%402100ba4716778520893758653d0712%2112000029051483881%21sea%21FR%21183348266&curPageLogUid=6LeFZIhKpPiN&ad_pvid=202303030601294626695666900500005088622_4&ad_pvid=202303030601294626695666900500005088622_4
Voir fichier Liste.txt

A suivre...
 

Fichiers joints

  • RP2040-Zero-M-1.jpg
    RP2040-Zero-M-1.jpg
    9 KB · Vues: 43
  • Liste.txt
    5,7 KB · Vues: 7
Dernière édition:
Bonjour à tous,

Ce projet avance vraiment bien et les protocoles Frsky, Hott, Jeti et Elrs sont pleinement fonctionnel. J'ai pu tester la version Jeti sur un émetteur Jeti dc16 avec succès.
Depuis peu, le protocole M-LINK de Multiplex a été ajouté. Il a fonctionné un temps mais la partie gps refuse d'être reconnue par mon Tx16s. J'aimerais faire ajouter le protocole Flysky qui est pas mal utilisé.
Bonne semaine à tous,
Pierre

Sent from my SM-A526B using Modelisme mobile app
 
salut @pierrotm777

donc si je comprends bien, cette petite boiboite se connecte sur un récepteur frsky (x8r par exemple) via le port (sbus ou sport ?) pour envoyer de la télémétrie à la radio tx16s
selon ce qu'on ajoute on peut avoir vario/gps/conso électrique, tension de l'accu de propulsion
enfin tu as demandé l'ajout du protocole flysky utilisé dans les récepteurs fs-ia6B par exemple

quelle taille et quelle masse fait ta boiboite?

j'ai juste jeté un oeil au fil sur rcgroups et au github vite fait...
merci d'avance pour les infos et avoir signalé le projet.
 
Bonjour Tr@nquille,

C’est exactement ça.
En fait, le firmware est donné par le développeur.
Pour le copier dans le RP2040, il suffit de maintenir sur le bouton Boot appuyé durant la mise sous tension via un câble usb.
Une fenêtre s'ouvre alors sur le PC, il suffit de copier le firmware dans cette fenêtre et le module est à jour.
Enfin, via un terminal, on alors définir l'affectation des pins .
Voici par exemple l'aide après l'appuie sur ?:
Code:
processing cmd

Commands can be entered to change the config parameters
- To activate a function, select the pin and enter function code = pin number (e.g. PRI=1)
    Function                  Code        Valid pins number
    Primary channels input    PRI     = 5, 9, 21, 25
    Secondary channels input  SEC     = 1, 13, 17, 29
    Telemetry                 TLM     = 0, 1, 2, ..., 29
    GPS Rx                    GPS_RX  = 0, 1, 2, ..., 29
    GPS Tx                    GPS_TX  = 0, 1, 2, ..., 29
    Sbus OUT                  SBUS_OUT= 0, 1, 2, ..., 29
    RPM (only for Sport)      RPM     = 0, 1, 2, ..., 29
    SDA (baro sensor)         SDA     = 2, 6, 10, 14, 18, 22, 26
    SCL (baro sensor)         SCL     = 3, 7, 11, 15, 19, 23, 27
    PWM Channels 1, ..., 16   C1 / C16= 0, 1, 2, ..., 15
    Voltage 1, ..., 4         V1 / V4 = 26, 27, 28, 29
- To disable a function, set pin number to 255

-To debug on USB/serial the telemetry frames, enter DEBUGTLM=Y or DEBUGTLM=N (default)
-To change the protocol, enter PROTOCOL=x where x=S for Sport, C for CRSF/ELRS, J for Jeti, H for Hott or M for Mpx
-To change the CRSF baudrate, enter e.g. BAUD=420000
-To change voltage scales, enter SCALEx=nnn.ddd e.g. SCALE1=2.3 or SCALE3=0.123
     Enter SCALEx=0 to avoid sending voltage x to the Transmitter (for Frsky or Jeti)
-If a TMP36 is used on V3, enter TEMP=1 (if a second one is on V4, enter TEMP=2)-To change voltage offset, enter OFFSETx=nnn.ddd e.g. OFFSET1=0.6789
-To change GPS type: for an Ublox, enter GPS=U and for a CADIS, enter GPS=C
-To change RPM multiplicator, enter e.g. RPM_MULT=0.5 to divide RPM by 2
-To force a calibration of MP6050, enter MPUCAL
-To select the failsafe mode to HOLD, enter FAILSAFE=H
-To set the failsafe values on the current position, enter SETFAILSAFE
-To get the current config, just press Enter
   Note: some changes require a reset to be applied (e.g. to unlock I2C bus)

ET après un retour ligne simple, la configuration du module apparaîT:
Code:
Cmd to execute:   

Version = 1.1.0 
    Function                Pin   Change entering XXX=yyy (yyy=255 to disable)
Primary channels input    =    5  (PRI     = 5, 9, 21, 25)
Secondary channels input  =   13  (SEC     = 1, 13, 17, 29)
Telemetry . . . . . . . . =    0  (TLM     = 0, 1, 2, ..., 29)
GPS Rx  . . . . . . . . . =    8  (GPS_RX  = 0, 1, 2, ..., 29)
GPS Tx  . . . . . . . . . =    7  (GPS_TX  = 0, 1, 2, ..., 29)
Sbus OUT  . . . . . . . . =  255  (SBUS_OUT= 0, 1, 2, ..., 29)
RPM   . . . . . . . . . . =   14  (RPM     = 0, 1, 2, ..., 29)
SDA (I2C sensors) . . . . =    2  (SDA     = 2, 6, 10, 14, 18, 22, 26)
SCL (I2C sensors) . . . . =    3  (SCL     = 3, 7, 11, 15, 19, 23, 27)
PWM Channels 1, 2, 3 ,4   =  255  255  255  255 (C1 / C16= 0, 1, 2, ..., 15)
PWM Channels 5, 6, 7 ,8   =  255  255  255  255
PWM Channels 9,10,11,12   =  255  255  255  255
PWM Channels 13,14,15,16  =  255  255  255  255
Voltage 1, 2, 3, 4        =  255  255   28   29 (V1 / V4 = 26, 27, 28, 29)

Protocol is Mpx
CRSF baudrate = 420000
Voltage parameters:
    Scales : 34.000000 , 1.000000 , 1.000000 , 1.000000 
    Offsets: 0.000000 , 0.000000 , 0.000000 , 0.000000 
    One temperature sensor is connected on V3
RPM multiplier = 1.000000
Baro sensor is detected using MS5611
    Sensitivity min = 100 (at 100)   , max = 300 (at 1000)
    Hysteresis = 5 
Acc/Gyro is detected using MP6050
     Acceleration offsets X, Y, Z = -6502 , 1062 , 2346
     Gyro offsets         X, Y, Z = 185 , -36 , -10
First analog to digital sensor is detected using ads1115
    Measurement setup: 0 , 8 , 8 ,8
    Gains: 2 , 2 , 2 ,2
    Rates: 7 , 4 , 4 ,7
    Offsets: 0.000000 , 0.000000 , 0.000000 ,0.000000
    Scales: 1.000000 , 1.000000 , 1.000000 ,1.000000
    Averaged on: 10 , 20 , 30 ,50
Second analog to digital sensor is not detected
Foreseen GPS type is Ublox  :GPS is not (yet) detected
Failsafe type is HOLD

Config parameters are OK
Press ? + Enter to get help about the commands

 >>
Toute fonction différente de 255 est configurée sur la pin mentionnée.

Je n'ai pas encore demande l'ajout de Ibus, mais je compte bien demander au développeur de l'ajouter.
Je le laisse débugger pour l'instant les protocoles déjà intégrés.
On verra s'il veut bien l'ajouter.

Il semblerait que pour le protocole M-Link de Multiplex, on ne puisse pas remonter les coordonnées ou la date/heure.
Pourtant, il existe bien un capteur GPS V2 qui serait censé le faire.

On peut lire jusqu'à 4 tensions, V1 à V4.
V1 et configuré par défaut pour restituer la tension de l'accu moteur.
V2 est configuré par défaut pour restituer le courant consommé par le moteur.
V3 et V4 sont libres OU peuvent être utilisés pour y connecter un ou deux capteurs de température.

On peut avoir un capteur compte tours.
Un baromètre

etc...
 
ok bon franchement c'est pas pour tout de suite pour moi...
ce qui m'intéresse vraiment: vario, tension accu moteur et voilà.
et sur les récepteurs fs-ia-B par exemple car j'en ai qq uns...
 
Haut