Announcement

Collapse
No announcement yet.

DIY sensorer for FrSky

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • DIY sensorer for FrSky

    Jeg har laget en del sensorer for FrSky telemetri og tenkte dele litt informasjon i denne tråden.
    FrSky sine sensorer er ikke de mest presise, og det finnes to versjoner av de fleste; en for "D"-mottagere og en for "X"-mottagere (SPort).
    Sensorer for "D" varianten er egentlig en utdøende rase, selv om mottagerene ikke er det.
    Løsningen var å lage mine egne, som støtter både "D" og "X" mottagere.
    Alle er basert på Arduino Pro Mini 16 MHz/5V. Jeg valgte en variant som har Gnd, A6 og A7 i den ene enden. Her loddet jeg pinnene for diverse tilkoblinger. I den endelige versjonen ble det en 3-pins og to 4-pins rekker. A6 tjener som 5V, så jeg loddet en ledning mellom 5V punktet og A6. A7 brukes som signal. Siden mottagerene helst skal ha 3.3V på telemetriinngangen, loddet jeg en 5,6k motstand mellom A7 og D12, som er pinnen hvor signalet egentlig genereres.
    De tre første pinnene i rad to er bare koblet parallelt med de tre første for å kunne koble sammen flere SPort sensorer. Den fjerde pinnen kan brukes for å motta data fra andre "D"-sensorer, f.eks. telemetri fra en MultiWii kontroller. Denne er fysisk loddet til D10, mens signalet egentlig skal inn på D7. Derfor lodder jeg en ledning mellom D7 og D10.
    Den siste raden er for tilkobling til I2C bussen, og har ledningsforbindelse til A4 og A5, i tillegg til 5V og Gnd.

    Jeg startet ut med en sensor som støtter batterispenning, strøm, forbruk (mAh), turtall og to temperaturer. Denne ble basert på Hyperion sine sensorer for E-Meter. Disse er presise og rimelige (utgående produkt). Det finnes tre varianter, MDU, LDU og RDU. MDU er liten og har innebygget turtallsensing (børsteløs), LDU tåler mer spenning og strøm. RDU har i tillegg innebygget datalagring, temperatur- (x1) og høydemåling. LDU og RDU benytter eksterne sensorer for temperaturer og turtall. Koden støtter alle tre variantene, og man kan kalibrere disse ved å jorde noen av de ledige pinnene på Pro Mini:
    Pinne 2: V-
    Pinne 3: V+
    Pinne 4: A-
    Pinne 5: A+
    Pinne 9: Lagre

    MDU/LDU/RDU kobles til serieporten. De opererer også på 3.3V, så jeg koblet Tx signalet via en spenningdeler med 1.8k/3.3k motstander.

    Koden sjekker i oppstarten hvilken type sensor og mottager som er tilkoblet. Resultatet vises via LED med morse; M, L eller R for sensor og X eller D for mottager.

    Det finnes tre varianter av koden:
    1. Kun MDU/LDU/RDU
    2. IMU koblet til I2C for variometer og G-krefter
    3. "D" data vidersending

    MDU/LDU/RDU:
    http://www.allerc.com/hyperion-parts-and-accessories-hyperion-electrical-equipment-c-79_217.html?page=0

    Pro Mini:
    http://www.ebay.com/itm/Pro-Mini-Atmega328-5V-16M-Micro-controller-Board-for-Arduino-Compatible-Nano-new-/221481619677?hash=item33915550dd


    Kode:
    LDUAdapter_032016.zip
    LDUAdapterIMUDInput_032016.zip

    Acc- og fuelsensor tillegg til FrSkySportTelemetry biblioteket:
    FrSkySportSensorAcc.zip
    FrSkySportSensorFuel.zip


    Spenningsdeler for Tx.

    Click image for larger version

Name:	IMG_1807.JPG
Views:	1
Size:	120.6 KB
ID:	637707


    Tx ledningen kobles til midtpunktet.

    Click image for larger version

Name:	IMG_1838.JPG
Views:	1
Size:	194.8 KB
ID:	637710


    I2C kabling til A4/A5.

    Click image for larger version

Name:	IMG_1975.jpg
Views:	1
Size:	189.7 KB
ID:	637706


    Ledning fra Vcc til A6 (+5V), SMD motstand mellom D12 og A7 (signal) og ledning fra A7 til A10 (hvis "D"-data input skal brukes).

    Click image for larger version

Name:	IMG_1974.jpg
Views:	1
Size:	201.0 KB
ID:	637705


    MDU.

    Click image for larger version

