Ja, stimmt, ich meinte DTR und CTS am GPRSBee-Modul, war mir nicht ganz bewußt, dass das SIM800-Modul die ähnlich bezeichneten pins hat, die aber beim GPRSBee-Modul anders “generiert” / nicht verwendet werden.
Bin bisher immer von der GPRSBee-Lib ausgegangen, da sind DTR und CTS obligatorisch. DTR schaltet das Modem an (bei der SIM900-Version war es noch ein toggle switch, d.h. wenn es an war schaltete DTR aus, wenn es aus war wurde es mit DTR angeschaltet). Mit CTS wird der an/aus-Status signalisiert. Ich sehe aber gerade auf der beelogger-Seite zum SIM800-Modul, dass die beiden pins nicht zwingend nötig sind. Anscheinend ist mit einer vorhandenen (bzw. geschalteten) Stromversorgung das SIM800 automatisch “on”, d.h. wir könnten auch auf diese beiden pins / Funktionen verzichten, weil wir eine geschaltete Vcc haben/brauchen! Dann wäre allerdings die SODAQ GPRSBee Lib anzupassen, bzw. wir switchen auf die von dir empfohlene lib TinyGSM mit direkter MQTT-Unterstützung.
Bei der Teileliste vom Beelogger GSM-Shield sind übrignes zwei Widerstände angegeben deren Verbauung (noch) nicht dokumentiert ist - ich habe da mal angefragt, ich nehme aber an, dass es ein voltage divider für den RX-Pin des SIM800 ist. Dachte eigentlich dass ein widerstands-basierter Spannungsteiler für so schnelle Schaltvorgänge wie bei einem Modem nicht der Königsweg ist, aber es scheint wohl zu funktionieren.
Auch im Datenblatt zum SIM800-Modul http://simcom.ee/documents/SIM800/SIM800_Hardware%20Design_V1.08.pdf werden auf Seite 30 (auch Seite 30 wie bei deiner Referenz, gerade nur die v1.08 gefunden) als Referenz-Design für den Seriellen Anschluss bei einem 3,3 V MC auch ordinäre voltage divider mit 1k und 5k6 empfohlen. Kann also nicht sooo schlecht sein.
TX level shiften die gar nicht. Warum ist das beim GPRSBee-Modul so “kompliziert” gelöst, oder verträgt das ggf. auch 5V über die Serielle?
Interessanterweise empfiehlt Felix Rusu ein voltage divider für den Anschluss eines RFMxx an einen “richtigen” 5V Arduino (Uno) (3,3 V vs. 5 V) und ich habe das auch so bei meinen Open Hive shields für den Arduino Yun gemacht und die laufen auch ganz gut.
Für mich würde das jetzt bedeuten, dass wir TX direkt anschließen, RX mit einem voltage divider, auf DTR und CTS verzichten können und die Versorgungsspannung direkt vom Lipo über einen Transistor / Mosfet wie beim Beelogger schalten oder eben einen P-channel als direkten high-side switch verwenden, wenn der im Leerlauf nicht zu viel braucht.
Guter Plan, oder passt da was nicht? ;-)