ConfigurableFirmata mit Arduino mini pro über LGW an FHEM

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

Vorheriges Thema - Nächstes Thema

franky08

#15
ZitatDenn der USB Port ist ja nur die Erweiterung des Rx/Tx Pins des Controllers mit einem FTDI Chip

Richtig und darum verstehe ich das auch nicht. Wenn ich einen Arduino nano mit der ConfigurableFirmata flashe und diesen als FRM device über USB in fhem einbinde, ist alles OK. Messe ich an dem funktionierenden Arduino am TX Pin, über USB angeschlossen, ist sehe ich die Datenpakete
list FRM über USB:
Internals:
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A906X1TM-if00-port0@57600
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A906X1TM-if00-port0@57600
   FD         6
   NAME       FIRMATA2
   NOTIFYDEV  global
   NR         31
   NTFY_ORDER 50-FIRMATA2
   PARTIAL
   STATE      Initialized
   TYPE       FRM
   analog_pins 14,15,16,17,18,19,20,21
   analog_resolutions 14:10,15:10,16:10,17:10,18:10,19:10,20:10,21:10
   encoder_pins 2,3
   encoder_resolutions 2:28,3:28
   firmware   ConfigurableFirmata.ino
   firmware_version V_2_06
   i2c_pins   18,19
   input_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   onewire_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   output_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   pwm_pins   3,5,6,9,10,11
   pwm_resolutions 3:8,5:8,6:8,9:8,10:8,11:8
   servo_pins 2,3,4,5,6,7,8,9,10,11,12,13
   servo_resolutions 2:14,3:14,4:14,5:14,6:14,7:14,8:14,9:14,10:14,11:14,12:14,13:14
   stepper_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   stepper_resolutions 2:21,3:21,4:21,5:21,6:21,7:21,8:21,9:21,10:21,11:21,12:21,13:21,14:21,15:21,16:21,17:21,18:21,19:21
   READINGS:
     2017-12-03 21:53:19   state           opened
Attributes:
   i2c-config 1
   room       Firmata
   sampling-interval 1000


Bekomme iMo das Signal nicht in freeze aber es ist schön zu sehen das der Arduino fleißig Daten über TX sendet, nehme ich den gleichen Arduino (über Spannungsteiler, weil 5V) und verbinde die RX/TX Pins über kreuz mit dem SC16IS750, dann sind keine Datenpakete mehr zu sehen und können somit auch nicht von fhem empfangen werden

P.S. das ist mit einem Arduino pro mini das gleich Spiel mit dem Unterschied das am TX pin gar nix passiert, leider warte ich noch auf de usb seriell adapter

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

P.S. vlt. der Spannungsteiler? Da hab ich noch gar nicht drüber nachgedacht. 2k an Masse, Abgriff TX bzw. RX nach den 2k und über 1k an die Ausgänge vom 5V Arduino
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

#17
So, ich denke abschließend sagen zu können das das LGW auf dem ESP8266 mit den Datenpaketen von Firmata nichts anfangen kann.

-- Arduino nano mit ConfigurableFirmata über USB an fhem ---> funktioniert
-- Arduino nano mit ConfigurableFirmata an SC16IS750 und über ESP8266 an (LGW) fhem ---> funktioniert nicht
-- Arduino pro mini mit ConfigurableFirmata und FTDI Adapter an fhem ---> funktioniert
-- Arduino pro mini mit ConfigurableFirmata an SC16IS750 und über ESP8266 an (LGW)  fhem ---> funktioniert nicht

Scheinbar kann das Gateway nichts mit den Firmata Daten anfangen und deshalb wird nicht übertragen. Ein Arduino pro mini mit nanoCUL FW funktioniert sofort.

P.S. es ist auch zu sehen das beim nano die TX LED keinerlei Reaktion mehr zeigt wenn die RX/TX Pins vom Arduino mit den SC16IS750 verbunden sind

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

Wenn mir jemand sagt, was genau ich auf einen Arduino Pro Mini 3.3V 8MHz flashen muss und was das absolute Minimum ist, das ich an diesen anschließen muss, dass er läuft, dann mache ich mir mal so ein Ding und hänge es an mein LGW und schaue, was das LGW macht oder auch nicht macht.

Oder ein Arduino Pro Mini 5V 16MHz, die lasse ich für CUL auch immer mit 3.3V laufen.

franky08

@HCS