Name:	IMG_1848.JPG
Views:	1
Size:	230.2 KB
ID:	637709

    Click image for larger version

Name:	IMG_1846.JPG
Views:	1
Size:	218.9 KB
ID:	637708


    IMU (vario + Acc) med 4-leder for tilkobling til I2C pinnene.

    Click image for larger version

Name:	IMG_1984.jpg
Views:	1
Size:	158.6 KB
ID:	637713
    Last edited by flarssen; 02-03-16, 13:23.
    Fred Larssen

  • #2
    Til vario sensorene benytter jeg IMU'er som loddes direkte til I2C bussen (A4/A5). Det gir også muliget for G-krefter, i tillegg til høyde og vertikal hastighet.

    IMU:
    10dof IMU MWC Flight Control Sensor Module Hmc5883l Ms5611 Mpu6050 for sale online | eBay

    Kode:
    FrSkyVario_032016.zip
    FrSkyVarioAcc_032016.zip

    Acc sensor tillegg til FrSkySportTelemetry biblioteket:
    FrSkySportSensorAcc.zip


    Vanskelig å se, men Data og Clock på IMU er koblet til A4/A5 med korte tråder bøyd i en "S" (siden hullene ikke stemmer 100% overens).

    Click image for larger version

Name:	IMU1.JPG
Views:	1
Size:	205.0 KB
ID:	614033


    IMU festet til Pro Mini med en bit servotape i hver ende.

    Click image for larger version

Name:	IMU2.JPG
Views:	1
Size:	149.5 KB
ID:	614034


    Ferig, med krympestrømpe. Viktig at hullene i chipen (barometeret) ikke tettes av krympestrømpen. Siden den også er lysfølsom, kan det være lurt å sette en bit svart isolasjonsbånd over chipen.

    Click image for larger version

Name:	IMU3.JPG
Views:	1
Size:	149.0 KB
ID:	614035


    En lettvektsvariant med en tynnere Pro Mini og tynne ledninger loddet rett på.

    Click image for larger version

Name:	IMG_1985.jpg
Views:	1
Size:	185.3 KB
ID:	614032
    Last edited by flarssen; 02-03-16, 09:44.
    Fred Larssen

    Comment


    • #3
      Som GPS sensorer kjøpte jeg Ublox NEO-6M fra Banggood (ca. kr. 80,-). Ser ikke ut til å være på lager lenger, men det meste med serietilkobling og NMEA protokoll kan sikkert brukes.
      Pro Mini konfigureres på samme måte som i post #1, med unntak av spenningsdelingen på serieporten (dersom GPS tåler 5V signal).


      Kode:
      FrSkyGps_032016.zip
      FrSkyGpsVarioAcc_032016.zip

      Acc sensor tillegg til FrSkySportTelemetry biblioteket:
      FrSkySportSensorAcc.zip


      En tom "to-rader" kan brukes for å holde sammen pinnerekker under loddingen.

      Click image for larger version

Name:	IMG_1976.JPG
Views:	1
Size:	299.7 KB
ID:	614030


      En 5,6K motstand, her som for de andre sensorene.

      Click image for larger version

Name:	IMG_1977.jpg
Views:	1
Size:	130.3 KB
ID:	614029


      Like greit å lage flere samtidig

      Click image for larger version

Name:	IMG_1981.jpg
Views:	1
Size:	145.2 KB
ID:	614028


      Undersiden. Kontakten må kobles fra før koden kan opplastes. Pinnene på USB-TTL adapteret stikker jeg bare gjennom krypestrømpen og ned i hullene. Litt press sideveis sikrer god nok kontakt.

      Click image for larger version

Name:	IMG_1986.jpg
Views:	1
Size:	170.0 KB
ID:	614027


      Oversiden.

      Click image for larger version

