ConfigurableFirmata mit Arduino mini pro über LGW an FHEM

Begonnen von franky08, 27 November 2017, 21:39:33

Vorheriges Thema - Nächstes Thema

franky08

ZitatWas für Platinen?

Hatte ich in China, zum testen, machen lassen  :)
War ja davon ausgegangen das Firmata über den SC genauso funktionieren würde wie mit einem pro mini mit nano CUL FW.

Auf der Platine ist:
- ESP 8266 dev Kit
- 2 x SC16IS750
- 1x MCP 23008
- 1x RFM69 CW
- 2x Arduino pro mini
- 2x BMP180 (1x über das LGW und zum testen 1x über Firmata)
- 1x CC1101
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

franky08

Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

HCS

Zitat von: franky08 am 07 Dezember 2017, 15:58:13
Mal sehen, habe hier was gefunden: ...
Wobei eigentlich RTS (also Arduino-seitig CTS) reichen sollte.
Bevor Du Dir zu viel Arbeit machst muss ich mal das Auto-RTS vom SC16IS750 etwas genauer anschauen, aber ich glaube, man kann ihn so konfiguriern, dass er RTS nur dann setzt, wenn genug Platz im fifo ist. Bedeutet, man benötigt noch eine SC16IS750.RTS Arduino.CTS Verbindung und der Arduino muss seinen CTS respektieren.

PeMue

#33
Zitat von: HCS am 07 Dezember 2017, 17:17:36
Bedeutet, man benötigt noch eine SC16IS750.RTS Arduino.CTS Verbindung und der Arduino muss seinen CTS respektieren.
Das hätte dann aber Auswirkung auf die Verdrahtung der Erweiterungsplatine, korrekt? Dann packe ich das mal mit in die ToDo Liste der Erweiterungsplatine als Merker  ;)

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

franky08

@HCS
Arduino seitig (CTS) ist es nur ein kleines Stück code, wenn ich das richtig sehe
void loop() {
  uint8_t clear_to_send = digitalRead(CTS);
  volatile char data;
  if (clear_to_send) {
    Serial.write(data);
  }
}


Ich komme aber mehr aus der Hardware Ecke

@Peter
ZitatDas hätte dann aber Auswirkung auf die Verdrahtung der Erweiterungsplatine, korrekt?

Jeh nach dem was dem User vorschwebt, soll es Firmata sein dann brauchte man die Verbindung aber ich könnte mir auch vorstellen das jemand 2 pro mini mit nano CUL FW oder ähnlich einsetzen möchte also am besten über Jumper.

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

HCS

Zitat von: PeMue am 07 Dezember 2017, 17:20:15
Das hätte dann aber Auswirkung auf die Verdrahtung der Erweiterungsplatine, korrekt? Dann packe ich das mal mit in die ToDo Liste der Erweiterungsplatine als Merker  ;)
Falls das überhaup funktionieren wird. Ich habe da noch Zweifel.
Die nächste Frage ist, ob das Firmata-Modul mit stockend ankommenden Daten zufrieden ist oder irgend einen Timeout hat.
Nach einem kurzen Überfliegen der Arduino-Firmware ist es wohl nicht so einfach, dass man da an genau einer Stelle mal kurz einen Serial.Write verift.
Um es gleich darzulegen: ich baue die Firmata-Firmware nicht um.


PeMue

Hallo zusammen,

Zitat von: HCS am 07 Dezember 2017, 22:17:29
Um es gleich darzulegen: ich baue die Firmata-Firmware nicht um.
bevor Ihr Euch in der Software zu sehr vertieft, meine Frage: kann jemand mal probieren, ob die Firmata an der Sofwareschnittstelle des EPS8266 (GPIO2=TxD, GPIO0=RxD) läuft? Wenn Frank nur ein Radio hat, könnte er vielleicht seine Platinen dahingehend patchen (und so Elektroschrott vermeiden  8) 8) 8)). Und ich würde einen Lötjumper auf der Erweiterungsplatine vorsehen ...

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