Hallo HCS, dass ist ein "Mysterium"  :)

Mann nehme einen Arduino nano (da passt die komplette ConfigurableFirmata.ino drauf, bei dem pro mini müsste in der ino einiges auskommentiert werden ( Stepper, Servo und Encoder braucht man nicht)). Das Teil erst mit der "normalen" Firmata.ino flashen und dann wie im WIKI ----> https://wiki.fhem.de/wiki/Arduino_Firmata

Schließt man den nano mit der ConfigurableFirmata FW über USB an fhem an und definiert ein FRM device,
z.B. ---> define FIRMATA FRM /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A904OUSU-if00-port0@57600
attr FIRMATA i2c-config 1


dann bekomme ich folgende Internals:
Internals:
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A904OUSU-if00-port0@57600
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A904OUSU-if00-port0@57600
   FD         4
   NAME       FIRMATA
   NOTIFYDEV  global
   NR         2094
   NTFY_ORDER 50-FIRMATA
   PARTIAL
   STATE      Initialized
   TYPE       FRM
   analog_pins 14,15,16,17,18,19,20,21
   analog_resolutions 14:10,15:10,16:10,17:10,18:10,19:10,20:10,21:10
   encoder_pins 2,3
   encoder_resolutions 2:28,3:28
   firmware   ConfigurableFirmata.ino
   firmware_version V_2_06
   i2c_pins   18,19
   input_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   onewire_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   output_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   pwm_pins   3,5,6,9,10,11
   pwm_resolutions 3:8,5:8,6:8,9:8,10:8,11:8
   servo_pins 2,3,4,5,6,7,8,9,10,11,12,13
   servo_resolutions 2:14,3:14,4:14,5:14,6:14,7:14,8:14,9:14,10:14,11:14,12:14,13:14
   stepper_pins 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
   stepper_resolutions 2:21,3:21,4:21,5:21,6:21,7:21,8:21,9:21,10:21,11:21,12:21,13:21,14:21,15:21,16:21,17:21,18:21,19:21
   READINGS:
     2017-11-25 11:11:04   state           opened
Attributes:
   i2c-config 1
   room       Firmata
   sampling-interval 1000


nehme ich jetzt den über USB voll funktionsfähigen Arduino und trenne die USB Verbindung und Verbinde dafür RX/TX vom Arduino mit RX/TX vom SC16IS750 sowie IO5 mit RST am Arduino (im Prinzip so wie beim LGW der pro mini am SC16IS750 hängt Adr. 0x90 oder 0x92)

dann stellt der Arduino mit der ConfigurableFirmata seine Funktion ein als ob er nur zwingend über USB funktioniert (die ConfigurableFirmata.ino hat noch eine Funktion um die Ehernet Funktion mit reincompilieren zu können, ist aber nur für Arduino Shield oder den ENC28... Netzwerk IC von Bedeutung).

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...

PeMue

Hallo Frank,

Zitat von: franky08 am 06 Dezember 2017, 14:54:56
Mann nehme einen Arduino nano (da passt die komplette ConfigurableFirmata.ino drauf, bei dem pro mini müsste in der ino einiges auskommentiert werden (Stepper, Servo und Encoder braucht man nicht)).
ich denke, Arduino nano und Arduino pro mini haben den selben Prozessor. Warum passt dann der Sketch nicht auf den Arduino pro mini ??? ??? ????

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

ZitatWarum passt dann der Sketch nicht auf den Arduino pro mini

Denke ich mal irgendwo gelesen zu haben aber das stimmt ist ja bei beiden der 328P. Kann aber auch sein das ich bei meiner testerei dann alles rausgeschmissen habe was überflüssig ist  :o

Hier noch ein Screenshot beim Anschluss über USB (nano oder pro mini über FTDI Adapter über USB). Das Signal was da zu sehen ist, stammt vom TX Pin des Arduino. Wenn ich nun den Arduino von Usb trenne und über das LGW (Vin 5V), ext. Stromversorgung verbinde, passiert an dem TX Pin nichts mehr, egal ob mit dem SC verbunden oder nur mit dem Oszi, das Signal ist weg und die TX LED am Arduino zeigt auch nichts mehr.
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 06 Dezember 2017, 15:11:10
Kann aber auch sein das ich bei meiner testerei dann alles rausgeschmissen habe was überflüssig ist  :o
Wie z.B. die seriellen Kommunikationsroutinen  ;D ;D ;D

