Platine für TTGO T8 (ESP32)

Ich finde Steckverbindungen im Feld viel praktischer, dann braucht man nicht mit Brille und kleinem Schraubendreher draussen rumzufummeln.

Hier wurde viel zum Entwurf diskutiert:

Ich find Federklemmen ja recht praktisch. Die sind auch im Industrieeinsatz sehr beliebt.

Erster Schuss mit dem Schaltplan. Bitte kommentieren.

Die Sachen liegen auf github, PDF Schaltplan & KiCAD Dateien:

Ich schau morgen, ob ich daraus ein PCB machen kann.

  • Pullup für DS18B20 ?
  • C2 und C3 evtl. überflüssig
  • wenn Du 2 Wägezellen an den HX711 anschliessen willst, würde ich je 1 Federklemme U6 und U7 nehmen
  • wofür ist der Reedkontakt ( reset )?

Danke - geändert

C3 hab ich rausgeschmissen, C2 verlegt. Weiß nicht, ob man den braucht. Schaden tuts nicht und die zusätzlichen Kosten sind erträglich. :slight_smile:

Ich wollte die Zellen an A&B klemmen. E+,E- & S dann gemeinsam auf U6. Ist zwar nicht die ganz reine Lehre, sollte aber auch gehen.

Nee, der TTGO hat schon einen Reset-Button auf dem Board. Der ̶i̶̶s̶̶t̶ war gedacht zum aufwecken aus dem Schlaf / versetzen in Maintenance Mode. Nach kurzem Nachdenken fällt mir auf, das das hier Stuss ist, weil das Board am Netz hängt und sowieso immer an ist. Entfernt.

Hinzugekommen ist eine Schnittstelle für I2S. Da habe ich bisher zwar nur eine wage Idee, aber vorbereiten kann man es ja.

Ich habe auch darüber nachgedacht, den I2C herauszuführen. Da weiß ich nur nicht, wofür.

Neue Version:

Vorgesehene und anschließend nicht bestückte footprints (weil Bauteil letztlich nicht benötigt) haben noch niemandem geschadet, sie fressen auch kein Heu. Wenn man umgekehrt ein Bauteil später an dieser Stelle braucht und nichts vorgesehen hat, muß man es später unschön irgendwie dran pfriemeln… also diese Kondensator-footprint drin lassen.

  • Zu C1: als Stützkondensator teilt man sowas in z.B. zwei verschiedene von verschiedener Kapazität und Technologie (das macht man v.a. wegen des unterschiedlichen ESR; siehe auch Ersatzschaltbild eines Kondensators). Also: diesen footprint aufteilen in zwei: 1x z.B. 47µF Elektrolyt + 1x 1µF keramisch. - Umso größer der Kondensator, desto dichter gehört er an die Speisung bzw. deren Anschlüsse. Umso weiter der zweite, kleinere und ‘schnellere’ Kondensator vom größten Verbraucher entfernt ist, desto wirkungsloser ist er, - also dicht ran an den ESP32 (5V-Anschluß). C1 (100n) ist zu klein, sowas verbauen die noch selbst auf den breakout-boards, teurer sind und deshalb oft ‘vergessen’ werden größere keramische Werte (1µ, 10µ…).

  • der HX711 wird ja bekanntermaßen in der maker-community nicht etwa eingesetzt, weil es die meßtechnische Offenbarung wäre, sondern, weil er so spottbillig ist (bekommst noch ne PM dazu). Wenn Du den schon nimmst und nicht ernsthafteres, und auch noch mit beiden Kanälen arbeiten willst, dann verwende wenigstens nur das rote PCBA mit Schirm (dasjenige, das meist bei den fritzing-Steckbrett-Bildern zu sehen ist).
    Bei diesem PCBA sind wenigstens PCB-Design-Grundregeln und die Datenblattvorgaben eingehalten sowie die Bockmist-Fehler der meisten anderen (v.a. des simplen großen grünen) HX711-boards vermieden (außerdem punktet es durch die Schirmung). - Links dazu en masse hier im Forum; Samplerate per Widerstand auf 10 sps ändern, den 80 sps-R dann raus.

  • Du bestromst das HX711-Modul mit 5V. Sehr schön, denn dadurch bekommt der dort verbaute Regler etwas zu tun, sprich: er kann tatsächlich regeln (anders als bei den 3,3V gespeisten Varianten), da dessen externe Beschaltung für 5V ausgelegt ist. Allerdings sind VSUP und DVDD bei (fast) allen HX711-breakout-boards auf VCC geführt, damit haben auch Deine Logikpegel aus dem HX711 5V-Bezug. Der ESP32 ist aber nicht für 5V spezifiziert (max. 3,6V per spec). Genau wie der ‘Erfinder’ des HX711 (Avia Semicon), ist Espressif eine fabless company, und es ist nichts darüber bekannt, welche oder wieviele Firmen überhaupt diesen IC physisch fertigen. Dadurch ist der Fertigungsprozeß unbekannt und kann zwischen den Fertigungslosen variieren: deshalb existieren ESP32, bei denen 5V an den GPIO manchmal oder immer klappt, oder auch nie klappt und mit Defekt enden.
    Darin liegt das größte Problem Deines gegenwärtigen Entwurfs: dadurch, daß das DOUT-Pin des HX711 einen HIGH-Pegel von mehr als 3,6V liefert, kannst Du den ESP32 schon beim ersten Anschließen zerstören. Es kann auch ein paar Monate funktionieren, um dann erst sich zu verabschieden, - oder auch zu gar keinen Problemen kommen. Das ist leider nicht vorhersagbar, und im Zweifel hält man sich an die Spezifikation des (vielleicht auch schlimmen) Datenblatts. Wenn man dazu keine Lust hat (was ich Dir nicht unterstelle), weil der Versuchsaufbau aka bread board ja funktioniert(e), bleibt eine Wahrscheinlichkeit, daß später im Feld das Ding seinen Geist deshalb aufgibt.

