BOB-Platine für FiPy

Wir brachen also bei der Belegung von

sdDATA1 (p3)
sdDATA2 (p9)
sdDATA3 (p10) 

nicht auf die SD-karte rücksicht nehmen, weil nur sdDATA0 (p8) benutzt werden würde.

1 Like

Nachdem Caro am Freitag meinen Prototypen angesehen hat, habe ich die Pinbelegung bearbeitet. Die neuste Version kommt heute abend.
Ich habe das Layout in Fritzing angefangen und am Wochenende etwas Lehrgeld bezahlt.
Ich habe vor 20 Jahren meine letzte Platine gemacht. Kurz: ich muss noch üben, bin aber guten Mutes. Vielleicht kann mir ja jemand helfen?
Die nächste Frage: Micropython oder Arduino-IDE? Ich habe alle Testprogramme in Arduino, auch die von Clemens überarbeitete HX711-Library. Ich teste mit Windows10 und der Arduini-IDE V1.88. Die normalen Arduinos und ESP32 funktionieren ganz einfach damit. Für den FiPy benötigt man (zwingend) den Taster Reset und den Taster Flash, auch wenn das in der Doku anders steht. Deshalb habe ich auch die beiden Taster auf dem Board.

1 Like

Hi @didilamken, bin auch gerade an der Platine, lass uns das gerne zusammen machen!! Fritzing ist zwar nicht “engineer’s first choice”, man kann neben einfachem Platinen-Design aber auch eine schöne breadboard-Ansicht zeichnen, um einfach zu zeigen wo welche Kabel hin sollen.

@einsiedlerkrebs hat am Donnerstag schon eine Platine als Prototyp gelötet, die als “Zwischenlage” zwischen das PyCom-Erweiterungsboard und den FiPy / LoPy passt. Man könnte damit etwas Platz sparen und ggf. auch die Platine mit FiPy ohne das Erweiterungsboard verwenden, falls man keine SD-Karte braucht.

Magst du schon mal die Pin-Belegung hier posten, damit wir die gleiche Belegung verwenden?

MIt C/C++ / Arduino und MicroPython schlagen auch bei mir zwei Herzen in der Brust. Da ich auch schon lange C/C+±Code für Arduino verwende und schreibe ist das naheliegend und war auch meine erste Wahl und so mit @caro noch Anfang des Jahres eigentlich ausgemacht.

Wir sehen aber gerade an verschiedenen Ecken, dass die ESP32-boards mit ihren zwei Kernen doch etwas komplexer und komplizierter sind als ein Arduino, bei dem nur alles seriell abgearbeitet wird und bei dem man sich wenig kümmern muss, dass Dinge sich nicht gegenseitig behindern. Alles hat schon mit dem ESP8266 angefangen, bei dem immer wieder das WLAN-Modul Kernel-Leistung brauchte, damit es nicht abgeschmiert ist. Man musste z.B. damals an diversen Stellen der HX711-lib ein yield(); einfügen, damit der kernel dem WLAN-thread auch wieder erlaubt hat zu schauen, ob über die Funkschnittstelle neues reingekommen ist.

Das ist aber nur ein Aspekt, da PyComs first choice MicroPython ist, entwickeln sie für ihre Hardware erst mal in MicroPython, ggf. gibt es dann jemanden, der die Dinge auch für das Arduino-Universum erschließte, wann das passiert und welche Qualität das hat ist aber nicht berechenbar. Wir haben gerade noch Probleme den neuesten LTE-Standard der FiPy-Module mit MicroPython zu erschließen, der ja eigentlich offiziell von PyCom unterstützt wird, aber selbst das ist noch tricky, wie und ob das überhaupt mit dem Arduin-Core finktionieren würde, wissen wir momentan gar nicht. Da ist die “sicherere” Bank auf den “offiziellen” MicroPython-Code zu setzen, der laut @Andreas auch allgemein die beiden cores meist besser unterstützt.