Ich melde mich dann ...

franky08

#23
Nööö, die nicht, hab es ja auch mit nem nano und der kompletten ino probiert und dann noch mal mit nem neuen pro mini und der fast kompletten ino (nur stepper, servo und encoder raus genommen, dachte das für Umgebungsvariablen oder so noch mehr Platz gebraucht wird)
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 06 Dezember 2017, 15:19:09
Nööö, die nicht, hab es ja auch mit nem nano und der kompletten ino probiert und dann noch mal mit nem neuen pro mini und der fast kompletten ino (nur stepper, servo und encoder raus genommen)
Das war ein Scherz  ::)
Erkennt man bei mir immer an den drei  ;D

Während ich mir Firmata flashe kann PeMue Dir schon mal meinen schrägen Humor genauer erklären ...  ;D ;D ;D

HCS

Die gute Nachricht: ich kann es nachvollziehen
Die schlechte Nachricht: es funktioniert wirklich nicht richtig

Ich habe:
- Firmata auf einen pro mini geflasht
- Per USB erfolgreich in FHEM getestet
- den pro mini an den SC16IS750 gepackt
- IODevice angelegt: define FIRMATA FRM 192.168.31.215:82 global
- Ein FRM_OUT angelegt: define Firmata_OUT_13 FRM_OUT 13

Ergebnis:
- die internals kommen nicht
- ich kann die LED vom pro mini mit dem FRM_OUT schalten

Wenn ich es auf die Schnelle richtig rausgedebugged habe, ist das Problem, dass firmata zu viele Daten am Stück schickt.
Der SC16IS750 hat einen 64 Byte fifo, wo er die Daten puffert, bis das LGW sie abholt.
Wenn der voll ist, geht der Rest verloren. Und bei der Initialisierung habe ich einen vollen fifo gesehen, da war also bestimmt mehr.

Um das in den Griff zu bekommen, müsste man entweder Xon/Xoff oder RTS/CTS machen.
Der SC16IS750 könnte beides. Aber kann die Firmata-Firmware das?

Oder die Firmata-Firmware müsste die Daten in kleineren Paketen (< 64) mit kleinen Pausen dazwischen schicken, dass das LGW sie aus dem fifo geholt bekommt, bevor es weiter geht.

franky08

#26
@HCS
so was in der Richtung hatte ich schon vermutet
ZitatScheinbar kann das Gateway nichts mit den Firmata Daten anfangen...

nur das es eben am SC16IS750 liegt. Ich hatte schon an mir gezweifelt  ;) Der SC16IS850L hat zwar einen 128bit fifo braucht aber 1,8 V.

oder der? ---> https://datasheets.maximintegrated.com/en/ds/MAX3108.pdf

oder gibt es da noch was anderes? Finde auf die Schnelle nichts
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 06 Dezember 2017, 22:01:49
oder der? ---> https://datasheets.maximintegrated.com/en/ds/MAX3108.pdf
oder gibt es da noch was anderes? Finde auf die Schnelle nichts
Ein Chip alleine nützt ja nichts, da müsste ich dann auch noch eine Implementierung machen...
Und dann ist es auch noch WLP, wie willst Du den denn anschließen?
Ich glaube nicht, dass ich in das LGW noch eine weitere Schnittstelle auf einem anderen Chip basierend implementiere.

Ich muss mir das mal bei dem irgendwann kommenden LGW auf dem ESP32 (frag nicht, wann das wirklich fertig ist) anschauen, der ESP32 hat zwei Hardware-Serials und ausreichend Pins, so dass man da völlig ohne SC16IS750 usw. auskommt.

franky08

Zitatda müsste ich dann auch noch eine Implementierung machen...

Ja klar, da hatte ich gar nicht dran gedacht, warten wir mal ab. Oder über die Flussteuerung, RTS/CTS? Hab jetzt dummerweise 5 Platinen rumliegen die ich in die Tonne werfen kann  ;)
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, 08:53:08
Oder über die Flussteuerung, RTS/CTS?
Ja, wenn Du das der Firmata-Firmware beibringen kannst, dann bringe ich es dem LGW bei (vorbehaltlich Machbarkeit)
Oder alternativ Xon/Xoff

Zitat von: franky08 am 07 Dezember 2017, 08:53:08
Hab jetzt dummerweise 5 Platinen rumliegen die ich in die Tonne werfen kann  ;)
Was für Platinen?