Platine für FiPy


#1

Das Funktionsmuster auf Lochraster läuft mit Waage ( max. 100g ), BME280 und 5 x DS18B20.
Dazu Taster Boot und Flash, SW1 und LED1 Waage Tara, SW2 und LED2 Waage Scale, SW3 und LED3 Abgleich DS18B20, Akku läuft auch
Alle Messwerte werden auf 1,3" OLED-Display angezeigt.

.


Introduction to MicroPython
Develop BOB on FiPy
[META] Boardentwicklung für Pycom FiPy
Develop BOB on FiPy
Develop BOB on FiPy
Hive monitoring setup with 60 temperature sensors
#2

Yeah, sehr cool! Kannst du noch ein Bild posten, auf dem man die Stecker sieht?


#3

Ich werde erst morgen weitermachen. Bis dahin läuft und läuft und läuft er.



#4

Ich weiss nicht, wo der ganze Staub auf dem Display her kommt


#5

Hallo Clemens,
die Library GitHub - bogde/HX711: An Arduino library to interface the Avia Semiconductor HX711 24-Bit Analog-to-Digital Converter (ADC) for Weight Scales. vom 24.02.2019 scheint stabil zu laufen.


#7

Ich habe gerade den Prototypen in der Garage in Betrieb genommen. Morgen wird Caro ihn begutachten und wir werden das weitere Vorgehen besprechen.
Meine Frage an alle: Welche Pins des FiPy werden für SD-Card, LTE und Lora benutzt?
Herzliche Grüsse
Didi


#8

Das pinout des FiPys sollte das hier sein, darunter der Link zum PDF:

Das LTE-Modul verwendet:

  • 7, 10, 11, 12, 13

für LoRa sind diese pins reserviert:

  • 16, 34, 38

Für die SD-Karte müssen wir uns das Erweiterungs-Board anschauen (PDF-Version ebenfalls unten):

Dort sieht man, dass die SD card mit G10, G11, G15 arbeitet, nun wird es etwas kompliziert, da die Nummern noch für das WiPy-Board Version 1 sind, ich denke es sind beim FiPy die “normalen” Pins

  • 17, 21, 22

(ohne Gewähr :-)


#9

Ich war grad mal auf der suche nach freien Pins auf dem FiPy. Wenn ich mir das Pinout Diagramm so ansehe, könnte das schwierig werden, genug zu finden, die wir nicht “eventuell” an anderer Stelle benutzen wollen würden.

Vorschlag:

I²C:    P9-P10
1-Wire: P11
HX711:  P22-P23
free:   P3

Weiß jemand, ob man z.B. wenn die SD karte grad nicht gelesen oder geschrieben wird, sdDATAn auch für andere Zwecke genutzt werden kann?


#10

Ich bin gerade auch bei der Pin-Belegung. P23 für HX711 kollidiert mit SD_CLK.
Mein Vorschlag kommt in Kürze. Ich mache gerade eine Tabelle mit allem.

Bis später.


#11

Hier kommt meine vorläufige Tabelle. Ich möchte sie aber noch durch Sketche verifizieren, bevor ich mich an das Layout des BOB-HAT mache.
Hat jemand einen für das Beschreiben der SD-Karte? Die 3 Pins SD_CMD GPIO15, SD_DATA GPIO2 und SD_CLK GPIO14 kommen mir zu wenig vor. Was ist mit Chip-Select?

BOB-HAT-Material.pdf (35,5 KB)


#12

Na, Betriebsspannung und GND braucht sie noch, und allermindestens 100n, besser 1µ keramisch parallel dazu, ganz nahe an der SD ! ;)

Nichts, den brauchst Du hier nicht.

Die SD wird bei pycom im 1 bit-SDIO -Modus betrieben; der CS wäre nur im SPI-Modus für eine SD nötig.


#13

Danke für die ausführliche Tabelle! Bekommst du das nochmal in CSV exportiert? Dann könnte man das leichter in das hier genutzte markdown format exportieren.


#14

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.


#15

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.


#16

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.


#17

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


#18

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

[META] Boardentwicklung für Pycom FiPy
Develop BOB on FiPy
#19

…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!


#20

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.


#21

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.