Ich weiß viele “wenn” und “aber”, wir sind auch hier bei der Nutzung der Technologie relativ weit vorne und nahe dran an Dingen, die noch nicht lange fertig oder gar noch in der Entwicklung sind. Das ist auf der einen Seite super toll, die “Speerspitze” zu sein, Dinge mit als erste für ein neues Anwendungsgebiet zu erschließen, manchmal aber auch frustrierend und demotivierend, weil Dinge noch nicht so funktionieren, wie sie sollen oder wir uns das wünschen. Es ist eben keine consumer-Elektronik, die wir hier einsetzen, und selbst die funktioniert manchmal ja nur holprig! ;-)

Langer Rede kurzer Sinn: Lass es uns mit MicroPython versuchen, @vinz von der Uni Bremen hat da auch schon gut vorgelegt, @Andreas ebenfalls.

1 Like

Hallo Clemens
ich bin gerade am Kochen, deshalb auf die Schnelle ein paar Screenshots:

Mein Prototyp 1 auf Lochraster

Die Pinbelegung von Prototyp 2

Der Teilschaltplan in Fritzing

Das Teillayout ( so weit bin ich bislang gekommen)

Heute Abend habe ich mehr Zeit.

Didi

Prototype: BeeBuerger v1

I just made a sandwich construction based on an Adafruit Perma-Proto 1/4 Sized Breadboard running the Hiveeyes MicroPython Datalogger Firmware.


Wiring:

P22: HX711 SCK
P21: HX711 DT
P16: General purpose input ( GPI(!O) )
P14: General purpose input ( GPI(!O) )
P13: General purpose input ( GPI(!O) )
P11: DS18x20
P10: I²C SCL
P9 : I²C SDA
2 Likes

…guten abend.

Da bin ich mir nicht so sicher, wir bespielen den hier mit dem Extension Board da brauchte es bisher keinen Tastendruck für den normalen Betrieb (reguläres Flashen), lediglich das upgrade der Firmwares brauchte solches.

Im Moment entwickeln wir an einer Micropython version. Es gibt dafür diverse Gründe, vorrangig ist für mich, dass sich mit Python leichter eine generische Firmware bauen lässt die tut was man will und weil ich finde, dass in Python der Einstieg/die Weiterentwicklung tiefere Hürden hat als Arduino/C++.

Na klar! Schickt doch einfach eine (private) Nachricht and @Andreas oder @einsiedlerkrebs mit euren Github Logins und wir fügen euch hinzu!

Nur ein kurzer Hinweis zum deinem Board-Vorschlag, @didilamken: Wir werden leider mit den Tastern alleine nicht auskommen, da wir für WLAN das Netzwerk brauchen und irgendwie das Passwort eingeben müssen, bei LTE den APN. Daher würde ich die Tara- und Justier-Funktion genau wie die WLAN oder APN-Auswahl entweder in eine setup-Routine verschieben (die über die Serielle “bedient” wird) oder (noch besser!!) den FiPy als AccessPoint starten, dann kann man sich mit einem Rechner oder Handy darauf verbinden und alle Konfiguration und Waagen-Justierungen sehr komfortabel darüber machen. @vinz hat hier schon angefangen etwas zu coden. So als Idee die Konfiguration der Feinstaubsensors von luftdaten:

Die pullups bei den Tastern kannst du übrigens physikalisch weg lassen, der ESP32 hat interne pullups und auch pulldowns, die man per Software aktivieren kann, z.B.

Hallo an alle,
ich glaube, wir können uns auf folgende Pinbelegung einigen:
P22: HX711 SCK GPIO25
P21: HX711 DT GPIO26

P11: DS18x20 GPIO22
P10: I²C SCL GPIO13
P9 : I²C SDA GPIO12

Dann können folgende Pins als Input für Taster benutzt werden
P16: SW1 GPIO39
P14: SW2 GPIO37
P13: SW3 GPIO36

und als Ausgang
P3: LED1 GPIO4
P12: LED2 GPIO21
Wer sie nicht benutzt, braucht sie nur nicht zu bestücken.

Reserviert sind für SD-Card
P4: SD_CMD GPIO15
P8: SD-DATA GPIO15
P23: SD_CLK GPIO14