Name:	IMG_1987.jpg
Views:	1
Size:	133.4 KB
ID:	614026
      Last edited by flarssen; 02-03-16, 09:24.
      Fred Larssen

      Comment


      • #4
        Har lagt til vario og GPS, linker, kode og bilder med tekst.
        Fred Larssen

        Comment


        • #5
          Ser spennende ut, flott jobbet. Det hadde vært morsomt med en video av en taranis som tar i mot telemetri fra disse??

          Comment


          • #6
            Originally posted by Hoppfly View Post
            Ser spennende ut, flott jobbet. Det hadde vært morsomt med en video av en taranis som tar i mot telemetri fra disse??
            Jeg har en som viser data fra sensoren i post 1, med en IMU tilkoblet, mens GPS fra post 3 er koblet til "D" input pinnen. Jeg modifiserte koden til GPS slik den endrer posisjonen, slik at man kan se oppdateringsraten på displayet. GPS er satt til å sende oppdatering av posisjonen to ganger i sekundet, mens de andre GPS dataene sendes hvert sekund.
            Kostet vel rundt 300,- for alt som skal til. En Hyperion LDU er oppgitt som 75A, men har vært testet til det dobbelte uten varmgang og tåler spenning opp til 70V (16S).

            Fred Larssen

            Comment


            • #7
              Familiefoto

              Burde holde en stund.
              De to nederste har jeg modifisert, og loddet kontakter rett på sensoren. MDU'en veier bare 9.,5 gram etter operasjonen (8S, 25/50A og RPM sensor).
              Attached Files
              Fred Larssen

              Comment


              • #8
                Her er en variant for turtall og 2x temperatur.
                Jeg brukte en Pro Mini 168 8Mhz jeg hadde liggende. Temperatursensorene er LM34. Disse gir ut 10mV pr grad Fahrenheit om man bare kobler den til GND, Vin og en analog inngang. Det gir et spenn på 0-300 grader Fahrenheit, eller -17 - 149 grader Celsius. Når jeg testet gikk den opp til 323 F (160 C). Det tilsvarer en spenning på max 3.23V, perfekt for en 3.3V Arduino. Den finnes i tre utforminger http://www.ti.com/lit/ds/symlink/lm34.pdf Som turtallsgiver brukte jeg en hall effekt sensor + magnet. Denne trekker ned spenningen på pinne 2 hver gang magneten passerer. Tach utgang fra enkelte tenningsanlegg kan også brukes, enten direkte (hvis 0-3.3V) eller via en transistor.

                Pinnene A0, A1 og D2 brukes som hhv. temp1, tem2 og RPM inngang. Hvis D3 er koblet til GND ved oppstart, vil den skifte fra å beregne turtall ut fra intervallet mellom pulser, til å beregne det basert på antall pulser siste sekund.

                Telemetriutgang (Rx). Printbanen til A5 må kuttes da den ikke tåler mer enn 3.3V.
                Click image for larger version

Name:	IMG_2154.jpg
Views:	1
Size:	155.4 KB
ID:	615990


                Tilkoblinger for telemetri- og RPM sensorkontakt.
                Click image for larger version

Name:	IMG_2157.jpg
Views:	1
Size:	179.8 KB
ID:	615991


                Tilkoblinger for temperatursensorsignal (A0/A1).
                Click image for larger version

Name:	IMG_2158.jpg
Views:	1
Size:	165.4 KB
ID:	615992


                Signalledninger loddet på forkortede løse pinner.
                Click image for larger version

Name:	IMG_2159.jpg
Views:	1
Size:	117.6 KB
ID:	615993


                Signalpinner sikret med limpistol.
                Click image for larger version

Name:	IMG_2160.jpg
Views:	1
Size:	121.7 KB
ID:	615994
                Attached Files
                Last edited by flarssen; 11-02-17, 09:55.
                Fred Larssen

                Comment


                • #9
                  Riktig stilig Fred, jeg er imponert !!



                  Comment


                  • #10
                    Her er en variant for to motorer. Den vil dukker opp som to RPM sensorer med ulik ID. I utgangspunktet blir det fire temperatursensorer, men den ene benytter jeg for å sende differansen mellom de to turtallsmålingene. Jeg har lagt ut fire analoge porter på pinnene, og benytter den siste til å måle spenningen på tenningsbatteriet. Denne sendes som VFAS sensor. En spenningsdeler brukes for å få spenningen på porten innenfor 0-3.3V når batterispenningen er under ca. 9V. 2S LiPo går altså greit.


                    Alle GND pinnene loddet til A4-A7 (kun for å holde alle pinnene på plass). Ledningsforbindelse til GND inngangen.
                    Click image for larger version

Name:	IMG_2162.jpg
Views:	1
Size:	181.8 KB
ID:	616184

                    +V pinnene loddet sammen og koblet til RAW inngangen. 7-8 lag med Kapton tape isolerer dem fra kortet for å unngå kortslutning mot GND (A4-A7).
                    Click image for larger version

Name:	IMG_2161.jpg
Views:	1
Size:	144.6 KB
ID:	616183

                    Fra siden.
                    Click image for larger version

Name:	IMG_2163.jpg
Views:	1
Size:	90.2 KB
ID:	616185

                    RPM1 signal input (NPN transistor, 4,7k og 10k motstander).
                    Click image for larger version