Solange das letztgenannte Problem nicht gelöst ist, empfehle ich, erstmal keine weitere Arbeit in den ‘Rest’ zu versenken.

2 Likes

Danke für das Feedback!

Dann hab ich wohl bisher Glück gehabt! :grimacing:

Ich bin für Veränderungen ganz offen. Ich hab auch keinen Zeitdruck - die Bienen kommen ganz gut ohne Waage klar.

Sowie ich das verstanden habe, gibt es drei Alternativen:

  1. das rote HX711 board
  2. ADS1232
  3. NAU7802

Für den ADS1232 scheint es keine Micropython Unterstützung zu geben. Ich hab außer Code für ADS1232 oder ADS1234 - #3 by Andreas auch nicht mehr gefunden.

Für den NAU7802 gibt es auch nichts. Der wird aber über I2C angesprochen und es gibt Arduino libraries. Da sollte eine Implementierung in Python machbar sein.

Die Frage: lohnt sich der Aufwand für 3. gegenüber 1.? Wenn das nur für mich ist, dann sicher nicht. Wenn noch andere was davon haben und das in zukünftigen Waagen eingesetzt wird, dann eher schon.

?

Reicht da ein einfacher voltage divider?

Falls doch Fritzing eine Option ist:

Ich glaube, da wäre ein Optokoppler etwas schicker.

Ich habe eigentlich kein Problem mit dem Zeichnen. Symbole & footprints kann ich mir inzwischen selber machen. Mein Problem liegt mehr im Schaltplandesign - da habe ich nämlich keine Ahnung von.
Ich nehme die Worte von @weef da durchaus ernst. Wenn ich mir jetzt die Mühe mache, dann kann ich es auch gleich richtig machen. Wenn das dadurch länger dauert, dann dauert es halt länger.

Mir geht es momentan darum, welche der drei oben genannten Optionen die sinnvollste für eine Stockwaage ist. Alles weitere folgt dann.

Ok, dann mache ich erst mal mit dem HX711 weiter.
Das Layout ist für die ‘grünen’ HX711. Wenn ich das recht sehe, sind die nicht pinkompatibel mit den ‘roten’?

Neu sind zwei Optokoppler, um die 5V Signale vom ESP32 zu trennen. Lösen die das Problem?
Frage: brauche ich R4&5?

Außerdem habe ich Löcher für einen zusätzliches I2C Element vorgesehen und für alle nichtgenutzten IOs vom ESP.

Alles auch auf Github natürlich.

nein, wieso das denn… raus mit denen.
Die betreffenden Signale haben gemeinsamen Masse-Bezug, ihre Pegel sind sehr ähnlich, - also keine Gründe vorhanden für Optokoppler.

Und gäbe es die, wäre U8 falsch herum; PD_SCK ist ein Eingang am HX711. EIn 4N35 wäre selbst für einen HX711 keine gute Wahl (zu langsam + keine Impulsformung).
Aber PD_SCK muß nicht einmal überhaupt betrachtet werden, denn der max. logic HIGH-Pegel vom ESP32

  • ist hinreichend groß, um vom HX als HIGH erkannt zu werden, und
  • kann, weil aus der 3,3V -Domäne, nie den maximal erlaubten logic HIGH-Pegel am HX überschreiten.

Bitte die auffindbaren Grundlagen zu voltage level translation, logic level translation , level shifting… nachschauen.

Bei Augen-Zudrücken ginge auch ein Spannungsteiler (aber diffzil wg. u.U. nötigem pull-up an SCK für ordentliches HX-power_down) , plus Hühneraugen-Zudrücken reicht ein Serienwiderstand im dreistelligen Ohmbereich in der Clock-Leitung. Das beides stellt keine Funktionsgarantie dar und ist nur der allermindeste Schutz.