Reserviert für LoRa sind
P5: LoRa_CLK
P6: LoRa_MOSI
P7: LoRa_MISO

Reserviert für LTE sind
P20: LTE_TX
P19: LTE_RTS
P18: LTE_RX
P17: LTE_CTS
P15: LTE_WAKE

Für die Programmierung mit MicroPython braucht man keine weiteren Pins.
Für die Programmierung mit Arduino-IDE sind folgene Pins nötig:
RST: Taster Reset
P2: Taster Flash

Wer also mit MicroPython UND Arduino-IDE testen will, sollte also alle Tasten einbauen.
Auch die LEDs sind sehr gut für die Programmentwicklung und zum Lernen.
Vielleicht will ja mal ein Hobbyimker auch ein Hobbyprogrammierer werden.
Meine Einführungs-Sketche gibt es unter

Clemens hat gerade erwähnt, dass man laut Doku die pullups weglassen kann. Das hat leider bei mir mit der Arduino-IDE nicht funktioniert. Deshalb sind sie auf meiner Platine.

Viele Grüsse
Didi

PS: Ich werde es in der Software testen. Die Widerstände verbrauchen viel Platz. Deshalb wäre es schön, wenn sie wegfallen.

Einige Pins haben die internen pullups / pulldowns nicht und können auch nur als input verwendet werden, das sind laut pinout-Diagramm GPIO34-GPIO39, also genau die pins, die du für die Taster vorgesehen hast, nämlich P13, P14, P16! ;-)

Der Pin P12 ist laut Datenblatt ein Schalter, ob für WLan/Bluetooth die interne oder eine externe Antenne benutzt werden soll. Ich weiß nicht, ob man ihn ohne Probleme als Ausgang nutzen kann, ohne das man Probleme mit dem WLan bekommt.
Hast Du das schon getestet?

1 Like

Das sollte passen!

Beim DS18x20 auf P11 / GPIO22 habe ich noch kurz überlegt den (ist auch MOSI) freizuräumen, falls wir perspektivisch SPI brauchen. Wäre aber eh eine größere Nummer, da CLK auch (von I²C) belegt ist und wir sowieso nix mehr frei haben. Könnte man später aber auch per Software ändern!

P14 ist eh mit einem Button des Erweiterungsboard verbunden. P16 liest am Erweiterungsboard die Batteriespannung, den könnten wir wenn wir auch die Spannung lesen nicht für einen Taster verwenden.

P12 ist – wie @vinz geschrieben hat der Auswahl-Pin für externe / Interne WLAN-Antenne, können wir damit nicht verwenden.

Genau, das passt!

Der Reset-Button ist ja schon auf dem FiPy, kannst du mit dem expansion board den FiPy ohne Tasten flashen? Hast du die Version 2 oder die Version 3 des expansion boards? s.
https://docs.pycom.io/datasheets/boards/expansion3.html#differences-between-v20-and-v30

Der Reset-Button ist ja schon auf dem FiPy, kannst du mit dem expansion board den FiPy ohne Tasten flashen? Hast du die Version 2 oder die Version 3 des expansion boards?

Ich habe das Expansionboard V3.1. MicroPython lässt sich wie dokumentiert flashen, mit der Arduino-IDE geht das leider nicht.
Die Tasten sind sehr klein und lassen sich schwer erreichen, wenn alles in einem Gehäuse versteckt ist. Wenn man alles per Software ( Konfiguration usw. ) machen kann, braucht man auf dem BOB-HAT die Tasten und LEDs nicht zu bestücken und hat freie Hand.

Ich würde gerne den BOB-HAT als Übungsplatine für Anfänger benutzen können. Dann kann man die LEDs blinken lassen, die Taster abfragen, die Sensoren einzeln testen usw. Ich könnte die Testprogrammen schreiben ( oder gibt es das schon ? ), so wie ich es mit der Arduino-IDE für ESP32 DevKitC gemacht habe. Der und mein FiPy laufen in der Garage vor sich hin und haben bald 1 Mio Messungen gemacht.