franky08

#37
Krame das breadbord wieder raus und teste es heute mal, berichte dann. Hatte ich aber auch schon probiert. Was mir aufällt
GPIO2 (1TXD am ESP) aber 1RXD ist doch GPIO8 und nicht GPIO0 am ESP und dann wäre noch die Frage nach der Adresse auf der Firmata dann zu erreichen wäre.
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

PeMue

Hallo Frank,

der ESP8266 nutzt die serielle Softwareschnittstelle wie im Schaltplan Nextion Display (S. 2, rechts, Mitte) https://forum.fhem.de/index.php?action=dlattach;topic=45594.0;attach=89914 dargestellt. Der Arduino nimmt normal Rx und Tx wie gehabt.
Du müsstest nur in der LGW die Software Serielle Schnittstelle konfigurieren.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

franky08

ZitatDu müsstest nur in der LGW die Software Serielle Schnittstelle konfigurieren.

Ja, ist klar. Ich hatte das in der letzten Woche schon einmal so getestet Arduino RX ---> D3, TX ---> D4, hat aber nicht funktioniert, bin gerade dabei das noch einmal durchzuspielen. Arduino muss noch neu geflasht werden, falsches hex File drauf, melde mich dann.
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

franky08

Funktioniert nicht, ist genau so wie über den SC, keine Internals.
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

HCS

Zitat von: franky08 am 08 Dezember 2017, 11:07:19
Funktioniert nicht, ist genau so wie über den SC, keine Internals.
Genau das mit genau diesem Ergebnis habe ich gestern Abend auch probiert.
Wobei ich interessanterweise am LGW reinkommend eine heftige Datenmenge gesehen habe.

Kann es sein, das das Firmata-Modul zu früh oder wenn das nicht schnell genug am Stück kommt, es als beendet betrachtet?
Ich kann aber auch schwer beurteilen, ob das korrekte Daten sind, die da durchlaufen, da das alles sehr binär aussieht.
Habe leider keinerlei Ahnung von Firmata.

Oder es müsste mal jemand schauen, was in FHEM am Firmata-Modul eigentlich an Daten reinkommt.

Aber auch an der Soft-Serial war es so, dass ich mit einem FRM_OUT zuverlässig einen DO am Arduino schalten konnte.


franky08

Auch wenn das wahrscheinlich eine dämliche Idee ist, ich werde heute Nachmittag die Conf.Firmata mal neu compilieren aber die Baudrate im Code auf 9600 runtersetzen, mal sehen
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

HCS

Zitat von: franky08 am 08 Dezember 2017, 12:13:08
... aber die Baudrate im Code auf 9600 runtersetzen, mal sehen
Ich habe es gestern Abend mit 9600 an der SoftSerial getestet. Verhalten siehe zwei vorher.
Kannst Du etwas mehr als nur einen DO über einen FRM_OUT testen?
Mich würde mal interessieren, ob die Internals das einzige Problem sind oder ob da noch mehr nicht geht.

franky08

#44
Also I2C geht definitiv nicht, dass ist aber auch etliches an Daten, hier im Vergleich mal vn Firmata an USB:
READINGS:
     2017-12-08 12:23:46   values          24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 24 86 252 13 198 237 133 52 98 200 63 42 25 115 0 33 128 0 209 246 10 84 0 68 158 1 64 97 62 158 1 32 97 62 158 2 160 97 66 158 5 0 97 67 158 3 32 97 64 158 5 32 97 61 158 8 160 97 59 158 9 192 97 62 158 10 64 97 108 157 240 96 97 130 157 228 155 205 160 3073 11008 15872 1665 8960 13953 641 6657 12544 9216 8065 5376 3200 14720 0 4224 0 1 10368 15105 1281 10752 0


P.S. analog IN scheint zu funktionieren
Zitatdefine Firmata_ANALOG FRM_AD 17 # definiert Arduino Pin 17 als analogen Eingang
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...