TTGO T-Beam – Kompakter Knochen zum Mappen

Der TTGO T-Beam ist momentan mein liebster Node. Er ist relativ kompakt und leistungsstark und eignet sich hervorragend als Node für den TTN Mapper. Hinzu kommt ein erschwinglicher Preis von ca. 20€. Wer die erste Gehversuche starten möchte, dem sei das GitHub Archiv von DeuxVis empfohlen. Hier ist alles enthalten um seinen T-Beam in einen Mapper Node zu verwandeln. Angefangen beim Sketch, bis hin zum Payload Decoder ist alles dabei. Die erwähnte Brücke von Lora1 nach GPIO33 ist nicht unbedingt nötig.

Das hat mir jedenfalls sehr geholfen und ich bin mit dem T-Beam schnell warm geworden. Was ihr unbedingt wechseln solltet, ist die Antenne. Diese ist wirklich schlecht, aber das sollte ja kein Problem sein.

Pin Mapping

TTGO T-Beam Pin Map
GPIO #ESP32 Pin #U12 Pin #U14 Pin #ESP32 ModulePin NameNotes
GPIO_0235GPIO0(goes off page)
GPIO_1411UART0U0TXDTXD to CP2104
GPIO_2223GPIO2
GPIO_3402UART0U0RXDRXD from CP2104
GPIO_4244GPIO4
GPIO_534GPIO5LORA CLK
GPIO_631SDSD_CLKTo FLASH clock
GPIO_732SDSD_DATA_0To FLASH, PSRAM data 0
GPIO_833SDSD_DATA_1To FLASH, PSRAM data 1
GPIO_928SDSD_DATA_2To FLASH, PSRAM data 2
GPIO_1029SDSD_DATA_3To FLASH, PSRAM data 3
GPIO_1130SDSD_CMDTo FLASH chip select (active low)
GPIO_1218UART1MTDIRXD from GPS
GPIO_13204GPIO13
GPIO_14175GPIO14Blue LED (0=off, 1=on)
GPIO_1521UART1MTDOTXD to GPS
GPIO_1625GPIO16To PSRAM chip select (active low)
GPIO_1727GPIO17To PSRAM clock
GPIO_1835GPIO18To LoRa chip select (active low)
GPIO_1938GPIO19To LoRa MISO
GPIO_20GPIO_20 does not exist
GPIO_214210GPIO21I2C SDA
GPIO_22399GPIO22I2C SCL
GPIO_23363GPIO23To LoRa reset (active low)
GPIO_24GPIO_24 does not exist
GPIO_25146GPIO25
GPIO_2615GPIO26To LoRa DIO0 (interrupt)
GPIO_2716GPIO27To LoRa MOSI
GPIO_28GPIO_28 does not exist
GPIO_29GPIO_29 does not exist
GPIO_30GPIO_30 does not exist
GPIO_31GPIO_31 does not exist
GPIO_3212832K_XPTo LoRa DIO2 (interrupt)
GPIO_331332K_XNTo LoRa DIO1 (interrupt)
GPIO_341010VDET_1
GPIO_3511VDET_2
GPIO_36513TouchSENSOR_VP
GPIO_376TouchSENSOR_CAPP
GPIO_387TouchSENSOR_CAPN
GPIO_39812TouchSENSOR_VNSW5

Pass Through

Der verbaute U-Blox Neo-6M ist jedenfalls einer der besseren GPS Chips und kann mit der u-center Software von u-blox verwaltet werden. Also wer sich für den Chip interessiert, sollte ruhig mal etwas tiefer graben. Per Default ist jedenfalls SBAS aktiv und das Dynamic Model ist auf Portable gestellt. Diese werte könnt ihr über die Software komfortabel verwalten, es ist aber auch möglich diese Daten dem GPS-Chip per Programmierung mitzugeben.

Um direkt mit dem GPS Chip kommunizieren zu können, müsst ihr einen Pass Through Sketch auf den T-Beam laden. Diesen findet ihr auf GitHub.

In der u-center Software, wählt ihr nun euren seriellen Port aus und stellt die Baudrate auf 115200 ein, danach solltet ihr sofort eine Verbindung bekommen. Fraglich ist hier aktuell, wie lange die kleine Pufferbatterie die Daten halten kann.