Das könnte auch Hobbyimker interessieren, die kein WLAN an der Beute haben. Die Prototypen messen Waage, BME280 und DS18B20 und geben die Messwerte auf dem Display aus. Der Abgleich funktioniert auf Tastendruck. Geplant ist die Speicherung auf der SD-Karte. Die kann dann ab und zu ausgelesen werden.

Ich messe so die Daten meiner Solaranlagen seit 2004 und habe sie bis 2016 auf einen Server der Hochschule Bremen übertragen.

http://solarserver.hs-bremen.de/
Das Haus dort ist meins. Die Daten sind leider nicht mehr sichtbar.

Viele Grüsse
Didi

Pinbelegung FiPy

:warning: Diese Tabelle wurde nun auf der Seite Designierte Pinbelegung für ESP32 auf FiPy-Board veröffentlicht und wird dort gemeinsam weiter gepflegt.

Pin Funktion GPIO
RST Taster-Reset
P2 Taster-Flash
P3 LED1 GPIO4
P4 SD_CMD GPIO15
P5 LoRa_CLK
P6 LoRa_MOSI
P7 LoRa_MISO
P8 SD-DATA GPIO15
P9 I²C-SDA GPIO12
P10 I²C-SCL GPIO13
P11 DS18x20 GPIO22
P12 LED2 WiFi external/internal GPIO21
P13 SW3 GPIO36
P14 SW2 GPIO37
P15 LTE_WAKE
P16 SW1 Vbat GPIO39
P17 LTE_CTS
P18 LTE_RX
P19 LTE_RTS
P20 LTE_TX
P21 HX711-DT GPIO26
P22 HX711-SCK GPIO25
P23 SD_CLK GPIO14
1 Like

Seit ein paar Tagen übe ich mit Fritzing für den BOB-HAT. Dabei ist mir folgendes aufgefallen:

  • die neueste Version ist 3 Jahre alt
    Download our latest version 0.9.3b released on Juni 2, 2016
  • es gibt jede Menge komplexe Bauteile von verschiedensten Herstellern, aber kaum einfache Bauteile wie verschiedene Widerstände und Buchsen / Stecker
  • mit dem Bauteileeditor kann ich keinen Widerstand mit kleinerem Beinchenabstand erstellen.
  • für die Buchsen mit 3,5 mm Abstand habe ich nur einen 2-poligen gefunden, ein 3-poliger sieht völlig anders aus. Für den 4-poligen nehme ich 2 2-polige und für den 5-poligen einen 2er und 3er. Das ist nicht sehr professionell, geht aber auf der Leiterplatte.
  • ich habe im Netz kaum Beispiel-Platinen gefunden, und wenn, dann nur mit wenigen Bauteilen.

Kann mir jemand weiterhelfen?

Didi

Ich versuche es einmal! ;-)

Ja, Fritzing ist nicht mehr ganz frisch, die Bauteile, gerade die Standardbauteile sollte aber alle vorhanden sein.

Wichtig ist, dass es nicht nur ein Bauteil gibt, sondern auch Bauteilgruppen, du kannst also einfach einen normalen Widerstand auf die breadboard-Ansicht ziehen und dann links unten eine Vairante wählen. In der Breadboard-Sicht bleibt der Widerstand ein bedrahteter Standardwiderstand, in der Platinen-Ansicht wird er aber zu seinem SMD-Teil oder was du auch immer gewählt hast.

Hier kannst du z.B. den Beinchenabstand einstellen:

… und hier die Bauform:

Auf der Platine schauen die verschiedene Widerstände – ich habe immer den einen Standard-Widerstand verwendet und nur den Beinabstand bzw. die Bauform verändert!! – so aus:

2019-03-22%2019_32_33-Greenshot

Brauchst du alles nicht, ;-) geht auch wieder wie oben! Bei den Bauteilen unter “core” im Abschnitt “Verbindung” das Bauteil “screw terminal” verwenden, dann kannst du unten auch wieder Beinabstand und Anzahl der Kontakte einstellen:

