die ist mein erster Post, habe aber in den letzten Wochen schon gute Hinweise hier gefunden.
Wir kriegen eine Kombination von zwei Shields nicht zum Laufen und haben den Eindruck, dass sie nicht kompatibel sind.
Aber vielleicht kennt ja hier jemand eine Lösung:
Wir haben:
Arduino UNO
Adafruit PN532 RFID/NFC Shield v1.0
Seed Studio GPRS Shield v1.4
,
Einzeln laufen die beiden Shields einwandfrei.
Im Päckchen kriegen wir sie nicht zum Arbeiten.
Mit dem GPRS-shield der Mitte des Sandwichs, antwortet das RFID-shield nicht. Offensichtlich sind die beiden nicht verbundenen Pins auf jeder Seite wichtig.
Also haben wir Kabel angelötet und RFID in die Mitte gesteckt, GPRS obendrauf.
Lief auch nicht.
Für uns sieht es so aus, als seien die beiden Shields nicht kompatibel für Arduino-stacking.
Die beiden Pins, die das RFID-shield für die Kommunikation nutzt, scheinen vom GPRS-shield geblockt zu werden. Im Schaltplan des GPRS-shields sieht es für uns so aus, als ob die beiden Pins mit dem SM900 chip verbunden sind.
Wir konnten glücklicherweise erst einmal auf ein gBoard ausweichen und haben unser Bastelprojekt fertig gekriegt.
Aber trotzdem die Frage:
Hat jemand die Kombination Adafruit PN532 und Seeed Studio GPRS im Einsatz?
Haben wir etwas falsch gemacht?
Vielen Dank im voraus
Manfried
PS: es geht übrigens um ein "Office Presence"-Gerät mit dem wir im Web nachschauen können, ob jemand im Büro ist (im Sinne von "ob es Kaffee gibt") - Ein- und auschecken mit einer RFID-Karte (Mensa, Monatskarte, Bibliothek, (moderne) EC-Karte). Eine kleine Zeiterfassung entsteht so auch.
PS: es geht übrigens um ein "Office Presence"-Gerät mit dem wir im Web nachschauen können, ob jemand im Büro ist (im Sinne von "ob es Kaffee gibt") - Ein- und auschecken mit einer RFID-Karte (Mensa, Monatskarte, Bibliothek, (moderne) EC-Karte). Eine kleine Zeiterfassung entsteht so auch.
und was macht das GPRS-shield?
davon abgesehen: es wird wohl nichts blockiert, sondern ein pin von beiden geräten verwendet. vielleicht kann jemand hier sagen, welche pins welches shield verwendet, kann ja auch einzeln sein. und ob es vielleicht zwei cable select gibt. hab' jetzt keine zeit zum suchen.
Ohne drahtlos und Cloud braucht man doch gar nicht erst an den start gehen, oder?
Im Ernst: einer unserer angedachten Einsatzorte hat kein Netz. Deswegen GPRS.
Auch, dass wir den Status mit Timestamp bei einem Cloud-Dienstleister speichern, ist - sagen wir - nicht zwingend nötig hüstel.
Ich meinte natürlich, das ist die Basis für eine Zeiterfassung...
Nenn es Spieltrieb. Und Erschütterung über die Preise für ein Ethernet-Shield. Das GPRS-Ding lag halt schon hier rum. Und im Gboard war es sowieso onboard...
zwei cable select
Das ist ein Ansatz, da schauen wir mal.
Danke
Manfried
PS: Ein paar Details haben wir auch auf Tumblr beschrieben: http://oppardu.tumblr.com/
Im Zweifelsfall und wenn Du zwei einzeln funktionierende Programm-Sketche hast: Schau Dir an, welche Ressourcen Du doppelt verwendest!
Soweit mir bekannt ist, kommunizieren sowohl GSM als auch RFID Module über eine serielle Schnittstelle, und wenn bei beiden Shields das Modul die Kommunikation auf Hardware-Serial Pin 0 und 1 oder anderen doppelten Software-Serial Pins liegt, könnte es problematisch sein.
Ich würde als erstes mal nachsehen, ob Pins für serielle Kommunikation doppelt vergeben sind, und dann müßtest Du ggf. beim Stacken die beiden Serial-Pins des zuoberst gestackten Shields abknicken, so daß sie beim zusammenstecken keine Verbindung bekommen, und dann müßtest Du diese beiden abgeknickten Pins an andere digitale Pins anschließen, die per SoftSerial als eine andere serielle Schnittstelle angesprochen werden können.
Ich bin der Typ, der da intensiver dran gebastelt hat. Also zur Präzisierung:
Das adafruit NFC-Shield kommuniziert (unabänderlich) über Analog 4 und 5 mittels I2C. Alternativ kann man das auch seriell kommunizieren lassen, wenn man Lötbrücken setzt, aber I2C schien uns sinnvoll, weil ja schon das GPRS-Shield seriell kommunizieren will.
Diese beiden Pins sind beim GPRS-Shield laut Schaltplan an den SIM900-Chip angeschlossen, offiziell bzw. softwareseitig ohne irgendeine Funkion. Offenbar unterbindet der SIM900-Chip aber die I2C-Kommunikation über die beiden Pins wirkungsvoll.
Man könnte sicher das GPRS-Board nach oben stapeln und die beiden Pins abknicken. Das haben wir aber nicht ausprobiert, weil wir ein GBoard rumliegen hatten und damit (mit Käbelchen) schneller zu einer Lösung gekommen sind. Zudem – und viel wichtiger – wollten wir das GPRS-Shield nicht beschädigen.
Umbelegen der I2C-Pins vom NFC-Shield geht auf der Hardwareseite nicht bzw. bringt uns nicht nach vorne, weil wir dann die Shield-Pinbelegung ändern müssten. Dann brauchen wir aber auch keine Shields benutzen, wenn wir anfangen rumzulöten.
Die Frage ist nun: Hat jemand Erfahrung mit der Kombination der beiden Shields?
Und andere Frage: Ist die Idee von Arduino mit Shields nicht an sich, dass man stöpseln (statt löten) kann und die Shields die Pins einfach durchschleifen, die sie nicht brauchen? Vielleicht haben wir das ja zu naiv gesehen, aber ohne Weiteres scheint die Kombination adafruit NFC-Shield und Seed Studio GPRS-Shield nicht zu funktionieren und wie es aussieht aus unnötigen Gründen. Das stellt für uns als Einsteiger die ganze lustige Stöpselei mit den Shields direkt erst mal grundsätzlich in Frage.
Mit dem GBoard gibt es keine Probleme, wenn wir das NFC-Shield mit Käbelchen an Analog 4 und 5 anschließen, den Interrupt-Pin an Digital 8 hängen und entsprechend konfigurieren (dazu noch VCC und GND verbinden). Das Problem scheint also wirklich an der Belegung des Seed Studio GPRS-Shields an den beiden analogen Pins 4 und 5 zu liegen. Ich frage mich, wieso die die beiden unbenutzten Pins überhaupt an den Chip anschließen, wenn sie gar nicht gebraucht werden. Lösungsansatz wäre, die Leiterbahnen zum Chip zu durchtrennen. Aber nur so auf Verdacht will ich das lieber nicht machen.
@sichernsiesich,
da gibt es z.B. das Go-Betweenshield Go-Between Shield - DEV-11002 - SparkFun Electronics
da kannst Du beliebig doppeltbelegte Pins auseinanderfrickeln. OK, das kostet extra - aber wenn stack dann stack....
Damit könnte man sicher etwas reißen, schöne Lösung, danke für den Tipp. Die Frage ist nur, ob das GPRS-Shield nicht noch andere analoge Ports stört. Denn eigentlich benutzt es A4 und A5 ja gar nicht (das GBoard läuft jedenfalls 1:1 softwarekompatibel und mit dem NFC-Board auf A4 und A5 ohne Probleme), stört aber trotzdem darauf. Warum sollte es dann andere Ports in Ruhe lassen? Ich befürchte die Seed Studios haben hier einfach gepatzt und sind der Auffassung, dass ihr Shield das einzige Shield sein muss.