Name:	IMG_2165.jpg
Views:	1
Size:	213.8 KB
ID:	616187

                    RPM2 signal input. Signalledningen går til pinnen på oversiden gjennom ett av hullene.
                    Click image for larger version

Name:	IMG_2164.jpg
Views:	1
Size:	194.8 KB
ID:	616186

                    Ferdig innpakket.
                    Click image for larger version

Name:	IMG_2172.jpg
Views:	1
Size:	145.7 KB
ID:	616188

                    Spenningsdeler for spennigsmåling.
                    Click image for larger version

Name:	IMG_2173.jpg
Views:	1
Size:	169.7 KB
ID:	616189

                    Pinneraden passer perfekt i en litt modifsert servokontakthylse.
                    Click image for larger version

Name:	IMG_2174.jpg
Views:	1
Size:	162.6 KB
ID:	616190

                    Tilkobling for RPM-signal og spenningsmåling.
                    Click image for larger version

Name:	IMG_2177.jpg
Views:	1
Size:	225.9 KB
ID:	616191
                    Attached Files
                    Last edited by flarssen; 09-03-17, 23:10.
                    Fred Larssen

                    Comment


                    • #11
                      Jeg har fått tak i en en slikk dobbelt rpm sensor fra Fred. og koblet den opp på en A26 invader. Har kalt rpm inngangene RPML og RPMR for henholdsvis venstre og høyre motor. Diff er forskjellen og den viser - først hvis venstre motor går fortest. Vign er spenning på tenningsbatteri. temp1 er ikke tilkoblet på videoen. men har tenkt å bruke 2 temp sensorer også en på hver motor. Forkjellen på motorene var mye større enn jeg trodde så her er det nok bare av med covlinger og fin tune. Kanskje ikke så rart jeg hadde problemer med å få den til å gå rett på isen på mjøsa sist helg hehe.

                      Tom Nohr
                      Tennisveien 9
                      2450 Rena

                      Frsky taranis 9+
                      Turnigy H.A.L. hexacopter. m/naza.m og nex5r
                      Fieseler storch fra black horse m/ngh gf38
                      + diverse små ting

                      Comment


                      • #12
                        Originally posted by tyor View Post
                        Har kalt rpm inngangene RPML og RPMR for henholdsvis venstre og høyre motor. Diff er forskjellen og den viser - først hvis venstre motor går fortest.
                        Artig at det fungerer. Tror det kan være et alternativ å sette opp RPML, RPMR og Diff på en egen telemetriside og bruke "Bars" i stedet for "Nums". Gir et bedre bilde av dataene. Anbefaler å gjøre dette i Companion, da det tar sin tid å endre øvre og nedre grense på senderen, i hvertfall med OTX 2.2 som jeg bruker nå.
                        Skal prøve å finne ut hvorfor RPM dropper til 0 av og til.
                        VIgn variere mye. Er den stabil når motorene ikke går?
                        Fred Larssen

                        Comment


                        • #13
                          Vign er helt stabil når motorene ikke går. Men ser den går ned litt når turtallet øker. Da trekker jo tenningene mer strøm. Satte opp en side med bars. Fungerte greit det. 0-10000 på rpm og -3000 - 3000 på diff. Kan lage den litt mindre men ble satt opp bare for å teste. Er det mulig å forandre att det står celicius etter diff?
                          Click image for larger version

Name:	IMG_20170320_090907.jpg
Views:	1
Size:	219.6 KB
ID:	616352
                          Tom Nohr
                          Tennisveien 9
                          2450 Rena

                          Frsky taranis 9+
                          Turnigy H.A.L. hexacopter. m/naza.m og nex5r
                          Fieseler storch fra black horse m/ngh gf38
                          + diverse små ting

                          Comment


                          • #14
                            OK. De trekker jo strøm støtvis, så det forklarer vel at spenningen blir ustabil.
                            Du kan endre enhet fra Celsius til Rpm på samme sted som du endret navn, logging o.s.v.
                            Fred Larssen

                            Comment


                            • #15
                              Ahhh det kan selvfølgelig forandres på samme plass ja hehe. Dette var tøft Fred. Største problemet nå er å få justert de saito motorene til å gå likt, de er ikke enkle å ha med å gjøre
                              Tom Nohr
                              Tennisveien 9
                              2450 Rena

                              Frsky taranis 9+
                              Turnigy H.A.L. hexacopter. m/naza.m og nex5r
                              Fieseler storch fra black horse m/ngh gf38
                              + diverse små ting

                              Comment

                              Working...
                              X