Herzlichen Dank für das Tutorial. Jetzt kann ich weitermachen.

Didi

FiPy

  • Den FiPy habe ich als Fritzing-Part bisher nicht gefunden, allerdings den WiPy: uPyDistance/wipy.fzz at master · lemariva/uPyDistance · GitHub Traue dem Design aber nicht ganz. Die Löcher scheinen einen Tick weiter auseinander zu sein als die 8 Standard 0,1 inch-Abstände!
  • Größe: 55 x 20 mm, siehe auch S. 25 für weitere Abstände
  • 14 pins mit 8 Pin-Reihen Abstand

PyCom Expansion Board 3.0

  • Größe: 65 x 50 mm, leider keine weiteren Größen- und Abstandsangaben

@didilamken magst du hier mal drüber schauen, könnte das so passen?

pycom-expansion-board_v0.9.fzz (47.3 KB)

fzz_%20-%20Fritzing%20-%20%5BLeiterplattenansicht%5D

edit: Noch ein Nachtrag, gestern war es spät! ;-)

  • wir brauchen die etwas längeren stackable header, da die Jumper auf dem extension board recht hoch noch oben ragen.
  • auf der Platine links unten ist die 4-polige Stifteleiste für ein CN3065 breakout solar charger, z.B. 1S Solar Lader Regler 35 - 1000mA für Lithium Polymer Akku 3,7V LiPo | eBay, todo cg: checken, ob der sich mit der Ladeelektronik des extension boards in die Haare kommt, ggf. Hinweis auf PCB ergänzen
  • habe zwei I2C-Anschlüsse vorgesehen (der rechts vielleicht zu eng am PyCom-Board), z.B. für einen optionalen zweiten BME280 für Außen-Temperatur und -Feuchte, war bei BOB afaik bisher nicht vorgesehen.
  • Logo ist von @caro geklaut, gibt es ein offizielles BOB-Logo oder ernennen wir das dazu? ;-) Ich finde es sehr hübsch!
  • [done] ein paar Beschriftungen fehlen noch: Temperaturrechen, Feuchte/Temp bzw. I2C, Wägezelle
  • [done] Abstände (besonders solar-Platine, screw terminals (da sind die Umrandungen nicht identisch mit der tatsächlichen Größe)) muss ich noch doublechecke, habe gestern schon mehrfach gemessen, Praxistest steht aber noch aus!
  • [done] ich werde als Alternative zum HX711 noch ein screw terminal auf die Platine packen, damit man statt des Wägezellenkabels auch ein 4-adriges Kabel mit Vcc, SCK, DT, GND anschließen kann um damit aus der Elektronk-Box raus zu gehen und dann eine HX711-Platine in direkter Nähe zur Wägezelle, z.B. mit dem HX711 Junction Board für 4 Wägezellen anschließen zu können

Neue Version 0.0.12:
pycom-expansion-board_v0.12.fzz (52.2 KB)

1 Like

Ich habe es auf Lochraster nachgebaut:

Ich finde die Schraubklemmen etwas klein, wenn man draussen an der Beute mit einem kleinen Schraubendreher rumfummeln muss. Ausserdem sind die Kabel an drei Seiten, das ist unpraktisch beim Umklappen oder Umstellen. Wie willst Du den FiPy ohne USB-Buchse programmieren? Oder die Steckerleisten müssen weiter auseinander für das Expansion-Board.

Bei meinem Entwurf benutze ich Buchsen/Stecker, die man draussen nur anstecken braucht. Auch gehen die Kabel nur zu einer Seite. Bei der Einfachversion werden sie einfach durch Kerben nach draussen geführt, sonst benötigt man M12-Kabel-Verschraubungen.

Die Taster und LEDs brauchen bei der Profiversion nicht bestückt werden. Sie könnten dem Anfänger aber zum Programmieren nützlich sein.

Mein Fritzing-Entwurf ist fast fertig. Ich habe jetzt die gewünschten Bauteile. Es fehlt nur noch das Feintuning.

Liebe Grüße
Didi

2 Likes