OLED Support

Der T-Beam lässt sich, je nach Display, sehr einfach um ein OLED Display erweitern. Die nötigen Kontakte sind alle schön nebeneinander angeordnet. Leider ist es nicht möglich in der Adafruit Library einen freien I²C Port auszuwählen. Jedoch hat sich ein User dem Problem angenommen und die Library gepatched. Ich habe den TTN-Mapper Node von DeuxVis geforked und entsprechend erweitert. Alle nötigen Files liegen auf GitHub. GPIO22 ist für SDA und GPIO21 für SCL.

Fazit

Für knapp 20€ erhalten wir einen wirklich guten Node, der sich hervorragend als zum Mappen eignet. Der GPS-Chip findet schnell einen Fix und liefert sehr gute Positionsdaten. Die Bauform ist relativ kompakt und er lässt sich über eine 18650 Zelle sehr einfach mit Strom versorgen. Zu der Laufzeit kann ich bisher noch nichts sagen, da ich den Node bisher noch nicht habe durchlaufen lassen. Im vergleich mit meinem selbst gebauten Mapper-Node, habe ich hier etwas besseren Empfang und einen schnelleren GPS Fix.

1 Gefällt mir

35 Gedanken zu “TTGO T-Beam – Kompakter Knochen zum Mappen”

  1. Bei meinem T-BEAM ist die GPS Antenne ziemlich mies. Auf dem Fensterbrett bekomme ich auch nach 15min keinen GPS fix. Wenn ich auf eine andere keramische Antenne gehe (quadratische Bauform, ca 30x30mm) habe ich den Fix innerhalb von Minuten.
    Wie sieht das bei deinem aus?

    • Hallo Reinhard,

      ich kann mich wirklich nicht beklagen. Ich bekomme, selbst an der Fensterbank, zügig einen Fix. Und zügig ist hier innerhalb ein paar Minuten, bei ganz kaltem Node und innerhalb einer halben Minute und schneller, wenn der Node bereits einen Fix an dem Tag hatte. Also ich bin zufrieden.
      Wenn ich es richtig verstanden haben, holt sich der GPS Chip von den Satelliten den Almanach (Bahndaten aller Satelliten für die Zukunft). Damit ist später ein Fix viel schneller möglich.

  2. Klasse ist hier auch die PAX-Counter Software drauf von verkehrsrot, mit Display und GPS ist die ein mobiler Zwitter aus PAX-Counter und TTN-Mapper.

  3. Hi Björn,
    ich habe die Antenne meines TTGO T-Beam gerade nochmal schnell mit dem N1201SA durchgemessen und komme auf einen VSWR Wert von 1.1 (Analyzer in der Hand) und 1.4 (auf dem Boden). Das sind eigentlich sehr gute Werte und sprechen für die mitgelieferte Antenne.

    Auf Thingiverse gibt es auch ein Design für den 3D Drucker: https://www.thingiverse.com/thing:3041339
    Wenn man die Löcher der Schrift nachträglich mit einem 3D CAD Programm schliesst, kommt da dann auch ein ganz brauchbares Gehäuse bei raus :-).

    CU Tim

  4. Ich versuche nun seit Tagen auf meinen TTGO T-Beam einen Sketch zu flashen. Sowohl mit der ArduinoIDE als auch mit Atom/PlatformIO will mir das nicht gelingen.
    Ich arbeite eigentlich schon lange mit ESP8266/ESP32/TTGO V1 und hatte in dieser Richtung bis jetzt keine Probleme.
    Wenn ich mir mit putty die serielle Schnittstelle anschaue bekomme ich folgenden Text bzw. Zeichenfolge:
    ets Jun 8 2016 00:22:57

    rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:808
    load:0x40078000,len:6084
    load:0x40080000,len:6696
    entry 0x400802e4
    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
    die nicht lesbaren Zeichenfolge nach ‚entry 0x400802e4‘ besteht Hex aus der sich immer wiederholdenden Folge von e2 96
    Hat jemand eine Idee, was da schief läuft?
    Danke für eure Hilfe.
    Wolfgang

  5. Hallo Björn,
    ich habe meinen T-Beam mit der dem Git von Cyberman zum fliegen gebracht. Einzig der GPS-Chip sagt leider gar nichts – im Display stehen 0 Sats. Das deckt sich mit dem, was die Mapper-Software ausgab, dort stand im Display no valid GPS-Fix.

    Ich denke ein Weg zur Fehlersuche ist das von Dir beschriebene Pass Trough-Sketch. Hast Du ein Tut0rial wie ich das auf den T-Beam einspiele?

    Thx, Archer

    • Hi,

      leider hat WordPress den Sketch etwas zerstört, ich habe ihn nun auf GitHub abgelegt.

      Zusätzlich musst du die Arduino ESP32 Erweiterungen installieren und SoftwareSerial zu deiner Bibliothek hinzufügen. Als Board wählst du dann Heltec_WIFI_LoRa_32 und schiebst den Sketch auf den T-Beam. Fast wie hier beschrieben.

      Über den SeriellenMonitor oder die Software von uBlox kannst du nun schauen ob Daten ankommen. Geh ruhig mal raus mit dem Ding, im Haus ist GPS immer schlecht.

      Grüße,
      Björn

  6. Hallo und vielen Dank für diese Einleitung in den T-Beam.
    Eine Frage hat sich mir leider nicht beantwortet: Kann über den T-Beam der eingesetzte Akku gefahrlos geladen werden oder ist es analog zum TTGO LoRa32 V2.1 – 1.6 nicht gefahrlos möglich.
    Danke!

    • Einen direkten Tipp kann ich dir nicht geben. Hab es damals bei AliExpress gekauft.
      Es ist ein 0,96 Zoll OLED Display I²C mit 128×64 Pixel. Wenn du es direkt an den T-Beam löten willst, solltest du darauf achte, das der erste PIN VCC ist und der zweite GND. SCL und SDA ist egal, da du dieses in der Software anpassen kannst.

      Grüße,
      Björn

  7. Ich habe auf dem T-Beam die PAX-Software drauf die laut allen Beschreibungen auch TTNMappen kann:
    https://github.com/cyberman54/ESP32-Paxcounter

    Im TTN habe ich den Decoder mit folgendem Inhalt angegeben:

    // Decoder for device payload encoder „PLAIN“
    // copy&paste to TTN Console -> Applications -> PayloadFormat -> Decoder

    function Decoder(bytes, port) {
    var decoded = {};

    if (port === 1) {
    var i = 0;

    if (bytes.length >= 2) {
    decoded.wifi = (bytes[i++] < 15) {
    decoded.ble = (bytes[i++] < 4) {
    decoded.latitude = ((bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.longitude = ((bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.sats = bytes[i++];
    decoded.hdop = (bytes[i++] << 8) | (bytes[i++]);
    decoded.altitude = (bytes[i++] << 8) | (bytes[i++]);
    }
    }

    if (port === 2) {
    var i = 0;
    decoded.battery = ((bytes[i++] << 8) | bytes[i++]);
    decoded.uptime = ((bytes[i++] << 56) | (bytes[i++] << 48) | (bytes[i++] << 40) | (bytes[i++] << 32) |
    (bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.temp = bytes[i++];
    decoded.memory = ((bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.reset0 = bytes[i++];
    decoded.reset1 = bytes[i++];
    }

    if (port === 4) {
    var i = 0;
    decoded.latitude = ((bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.longitude = ((bytes[i++] << 24) | (bytes[i++] << 16) | (bytes[i++] << 8) | bytes[i++]);
    decoded.sats = bytes[i++];
    decoded.hdop = (bytes[i++] << 8) | (bytes[i++]);
    decoded.altitude = (bytes[i++] << 8) | (bytes[i++]);
    }

    if (port === 5) {
    var i = 0;
    decoded.button = bytes[i++];
    }

    if (port === 6) {
    var i = 0;
    decoded.rssi = bytes[i++];
    decoded.beacon = bytes[i++];
    }

    if (port === 7) {
    var i = 0;
    decoded.temperature = ((bytes[i++] << 8) | bytes[i++]);
    decoded.pressure = ((bytes[i++] << 8) | bytes[i++]);
    decoded.humidity = ((bytes[i++] << 8) | bytes[i++]);
    decoded.air = ((bytes[i++] <= 2) {
    decoded.battery = (bytes[i++] << 8) | bytes[i++];}
    }

    if (port === 9) {
    if (bytes.length === 1) {
    decoded.timesync_seqno = bytes[0];
    }
    }

    return decoded;

    }

    Dadurch erhalte ich habe vom GPS nur folgende Werte:

    payload_fields: object
    altitude: 41728
    hdop: 27136
    latitude: -1896544765
    longitude: -2043714816
    sats: 7

    Die L. und L. stimmt natürlich gar nicht.
    Hat dafür jemand eine Lösung?

    Danke!

    • Fällt mir spontan die Konfig ein. In der paxcounter.conf muss ebenfalls PLAIN als ausgabeformate gewählt werden:
      #define PAYLOAD_ENCODER 1

      Überprüf das mal bitte.
      Grüße,
      Björn

  8. Hallo ihr Spezialisten,
    ich muß vorausschicken das ich nicht gerade der super Checker diesbezüglich bin.
    Aber ich komme mit meinem „Projekt einfach nicht weiter.
    Ich nutze den T-Beam in Kombination mit einem eReader Kobo Glo(inkl. LK8000 Flugsoftware) zum Fliegen um die GPS und Flarmdaten auf den Kobo zu bringen.
    Bisher habe ich das über Wifi getan, leider funktioniert das nur sporadisch, da der Kobo die Verbindung immer wieder verliert bzw. dann nicht mehr abspeichert, wenn ich den Kobo ausschalte.
    Daher würde ich gerne eine Kabelverbindung herstellen.
    Frage ist nun:
    Welche Pins muß ich beim T-Beam „anzapfen“ um die nötigen Daten des GPS sowie des Flarm mit meiner Seriellen Schnittstelle im Kobo oder auch evtl. USB Micro Buchse zu verbinden?ß
    Könnt ihr mir da helfen?
    Herzlichen Dank
    Andreas

    • Hallo Andreas,

      wenn ich es richtig verstehe, nutzt du SoftRF. Leider befasse ich mich mit dem Thema überhaupt nicht und kann dir daher auch nicht weiter helfen. Bitte wende dich an ein entsprechendes Forum ob es möglich ist, die Daten per USB abzugreifen.

      Grüße,
      Björn

  9. Hi,
    ich habe diese Woche die neueste Revision t22_v1.0 20190612 erhalten. Zuvor hatte ich eine Version mit Schiebeschalter als Powerknopf. Die neue Version hat nur noch Druckknöpfe. In der alten Version ist nach der Stromversorgung kurz danach SoftRF gestartet, hat ein Wifi aufgemacht und die gps-led hat geblickt – der T-Beam war bereit und Flarm läuft.
    Beim neuen T-Beam ist mir der Status unklar. Es geht keine blaue LED an und ein Wifi wird auch nicht eröffnet, der Stromverbrauch liegt bei 0.125mA und man sieht auch, wie die Stromaufnahme sinkt, wenn man resettet aber ich habe kein SoftRF. Weiss jemand wie ich das zum Laufe bekomme oder hat die neueste Version am Ende gar kein SoftRF drauf?

  10. Hallo,

    vielen Dank für die gute Anleitung. Mit Display läuft der TTGO gut und es ging schnell ihn aufzusetzen. Allerdings schaffe ich nur den Zugang mit ABP, mit dem ich bisher auch bei anderen Nodes gearbeitet habe. Beim Versuch mit OTAA kommt beim Lora Status „Unknown event“, d.h. es kommt etwas zurück, was nicht vorgesehen ist. Das gleiche passierte auch mit der „ohne Display Variante mit ABP, bei dem das Phänomen auftritt, dass er den Frame Counter in der TTN Konsole nicht hochzählt und ständig nur „Retry“ Pakete signalisiert. MIt „ohne Display“ meine ich die nicht geforkte Version nach DeuxVis, die ich ohne Display vorher auf dem TTGO testen wollte.

  11. Hallo,
    hat noch jemand ein Problem mit der Unterspannung am T-Beam? Falls ich mal vergesse den T-Beam auszuschalten, wird der eingesetzte 18650 LiPo Akku tiefentladen und geht nach kurzer Zeit kaputt. Die Akku Spannung sinkt dann unter 100 mV und er lässt sich nicht mehr laden.
    Die chinesichen Webseiten (Banggood, Aliexpress) zeigen bei den Featutres eine Unterspannungserkennung aus. Aber diese scheint wohl nicht zu funktionieren.

    Wenn ich ein Labornetzteil anschliesse und die Spannung unter 2 Volt absenke, werden immer noch ein paar mA gezogen. Ich hätte erwartet, dass sich das Gerät bei dieser Spannung komplett abgeschaltet.

    Hat jemand ähnliche Erfahrungen gemacht?

  12. Hallo, bin bisher nicht dazu gekommen weiter betreffend OTAA zu probieren, kein Erfolg bisher.
    Die Original Antenne bzw. auch zugekaufte mit Magentfuß machen eher den Eindruck „nicht der große Wurf zu sein“. Oder aber es liegt am T-BEAM selbst, dass das Loggen nicht besonders beeindruckend funktioniert. Bisher habe ich eher meinen selbstgebauten Arduino Pro-Mini mit selbst gedrehter Helix Antenne hat eine deutlich bessere Empfangsquote am eigenen Gateway.

  13. Die originale Antenne des t-beam ist top abgestimmt, mit einem swr von unter 1.1, da gibt es nichts zu meckern.
    Damit habe ich schon ogn Stationen in über 100km Entfernung erreicht in entsprechender Höhe. Die Empfangsleistung des t-beam ist eher schlecht und darauf ist er auch nicht ausgelegt. Jeder sdr Stick ist hier besser. Flarm-Sender in max 9km Entfernung konnte ich mit dem t-beam empfangen, bedeutend mehr geht auch mit einer top Antenne nicht.
    Kauft euch einen nanovna und stimmt eure Antennen selber ab, alles andere ist Zeitverschwendung

  14. Nanovna ist ganz einfach zu bedienen und es gibt auch einige Videos zur Bedienung.
    Einfach erstmal kalibrieren mit dem beigelegten Sachen, dann Antenne dran und erstmal gucken von 1 bis 900mhz was die Antenne so macht und den swr grob im Bereich 860mhz anpassen durch Längenänderung. Dann 800 bis 900mhz im nanovna einstellen und Finetuning betreiben bis der swr so klein wie möglich ist…1.0 ist perfekt. Fertig. Die t-beam antenne würde ich so lassen aber man kann zumindest mal überprüfen ob sie funktioniert. Ich würde die Version mit lipo-batterie und Metallgehäuse kaufen, kost 60euro oder so.

    • Hallo Peter
      Mein nvna ist angekommen. Er startet auch korrekt und scheint soweit zu funktionieren. Jedoch zeigt er NIE irgend eine Aufzeichnungslinie (das Smith-Diagramm z.b. ist aber vorhanden).
      Natürlich habe ich schon kalibriert, eine neue Firmware hochgeladen aber immer das selbe – keine Linie, egal mit welcher Antenne. Auch das Tool NanoVNA Saver funktioniert nicht: NanoVNASaver.SweepWorker – WARNING – Got a non-float data value: 2147483647.147483647 2147483647.147483647 (2147483647.147483647). HAst du noch eine Idee, oder ist das Ding im Eimer? Auch google konnte mir nicht weiterhelfen….

      • Hm, hat es vor d.firmware Update funktioniert? Wieso hast du gleich ein Update gemacht, ich hatte das erst mal so gelassen.
        Ich habe seit paar Tagen das Update für 1.5ghz drauf aber das überzeugt mich derzeit nicht, überlege wieder zurück zu gehen.
        Hast du unter display z.b. swr ausgewählt damit du die Sachen angezeigt bekommst?

        • nee, hat auch vor dem Update nicht funktioniert…. (deshalb hatte ich das Update mal versucht)

          jep, SWR habe ich ausgewählt, aber keine Linie…(aber eben: die fixen „Diagrammlinien“ wie z.b. das Smitsh-Diagramm) sind schon vorhanden, einfach keine Messdaten

          • Oh, das klingt ja nicht wirklich gut. Ich schätze da hast du wohl eine Gurke…aber meist schicken die Chinesen Ersatz, wenn du denen ein Video schickst dass das Teil nicht geht. Habe gesehen, dass es auch nanovna gibt die schon mit 1.5ghz fw verkauft werden…evtl gleich so ein Ding kaufen.

Schreibe einen Kommentar