Wäre das ein kommerzielles Projekt von mir, würde ich einen 74LVC1T45 an dieser Stelle vorsehen.

Und schon wieder muß ich mich mit dem HX711 beschäftigen… 8(

Nee, musst Du nicht. Du musst nur sagen: ‘nimm besser den ADS1232’ oder ‘nimm besser den NAU7802’. Hab ich ja oben gefragt. Dann hätte ich gesagt: ‘jawohl’ und den jeweiligen dann nach bestem Wissen da rein gezeichnet. Dann hättest Du mir gesagt, was daran alles quatsch ist und ich hätte es geändert, bis es passt.

Ich kann die Waage konstruieren und bauen, einen Schaltplan zeichnen (so lala) und das ganze programmieren. Ich bin auch bereit, da Arbeit reinzustecken, damit was Vernünftiges rauskommt, das auch andere nutzen können.
Was ich NICHT kann, ist SchaltplanDESIGN. Sollte ja inzwischen offensichtlich sein. Wenn mir da keine hilft, kommt nur Stuss raus.

Also: weiter machen mit dem HX711 - ja/nein?
Wenn ja: den SCK direkt an den ESP & einen 74LVC1T45 für SDA?

Trotz grausigen Designfehlern funktioniert bei mir die grüne (billig)-HX711-Platine am FiPy mit 3.3V seit Juni 2019 einwandfrei. Auch die Messergebnisse der Bosche H40A-Wägezelle sind aktzeptabel genau und mit wenig Temperaturdrift.

Man kann nun ein professionelles Redesign mit einem anderen IC machen um noch bessere Ergebnisse zu erzielen, oder man ist mit dem erreichten zufrieden, so wie ich.

Neue Version ohne Optokoppler und mit einem 74LVC1T45. Die gibt es anscheinend nur als SMD, aber ich denke mal, das ist zu verkraften. :slight_smile:

Ich hab dem HX711 auch noch einen Kondensator spendiert. Wie sieht das aus mit den DS18B20? Die sind ja recht weit weg. Ist das dann sinnvoll, auf dem PCB noch einen Kondesator zu haben und wie groß müsste der dann ungefähr sein?

Ansonsten ist das so ok?
Fehlt noch ein Feature, das das Board haben sollte?

Der PullUp R3 kommt zwischen 3.3V und Data geklemmt. Dein jetztiges Setup macht dir einen sinnlosen und recht niederohmigem Strompfad, der deine Batterie schnell leersaugt.

1 Like

D’oh - danke. Consider it fixed.

2 Likes

Du hast ja oben geschrieben, dass wir keinen Micropython-Code für die anderen beiden haben (so weit ich weiß willst du nicht mit Arduino / C-Code fahren). Das wäre halt auch noch ein Entscheidungskriterium.

Mal unabhängig von der (nicht) vorhandenen Software fände ich den NAU7802 schon sehr interessant, zwei Wägezellen / Stöcke könnte man damit anschließen und mit einem I2C-Expander ggf. auch noch weitere. Die Alternative dazu wäre für mich der ADS1234 (der 4er, nicht der 2er), da er eben 4 Kanäle, sprich Wägezellen / Stöcke unterstützen könnte. Der ist aber mit um die 14 EUR deutlich teurer.

Bei beiden haben wir den deep sleep noch nicht getestet, aber von den Datenblättern schaut das schon gut aus.

Für was ist der C1, C2, C4?

Noch nicht. Könnte man aber schreiben, wenn der Aufwand lohnt (= die Hardware ist so viel toller).
Wenn Adafruit bald ein Board für den NAU7802 rausbringt, gibt es Code für CircuitPython. Da ist der Hub zu Mpy klein. Beim ADS wäre es wohl mehr frikkelei, geht aber auch.

Stützkondensatoren (wie @weef oben beschrieben hat)

1 Like

Sorry, wenn ich nochmal etwas grundsätzlicher anfange. ;-) Du schreibst oben

Nur mal zum Starten oder ist Batterie / Solar gar keine Option für dich? Daran schließt die nächste Frage an: Warum der TTGO T-Call? Wenn Strom in der Nähe ist, hat man doch meist auch WLAN, ist ja eher so, dass kein Strom da ist aber WLAN verfügbar.

Wenn schon eine Platine, dann bräuchten wir nicht den Stromfresser T-Call zu nehmen, sondern könnten auch einen WiPy verwenden und ein 5 EUR SIM800-Modul dranklöppeln, abschaltbare Stromversorgung wie hier Low Cost GSM/GPRS-(SIM800)-Node - #9 by weef level shifting wie im Datenblatt über voltage divider.

Oder – ganz kühne Idee :-) – ein nacktes ESP32-Modul.