Hallo zusammen,
anbei die erste Version des Moduls zur Ansteuerung des PCA9685.
Wichtig: ein i2cdetect auf dem Raspberry wird 2 Adressen anzeigen. Die 0x70 ist die Allcalladdress. Diese nicht verwenden, da sie beim initialisieren deaktiviert wird.
Commandref ist am Modulende vorhanden.
EDID: Modul wird jetzt bei Update mit ausgeliefert
Das ist schonmal eine große Erleichterung
Danke dir für die Mühe , hoffe ich komme vor Weihnachten noch dazu etwas zu machen
Gruß Aprikose
Hallo Klaus,
ich war sehr erfreut Dein Modul für den PCA9685 hier zu finden. Ich habe diesen auch bei mir im Einsatz und mit Deinem Modul getestet. Soweit läuft alles auf Anhieb. Allerdings baue ich mir auch gerade noch etwas Perepherie für LED-Ansteuerungen dran, weswegen ich noch nicht umfangreich testen konnte.
Was mir bisher auffiel:
- In FHEM ganz oben bei dem "set > Portxx" Befehl kann ich keine Werte eingeben. Dort ist nur eine 0 im roten Rand zu sehen. Vielleicht mache ich auch etwas falsch. Im "and FHEM" funktioniert alles mit den Schiebreglern.
- Sehr wünschenswert wäre eine Skalierung über den ganzen PWM-Bereich. Alle eingegebenen Werte entsprechen ja direkt dem PWM-Verhältnis. So verändert sich die Helligkeit der LED's in meinem Fall im unteren Bereich (so 0 - ca 200) recht stark. Gerne hätte ich einen etwas feiner abstufbaren "fast ganz aus" Bereich. (Nachtlicht, haben ja 12 Bit Auflösung). Denkbar wäre vielleicht eine folgende Konfiguration mit 5 Stützstellen.
Wert an PCA9685
Y4 | x
|
|
Y3 | x
|
|
Y2 | x
Y2 | x
Y1 |______x_____________________________Sollwert
0 20% 40% 60% 80% 100%
Also Sollwertvorgaben zwischen 0-20% werden umgerechnet in Werte zum Controller 0-Y1
20-40% Y1-Y2 usw.
Ich werde die Tage noch weiter testen und Rückmeldung geben.
Aber nochmals vielen Dank für Deine gute Arbeit!
Viele Grüße
Joe
Jetzt habe ich auch die Funktion des Sliders entdeckt.. Hatte ich noch nie benutzt.
Also der erste Punkt mit der rot umrandeten Zahl hat sich erledigt.. ;-)
Zitat von: Joe4630 am 29 Dezember 2015, 02:05:41
Jetzt habe ich auch die Funktion des Sliders entdeckt.. Hatte ich noch nie benutzt.
Also der erste Punkt mit der rot umrandeten Zahl hat sich erledigt.. ;-)
Das war auch deine einzige Frage, oder? ;)
Allerdings verstehe ich nicht, wo der Slider bei dir war. Der wird doch bei den Ports immer angezeigt
Der Slider war ja da, die viereckig umrandede Zahl habe ich nur nicht als diesen erkannt.. :-[
Das war die einzige Frage, jedoch ergeben sich leider immer wieder welche.
Gestern habe ich versucht eine Funktion zu finden die ein langsames Dimmen ermöglicht. Also von 0 auf 100% in bsp. 2 Sekunden. In den Beiträgen konnte ich zwar einige Anregungen finden, jedoch bezogen sich diese immer auf fertige Dimmer, die dieses langsame Dimmen in Ihrer Firmware ermöglichen. Also nicht FHEM den Dimmwert selbst kontinuierlich verändert.
Gibt es in FHEM die Möglichkeit einen Wert kontinuierlich zu verändern? Oder muss ich mir da selbst was bauen? (Schleifen oder ähnliches)
Der andere Punkt war nur ein Wunsch. ;)
Vielen Dank!
Zitat von: Joe4630 am 29 Dezember 2015, 21:26:38
Gestern habe ich versucht eine Funktion zu finden die ein langsames Dimmen ermöglicht. Also von 0 auf 100% in bsp. 2 Sekunden. In den Beiträgen konnte ich zwar einige Anregungen finden, jedoch bezogen sich diese immer auf fertige Dimmer, die dieses langsame Dimmen in Ihrer Firmware ermöglichen. Also nicht FHEM den Dimmwert selbst kontinuierlich verändert.
Gibt es in FHEM die Möglichkeit einen Wert kontinuierlich zu verändern? Oder muss ich mir da selbst was bauen? (Schleifen oder ähnliches)
Da müsstest du selbst etwas bauen. Mit Timer und so...
Leider habe ich den PCA9685 mit Firmata nicht zum laufen bekommen.
# Disable this to avoid looking for new USB devices on startup
define FIRMATA FRM 3030 [global]
attr FIRMATA alias Firmata-Controller
attr FIRMATA i2c-config 1
#
define relayout FRM_OUT 6
attr relayout IODev FIRMATA
attr relayout stateFormat value
#
define i2c RPII2C 1
#
#define frmi2c FRM_I2C 0x40 0 7
#attr frmi2c IODev FIRMATA
#
define dimmer I2C_PCA9685 0x40
attr dimmer IODev FIRMATA
set dimmer Port00 on
Habs auch mit FRM_i2c probiert scheint nicht zu klappen ich weiß nicht weiter, normal müsste ich doch dem RPII2C erst klar machen, dass er die I2C Adresse via FIRMATA Adresse 0x40 anspricht.
Ich musste die 1 setzen weil ich sonst ne Fehlermeldung bekam.
Hoffe mal dass hier jemand weiter weiß ....
Internals:
DEF 0x40
FIRMATA_SENDSTAT Ok
I2C_Address 64
IODev FIRMATA
NAME dimmer
NR 29
STATE Ok
TYPE I2C_PCA9685
Readings:
2016-01-03 17:20:27 state Ok
Confregs:
Attributes:
IODev FIRMATA
2016.01.03 17:20:27 3: received String_data: I2C: Too few bytes received
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x44, Inhalt: 227
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x43, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x42, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x41, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x40, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x3F, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x3E, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x3D, Inhalt: 0
2016.01.03 17:20:27 1: dimmer UpdReadings Start Register: 0x3C, Inhalt: 0
Zitat von: Aprikose am 03 Januar 2016, 17:19:34
Leider habe ich den PCA9685 mit Firmata nicht zum laufen bekommen.
Firmata bin ich der falsche Ansprechpartner.
Damit habe ich mich noch nicht befasst, nur ein bisschen was mitbekommen.
Zitat von: Aprikose am 03 Januar 2016, 17:19:34
Habs auch mit FRM_i2c probiert scheint nicht zu klappen ich weiß nicht weiter, normal müsste ich doch dem RPII2C erst klar machen, dass er die I2C Adresse via FIRMATA Adresse 0x40 anspricht.
FRM_i2c ist nur für das senden von I2C Rohdaten gut. Es benötigt auch ein funktionierendes FRM Modul als physikalische Schnittstelle.
Zitat von: Aprikose am 03 Januar 2016, 17:19:34
# Disable this to avoid looking for new USB devices on startup
define FIRMATA FRM 3030 [global]
attr FIRMATA alias Firmata-Controller
attr FIRMATA i2c-config 1
#
define relayout FRM_OUT 6
attr relayout IODev FIRMATA
attr relayout stateFormat value
#
define i2c RPII2C 1
#
#define frmi2c FRM_I2C 0x40 0 7
#attr frmi2c IODev FIRMATA
#
define dimmer I2C_PCA9685 0x40
attr dimmer IODev FIRMATA
set dimmer Port00 on
Wenn ich die Befehle so sehe vermute ich, das du mit FRM bisher noch nix gemacht hast ;)
RPII2C benötigst du nur, wenn du den PCA9685 direkt an den Raspberry anschließt. (ist aber nicht der Grund das es nicht läuft)
Funktioniert dein relayout?
Ist I2C in Firmata mit reincompiliert worden?
Dann müsste es auch möglich sein über frmi2c I2C Befehle zu senden.
Es kann durchaus sein, das im Modul noch ein Fehler im Zusammenhang mit FRM ist.
Aber zuerst sollten wir sicherstellen, das der I2C vom FRM fehlerfrei läuft.
Zitat von: klausw am 04 Januar 2016, 10:22:14
Funktioniert dein relayout?
Ist I2C in Firmata mit reincompiliert worden?
Dann müsste es auch möglich sein über frmi2c I2C Befehle zu senden.
Es kann durchaus sein, das im Modul noch ein Fehler im Zusammenhang mit FRM ist.
Aber zuerst sollten wir sicherstellen, das der I2C vom FRM fehlerfrei läuft.
Relayout läuft ohne Probleme.
Mit reincompiliert meinst du, den Sketch bevor ich etwas ändern tue und hochlade, einmal compilieren oder wie soll ich das verstehen ?
Werde zusehen dass ich mal frmi2c teste und Befehle sende ......
Zitat von: Aprikose am 04 Januar 2016, 10:37:48
Relayout läuft ohne Probleme.
Mit reincompiliert meinst du, den Sketch bevor ich etwas ändern tue und hochlade, einmal compilieren oder wie soll ich das verstehen ?
Ich wollte wissen, ob I2C auch im Sketch eingebaut ist. Was ich so mitbekommen habe, ist das nicht der Standard.
Zitat von: Aprikose am 04 Januar 2016, 10:37:48
Werde zusehen dass ich mal frmi2c teste und Befehle sende ......
define frmi2c FRM_I2C 0x40 0 7
ist gar nicht so verkehrt, damit liest du die Config Register aus (0..5)
scheinbar gibt es noch einen sampling-intervall, der gesetzt werden muss
Allerdings kannst du mit FRM_I2C nur Daten vom I2C lesen!
bekomme via frm_i2c jetzt folgendes:
Internals:
DEF 0x40 0 7
IODev FIRMATA
NAME frmi2c
NR 22
STATE active
TYPE FRM_I2C
i2c-address 0x40
i2c-bytestoread 7
i2c-register 0
Readings:
2016-01-04 11:17:42 values 13 13 13 13 13 13 13 0 0 0 16 0 0 0 0 0 0 0 50 11 0 0 0
Attributes:
IODev FIRMATA
event-min-interval 5
Wie du schon gesagt hast, frm_i2c liest nur.
Zitat von: Aprikose am 04 Januar 2016, 11:21:07
Readings:
2016-01-04 11:17:42 values 13 13 13 13 13 13 13 0 0 0 16 0 0 0 0 0 0 0 50 11 0 0 0
Also bis 7 kann ich noch zählen 8)
Wieso stehen da 22 Werte?
Power up Defaults (http://www.nxp.com/documents/data_sheet/PCA9685.pdf) Hexwert (Dezimalwert):
Register 0: 11 (17)
Register 1: 4 (4)
Register 2: E2 (226)
Register 3: E4 (228)
Register 4: E8 (232)
Register 5: E0 (224)
Register 6: 0
Register 7: 0
Register 8: 0
Register 9: 10 (16)
Die Werte von den Registern 6-9 wiederholen sich bei den nachfolgenden Registern (insgesamt 16x entsprechend der Ports)
Mit 0x40 0 21 müsstest du also die configregister und 4 Ports (also 4x "0 0 0 16" bzw. "0 0 0 10" bekommen)
Kurze Rückmeldung zum neuen Modul.
Funktioniert bei mir prima. Habe es an die FHEM PID20 Regler gehängt und wollte dann damit meine Fußbodenheizung steuern.
Bisher sind nur LEDs dran, aber die tun das was sie sollen.
Vielen Dank, kann ich gut gebrauchen
Das Einzige was nervt sind die logs.
Mein FHEM log wird nach jedem set Portxx mit den Inhalten der Register "vollgemüllt":
2016.01.08 15:11:36 1: i2c_fbh1 UpdReadings Start Register: 0x44, Inhalt: 0
2016.01.08 15:11:36 1: i2c_fbh1 UpdReadings Start Register: 0x43, Inhalt: 0
2016.01.08 15:11:36 1: i2c_fbh1 UpdReadings Start Register: 0x42, Inhalt: 0
2016.01.08 15:11:36 1: i2c_fbh1 UpdReadings Start Register: 0x41, Inhalt: 16
2016.01.08 15:11:36 1: i2c_fbh1 UpdReadings Start Register: 0x40, Inhalt: 0
.
.
.
Das habe ich jetzt mit verbose 0 abgestellt.
Geht das auch eleganter weg?
Hallo Klaus,
Mache mich momentan mit dem PCA9685-Modul vertraut. Habe es direkt am I2C vom Raspi hängen. Die default-Adresse habe ich von 0x40 per Lötpunkt auf 0x41 eingestellt, der HTU21D-F hat die 0x40 für sich beansprucht.
Mit define PWM I2C_PCA9685 0x41 und Einstellen des IODev wird das Modul gefunden und die Einstellungen der 16 Kanäle angezeigt.
Muss gestehen, mir fehlen im folgenden etwas die Grundlagen. LEDs habe ich zum testen zwischen PWM und V+ angeschlossen (gibt es einen besseren Weg?).
Die kann ich jetzt je nach Einstellung dimmen bzw. ein- und ausschalten.
Wenn ich mit prescale die Frequenz verändere, zeigen die LEDs vorübergehend nicht den zuvor eingestellte Wert an. Erst wenn eine weitere Konfiguration eines Eingangs erfolgt ist die Helligkeit wieder so wie eingestellt. Ist das so gewollt?
Bei den Internals ist auch vor dem Frequenzwert noch ein 0x davor.
Mal abgesehen von der Sinnfrage - wollte ich zum Spielen noch einen Servo dranhängen. Hast Du mir da nen Tip wie ich da anfangen kann?
Aber erst mal Danke für Deine Arbeit!
Grüße,
Stefan
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Mache mich momentan mit dem PCA9685-Modul vertraut. Habe es direkt am I2C vom Raspi hängen. Die default-Adresse habe ich von 0x40 per Lötpunkt auf 0x41 eingestellt, der HTU21D-F hat die 0x40 für sich beansprucht.
kannst du es auch mal am FRM testen? Ich bin noch nicht soweit. 8)
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Muss gestehen, mir fehlen im folgenden etwas die Grundlagen. LEDs habe ich zum testen zwischen PWM und V+ angeschlossen (gibt es einen besseren Weg?).
Die kann ich jetzt je nach Einstellung dimmen bzw. ein- und ausschalten.
Es gibt andere Wege, besser/schlechter ist relativ. Bei größeren Strömen würde ich einen FET dazwischenschalten.
Zum Testen ist es aber genau richtig.
Die Pins können als OpenCollector oder PushPull konfiguriert werden. Im Datenblatt ist es ganz zu beschrieben.
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Wenn ich mit prescale die Frequenz verändere, zeigen die LEDs vorübergehend nicht den zuvor eingestellte Wert an. Erst wenn eine weitere Konfiguration eines Eingangs erfolgt ist die Helligkeit wieder so wie eingestellt. Ist das so gewollt?
nein, das liegt aber am Ic selbst. Zum umstellen wird der Ic vorher in den Sleepmodus versetzt. Dabei wird die PWM deaktiviert.
Das lässt sich sicher abstellen, die Frage ist eher, ob es notwendig ist. Die Frequenz wird ja nicht dauernd umgestellt.
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Bei den Internals ist auch vor dem Frequenzwert noch ein 0x davor.
Oh, stimmt..thx
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Mal abgesehen von der Sinnfrage - wollte ich zum Spielen noch einen Servo dranhängen. Hast Du mir da nen Tip wie ich da anfangen kann?
leider nein, mit servos habe ich noch nix gemacht.
Aber die haben glaube ich Spannungsversorgung und einen Eingang, Die Servoaussteuerung ist linear zur Spannung am Eingang/Dutycycle.
Aber erst mal Danke für Deine Arbeit!
Grüße,
Stefan
[/quote]
Zitat von: thymjan am 09 Januar 2016, 12:50:27
Habe mir mal Wikipedia wegen der Servos zu Gemüte geführt. Wenn ich's richtig verstehe, geht das so mit dem Modul erst mal nicht.
ZitatModellbauservos werden über eine Pulsweitenmodulation (PWM) angesteuert. Über die Breite der Pulse wird der Winkel, auf den der Servoarm gestellt werden soll, gesteuert. Gängig ist ein 50-Hz-Signal (20 ms Periodenlänge), welches zwischen 500 Mikrosekunden (linker Anschlag, 0 Grad) und 2500 Mikrosekunden (rechter Anschlag, 180 Grad) auf High-Pegel und den Rest der Periodenlänge auf Low-Pegel ist.
Wobei...
50 Hz lässt sich einstellen.
20ms/4096 ist eine Auflösung von ca. 5 µs
500 µs sind 100 Auflösungseinheiten
2500 µs sind 500 Auflösungseinheiten
denke ich richtig?
... muss ich mal Testen
Hallo Klaus,
mit den Servos und dem Modul und fhem bin ich nicht viel weiter gekommen. Am Arduino angeschlossen mit den Adafruit Testsketches ist es mir gelungen im möglichen Bereich der Servos bestimmte Gradwinkel einzustellen und Fahrten mit unterschiedlichen Geschwindigkeiten zu machen.
Die Gedanken aus dem vorigen Post sind gar nicht so abwegig. Sollte also eigentlich möglich sein den Servo mit PWM-Stellung zwischen 150-650 bei 50/60Hz in einem Winkel von 0-180 zu stellen.
Die Servos sind ziemlich stark, obwohl ich hier nur Mikroservos habe. Ob sich damit auch eine Fensteröffnung realisieren liese? Aber das Haltemoment lässt wohl nach, wenn der Strom abgeschalten wird. Bzw. verbrauchen die Servos Strom zum Nachregeln wenn sie in "Ruhe" sind.
Habe aber irgendwo schon Servos mit Schneckengetriebe gesehen.
Zu Deiner Frage:
habe das Modul mal an den Ethernet-ConfigurableFirmata-Arduino gehängt. Sieht gar nicht so schlecht aus!
Modul wird erkannt. Initialisiert sich. Register werden sauber ausgelesen. Das Stellen eines PWM-Wertes funktioniert bei mir dann allerdings nicht mehr. Da kommen dann exponentiell im knappen Sekundenrhythmus leere FRM-Nachrichten an. Kann nur noch durch einen Reset des FRM-Moduls gestoppt werden. Muss das log noch etwas studieren... Vielleicht ist es auch sinnvoll das ganze zunächst am usb-port zu testen.
Gruß,
Stefan
Komme auf keinen grünen Zweig... steht einfach zu viel im log.
Im folgenden habe ich fhem neu gestartet und dann im Modul für einen Kanal einen Schreibvorgang mit Wert "0" ausgelöst.
2016.01.10 20:34:33 1: I2C_TSL2561_Define start: 3/Lichtsensor I2C_TSL2561 0x39
Use of uninitialized value $modereg1 in bitwise and (&) at ./FHEM/52_I2C_PCA9685.pm line 182, <$fh> line 310.
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 383, <$fh> line 310.
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 383, <$fh> line 310.
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 383, <$fh> line 310.
Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 383, <$fh> line 310.
Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 384, <$fh> line 310.
2016.01.10 20:34:36 1: Including ./log/fhem.save
2016.01.10 20:34:38 3: FRM_1: port 3031 opened
2016.01.10 20:34:38 0: Featurelevel: 5.7
2016.01.10 20:34:38 0: Server started with 81 defined entities (fhem.pl:10397/2016-01-07 perl:5.014002 os:linux user:fhem pid:6413)
2016.01.10 20:34:39 4: Connection accepted from FRM_1_192.168.1.25_1039
2016.01.10 20:34:40 5: FRM:>ff
2016.01.10 20:34:43 3: querying Firmata Firmware Version
2016.01.10 20:34:43 5: FRM:>f079f7
2016.01.10 20:34:43 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.10 20:34:43 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.10 20:34:43 5: FRM:>f069f7
2016.01.10 20:34:43 5: FRM:>f06bf7
2016.01.10 20:34:43 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7
2016.01.10 20:34:43 5: FRM:<f06c7f7f0101091c7f01010308091c7f7f010103087f010103087f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.10 20:34:43 5: FRM:>f07a6807f7
2016.01.10 20:34:43 5: FRM:>f41206
2016.01.10 20:34:43 5: FRM:>f41306
2016.01.10 20:34:43 5: FRM:>f07830eaf7
2016.01.10 20:34:43 5: FRM:>f07677082a011600f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',32) to Register 0
2016.01.10 20:34:43 5: FRM:>f076410000002000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0) to Register 1
2016.01.10 20:34:43 5: FRM:>f076410001000000f7
2016.01.10 20:34:43 1: PERL WARNING: Use of uninitialized value $modereg1 in bitwise and (&) at ./FHEM/52_I2C_PCA9685.pm line 182.
2016.01.10 20:34:43 5: PWM: 65 write join (' ',16) to Register 0
2016.01.10 20:34:43 5: FRM:>f076410000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',106) to Register 254
2016.01.10 20:34:43 5: FRM:>f07641007e016a00f7
2016.01.10 20:34:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 184.
2016.01.10 20:34:43 1: PERL WARNING: Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 383.
2016.01.10 20:34:43 5: PWM: 65 write join (' ',) to Register 0
2016.01.10 20:34:43 1: PERL WARNING: Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 384.
2016.01.10 20:34:43 5: FRM:>f07641000000f7
2016.01.10 20:34:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 185.
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 6
2016.01.10 20:34:43 5: FRM:>f076410006000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 10
2016.01.10 20:34:43 5: FRM:>f07641000a000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 14
2016.01.10 20:34:43 5: FRM:>f07641000e000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 18
2016.01.10 20:34:43 5: FRM:>f076410012000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 22
2016.01.10 20:34:43 5: FRM:>f076410016000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 26
2016.01.10 20:34:43 5: FRM:>f07641001a000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 30
2016.01.10 20:34:43 5: FRM:>f07641001e000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 34
2016.01.10 20:34:43 5: FRM:>f076410022000000000000001000f7
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 38
2016.01.10 20:34:44 5: FRM:>f076410026000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 42
2016.01.10 20:34:44 5: FRM:>f07641002a000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 46
2016.01.10 20:34:44 5: FRM:>f07641002e000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 50
2016.01.10 20:34:44 5: FRM:>f076410032000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 54
2016.01.10 20:34:44 5: FRM:>f076410036000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 58
2016.01.10 20:34:44 5: FRM:>f07641003a000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 62
2016.01.10 20:34:44 5: FRM:>f07641003e000000000000001000f7
2016.01.10 20:34:44 5: PWM: 65 write join (' ',0 0 0 16) to Register 66
2016.01.10 20:34:44 5: FRM:>f076410042000000000000001000f7
2016.01.10 20:34:44 5: FRM:>f40201
2016.01.10 20:34:44 5: FRM:>900000
2016.01.10 20:34:44 5: FRM:>f40303
2016.01.10 20:34:49 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7
2016.01.10 20:34:49 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60]
2016.01.10 20:34:59 5: PWM: 65 read 64 Byte from Register 6
2016.01.10 20:34:59 5: FRM:>f076410806004000f7
2016.01.10 20:34:59 5: FRM:<f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077410006001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100030007500360002001c0101000801020000000000000000000a01020015004a000700000000000000760041000800060000004000000000000000000000001000f7
2016.01.10 20:34:59 3: received String_data: I2C: Too few bytes received
2016.01.10 20:34:59 5: onI2CMessage address: '65', register: '6' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16]
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 16 16 16 16
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 32; Inh: 48 117 54 2
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 36; Inh: 156 1 136 2
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 40; Inh: 0 0 0 0
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 44; Inh: 138 2 21 74
2016.01.10 20:34:59 5: PWM: lese mehrere Ports - Reg: 6 ; i: 48; Inh: 7 0 0 0
2016.01.10 20:35:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 52; Inh: 118 65 8 6
2016.01.10 20:35:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 56; Inh: 0 64 0 0
2016.01.10 20:35:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 60; Inh: 0 0 0 16
2016.01.10 20:35:00 5: FRM:<f07700000000f7
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: FRM:<f07700000000f7f07700000000f7
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: FRM:<f07700000000f7f07700000000f7
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: FRM:<f07700000000f7f07700000000f7f07700000000f7
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:00 5: onI2CMessage address: '0', register: '0' data: []
2016.01.10 20:35:01 5: FRM:<f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000000001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '0', register: '0' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:01 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:01 3: received String_data: I2C: Too few bytes received
2016.01.10 20:35:02 5: onI2CMessage address: '16', register: '16' data: [16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16]
2016.01.10 20:35:02 5: FRM:<f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000000001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077100010001000100010001000100010001000100010001000100010001000100010001000f7
Hi Stefan,
Zitat von: thymjan am 09 Januar 2016, 23:13:01
mit den Servos und dem Modul und fhem bin ich nicht viel weiter gekommen. Am Arduino angeschlossen mit den Adafruit Testsketches ist es mir gelungen im möglichen Bereich der Servos bestimmte Gradwinkel einzustellen und Fahrten mit unterschiedlichen Geschwindigkeiten zu machen.
Die Gedanken aus dem vorigen Post sind gar nicht so abwegig. Sollte also eigentlich möglich sein den Servo mit PWM-Stellung zwischen 150-650 bei 50/60Hz in einem Winkel von 0-180 zu stellen.
Die Servos sind ziemlich stark, obwohl ich hier nur Mikroservos habe. Ob sich damit auch eine Fensteröffnung realisieren liese? Aber das Haltemoment lässt wohl nach, wenn der Strom abgeschalten wird. Bzw. verbrauchen die Servos Strom zum Nachregeln wenn sie in "Ruhe" sind.
Habe aber irgendwo schon Servos mit Schneckengetriebe gesehen.
Bei normalen Servos ist das Haltemoment meines Wissens ohne Versorgung so gut wie weg.
Auch der Energieverbrauch, wenn der Servo ständig gegen eine mechanische Kraft halten muss ist sicher nicht zu verachten.
Du hast du ne super Lösung für die Fenster ;)
Zitat von: thymjan am 09 Januar 2016, 23:13:01
habe das Modul mal an den Ethernet-ConfigurableFirmata-Arduino gehängt. Sieht gar nicht so schlecht aus!
Modul wird erkannt. Initialisiert sich. Register werden sauber ausgelesen. Das Stellen eines PWM-Wertes funktioniert bei mir dann allerdings nicht mehr. Da kommen dann exponentiell im knappen Sekundenrhythmus leere FRM-Nachrichten an. Kann nur noch durch einen Reset des FRM-Moduls gestoppt werden. Muss das log noch etwas studieren... Vielleicht ist es auch sinnvoll das ganze zunächst am usb-port zu testen.
USB, Oder Lan sollte eigentlich egal sein.
Es wird entweder gelesen, oder geschrieben. "Send - Pause - Request" wie bei den Sensoren gibt es nicht.
Ich habe noch eine neue Modulversion hochgeladen. Die Fehlermeldungen sind jetzt weg/anders. Versuche bitte nochmal damit.
- bei Frequenzwechsel werden die Ports nochmal neu geschrieben. Daher gehen sie jetzt nur noch kurz aus und bekommen ihren alten Zustand gleich wieder
- bei Init wird erst das Modreg2 ausgelesen, dann 0,5s gewartet (danach wird bei Neustart das Modreg2 nur geschrieben, wenn ein anderer Wert rein soll) So wird verhindert, das bei FHEM Neustart die Ausgänge kurz toggeln.
- bugfix beim Log:
2016.01.10 20:34:43 5: PWM: 65 write join (' ',0 0 0 16) to Register 6
join ist ein Befehl und soll ausgeführt und nicht angezeigt werden.
- Configregister Attribute werden blockiert, solange das Modul nicht initialisiert wurde. (FHEM scheint die AttrFn auszuführen wenn die I2C Adresse noch gar nicht übernommen wurde)
Zu deinem Logfile:
beim neustart werden zuerst die Configregister geschrieben:
PWM: 65 write 32 to Register 0 -> Bit5 vom Modreg1 setzen (Register Auto increment) so können mehrere Register mit einem Befehl gesendet werden.
danach kommen die Ports (da hier 4 Bytes auf einmal geschrieben werden ist es wichtig, das Bit5 in Modreg1 gesetzt ist):
PWM: 65 write 0 to Register 1 -> Modreg2 alle Register auf 0 (Standard im neuen Modul ist 4 "Bit3 gesetzt" -> Ausgänge als push pull)
PWM: 65 write 0 0 0 16 to Register 6 -> Register 6 - 9 werden geschrieben (PWM Werte für LED0 schreiben in diesem Fall Off)
...
PWM: 65 write 0 0 0 16 to Register 66 -> Register 6 - 9 werden geschrieben (PWM Werte für LED15 schreiben in diesem Fall Off)
Beim Neuladen der Übersichtsseite werden alle Ports aktualisiert (evtl. sollte ich das noch entfernen. Deine Meinung):
PWM: 65 read 64 Byte from Register 6 -> (lesen ... ist erst im aktuellen Modul vorhanden)
Hier werden 64 Bytes in einem Rutsch ausgelesen (geht das überhaupt in FRM?)
Die Antwort wird in einer Schleife verarbeitet:
PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 16 16 16 16 (das sieht so aus als ob (Register Auto increment) nicht gesetzt ist): dann hätte er eben beim write 0 0 0 16 nacheinander in Register 6 geschrieben also steht eine 16 in 6 drin. Beim auslesen geht (Register Auto increment) natürlich auch nicht, so wird 4x die 16 ausgelesen.
...
PWM: lese mehrere Ports - Reg: 6 ; i: 60; Inh: 0 0 0 16 (hier scheint es seltsamerweise zu stimmen)
Es wäre gut, wenn du einzelne Register mit FRM_I2C auslesen könntest das zu überprüfen.
Hallo Klaus,
jetzt hängt sich der Arduino bzw. das FRM-Modul schon beim define auf.
Also ich gebe ein: define PWM I2C_PCA9685 0x41
und im log geht die luzie ab (Endlosschleife):2016.01.11 20:03:39 5: FRM:>ff <-- hier habe ich FRM zurückgesetzt ("reset")
2016.01.11 20:05:12 4: Connection accepted from FRM_1_192.168.1.25_1025 <-- Nach Kaltstart vom Arduino wird Verbindung aufgebaut
2016.01.11 20:05:12 5: FRM:>ff
2016.01.11 20:05:15 3: querying Firmata Firmware Version
2016.01.11 20:05:15 5: FRM:>f079f7
2016.01.11 20:05:15 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.11 20:05:15 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.11 20:05:15 5: FRM:>f069f7
2016.01.11 20:05:15 5: FRM:>f06bf7
2016.01.11 20:05:15 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f0101091c7f01010308091c7f7f010103087f010103087f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.11 20:05:15 5: FRM:>f07a6807f7
2016.01.11 20:05:15 5: FRM:>f41206
2016.01.11 20:05:15 5: FRM:>f41306
2016.01.11 20:05:15 5: FRM:>f07830eaf7
2016.01.11 20:05:15 5: FRM:>f07677082a011600f7
2016.01.11 20:05:15 5: FRM:>f40201
2016.01.11 20:05:15 5: FRM:>900000
2016.01.11 20:05:15 5: FRM:>f40303
2016.01.11 20:05:16 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7
2016.01.11 20:05:16 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60] <-- BMP180
2016.01.11 20:05:25 5: FRM:>f07639080a010100f7
2016.01.11 20:05:25 5: FRM:<f07739000a015000f7
2016.01.11 20:05:25 5: onI2CMessage address: '57', register: '138' data: [80] <-- TSL2561
2016.01.11 20:05:25 5: FRM:>f076390001011200f7
2016.01.11 20:05:25 5: FRM:>f076390801010100f7
2016.01.11 20:05:27 5: FRM:<f077390001011200f7
2016.01.11 20:05:27 5: onI2CMessage address: '57', register: '129' data: [18] <-- TSL2561
2016.01.11 20:05:27 5: FRM:>f076390000010300f7
2016.01.11 20:05:27 5: FRM:>f076390800010100f7
2016.01.11 20:05:27 5: FRM:<f077390000010300f7
2016.01.11 20:05:27 5: onI2CMessage address: '57', register: '128' data: [3] <-- TSL2561
2016.01.11 20:05:27 5: FRM:>f07639082c010200f7
2016.01.11 20:05:27 5: FRM:>f07639082e010200f7
2016.01.11 20:05:28 5: FRM:<f07739002c0106000000f7
2016.01.11 20:05:28 5: onI2CMessage address: '57', register: '172' data: [6,0] <-- TSL2561
2016.01.11 20:05:28 5: FRM:<f07739002e0101000000f7
2016.01.11 20:05:28 5: onI2CMessage address: '57', register: '174' data: [1,0] <-- TSL2561
2016.01.11 20:05:28 5: FRM:>f076390000010000f7
2016.01.11 20:06:31 5: FRM:>e37f01
2016.01.11 20:06:34 5: FRM:>e30000
2016.01.11 20:06:36 5: FRM:>900400
2016.01.11 20:06:39 5: FRM:>900000
2016.01.11 20:06:55 5: FRM:>f076770074012e00f7
2016.01.11 20:06:55 5: FRM:>f076770876010200f7
2016.01.11 20:06:55 5: FRM:>f076770074017401f7
2016.01.11 20:06:55 5: FRM:>f076770876010300f7
2016.01.11 20:06:56 5: FRM:<f0777700760150006100f7f07777007601240176014000f7
2016.01.11 20:06:56 5: onI2CMessage address: '119', register: '246' data: [80,97] <-- BMP180
2016.01.11 20:06:56 5: onI2CMessage address: '119', register: '246' data: [164,246,64] <-- BMP180
2016.01.11 20:07:39 5: FRM:>f076410801000100f7
2016.01.11 20:07:39 5: FRM:>f07641087e010100f7 <-- das ist die erste Kommunikation vom PCA9685 (nach dem define)
2016.01.11 20:07:39 5: FRM:>f076410000002000f7
2016.01.11 20:07:39 5: FRM:>f076410001000400f7
2016.01.11 20:07:39 5: FRM:>f076410006000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641000a000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641000e000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410012000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410016000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641001a000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641001e000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410022000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410026000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641002a000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641002e000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410032000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410036000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641003a000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f07641003e000000000000001000f7
2016.01.11 20:07:39 5: FRM:>f076410042000000000000001000f7
2016.01.11 20:07:40 5: FRM:<f077410001000400f7f07741007e011e00f7
2016.01.11 20:07:40 5: onI2CMessage address: '65', register: '1' data: [4]
2016.01.11 20:07:40 5: onI2CMessage address: '65', register: '254' data: [30]
2016.01.11 20:07:40 5: FRM:>f076410806004000f7
2016.01.11 20:07:41 5: FRM:<f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a000700000000000000760041000800060000004000000000000000000000001000f7
2016.01.11 20:07:41 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:41 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16]
2016.01.11 20:07:41 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:41 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:42 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:42 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:42 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: FRM:<f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f07700000000f7f07700000000f7f07700000000f7
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:43 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '16' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:43 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:43 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:44 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '16' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:44 5: FRM:>f076770074012e00f7
2016.01.11 20:07:44 5: FRM:>f076770876010200f7
2016.01.11 20:07:44 5: FRM:>f076770074017401f7
2016.01.11 20:07:44 5: FRM:>f076770876010300f7
2016.01.11 20:07:44 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:44 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:45 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:45 5: onI2CMessage address: '0', register: '16' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:45 5: FRM:<f0777700760124017601f7f07777007601240176014000f7
2016.01.11 20:07:45 5: onI2CMessage address: '119', register: '246' data: [164,246]
2016.01.11 20:07:45 5: onI2CMessage address: '119', register: '246' data: [164,246,64]
2016.01.11 20:07:46 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000000002401760140001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000100100077000000360002001c0101000801020000000000000000000a01020015004a000700000000000000760077000800760001000300000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000010003007f00010001000100010001007f007f007f007f00000000000000000006000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f0100000501090000000000000000007f0106001801000000000000670106000e000a004f0102000801020000000000000000003200030000000000000000004901020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f07740001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:46 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '0' data: [164,246,64,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,1,16,119,0,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,119,8,118,1,3,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,1,3,127,1,1,1,1,1,127,127,127,127,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,0,133,9,0,0,0,0,255,6,152,0,0,0,231,6,14,10,207,2,136,2,0,0,0,0,50,3,0,0,0,0,201,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:46 5: onI2CMessage address: '64', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:46 5: onI2CMessage address: '1', register: '16' data: []
2016.01.11 20:07:46 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000000002401760140001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000100100077000000360002001c0101000801020000000000000000000a01020015004a000700000000000000760077000800760001000300000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000010003007f00010001000100010001007f007f007f007f00000000000000000006000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f0100000501090000000000000000007f0106001801000000000000670106000e000a004f0102000801020000000000000000003200030000000000000000004901020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f07740001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: [164,246,64,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,1,16,119,0,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,119,8,118,1,3,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,1,3,127,1,1,1,1,1,127,127,127,127,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,0,133,9,0,0,0,0,255,6,152,0,0,0,231,6,14,10,207,2,136,2,0,0,0,0,50,3,0,0,0,0,201,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:47 5: onI2CMessage address: '64', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '1', register: '16' data: []
2016.01.11 20:07:47 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000000002401760140001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000100100077000000360002001c0101000801020000000000000000000a01020015004a000700000000000000760077000800760001000300000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000010003007f00010001000100010001007f007f007f007f00000000000000000006000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f0100000501090000000000000000007f0106001801000000000000670106000e000a004f0102000801020000000000000000003200030000000000000000004901020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f07740001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:47 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:07:48 3: received String_data: I2C: Too few bytes received
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '0' data: [164,246,64,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,1,16,119,0,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,119,8,118,1,3,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,1,3,127,1,1,1,1,1,127,127,127,127,0,0,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,175,0,133,9,0,0,0,0,255,6,152,0,0,0,231,6,14,10,207,2,136,2,0,0,0,0,50,3,0,0,0,0,201,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:07:48 5: onI2CMessage address: '64', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:07:48 5: onI2CMessage address: '1', register: '16' data: []
Gruß,
Stefan
und das log nach Neustart wenn das Modul bereits definiert ist.
list PWM:
Internals:
DEF 0x41
FRM_1_SENDSTAT Ok
Frequency 196.9 Hz
I2C_Address 65
IODev FRM_1
NAME PWM
NR 130
STATE Ok
TYPE I2C_PCA9685
Readings:
2016-01-11 20:36:16 Port00 off
2016-01-11 20:36:16 Port01 off
2016-01-11 20:36:16 Port02 off
2016-01-11 20:36:16 Port03 off
2016-01-11 20:36:16 Port04 off
2016-01-11 20:36:16 Port05 off
2016-01-11 20:36:16 Port06 off
2016-01-11 20:36:16 Port07 off
2016-01-11 20:36:16 Port08 on
2016-01-11 20:36:16 Port09 236
2016-01-11 20:36:16 Port10 4096
2016-01-11 20:36:16 Port11 off
2016-01-11 20:36:16 Port12 4089
2016-01-11 20:36:16 Port13 on
2016-01-11 20:36:16 Port14 on
2016-01-11 20:36:16 Port15 off
2016-01-11 20:36:16 Port_d09 412
2016-01-11 20:36:16 Port_d10 0
2016-01-11 20:36:16 Port_d12 7
2016-01-11 20:37:58 state Ok
Confregs:
1 4
Attributes:
IODev FRM_1
room firmata
verbose 5
2016.01.11 20:35:02 1: PERL WARNING: Use of uninitialized value in numeric ne (!=) at ./FHEM/52_I2C_PCA9685.pm line 232.
2016.01.11 20:35:15 5: PWM: 65 read 64 Byte from Register 6
2016.01.11 20:36:01 4: Connection accepted from FRM_1_192.168.1.25_1025
2016.01.11 20:36:01 5: FRM:>ff
2016.01.11 20:36:04 3: querying Firmata Firmware Version
2016.01.11 20:36:04 5: FRM:>f079f7
2016.01.11 20:36:04 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.11 20:36:04 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.11 20:36:04 5: FRM:>f069f7
2016.01.11 20:36:04 5: FRM:>f06bf7
2016.01.11 20:36:04 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7
2016.01.11 20:36:04 5: FRM:<f06c7f7f0101091c7f01010308091c7f7f010103087f01010308
2016.01.11 20:36:04 5: FRM:<7f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.11 20:36:04 5: FRM:>f07a6807f7
2016.01.11 20:36:04 5: FRM:>f41206
2016.01.11 20:36:04 5: FRM:>f41306
2016.01.11 20:36:04 5: FRM:>f07830eaf7
2016.01.11 20:36:04 5: FRM:>f07677082a011600f7
2016.01.11 20:36:04 5: PWM: 65 read 1 Byte from Register 1
2016.01.11 20:36:04 5: FRM:>f076410801000100f7
2016.01.11 20:36:04 5: PWM: 65 read 1 Byte from Register 254
2016.01.11 20:36:04 5: FRM:>f07641087e010100f7
2016.01.11 20:36:04 5: PWM: 65 write 32 to Register 0
2016.01.11 20:36:04 5: FRM:>f076410000002000f7
2016.01.11 20:36:04 5: PWM: 65 write 4 to Register 1
2016.01.11 20:36:04 5: FRM:>f076410001000400f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.11 20:36:04 5: FRM:>f076410006000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.11 20:36:04 5: FRM:>f07641000a000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.11 20:36:04 5: FRM:>f07641000e000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.11 20:36:04 5: FRM:>f076410012000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.11 20:36:04 5: FRM:>f076410016000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.11 20:36:04 5: FRM:>f07641001a000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.11 20:36:04 5: FRM:>f07641001e000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.11 20:36:04 5: FRM:>f076410022000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.11 20:36:04 5: FRM:>f076410026000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.11 20:36:04 5: FRM:>f07641002a000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.11 20:36:04 5: FRM:>f07641002e000000000000001000f7
2016.01.11 20:36:04 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.11 20:36:04 5: FRM:>f076410032000000000000001000f7
2016.01.11 20:36:05 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.11 20:36:05 5: FRM:>f076410036000000000000001000f7
2016.01.11 20:36:05 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.11 20:36:05 5: FRM:>f07641003a000000000000001000f7
2016.01.11 20:36:05 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.11 20:36:05 5: FRM:>f07641003e000000000000001000f7
2016.01.11 20:36:05 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.11 20:36:05 5: FRM:>f076410042000000000000001000f7
2016.01.11 20:36:05 5: FRM:>f40201
2016.01.11 20:36:05 5: FRM:>900000
2016.01.11 20:36:05 5: FRM:>f40303
2016.01.11 20:36:05 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7f077410001000400f7f07741007e011e00f7
2016.01.11 20:36:05 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60]
2016.01.11 20:36:05 5: onI2CMessage address: '65', register: '1' data: [4]
2016.01.11 20:36:05 5: onI2CMessage address: '65', register: '254' data: [30]
2016.01.11 20:36:15 5: FRM:>f07639080a010100f7
2016.01.11 20:36:15 5: PWM: 65 read 64 Byte from Register 6
2016.01.11 20:36:15 5: FRM:>f076410806004000f7
2016.01.11 20:36:16 5: FRM:<f07739000a015000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a000700000000000000760041000800060000004000000000000000000000001000f7
2016.01.11 20:36:16 5: onI2CMessage address: '57', register: '138' data: [80]
2016.01.11 20:36:16 5: FRM:>f076390001010200f7
2016.01.11 20:36:16 5: FRM:>f076390801010100f7
2016.01.11 20:36:16 3: received String_data: I2C: Too few bytes received
2016.01.11 20:36:16 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16]
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 0 16
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 32; Inh: 48 117 54 2
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 36; Inh: 156 1 136 2
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 40; Inh: 0 0 0 0
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 44; Inh: 138 2 21 74
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 48; Inh: 7 0 0 0
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 52; Inh: 118 65 8 6
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 56; Inh: 0 64 0 0
2016.01.11 20:36:16 5: PWM: lese mehrere Ports - Reg: 6 ; i: 60; Inh: 0 0 0 16
2016.01.11 20:36:17 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a00070000000000000076004100080006000000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f7f077390001010200f7
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:17 3: received String_data: I2C: Too few bytes received
2016.01.11 20:36:17 5: onI2CMessage address: '0', register: '16' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,0,118,65,8,6,0,64,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2016.01.11 20:36:17 5: onI2CMessage address: '57', register: '129' data: [2]
2016.01.11 20:36:17 5: FRM:>f076390000010300f7
2016.01.11 20:36:17 5: FRM:>f076390800010100f7
2016.01.11 20:36:18 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7f077390000010300f7
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '1', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '57', register: '128' data: [3]
2016.01.11 20:36:18 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:18 5: onI2CMessage address: '1', register: '16' data: []
2016.01.11 20:36:19 5: FRM:>f07639082c010200f7
2016.01.11 20:36:19 5: FRM:>f07639082e010200f7
2016.01.11 20:36:19 5: FRM:<f07739002c0100000000f7f07739002e0100000000f7
2016.01.11 20:36:19 5: onI2CMessage address: '57', register: '172' data: [0,0]
2016.01.11 20:36:19 5: onI2CMessage address: '57', register: '174' data: [0,0]
2016.01.11 20:36:19 5: FRM:>f076390000010000f7
2016.01.11 20:36:19 5: FRM:>f076390001011200f7
2016.01.11 20:36:19 5: FRM:>f076390801010100f7
2016.01.11 20:36:19 5: FRM:<f077390001011200f7
2016.01.11 20:36:19 5: onI2CMessage address: '57', register: '129' data: [18]
2016.01.11 20:36:19 5: FRM:>f076390000010300f7
2016.01.11 20:36:19 5: FRM:>f076390800010100f7
2016.01.11 20:36:19 5: FRM:<f077390000010300f7
2016.01.11 20:36:19 5: onI2CMessage address: '57', register: '128' data: [3]
2016.01.11 20:36:19 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:19 5: onI2CMessage address: '1', register: '16' data: []
2016.01.11 20:36:20 5: FRM:>f07639082c010200f7
2016.01.11 20:36:20 5: FRM:>f07639082e010200f7
2016.01.11 20:36:20 5: FRM:<f07739002c0106000000f7f07739002e0101000000f7
2016.01.11 20:36:20 5: onI2CMessage address: '57', register: '172' data: [6,0]
2016.01.11 20:36:20 5: onI2CMessage address: '57', register: '174' data: [1,0]
2016.01.11 20:36:20 5: FRM:>f076390000010000f7
2016.01.11 20:36:20 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07700001000f7f07701001000f7
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.11 20:36:20 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
2016.01.11 20:36:21 5: onI2CMessage address: '0', register: '16' data: []
usw.
Das Hardware-Modul bzw. der IC scheint ja die Einstellungen permanent zu speichern.
Mach es Sinn eine Funktion "Factory defaults" oder "reset" zu implementieren, die die Register zurücksetzt?
Zu Deiner Frage wann die Register ausgelesen werden sollten, meine Überlegung:
Nach define und beim Initialisieren macht es doch Sinn die Übersicht zu haben, hier würde ich alle Register auslesen.
Nach dem Schreiben auf einen PWM-Port reicht es doch aus nur diesen Auszulesen um das Reading zu aktualisieren?
Nach dem Schreiben mit "all" sollten ebenso alle Register ausgelesen werden, damit alle Readings aktuell sind.
Dann sollte das Register lesen beim Aufruf im WebFrontend doch überflüssig sein, oder?
Gruß,
Stefan
Witzig, da scheint das FRM selbst zu spinnen.
Es schickt ellenlange Pakete zurück, die unter anderem auch den Inhalt von Register 6-70 enthallten, dafür aber keine I2C Adresse.
Mir ist folgendes aufgefallen:
- GrtFn wird ausgeführt bevor FRM initialisiert wurde:
"PWM: 65 read 64 Byte from Register 6" das geht aber nie zu FRM durch (sollte also kein Problem sein) - nach:
"PWM: 65 read 1 Byte from Register 1"
und
"PWM: 65 read 1 Byte from Register 254"
sollte 100ms gewartet werden, um die Ergebnisse zu bekommen
Hier kommt das Ergebnis erst nach der Initialisierung der Ports (und kann somit nicht für die Initialisierung verwendet werden)
Beides ist nicht schön, aber es sollte trotzdem funktionieren.
Das Drama geht erst los wenn nochmal alle Ports angefordert werden
"2016.01.11 20:36:15 5: PWM: 65 read 64 Byte from Register 6"
Die Register scheinen zurückgeliefert zu werden (teilweise scheinen sie aber nicht korrekt zu sein)
Danach kommen aber immer wieder unaufgefordert Botschaften von FRM die zwar Daten, aber keine I2C Adressen enthalten.
Eventuell kann FRM keine 70 Register auf einmal auslesen.
Hast du da Infos zu?
Kommentiere bitte die GetFn mal aus (Zeile 72)
Dann werden diese langen Botschaften nicht mehr angefordert
Zeile 120 durch delay(2) ersetzen. Das sorgt dafür das nach dem anfordern der Configregister 2s gewartet wird. Das reicht hoffentlich.
Letztendlich muss ich doch alles komplett asynchron aufbauen.
Könntest du für die tests alle anderen frm teilnehmer rausnehmen?
Hallo Klaus,
bekomme gerade hier gar nichts gebacken... und war kurz davor den Kopf in den Sand zu stecken...
Aber ich habe Deine Vorschläge umgesetzt:
Zeile 72 habe ich auskommentiert:
# $hash->{GetFn} = "I2C_PCA9685_Get";
Zeile 120 ebenfalls auskommentiert und den delay(2) danach eingebaut:
# select(undef, undef, undef, 0.1);
usleep(2*1000*1000);
... und: Spuk vorbei. Gibt zwar keine Readings mehr, aber ich kann meine LEDs schön dimmen und ein- und ausschalten.
Habe noch in modreg2 "INVRT" gesetzt, damit "0 = LED aus" ergibt und "4096 = LED an".
Lediglich prescale funktioniert nicht so recht, die Frequenz ändert sich nicht und ist immer auf "196.9 Hz" eingestellt.
2016.01.12 21:48:19 1: I2C_TSL2561_Define start: 3/Lichtsensor I2C_TSL2561 0x39
2016.01.12 21:48:20 1: Including ./log/fhem.save
2016.01.12 21:48:21 4: PWM: STATE kann auf defined wiederhergestellt werden 2016-01-12 21:48:21
2016.01.12 21:48:21 3: FRM_1: port 3031 opened
2016.01.12 21:48:21 0: Server started with 81 defined entities (fhem.pl:10462/2016-01-11 perl:5.014002 os:linux user:fhem pid:20666)
2016.01.12 21:49:00 5: PWM: 65 read 1 Byte from Register 1
2016.01.12 21:49:00 5: PWM: 65 read 1 Byte from Register 254
2016.01.12 21:49:02 5: PWM: 65 write 32 to Register 0
2016.01.12 21:49:02 1: PERL WARNING: Use of uninitialized value in numeric ne (!=) at ./FHEM/52_I2C_PCA9685.pm line 234.
2016.01.12 21:49:02 5: PWM: 65 write 4 to Register 1
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.12 21:49:02 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:49:03 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:49:27 4: Connection accepted from FRM_1_192.168.1.25_1025
2016.01.12 21:49:27 5: FRM:>ff
2016.01.12 21:49:30 3: querying Firmata Firmware Version
2016.01.12 21:49:30 5: FRM:>f079f7
2016.01.12 21:49:30 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.12 21:49:30 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.12 21:49:30 5: FRM:>f069f7
2016.01.12 21:49:30 5: FRM:>f06bf7
2016.01.12 21:49:30 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f0101091c7f01010308091c7f7f010103087f010103087f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.12 21:49:30 5: FRM:>f07a6807f7
2016.01.12 21:49:30 5: FRM:>f41206
2016.01.12 21:49:30 5: FRM:>f41306
2016.01.12 21:49:30 5: FRM:>f07830eaf7
2016.01.12 21:49:30 5: FRM:>f07677082a011600f7
2016.01.12 21:49:30 5: PWM: 65 read 1 Byte from Register 1
2016.01.12 21:49:30 5: FRM:>f076410801000100f7
2016.01.12 21:49:30 5: PWM: 65 read 1 Byte from Register 254
2016.01.12 21:49:30 5: FRM:>f07641087e010100f7
2016.01.12 21:49:32 5: PWM: 65 write 32 to Register 0
2016.01.12 21:49:32 5: FRM:>f076410000002000f7
2016.01.12 21:49:32 5: PWM: 65 write 4 to Register 1
2016.01.12 21:49:32 5: FRM:>f076410001000400f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:49:32 5: FRM:>f076410006000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.12 21:49:32 5: FRM:>f07641000a000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.12 21:49:32 5: FRM:>f07641000e000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.12 21:49:32 5: FRM:>f076410012000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.12 21:49:32 5: FRM:>f076410016000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.12 21:49:32 5: FRM:>f07641001a000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.12 21:49:32 5: FRM:>f07641001e000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.12 21:49:32 5: FRM:>f076410022000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.12 21:49:32 5: FRM:>f076410026000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.12 21:49:32 5: FRM:>f07641002a000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.12 21:49:32 5: FRM:>f07641002e000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.12 21:49:32 5: FRM:>f076410032000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.12 21:49:32 5: FRM:>f076410036000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.12 21:49:32 5: FRM:>f07641003a000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:49:32 5: FRM:>f07641003e000000000000001000f7
2016.01.12 21:49:32 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:49:32 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:49:32 5: FRM:>f40201
2016.01.12 21:49:32 5: FRM:>900400
2016.01.12 21:49:32 5: FRM:>f40303
2016.01.12 21:49:32 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7f077410001000400f7f07741007e011e00f7
2016.01.12 21:49:32 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60]
2016.01.12 21:49:32 5: onI2CMessage address: '65', register: '1' data: [4]
2016.01.12 21:49:32 5: onI2CMessage address: '65', register: '254' data: [30]
2016.01.12 21:49:40 5: FRM:>f07639080a010100f7
2016.01.12 21:49:40 5: FRM:<f07739000a015000f7
2016.01.12 21:49:40 5: onI2CMessage address: '57', register: '138' data: [80]
2016.01.12 21:49:40 5: FRM:>f076390001010200f7
2016.01.12 21:49:40 5: FRM:>f076390801010100f7
2016.01.12 21:49:40 5: FRM:<f077390001010200f7
2016.01.12 21:49:40 5: onI2CMessage address: '57', register: '129' data: [2]
2016.01.12 21:49:40 5: FRM:>f076390000010300f7
2016.01.12 21:49:40 5: FRM:>f076390800010100f7
2016.01.12 21:49:40 5: FRM:<f077390000010300f7
2016.01.12 21:49:40 5: onI2CMessage address: '57', register: '128' data: [3]
2016.01.12 21:49:41 5: FRM:>f07639082c010200f7
2016.01.12 21:49:41 5: FRM:>f07639082e010200f7
2016.01.12 21:49:41 5: FRM:<f07739002c0110000000f7
2016.01.12 21:49:41 5: onI2CMessage address: '57', register: '172' data: [16,0]
2016.01.12 21:49:41 5: FRM:<f07739002e0101000000f7
2016.01.12 21:49:41 5: onI2CMessage address: '57', register: '174' data: [1,0]
2016.01.12 21:49:41 5: FRM:>f076390000010000f7
2016.01.12 21:49:41 5: FRM:>f076390001011200f7
2016.01.12 21:49:41 5: FRM:>f076390801010100f7
2016.01.12 21:49:41 5: FRM:<f077390001011200f7
2016.01.12 21:49:41 5: onI2CMessage address: '57', register: '129' data: [18]
2016.01.12 21:49:41 5: FRM:>f076390000010300f7
2016.01.12 21:49:41 5: FRM:>f076390800010100f7
2016.01.12 21:49:41 5: FRM:<f077390000010300f7
2016.01.12 21:49:41 5: onI2CMessage address: '57', register: '128' data: [3]
2016.01.12 21:49:42 5: FRM:>f07639082c010200f7
2016.01.12 21:49:42 5: FRM:>f07639082e010200f7
2016.01.12 21:49:42 5: FRM:<f07739002c017b010000f7
2016.01.12 21:49:42 5: onI2CMessage address: '57', register: '172' data: [251,0]
2016.01.12 21:49:42 5: FRM:<f07739002e0110000000f7
2016.01.12 21:49:42 5: onI2CMessage address: '57', register: '174' data: [16,0]
2016.01.12 21:49:42 5: FRM:>f076390000010000f7
2016.01.12 21:50:35 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:50:35 5: FRM:>f076410006000000000000001000f7
2016.01.12 21:50:45 5: PWM: 65 write 0 0 173 6 to Register 66
2016.01.12 21:50:45 5: FRM:>f07641004200000000002d010600f7
2016.01.12 21:50:55 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:50:55 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:51:06 5: PWM: 65 write 0 0 255 15 to Register 66
2016.01.12 21:51:06 5: FRM:>f07641004200000000007f010f00f7
2016.01.12 21:51:15 5: PWM: 65 write 0 0 255 15 to Register 62
2016.01.12 21:51:15 5: FRM:>f07641003e00000000007f010f00f7
2016.01.12 21:51:22 5: PWM: 65 write 0 0 255 15 to Register 58
2016.01.12 21:51:22 5: FRM:>f07641003a00000000007f010f00f7
2016.01.12 21:51:28 5: PWM: 65 write 0 0 255 15 to Register 66
2016.01.12 21:51:28 5: FRM:>f07641004200000000007f010f00f7
2016.01.12 21:51:37 5: PWM: 65 write 0 0 255 15 to Register 54
2016.01.12 21:51:37 5: FRM:>f07641003600000000007f010f00f7
2016.01.12 21:52:05 5: PWM: 65 write 16 to Register 1
2016.01.12 21:52:05 5: FRM:>f076410001001000f7
2016.01.12 21:52:14 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:52:14 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:52:19 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:52:19 5: FRM:>f07641003e000000000000001000f7
2016.01.12 21:52:24 5: PWM: 65 write 0 0 0 16 to Register 250
2016.01.12 21:52:24 5: FRM:>f07641007a010000000000001000f7
2016.01.12 21:52:32 5: PWM: 65 write 0 0 255 15 to Register 250
2016.01.12 21:52:32 5: FRM:>f07641007a01000000007f010f00f7
2016.01.12 21:52:38 5: PWM: 65 write 0 0 4 6 to Register 250
2016.01.12 21:52:38 5: FRM:>f07641007a010000000004000600f7
2016.01.12 21:52:52 1: PERL WARNING: Use of uninitialized value $modereg1 in bitwise and (&) at ./FHEM/52_I2C_PCA9685.pm line 190.
2016.01.12 21:52:52 5: PWM: 65 write 16 to Register 0
2016.01.12 21:52:52 5: FRM:>f076410000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 38 to Register 254
2016.01.12 21:52:52 5: FRM:>f07641007e012600f7
2016.01.12 21:52:52 1: PERL WARNING: Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 411.
2016.01.12 21:52:52 5: PWM: 65 write to Register 0
2016.01.12 21:52:52 1: PERL WARNING: Use of uninitialized value $data[0] in join or string at ./FHEM/52_I2C_PCA9685.pm line 412.
2016.01.12 21:52:52 5: FRM:>f07641000000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:52:52 5: FRM:>f076410006000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.12 21:52:52 5: FRM:>f07641000a000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.12 21:52:52 5: FRM:>f07641000e000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.12 21:52:52 5: FRM:>f076410012000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.12 21:52:52 5: FRM:>f076410016000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.12 21:52:52 5: FRM:>f07641001a000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.12 21:52:52 5: FRM:>f07641001e000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.12 21:52:52 5: FRM:>f076410022000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.12 21:52:52 5: FRM:>f076410026000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.12 21:52:52 5: FRM:>f07641002a000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.12 21:52:52 5: FRM:>f07641002e000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.12 21:52:52 5: FRM:>f076410032000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.12 21:52:52 5: FRM:>f076410036000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.12 21:52:52 5: FRM:>f07641003a000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:52:52 5: FRM:>f07641003e000000000000001000f7
2016.01.12 21:52:52 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:52:52 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:53:01 5: PWM: 65 write 16 to Register 0
2016.01.12 21:53:01 5: FRM:>f076410000001000f7
2016.01.12 21:53:01 5: PWM: 65 write 255 to Register 254
2016.01.12 21:53:01 5: FRM:>f07641007e017f01f7
2016.01.12 21:53:01 5: PWM: 65 write to Register 0
2016.01.12 21:53:01 5: FRM:>f07641000000f7
2016.01.12 21:53:01 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:53:01 5: FRM:>f076410006000000000000001000f7
2016.01.12 21:53:01 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.12 21:53:01 5: FRM:>f07641000a000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.12 21:53:02 5: FRM:>f07641000e000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.12 21:53:02 5: FRM:>f076410012000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.12 21:53:02 5: FRM:>f076410016000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.12 21:53:02 5: FRM:>f07641001a000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.12 21:53:02 5: FRM:>f07641001e000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.12 21:53:02 5: FRM:>f076410022000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.12 21:53:02 5: FRM:>f076410026000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.12 21:53:02 5: FRM:>f07641002a000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.12 21:53:02 5: FRM:>f07641002e000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.12 21:53:02 5: FRM:>f076410032000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.12 21:53:02 5: FRM:>f076410036000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.12 21:53:02 5: FRM:>f07641003a000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:53:02 5: FRM:>f07641003e000000000000001000f7
2016.01.12 21:53:02 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:53:02 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 16 to Register 0
2016.01.12 21:53:15 5: FRM:>f076410000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 to Register 254
2016.01.12 21:53:15 5: FRM:>f07641007e010000f7
2016.01.12 21:53:15 5: PWM: 65 write to Register 0
2016.01.12 21:53:15 5: FRM:>f07641000000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 6
2016.01.12 21:53:15 5: FRM:>f076410006000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 10
2016.01.12 21:53:15 5: FRM:>f07641000a000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 14
2016.01.12 21:53:15 5: FRM:>f07641000e000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 18
2016.01.12 21:53:15 5: FRM:>f076410012000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 22
2016.01.12 21:53:15 5: FRM:>f076410016000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 26
2016.01.12 21:53:15 5: FRM:>f07641001a000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 30
2016.01.12 21:53:15 5: FRM:>f07641001e000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 34
2016.01.12 21:53:15 5: FRM:>f076410022000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 38
2016.01.12 21:53:15 5: FRM:>f076410026000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.12 21:53:15 5: FRM:>f07641002a000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 46
2016.01.12 21:53:15 5: FRM:>f07641002e000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 50
2016.01.12 21:53:15 5: FRM:>f076410032000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 54
2016.01.12 21:53:15 5: FRM:>f076410036000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.12 21:53:15 5: FRM:>f07641003a000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.12 21:53:15 5: FRM:>f07641003e000000000000001000f7
2016.01.12 21:53:15 5: PWM: 65 write 0 0 0 16 to Register 66
2016.01.12 21:53:15 5: FRM:>f076410042000000000000001000f7
2016.01.12 21:53:21 5: FRM:>f076770074012e00f7
2016.01.12 21:53:21 5: FRM:>f076770876010200f7
2016.01.12 21:53:21 5: FRM:>f076770074017401f7
2016.01.12 21:53:21 5: FRM:>f076770876010300f7
2016.01.12 21:53:21 5: FRM:<f0777700760150004c00f7
2016.01.12 21:53:21 5: onI2CMessage address: '119', register: '246' data: [80,76]
2016.01.12 21:53:21 5: FRM:<f0777700760126014a016000f7
2016.01.12 21:53:21 5: onI2CMessage address: '119', register: '246' data: [166,202,96]
2016.01.12 21:54:42 5: FRM:>f076390000010300f7
2016.01.12 21:54:42 5: FRM:>f076390800010100f7
2016.01.12 21:54:42 5: FRM:<f077390000010300f7
2016.01.12 21:54:42 5: onI2CMessage address: '57', register: '128' data: [3]
2016.01.12 21:54:43 5: FRM:>f07639082c010200f7
2016.01.12 21:54:43 5: FRM:>f07639082e010200f7
2016.01.12 21:54:43 5: FRM:<f07739002c017a010000f7
2016.01.12 21:54:43 5: onI2CMessage address: '57', register: '172' data: [250,0]
2016.01.12 21:54:43 5: FRM:<f07739002e010f000000f7
2016.01.12 21:54:43 5: onI2CMessage address: '57', register: '174' data: [15,0]
2016.01.12 21:54:43 5: FRM:>f076390000010000f7
2016.01.12 21:58:21 5: FRM:>f076770074012e00f7
2016.01.12 21:58:21 5: FRM:>f076770876010200f7
2016.01.12 21:58:21 5: FRM:>f076770074017401f7
2016.01.12 21:58:21 5: FRM:>f076770876010300f7
2016.01.12 21:58:21 5: FRM:<f0777700760150004e00f7
2016.01.12 21:58:21 5: onI2CMessage address: '119', register: '246' data: [80,78]
2016.01.12 21:58:21 5: FRM:<f0777700760126014b014000f7
2016.01.12 21:58:21 5: onI2CMessage address: '119', register: '246' data: [166,203,64]
Die anderen I2C-Devices sind leider noch mit drin (0x77 und 0x39). Aber das log bleibt jetzt übersichtlich und rennt nicht mehr davon ;-)
Zitat von: thymjan am 12 Januar 2016, 22:10:02
Hallo Klaus,
bekomme gerade hier gar nichts gebacken... und war kurz davor den Kopf in den Sand zu stecken...
solang das nix mit mir zu tun hat ;)
Zitat von: thymjan am 12 Januar 2016, 22:10:02
Zeile 72 habe ich auskommentiert:
# $hash->{GetFn} = "I2C_PCA9685_Get";
Daran hat es gelegen.
In der get Subroutine werden die alle Ports mit einem mal abgefragt. Das sind 64Byte. Evtl ist das zu viel.
In deinen alten Logs kommt zwar die angeforderte Bytezahl, aber nur die ersten 32byte sind korrekt.
Gibt es bei FRM einen I2C Puffer? Vielleicht ist der nur 32byte groß, der schreibt aber trotzdem die angeforderte menge raus (allerdings dann mit Daten aus einem benachbarten Puffer)
Norbert (ntruchsess) kann da vielleicht weiterhelfen. Oder das Firmata Forum. Ich vermute es ist ein Firmata Bug.
Zitat von: thymjan am 12 Januar 2016, 22:10:02
Zeile 120 ebenfalls auskommentiert und den delay(2) danach eingebaut:
# select(undef, undef, undef, 0.1);
usleep(2*1000*1000);
Die Änderung ist fürn A...
zwischen
PWM: 65 read 1 Byte from Register 254
und
PWM: 65 write 32 to Register 0
wird zwar 2s gewartet. Aber
Connection accepted from FRM_1_192.168.1.25_1025
kommt 25s zu spät
Ist es normal das es so lang dauert?
Ändert sich in dieser Zeit der State vom FRM Modul?
Wenn ja, beschreibe das bitte genauer (evtl muss ich den State vom IODev abfragen und erst nach Abschluss der Initialisierung loslegen)
Ich verstehe nicht, wieso die anderen Module warten und das PCS9685 nicht. Das müsste sich genauso verhalten.
Hast du eine Idee?
Zitat von: thymjan am 12 Januar 2016, 22:10:02
... und: Spuk vorbei. Gibt zwar keine Readings mehr, aber ich kann meine LEDs schön dimmen und ein- und ausschalten.
Habe noch in modreg2 "INVRT" gesetzt, damit "0 = LED aus" ergibt und "4096 = LED an".
Lediglich prescale funktioniert nicht so recht, die Frequenz ändert sich nicht und ist immer auf "196.9 Hz" eingestellt.
Die Frequenz ändert sich schon. Register 254 wird ja geschrieben.
Das Problem von Firmata scheint, das es das erfolgreiche senden nicht quittiert (bei write Befehlen geht nur was raus).
Beim RPII2C mache ich das.
Daher wird dort die Frequenz korrekt angezeigt und auch die Readings werden aktualisiert.
Für das FRM Modul müsste man nach jedem write Vorgang das Register zurücklesen.
Was passiert, wenn man mit FRM_I2C 64 Byte am Stück ausliest?
- PCA normal Initialisieren
- Alle Ports aus
- FRM_I2C 32 Byte ab Register 6 lesen (müsste 8x 0 0 0 16) kommen (16 ist dezimal, kann auch 10 hexadezimal sein)
- Schauen, ob sich PCA noch schalten lässt
- Wieder alle Ports aus
- FRM_I2C 64 Byte ab Register 6 lesen (müsste 16x 0 0 0 16) kommen (16 ist dezimal, kann auch 10 hexadezimal sein)
- Schauen, ob sich PCA noch schalten lässt
Hallo Klaus,
kurzer Zwischenbericht (kann Deine Fragen noch nicht alle beantworten):
Das Zusammenspiel FRM_I2C und I2C_PCA9685 ist auf jeden Fall interessant.
FRM_I2C liest im Sekundentakt das angeforderte Datenpaket.
z.B. define PWM16R FRM_I2C 65 6 16
Und I2C_PCA9685 interpretiert dieses von FRM_I2C angeforderte Paket mit:
2016.01.15 22:48:31 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:48:32 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:48:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:48:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:48:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:48:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:48:32 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:48:33 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:48:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:48:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:48:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:48:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:48:33 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:48:33 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:48:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:48:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:48:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:48:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
Bei 16 Bytes wie hier im Beispiel sieht alles prima aus. Blöd nur, das FRM nur die Antworten schreibt und nicht die Anfrage (nur FRM:<).
Wenn ich jetzt in meinem FRM_I2C define die Byte-Anzahl langsam hoch drehe, gibt es hier nicht etwa eine harte Grenze ab der das Ganze nicht mehr funktioniert sondern mal ist bei 20 Bytes Schluß, manchmal aber auch erst bei 24.
Dann verschwimmen die Antwortpakete, d.h. in einem Antwortpaket ist nicht nur die Antwort von einer Anfrage enthalten sondern von mehreren (im folgenden Beispiel sind 20 Bytes eingestellt):
2016.01.15 22:55:18 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:55:18 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:55:18 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:18 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:18 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:18 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:19 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:55:19 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0]
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0
2016.01.15 22:55:19 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:55:19 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:55:19 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:19 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:20 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7
2016.01.15 22:55:20 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0]
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0
2016.01.15 22:55:20 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:55:20 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
Bei 29 Bytes (jetzt werden die Antwortpakete immer größer):
2016.01.15 22:58:32 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:58:32 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 22:58:32 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0]
2016.01.15 22:58:32 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0
2016.01.15 22:58:33 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0]
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0
2016.01.15 22:58:33 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0]
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 0 16
2016.01.15 22:58:33 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0
2016.01.15 22:58:34 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7
2016.01.15 22:58:34 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:58:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:34 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:34 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0]
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0
2016.01.15 22:58:35 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 22:58:35 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
Und dann (jetzt habe ich die Bytes auf 64 hochgedreht) kommt irgendwann der Punkt, an dem die Riesenpakete nicht mehr sinnvoll interpretiert werden:
2016.01.15 23:01:00 5: FRM:<f077410006000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f07741000600000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000f7f0774100060000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000f7f0714900320043003a00200054006f006f002000660065007700200062007900740065007300200072006500630065006900760065006400f7f077410006000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100030007500360002001c0101000801020000000000000000000a01020015004a000700000000000300760041001000060000004000000000000000000000001000f7f07741000600f7f07700001000f7f07700001000f7
2016.01.15 23:01:00 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 23:01:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0
2016.01.15 23:01:01 3: received String_data: I2C: Too few bytes received
2016.01.15 23:01:01 5: onI2CMessage address: '65', register: '6' data: [0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,48,117,54,2,156,1,136,2,0,0,0,0,138,2,21,74,7,0,0,3,118,65,16,6,0,64,0,0,0,0,0,16]
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 0 16
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 32; Inh: 48 117 54 2
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 36; Inh: 156 1 136 2
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 40; Inh: 0 0 0 0
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 44; Inh: 138 2 21 74
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 48; Inh: 7 0 0 3
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 52; Inh: 118 65 16 6
2016.01.15 23:01:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 56; Inh: 0 64 0 0
2016.01.15 23:01:02 5: PWM: lese mehrere Ports - Reg: 6 ; i: 60; Inh: 0 0 0 16
2016.01.15 23:01:02 5: onI2CMessage address: '65', register: '6' data: []
2016.01.15 23:01:02 5: onI2CMessage address: '0', register: '16' data: []
2016.01.15 23:01:02 5: onI2CMessage address: '0', register: '16' data: []
Das Drama lässt sich dann am besten durch Drücken des Resetknopfes auf dem Arduino beenden, sonst ist fhem irgendwann völlig blockiert.
Kannst Du damit was anfangen?
Gruß,
Stefan
Moin Stefan,
Zitat von: thymjan am 15 Januar 2016, 23:11:56
Das Drama lässt sich dann am besten durch Drücken des Resetknopfes auf dem Arduino beenden, sonst ist fhem irgendwann völlig blockiert.
Kannst Du damit was anfangen?
und ob, jetzt weiss ich, das FRM bei mehr als 16byte spinnt.
Damit kann ich erstmal arbeiten. Allerdings ist das nicht so schön, da ich vorhatte, auch das schreiben blockweise zu machen. So hätte man z.B. ein RGB in einem rutsch LED Schalten können ohne das die 3x kurz flackert.
Edit:
laut Norbert müsste der Puffer 32 Byte tief sein (30byte Daten + Registeradresse + I2C Adresse)
im StandardFirmata.ino steht da irgendwo:
byte i2cRxData[32];
ist bei dir da auch eine 32 drin?
Hallo Klaus,
habe mal nach der Angabe der Puffergröße gesucht und hier (in meinem Arduino User-Arbeitsverzeichnis) fündig geworden:
.\Arduino\libraries\arduino-configurable\utility\I2CFirmata.h (Zeile 57)
Das mit den 32 Byte passt.
Gruß,
Stefan
... habe jetzt mal den PCA9685 als einziges I2C-Device über einen Arduino-Nano mit StandardFirmata V_2_03 mittels USB an einen relativ jungfräulichen raspi a+ gehängt.
Hier funktioniert das im Wesentlichen mit den 32 Byte. Aber irgendwie ist nicht nur der Puffer ausschlaggebend sondern auch das zur Verfügung stehende Zeitfenster.
Gelegentlich werden alle ersten 8 Register ausgelesen, dann aber auch wieder nicht. Die Frage ist: Kommt der Arduino nicht hinterher, oder wird FRM in der Empfangszeit beschnitten oder läuft irgendwo ein Empfangspuffer über und der Arduino weis nicht wohin mit den Daten... :-\
Entspricht ja allerdings auch nicht der Realität, dass jede Sekunde ausgelesen wird, sondern eher alle 5 Minuten. Ist schon ein ziemlicher Stresstest durch das FRM_I2C-Modul.
2016.01.20 22:14:28 5: FRM:<f07149003200
2016.01.20 22:14:28 5: FRM:<43002000520065006100640020004500720072006f0072003a00200054006f006f
2016.01.20 22:14:28 5: FRM:<0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400f7f07741
2016.01.20 22:14:28 3: received String_data: I2C Read Error: Too many bytes received
2016.01.20 22:14:28 5: FRM:<0006000000000031000d 000000000031000d 000000000031000d 000000000031000d 000000000031000d 000000000031000d 000000000031000d 000000000031000d 00f7f077410006000000000031000d 000000000031000d 000000000031000d 000000000031000d 00f7f077410006000000000031000d 000000000031000d 000000000031000d 000000000031000d 000000f7f077410006000000000031000d 000000000031000d 00000000003100
2016.01.20 22:14:28 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:28 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:28 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0]
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0
2016.01.20 22:14:28 5: FRM:<0d000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7
2016.01.20 22:14:28 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:28 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:28 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:29 5: FRM:<f0714900
2016.01.20 22:14:29 5: FRM:<320043002000520065006100640020004500720072006f0072003a00200054006f006f0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400
2016.01.20 22:14:29 5: FRM:<f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00000000
2016.01.20 22:14:29 3: received String_data: I2C Read Error: Too many bytes received
2016.01.20 22:14:29 5: FRM:<0031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d00000000003100
2016.01.20 22:14:29 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:29 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:29 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0]
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0
2016.01.20 22:14:29 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:29 5: FRM:<0d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7
2016.01.20 22:14:29 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:29 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:30 5: FRM:<f0714900
2016.01.20 22:14:30 5: FRM:<320043002000520065006100640020004500720072006f0072003a00200054006f00
2016.01.20 22:14:30 5: FRM:<6f0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400
2016.01.20 22:14:30 5: FRM:<f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d0000000000
2016.01.20 22:14:30 3: received String_data: I2C Read Error: Too many bytes received
2016.01.20 22:14:30 5: FRM:<31000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7f07741
2016.01.20 22:14:30 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:30 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:30 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0]
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0
2016.01.20 22:14:30 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:30 5: FRM:<0006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7
2016.01.20 22:14:30 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:30 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:31 5: FRM:<f0714900
2016.01.20 22:14:31 5: FRM:<320043002000520065006100640020004500720072006f0072003a00200054006f00
2016.01.20 22:14:31 5: FRM:<6f0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400f7f0774100060000
2016.01.20 22:14:31 3: received String_data: I2C Read Error: Too many bytes received
2016.01.20 22:14:31 5: FRM:<00000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000f7f077410006000000000031000d000000000031000d000000000031000d000000
2016.01.20 22:14:31 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:31 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:31 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0]
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0
2016.01.20 22:14:31 5: FRM:<000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7
2016.01.20 22:14:31 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:31 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13,0,0,49,13]
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 49 13
2016.01.20 22:14:31 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 49 13
2016.01.20 22:14:32 5: FRM:<f071
2016.01.20 22:14:32 5: FRM:<4900320043002000520065006100640020004500720072006f0072003a00200054006f006f
2016.01.20 22:14:32 5: FRM:<0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400
2016.01.20 22:14:32 5: FRM:<f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031
2016.01.20 22:14:32 3: received String_data: I2C Read Error: Too many bytes received
2016.01.20 22:14:32 5: FRM:<000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000f7f077410006000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d000000000031000d00f7f077410006
So sieht's im geordneten 'Feldzug' mit 4 Bytes aus:
2016.01.20 22:45:53 5: FRM:<f077410006
2016.01.20 22:45:53 5: FRM:<000000000031000d00f7
2016.01.20 22:45:53 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13]
2016.01.20 22:45:53 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 49 13
2016.01.20 22:45:54 5: FRM:<f0774100060000
2016.01.20 22:45:54 5: FRM:<00000031000d00f7
2016.01.20 22:45:54 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13]
2016.01.20 22:45:54 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 49 13
2016.01.20 22:45:55 5: FRM:<f07741
2016.01.20 22:45:55 5: FRM:<0006000000000031000d00f7
2016.01.20 22:45:55 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13]
2016.01.20 22:45:55 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 49 13
2016.01.20 22:45:56 5: FRM:<f077
2016.01.20 22:45:56 5: FRM:<410006000000000031000d00f7
2016.01.20 22:45:56 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13]
2016.01.20 22:45:56 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 49 13
2016.01.20 22:45:57 5: FRM:<f07741
2016.01.20 22:45:57 5: FRM:<0006000000000031000d00f7
2016.01.20 22:45:57 5: onI2CMessage address: '65', register: '6' data: [0,0,49,13]
2016.01.20 22:45:57 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 49 13
also nach Puffergröße sollten 30 Bytes 'Nutzlast' gehen, 2 Bytes des Buffers gehen ja für 2 Bytes für Geräte- und Register-addresse (https://github.com/firmata/arduino/blob/master/examples/StandardFirmata/StandardFirmata.ino#L182) drauf. Da im Firmata-code nicht gegen die Pufferlänge geprüft wird, überschreibt man bei Abfrage von mehr als 30 Bytes unweigerlich den dahinter liegenden Speicher (=> undefiniertes Verhalten bzw. Absturz).
wenn sowas kommt: 'received String_data: I2C Read Error: Too many bytes received', dann spricht das dafür, dass die I2C-kommunikation zum chip hin Fehlerhaft war. Konkret hat die I2C-library mehr Daten 'anzubieten', als man unmittelbar vorher angefordert hat. Woran genau das liegt, da kann ich nur spekulieren - vieliecht, weil sich die Kommandos überlagert haben (also ein neues raus ging, bevor die Komminikation auf dem Bus abgeschlossen war?)
Den I2C-code der Firmata sollte man mal dringend überarbeiten, der Puffer ist eigentlich überflüssig - die I2C-daten könnten direkt in den Firmataoutputstream rausgeschrieben werden. Dann gäbe es keine Größenbeschränkung von der Softwareseite her.
Gruß,
Norbert
Zitat von: ntruchsess am 21 Januar 2016, 08:38:17
Den I2C-code der Firmata sollte man mal dringend überarbeiten, der Puffer ist eigentlich überflüssig - die I2C-daten könnten direkt in den Firmataoutputstream rausgeschrieben werden. Dann gäbe es keine Größenbeschränkung von der Softwareseite her.
Ja, das würde einiges erleichtern.
In diesem Zusammenhang wäre auch eine Bestätigung von gesendeten Daten super (beim RPII2C werden nach erfolgreicher Schreibaktion die Daten zurück gesendet) Dann könnte man die Readings aktualisieren ohne die Register erneut zu lesen.
Habe ich es richtig verstanden, das man schon Daten >30Byte schreiben kann?
Habe bisher vergessen im FRM-Modul den Parameter "sampling-interval" zu setzen, deshalb die Abfrage im Sekundentakt bei Definition von FRM_IC2.
Bei sampling-intervall 5000ms sieht das log folgendermaßen aus:
4 Bytes
2016.01.22 21:33:41 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7]
2016.01.22 21:33:41 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 234 7
2016.01.22 21:33:46 5: FRM:<f077410006
2016.01.22 21:33:46 5: FRM:<00000000006a010700f7
2016.01.22 21:33:46 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7]
2016.01.22 21:33:46 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 234 7
2016.01.22 21:33:51 5: FRM:<f077410006
2016.01.22 21:33:51 5: FRM:<00000000006a010700f7
2016.01.22 21:33:51 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7]
2016.01.22 21:33:51 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 234 7
2016.01.22 21:33:56 5: FRM:<f077410006000000
2016.01.22 21:33:56 5: FRM:<00006a010700f7
2016.01.22 21:33:56 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7]
2016.01.22 21:33:56 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 234 7
2016.01.22 21:34:01 5: FRM:<f077
2016.01.22 21:34:01 5: FRM:<41000600000000006a010700f7
2016.01.22 21:34:01 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7]
2016.01.22 21:34:01 5: PWM: lese einen Port - Reg: 6 ; Inh: 0 0 234 7
2016.01.22 21:34:06 5: FRM:<f077410006000000
2016.01.22 21:34:06 5: FRM:<00006a010700f7
Nach Umstellen der Byte-Größe im FRM_I2C-Modul muss das FRM-Modul einem Reset unterzogen werden, die alte Abfrage läuft sonst weiter und überlagert sich. Selbst wenn das Define des FRM_I2C-Moduls gelöscht wird, läuft die Abfrage noch weiter.
Hier das log nach einem Reset (ff):
2016.01.22 21:38:06 5: SW: ff
2016.01.22 21:38:09 3: querying Firmata Firmware Version
2016.01.22 21:38:09 5: FRM:>f079f7
2016.01.22 21:38:09 5: SW: f079f7
2016.01.22 21:38:09 5: FRM:<f90203f0790203530074006100
2016.01.22 21:38:10 5: FRM:<6e0064006100720064004600690072006d00610074006100f7f07902035300740061006e0064006100720064004600690072006d00610074006100f7
2016.01.22 21:38:10 3: Firmata Firmware Version: StandardFirmata V_2_03
2016.01.22 21:38:10 5: FRM:>f069f7
2016.01.22 21:38:10 5: SW: f069f7
2016.01.22 21:38:10 5: FRM:>f06bf7
2016.01.22 21:38:10 5: SW: f06bf7
2016.01.22 21:38:10 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7
2016.01.22 21:38:10 5: FRM:<f06c7f7f00010101040e7f000101010308040e7f00010101040e7f000101010308040e7f000101010308040e7f00010101040e7f00010101040e7f000101010308040e7f000101010308040e7f000101010308040e7f00010101040e7f00010101040e
2016.01.22 21:38:10 5: FRM:<7f00010101020a7f00010101020a7f00010101020a7f00010101020a7f00010101020a06017f00010101020a06017f020a7f020a7ff7
2016.01.22 21:38:10 5: FRM:>f07a0827f7
2016.01.22 21:38:10 5: SW: f07a0827f7
2016.01.22 21:38:10 5: FRM:>f41206
2016.01.22 21:38:10 5: SW: f41206
2016.01.22 21:38:10 5: FRM:>f41306
2016.01.22 21:38:10 5: SW: f41306
2016.01.22 21:38:10 5: FRM:>f0780100f7
2016.01.22 21:38:10 5: SW: f0780100f7
2016.01.22 21:38:10 5: PWM: 65 read 1 Byte from Register 1
2016.01.22 21:38:10 5: FRM:>f076410801000100f7
2016.01.22 21:38:10 5: SW: f076410801000100f7
2016.01.22 21:38:10 5: PWM: 65 read 1 Byte from Register 254
2016.01.22 21:38:10 5: FRM:>f07641087e010100f7
2016.01.22 21:38:10 5: SW: f07641087e010100f7
2016.01.22 21:38:12 5: PWM: 65 write 32 to Register 0
2016.01.22 21:38:12 5: FRM:>f076410000002000f7
2016.01.22 21:38:12 5: SW: f076410000002000f7
2016.01.22 21:38:12 5: PWM: 65 write 0 0 234 7 to Register 6
2016.01.22 21:38:12 5: FRM:>f07641000600000000006a010700f7
2016.01.22 21:38:12 5: SW: f07641000600000000006a010700f7
2016.01.22 21:38:12 5: PWM: 65 write 0 0 65 6 to Register 34
2016.01.22 21:38:12 5: FRM:>f076410022000000000041000600f7
2016.01.22 21:38:12 5: SW: f076410022000000000041000600f7
2016.01.22 21:38:12 5: PWM: 65 write 0 16 0 0 to Register 38
2016.01.22 21:38:12 5: FRM:>f076410026000000100000000000f7
2016.01.22 21:38:12 5: SW: f076410026000000100000000000f7
2016.01.22 21:38:12 5: PWM: 65 write 0 0 0 16 to Register 42
2016.01.22 21:38:12 5: FRM:>f07641002a000000000000001000f7
2016.01.22 21:38:12 5: SW: f07641002a000000000000001000f7
2016.01.22 21:38:12 5: PWM: 65 write 6 4 0 0 to Register 46
2016.01.22 21:38:12 5: FRM:>f07641002e000600040000000000f7
2016.01.22 21:38:12 5: SW: f07641002e000600040000000000f7
2016.01.22 21:38:12 5: PWM: 65 write 0 0 0 16 to Register 58
2016.01.22 21:38:12 5: FRM:>f07641003a000000000000001000f7
2016.01.22 21:38:12 5: SW: f07641003a000000000000001000f7
2016.01.22 21:38:12 5: PWM: 65 write 0 0 0 16 to Register 62
2016.01.22 21:38:12 5: FRM:>f07641003e000000000000001000f7
2016.01.22 21:38:12 5: SW: f07641003e000000000000001000f7
2016.01.22 21:38:12 5: PWM: 65 write 5 0 0 0 to Register 66
2016.01.22 21:38:12 5: FRM:>f076410042000500000000000000f7
2016.01.22 21:38:12 5: SW: f076410042000500000000000000f7
2016.01.22 21:38:12 5: FRM:<f077410001001000f7f07741007e011e00f7
2016.01.22 21:38:12 5: onI2CMessage address: '65', register: '1' data: [16]
2016.01.22 21:38:12 5: onI2CMessage address: '65', register: '254' data: [30]
Und dann mit "define PWM8R FRM_I2C 65 6 8":
2016.01.22 21:39:47 5: FRM:>f076411006000800f7
2016.01.22 21:39:47 5: SW: f076411006000800f7
2016.01.22 21:39:50 5: FRM:<f0774100
2016.01.22 21:39:50 5: FRM:<0600000000006a010700000000006a010700f7
2016.01.22 21:39:50 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7]
2016.01.22 21:39:50 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:39:50 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:39:55 5: FRM:<f077410006000000
2016.01.22 21:39:55 5: FRM:<00006a010700000000006a010700f7
2016.01.22 21:39:55 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7]
2016.01.22 21:39:55 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:39:55 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:40:00 5: FRM:<f077
2016.01.22 21:40:00 5: FRM:<41000600000000006a010700000000006a010700f7
2016.01.22 21:40:00 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7]
2016.01.22 21:40:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:40:00 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:40:05 5: FRM:<f077410006
2016.01.22 21:40:05 5: FRM:<00000000006a010700000000006a010700f7
2016.01.22 21:40:05 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7]
2016.01.22 21:40:05 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:40:05 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:40:10 5: FRM:<f0
2016.01.22 21:40:10 5: FRM:<7741000600000000006a010700000000006a010700f7
2016.01.22 21:40:10 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7]
2016.01.22 21:40:10 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:40:10 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
Mit "define PWM32R FRM_I2C 65 6 32":
2016.01.22 21:41:56 5: FRM:<f0774100060000
2016.01.22 21:41:56 5: FRM:<0000006a010700000000006a010700000000006a010700000000006a010700000000006a010700000000006a010700000000006a0107000000000041000600f7
2016.01.22 21:41:56 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,65,6]
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 234 7
2016.01.22 21:41:56 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 65 6
2016.01.22 21:42:01 5: FRM:<f07741000600
2016.01.22 21:42:01 5: FRM:<000000006a010700000000006a010700000000006a010700000000006a010700000000006a010700000000006a010700000000006a0107000000000041000600f7
2016.01.22 21:42:01 5: onI2CMessage address: '65', register: '6' data: [0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,234,7,0,0,65,6]
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 0; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 4; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 8; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 12; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 16; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 20; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 24; Inh: 0 0 234 7
2016.01.22 21:42:01 5: PWM: lese mehrere Ports - Reg: 6 ; i: 28; Inh: 0 0 65 6
Und (was zu beweisen war) mit "define PWM64R FRM_I2C 65 6 64":2016.01.22 21:43:00 5: FRM:>f076411006004000f7
2016.01.22 21:43:00 5: SW: f076411006004000f7
2016.01.22 21:43:01 5: FRM:<f07149
2016.01.22 21:43:01 5: FRM:<00320043002000520065006100640020004500720072006f0072003a00200054006f
2016.01.22 21:43:01 5: FRM:<006f0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400f7f07741007e011e0000000000000000000000000000000000000000
2016.01.22 21:43:01 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:01 5: FRM:<00000000000000000000000000000000000000000000000000000000000000000000000000000041000600400000000000000000000000000000000000000000000000000000000000000000000000000000000000000069006800000000006a0068000000000000000000f7
2016.01.22 21:43:01 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,104,0,0,106,104,0,0,0,0]
2016.01.22 21:43:01 1: PERL WARNING: Argument "30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0..." isn't numeric in addition (+) at ./FHEM/52_I2C_PCA9685.pm line 518.
2016.01.22 21:43:06 5: FRM:<f0714900320043
2016.01.22 21:43:06 5: FRM:<002000520065006100640020004500720072006f0072003a00200054006f006f00
2016.01.22 21:43:06 5: FRM:<20006d0061006e007900200062007900740065007300200072006500630065006900760065006400f7f077
2016.01.22 21:43:06 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:06 5: FRM:<41007e011e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041000600400000000000000000000000000000000000000000000000000000000000000000000000000000000000000071017b000000000072017b000000000000000000f7
2016.01.22 21:43:06 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,241,123,0,0,242,123,0,0,0,0]
2016.01.22 21:43:11 5: FRM:<f07149003200430020
2016.01.22 21:43:11 5: FRM:<00520065006100640020004500720072006f0072003a00200054006f006f0020006d0061006e007900200062007900740065
2016.01.22 21:43:11 5: FRM:<007300200072006500630065006900760065006400f7f07741007e011e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2016.01.22 21:43:11 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:11 5: FRM:<000000000000000000000041000600400000000000000000000000000000000000000000000000000000000000000000000000000000000000000079000f01000000007a000f010000000000000000f7
2016.01.22 21:43:11 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,121,143,0,0,122,143,0,0,0,0]
2016.01.22 21:43:16 5: FRM:<f0714900
2016.01.22 21:43:16 5: FRM:<320043002000520065006100640020004500720072006f0072003a00200054006f006f0020006d0061006e00790020006200790074006500730020007200650063006500
2016.01.22 21:43:16 5: FRM:<6900760065006400f7f07741007e011e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004100060040000000000000
2016.01.22 21:43:16 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:16 5: FRM:<000000000000000000000000000000000000000000000000000000000000000000000000000100230100000000020023010000000000000000f7
2016.01.22 21:43:16 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,163,0,0,2,163,0,0,0,0]
2016.01.22 21:43:21 5: FRM:<f071490032
2016.01.22 21:43:21 5: FRM:<0043002000520065006100640020004500720072006f0072003a00200054006f006f0020006d0061006e007900200062007900740065007300200072006500630065006900760065006400
2016.01.22 21:43:21 5: FRM:<f7f07741007e011e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
2016.01.22 21:43:21 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:21 5: FRM:<0000000000000000000000000041000600400000000000000000000000000000000000000000000000000000000000000000000000000000000000000009013601000000000a0136010000000000000000f7
2016.01.22 21:43:21 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,182,0,0,138,182,0,0,0,0]
2016.01.22 21:43:26 5: FRM:<f071
2016.01.22 21:43:26 5: FRM:<4900320043002000520065006100640020004500720072006f0072003a00200054006f006f0020006d0061006e0079002000620079007400650073
2016.01.22 21:43:26 5: FRM:<00200072006500630065006900760065006400f7f07741007e011e0000000000000000000000000000000000000000000000000000000000000000
2016.01.22 21:43:26 3: received String_data: I2C Read Error: Too many bytes received
2016.01.22 21:43:26 5: FRM:<00000000000000000000000000000000000000000000000000000041000600400000000000000000000000000000000000000000000000000000000000000000000000000000000000000011004a010000000012004a010000000000000000f7
2016.01.22 21:43:26 5: onI2CMessage address: '65', register: '254' data: [30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,6,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,202,0,0,18,202,0,0,0,0]
mal was neues zum testen
set all könnte noch probleme machen, der rest sollte auch mit frm laufen
Hallo Klaus!
Funktioniert hier im ersten Durchlauf perfekt! 'Set all' auch. Frequenz-Einstellen ebenso.
Im Log gibt's keine Fehlermeldungen.
Danke.
Gruß,
Stefan
Zitat von: thymjan am 23 Januar 2016, 12:21:18
Funktioniert hier im ersten Durchlauf perfekt! 'Set all' auch. Frequenz-Einstellen ebenso.
Im Log gibt's keine Fehlermeldungen.
Super dann kann es ja ins SVN
Hattest du FRM über LAN verwendet?
Nein, momentan nur USB. Teste ich heute abend mal am Ethernet.
Gruß,
Stefan
Zitat von: thymjan am 23 Januar 2016, 13:36:01
Nein, momentan nur USB. Teste ich heute abend mal am Ethernet.
Ahso, USB-FRM habe ich jetzt auch laufen. Mit dem Standard Firmata war das ne Kleinigkeit.
Gibts die Dinger auch mit Wlan?
Ohje, zu früh gefreut. Übers Ethernet passieren immer noch schlimme Sachen.
Das Modul steht auf "Error during Initialisation".
Beim ersten Start konnte ich kurz die LEDs einzeln schalten und auch die Frequenz einstellen.
Aber seit ich 1x set all gemacht habe, bekomme ich's nicht mehr zum Laufen.
Das Log quillt über. Nach einem "set PWM PortXX Y" wird kein Reading generiert.
So sieht das Log nach einem "shutdown restart" und einem "set PWM Port00 147" aus:
2016.01.23 20:47:24 1: I2C_TSL2561_Define start: 3/Lichtsensor I2C_TSL2561 0x39
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 269, <$fh> line 322.
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 221, <$fh> line 323.
2016.01.23 20:47:26 1: Including ./log/fhem.save
2016.01.23 20:47:26 4: PWM: STATE kann auf Ok wiederhergestellt werden 2016-01-23 20:47:26
2016.01.23 20:47:26 4: PWM: Port00 kann auf 4096 wiederhergestellt werden 2016-01-23 20:33:42
2016.01.23 20:47:26 5: PWM: Port00 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port01 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port01 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port02 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port02 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port03 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port03 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port04 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port04 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port05 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port05 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port06 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port06 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port07 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port07 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port08 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port08 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port09 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port09 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port10 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port10 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port11 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port11 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port12 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port12 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port13 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port13 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port14 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port14 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port15 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port15 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port_d00 kann auf 257 wiederhergestellt werden 2016-01-23 20:43:49
2016.01.23 20:47:27 4: PWM: Port_d01 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d02 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d03 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d04 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d05 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d06 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d07 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d08 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d09 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d10 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d11 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d12 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d13 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d14 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d15 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: state kann auf Ok wiederhergestellt werden 2016-01-23 20:46:07
2016.01.23 20:47:27 3: FRM_1: port 3031 opened
2016.01.23 20:47:27 0: Featurelevel: 5.7
2016.01.23 20:47:27 0: Server started with 81 defined entities (fhem.pl:10510/2016-01-15 perl:5.014002 os:linux user:fhem pid:3896)
2016.01.23 20:47:28 4: Connection accepted from FRM_1_192.168.1.25_1036
2016.01.23 20:47:28 5: FRM:>ff
2016.01.23 20:47:31 3: querying Firmata Firmware Version
2016.01.23 20:47:31 5: FRM:>f079f7
2016.01.23 20:47:31 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.23 20:47:31 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.23 20:47:31 5: FRM:>f069f7
2016.01.23 20:47:31 5: FRM:>f06bf7
2016.01.23 20:47:31 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f0101091c7f01010308091c7f7f010103087f010103087f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.23 20:47:31 5: FRM:>f07a6807f7
2016.01.23 20:47:31 5: FRM:>f41206
2016.01.23 20:47:31 5: FRM:>f41306
2016.01.23 20:47:31 5: FRM:>f07830eaf7
2016.01.23 20:47:31 5: FRM:>f07677082a011600f7
2016.01.23 20:47:31 5: PWM: Init1 Konfigurationsregister auslesen
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:31 5: FRM:>f076410800000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 1
2016.01.23 20:47:31 5: FRM:>f076410801000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 2
2016.01.23 20:47:31 5: FRM:>f076410802000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 3
2016.01.23 20:47:31 5: FRM:>f076410803000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 4
2016.01.23 20:47:31 5: FRM:>f076410804000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 5
2016.01.23 20:47:31 5: FRM:>f076410805000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 254
2016.01.23 20:47:31 5: FRM:>f07641087e010100f7
2016.01.23 20:47:31 5: FRM:>f40201
2016.01.23 20:47:31 5: FRM:>900000
2016.01.23 20:47:31 5: FRM:>f40303
2016.01.23 20:47:34 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7f077410000001100f7f077410001001000f7f077410002006201f7f077410004006801f7f077410005006001f7f07741007e010300f7
2016.01.23 20:47:34 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60]
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:34 5: PWM Received from Register 0: 17
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '1' data: [16]
2016.01.23 20:47:34 5: PWM Received from Register 1: 16
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '2' data: [226]
2016.01.23 20:47:34 5: PWM Received from Register 2: 226
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '4' data: [232]
2016.01.23 20:47:34 5: PWM Received from Register 4: 232
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '5' data: [224]
2016.01.23 20:47:34 5: PWM Received from Register 5: 224
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '254' data: [3]
2016.01.23 20:47:34 5: PWM Received from Register 254: 3
2016.01.23 20:47:34 5: PWM: Init2 Konfigurationsregister beschreiben
2016.01.23 20:47:34 5: PWM: modereg1 alter Wert: 17 neuer Wert: 32
2016.01.23 20:47:34 5: PWM: 65 write 32 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000002000f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:34 5: PWM: modereg2 alter Wert: 16 neuer Wert: 16
2016.01.23 20:47:34 5: PWM: SUBADR1 alter Wert: 226 neuer Wert: 226
2016.01.23 20:47:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 239.
2016.01.23 20:47:34 5: PWM: SUBADR2 alter Wert: neuer Wert: 228
2016.01.23 20:47:34 1: PERL WARNING: Use of uninitialized value in numeric ne (!=) at ./FHEM/52_I2C_PCA9685.pm line 240.
2016.01.23 20:47:34 5: PWM: 65 write 228 to Register 3
2016.01.23 20:47:34 5: FRM:>f076410003006401f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 3
2016.01.23 20:47:34 5: FRM:>f076410803000100f7
2016.01.23 20:47:34 5: PWM: SUBADR3 alter Wert: 232 neuer Wert: 232
2016.01.23 20:47:34 5: PWM: ALLCALLADR alter Wert: 224 neuer Wert: 224
2016.01.23 20:47:34 5: PWM: prescale alter Wert: 3 neuer Wert: 0
2016.01.23 20:47:34 5: PWM: 65 write 17 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000001100f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:34 5: PWM: 65 write 0 to Register 254
2016.01.23 20:47:34 5: FRM:>f07641007e010000f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 254
2016.01.23 20:47:34 5: FRM:>f07641087e010100f7
2016.01.23 20:47:34 5: PWM: 65 write 17 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000001100f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:35 5: FRM:<f077410000002000f7f077410003006401f7f077410000001100f7f07741007e010300f7f077410000001100f7
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [32]
2016.01.23 20:47:35 5: PWM Received from Register 0: 32
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '3' data: [228]
2016.01.23 20:47:35 5: PWM Received from Register 3: 228
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:35 5: PWM Received from Register 0: 17
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '254' data: [3]
2016.01.23 20:47:35 5: PWM Received from Register 254: 3
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:35 5: PWM Received from Register 0: 17
2016.01.23 20:47:48 5: FRM:>f076390000010000f7
2016.01.23 20:47:52 5: PWM: 65 write 1 1 148 1 to Register 6
2016.01.23 20:47:52 5: FRM:>f076410006000100010014010100f7
2016.01.23 20:47:52 5: PWM: 65 read 4 Byte from Register 6
2016.01.23 20:47:52 5: FRM:>f076410806000400f7
2016.01.23 20:47:53 5: FRM:<f077410006000100010001000100f7
2016.01.23 20:47:53 5: onI2CMessage address: '65', register: '6' data: [1,1,1,1]
2016.01.23 20:47:53 5: PWM Received from Register 6: 1 1 1 1
2016.01.23 20:47:53 5: PWM: lese einen Port - Reg: 6 ; Inh: 1 1 1 1
Zu Deiner zweiten Frage:
Habe hier so eins liegen: https://www.conrad.de/de/c-control-iot-wifi-board-1387029.html (https://www.conrad.de/de/c-control-iot-wifi-board-1387029.html)
Eine Firmata habe ich dafür bis jetzt allerdings noch nicht gefunden.
denke, ich habe den fehler gefunden
Morgen Klaus!
Bingo, jetzt läufts mit Ethernet erheblich stabiler.
set PWM all [vierstellige Zahl]
läuft jetzt.
Setzen auf 0 macht aber Probleme. Nur die ersten 8 Ports werden geschrieben. In den restlichen steht in den Readings dann 4096 drin. Außerdem werden dann Readings der delaycycles mit Fantasiewerten angezeigt.
Bin momentan unterwegs, logs kommen noch.
Gruß,
Stefan
Zitat von: thymjan am 25 Januar 2016, 06:42:06
Bingo, jetzt läufts mit Ethernet erheblich stabiler.
set PWM all [vierstellige Zahl]
läuft jetzt.
Versuche bitte auch einzelne Ports zu setzen.
Bei set all lese ich die Ports in 2 Gruppen a 32 Byte zurück ... evtl ist das zuviel.
Hallo Klaus,
Port einzeln schreiben funktioniert, die Readings werden ebenso aktualisiert (für den geschriebenen Port).
Bei set PWM all 0..4095 funktioniert das Schreiben (LEDs werden richtig geschaltet, "off" oder "on" wird jedoch nicht erkannt). Das Lesen geht in die Hose, da wird eine Endlosschleife in Gang gesetzt, die nur durch Reset vom Arduino beendet werden kann.
Hinterher stehen falsche Werte in den Readings. Ebenso werden Port_dXX-Readings erzeugt, obwohl an diesen Parametern gar nicht geschraubt wurde.
Wo werden die Werte zwischengespeichert beim shutdown restart? In der Hardware, also im PCA9685 oder in FHEM? Die Werte der Initialisierung stimmen auf jeden Fall nicht mit den LEDs überein.
Log nach shutdown restart (die Initialisierungsroutine wartet nicht bis FRM bereit ist):
2016.01.23 20:47:24 1: I2C_TSL2561_Define start: 3/Lichtsensor I2C_TSL2561 0x39
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 269, <$fh> line 322.
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 221, <$fh> line 323.
2016.01.23 20:47:26 1: Including ./log/fhem.save
2016.01.23 20:47:26 4: PWM: STATE kann auf Ok wiederhergestellt werden 2016-01-23 20:47:26
2016.01.23 20:47:26 4: PWM: Port00 kann auf 4096 wiederhergestellt werden 2016-01-23 20:33:42
2016.01.23 20:47:26 5: PWM: Port00 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port01 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port01 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port02 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port02 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port03 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port03 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port04 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port04 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port05 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port05 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port06 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port06 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port07 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port07 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port08 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:27
2016.01.23 20:47:26 5: PWM: Port08 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port09 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port09 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port10 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port10 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port11 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:26 5: PWM: Port11 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:26 4: PWM: Port12 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port12 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port13 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port13 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port14 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port14 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port15 kann auf 4096 wiederhergestellt werden 2016-01-23 20:34:28
2016.01.23 20:47:27 5: PWM: Port15 soll auf Altzustand: 4096 gesetzt werden
2016.01.23 20:47:27 4: PWM: Port_d00 kann auf 257 wiederhergestellt werden 2016-01-23 20:43:49
2016.01.23 20:47:27 4: PWM: Port_d01 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d02 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d03 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d04 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d05 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d06 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d07 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:12
2016.01.23 20:47:27 4: PWM: Port_d08 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d09 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d10 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d11 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d12 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d13 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d14 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: Port_d15 kann auf 3855 wiederhergestellt werden 2016-01-23 20:35:13
2016.01.23 20:47:27 4: PWM: state kann auf Ok wiederhergestellt werden 2016-01-23 20:46:07
2016.01.23 20:47:27 3: FRM_1: port 3031 opened
2016.01.23 20:47:27 0: Featurelevel: 5.7
2016.01.23 20:47:27 0: Server started with 81 defined entities (fhem.pl:10510/2016-01-15 perl:5.014002 os:linux user:fhem pid:3896)
2016.01.23 20:47:28 4: Connection accepted from FRM_1_192.168.1.25_1036
2016.01.23 20:47:28 5: FRM:>ff
2016.01.23 20:47:31 3: querying Firmata Firmware Version
2016.01.23 20:47:31 5: FRM:>f079f7
2016.01.23 20:47:31 5: FRM:<f079020643006f006e0066006900670075007200610062006c0065004600690072006d00610074006100f7
2016.01.23 20:47:31 3: Firmata Firmware Version: ConfigurableFirmata V_2_06
2016.01.23 20:47:31 5: FRM:>f069f7
2016.01.23 20:47:31 5: FRM:>f06bf7
2016.01.23 20:47:31 5: FRM:<f06a7f7f7f7f7f7f7f7f7f7f7f7f7f7f0001020304050607f7f06c7f7f0101091c7f01010308091c7f7f010103087f010103087f01017f01017f010103087f7f7f7f7f01017f01017f01017f01017f010106017f010106017f7f7ff7
2016.01.23 20:47:31 5: FRM:>f07a6807f7
2016.01.23 20:47:31 5: FRM:>f41206
2016.01.23 20:47:31 5: FRM:>f41306
2016.01.23 20:47:31 5: FRM:>f07830eaf7
2016.01.23 20:47:31 5: FRM:>f07677082a011600f7
2016.01.23 20:47:31 5: PWM: Init1 Konfigurationsregister auslesen
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:31 5: FRM:>f076410800000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 1
2016.01.23 20:47:31 5: FRM:>f076410801000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 2
2016.01.23 20:47:31 5: FRM:>f076410802000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 3
2016.01.23 20:47:31 5: FRM:>f076410803000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 4
2016.01.23 20:47:31 5: FRM:>f076410804000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 5
2016.01.23 20:47:31 5: FRM:>f076410805000100f7
2016.01.23 20:47:31 5: PWM: 65 read 1 Byte from Register 254
2016.01.23 20:47:31 5: FRM:>f07641087e010100f7
2016.01.23 20:47:31 5: FRM:>f40201
2016.01.23 20:47:31 5: FRM:>900000
2016.01.23 20:47:31 5: FRM:>f40303
2016.01.23 20:47:34 5: FRM:<f07777002a01200035007b012d014501700105015d016200700136001800190073000000290000010000510176010a003c00f7f077410000001100f7f077410001001000f7f077410002006201f7f077410004006801f7f077410005006001f7f07741007e010300f7
2016.01.23 20:47:34 5: onI2CMessage address: '119', register: '170' data: [32,53,251,173,197,240,133,221,98,240,54,24,25,115,0,41,128,0,209,246,10,60]
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:34 5: PWM Received from Register 0: 17
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '1' data: [16]
2016.01.23 20:47:34 5: PWM Received from Register 1: 16
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '2' data: [226]
2016.01.23 20:47:34 5: PWM Received from Register 2: 226
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '4' data: [232]
2016.01.23 20:47:34 5: PWM Received from Register 4: 232
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '5' data: [224]
2016.01.23 20:47:34 5: PWM Received from Register 5: 224
2016.01.23 20:47:34 5: onI2CMessage address: '65', register: '254' data: [3]
2016.01.23 20:47:34 5: PWM Received from Register 254: 3
2016.01.23 20:47:34 5: PWM: Init2 Konfigurationsregister beschreiben
2016.01.23 20:47:34 5: PWM: modereg1 alter Wert: 17 neuer Wert: 32
2016.01.23 20:47:34 5: PWM: 65 write 32 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000002000f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:34 5: PWM: modereg2 alter Wert: 16 neuer Wert: 16
2016.01.23 20:47:34 5: PWM: SUBADR1 alter Wert: 226 neuer Wert: 226
2016.01.23 20:47:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 239.
2016.01.23 20:47:34 5: PWM: SUBADR2 alter Wert: neuer Wert: 228
2016.01.23 20:47:34 1: PERL WARNING: Use of uninitialized value in numeric ne (!=) at ./FHEM/52_I2C_PCA9685.pm line 240.
2016.01.23 20:47:34 5: PWM: 65 write 228 to Register 3
2016.01.23 20:47:34 5: FRM:>f076410003006401f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 3
2016.01.23 20:47:34 5: FRM:>f076410803000100f7
2016.01.23 20:47:34 5: PWM: SUBADR3 alter Wert: 232 neuer Wert: 232
2016.01.23 20:47:34 5: PWM: ALLCALLADR alter Wert: 224 neuer Wert: 224
2016.01.23 20:47:34 5: PWM: prescale alter Wert: 3 neuer Wert: 0
2016.01.23 20:47:34 5: PWM: 65 write 17 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000001100f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:34 5: PWM: 65 write 0 to Register 254
2016.01.23 20:47:34 5: FRM:>f07641007e010000f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 254
2016.01.23 20:47:34 5: FRM:>f07641087e010100f7
2016.01.23 20:47:34 5: PWM: 65 write 17 to Register 0
2016.01.23 20:47:34 5: FRM:>f076410000001100f7
2016.01.23 20:47:34 5: PWM: 65 read 1 Byte from Register 0
2016.01.23 20:47:34 5: FRM:>f076410800000100f7
2016.01.23 20:47:35 5: FRM:<f077410000002000f7f077410003006401f7f077410000001100f7f07741007e010300f7f077410000001100f7
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [32]
2016.01.23 20:47:35 5: PWM Received from Register 0: 32
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '3' data: [228]
2016.01.23 20:47:35 5: PWM Received from Register 3: 228
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:35 5: PWM Received from Register 0: 17
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '254' data: [3]
2016.01.23 20:47:35 5: PWM Received from Register 254: 3
2016.01.23 20:47:35 5: onI2CMessage address: '65', register: '0' data: [17]
2016.01.23 20:47:35 5: PWM Received from Register 0: 17
2016.01.23 20:47:48 5: FRM:>f076390000010000f7
2016.01.23 20:47:52 5: PWM: 65 write 1 1 148 1 to Register 6
2016.01.23 20:47:52 5: FRM:>f076410006000100010014010100f7
2016.01.23 20:47:52 5: PWM: 65 read 4 Byte from Register 6
2016.01.23 20:47:52 5: FRM:>f076410806000400f7
2016.01.23 20:47:53 5: FRM:<f077410006000100010001000100f7
2016.01.23 20:47:53 5: onI2CMessage address: '65', register: '6' data: [1,1,1,1]
2016.01.23 20:47:53 5: PWM Received from Register 6: 1 1 1 1
2016.01.23 20:47:53 5: PWM: lese einen Port - Reg: 6 ; Inh: 1 1 1 1
Log nach set all:
2016.01.25 20:34:27 5: PWM: 65 read 4 Byte from Register 58
2016.01.25 20:34:27 5: FRM:>f07641083a000400f7
2016.01.25 20:34:27 5: FRM:<f07741003a000f000f0066010d00f7
2016.01.25 20:34:27 5: onI2CMessage address: '65', register: '58' data: [15,15,230,13]
2016.01.25 20:34:27 5: PWM Received from Register 58: 15 15 230 13
2016.01.25 20:34:27 5: PWM: lese einen Port - Reg: 58, Inh: 15 15 230 13
2016.01.25 20:35:17 5: PWM: 65 write 0 0 73 12 to Register 250
2016.01.25 20:35:17 5: FRM:>f07641007a010000000049000c00f7
2016.01.25 20:35:17 5: PWM: 65 read 32 Byte from Register 6
2016.01.25 20:35:17 5: FRM:>f076410806002000f7
2016.01.25 20:35:17 5: PWM: 65 read 32 Byte from Register 38
2016.01.25 20:35:18 5: FRM:>f076410826002000f7
2016.01.25 20:35:18 5: FRM:<f077410006000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c00f7f077410026000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c000000000049000c00f7f07700000000f7f07700000000f7f07700000000f7
2016.01.25 20:35:18 5: onI2CMessage address: '65', register: '6' data: [0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12]
2016.01.25 20:35:18 5: PWM Received from Register 6: 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 0; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 4; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 8; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 12; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 16; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 20; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 24; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 6, i: 28; Inh: 0 0 73 12
2016.01.25 20:35:18 5: onI2CMessage address: '65', register: '38' data: [0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12,0,0,73,12]
2016.01.25 20:35:18 5: PWM Received from Register 38: 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 0; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 4; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 8; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 12; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 16; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 20; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 24; Inh: 0 0 73 12
2016.01.25 20:35:18 5: PWM: lese mehrere Ports - Reg: 38, i: 28; Inh: 0 0 73 12
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07749000c00f7f07749000c00f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:18 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:19 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:19 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:19 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:19 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:20 5: FRM:<f07700000000f7f07700000000f7f07700000000f7
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: FRM:<f07700000000f7f07700000000f7f07700000000f7
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: FRM:<f07700000000f7f07700000000f7f07700000000f7
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:20 5: FRM:<f07749000c00f7f07749000c00f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:20 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:20 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:21 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:21 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:21 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:21 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:21 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:21 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: FRM:<f07700000000f7f07749000c00f7
2016.01.25 20:35:22 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:22 5: FRM:<f07749000c00f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:22 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:22 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: FRM:<f07700000000f7f07700000000f7f07749000c00f7
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:23 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:23 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:23 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:23 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:23 5: FRM:<f07749000c00f7
2016.01.25 20:35:23 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: FRM:<f07700000000f7f07749000c00f7
2016.01.25 20:35:24 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:24 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:24 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:24 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:24 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:24 5: FRM:<f07749000c00f7
2016.01.25 20:35:24 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: FRM:<f07700000000f7f07749000c00f7
2016.01.25 20:35:25 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:25 5: FRM:<f07749000c00f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:25 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:25 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: FRM:<f07700000000f7f07700000000f7f07749000c00f7f07749000c00f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:26 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: FRM:<f07700000000f7f07749000c00f7f07749000c00f7
2016.01.25 20:35:27 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:27 5: FRM:<f07749000c00f7f07749000c00f7
2016.01.25 20:35:27 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:27 5: onI2CMessage address: '73', register: '12' data: []
2016.01.25 20:35:28 5: FRM:<f07700000000f7
2016.01.25 20:35:28 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:28 5: FRM:<f07700000000f7f07700000000f7
2016.01.25 20:35:28 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:28 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:28 5: FRM:<f07700000000f7
2016.01.25 20:35:28 5: onI2CMessage address: '0', register: '0' data: []
2016.01.25 20:35:28 5: FRM:<f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07700000000f7f07749000c00f7f07749000c00f7f07749000c00f7f07749000c00f7
So, neue Version im SVN.
set PWM all sollte jetzt komplett laufen
beim define gibt es eine neue Option (Puffergröße)
kann als Zahl nach dem I2C Adresse angegeben werden. (Wenn nicht Vorhanden wird 30 verwendet)
Einfach mal Probieren, ab wann das Netz FRM nicht mehr spinnt.
Zitat von: klausw am 26 Januar 2016, 00:52:31beim define gibt es eine neue Option (Puffergröße)
Ich denke, das man den Puffer nicht lieber ins physische Modul (also ins FRM) packen sollte. Also in dem Sinn: logisches Modul kann beliebige Zahl von Bytes schreiben bzw. das Lesen anfordern - das physische Modul abstrahiert das und puffert die Lese bzw. Schreibvorgänge selbsttätig ab.
Zitat von: ntruchsess am 26 Januar 2016, 10:41:18
Ich denke, das man den Puffer nicht lieber ins physische Modul (also ins FRM) packen sollte. Also in dem Sinn: logisches Modul kann beliebige Zahl von Bytes schreiben bzw. das Lesen anfordern - das physische Modul abstrahiert das und puffert die Lese bzw. Schreibvorgänge selbsttätig ab.
Das wäre natürlich die Ideallösung. Ich habe das auch eher als Notlösung eingebaut.
Könntest du dich der Sache annehmen. Du hast den besseren Überblick :)
Zum I2C write Vorgang bei FRM habe ich noch eine Frage:
Wird der Schreibbefehl vom FRM Quittiert? Egal ob positiv oder negativ
Wenn ja würde ich diese gern zum Readings Update nutzen.
Derzeit muss ich nach dem Schreiben der I2C Register diese wieder zurücklesen um deren Status zu bekommen.
Das erzeugt Traffic und Verzögert das ReadingsUpdate.
nein, wird nicht expliziet quittiert. Liegt auch daran, dass die I2C (Wire)-library des Arduinos keine Fehlerbehandlung vorgesehen hat. Schreiben erfolgt quasi 'auf gut Glück'. Beim Lesen gibt es Fehlermeldungen, wenn über die Wire-library eine andere Anzahl von Bytes ankommt, als vorher angefordert (https://github.com/firmata/arduino/blob/master/examples/StandardFirmata/StandardFirmata.ino#L176), aber auch diese Fehlermeldung landet FRM-seitig nur im Log und wird nicht weiter ausgewertet.
$Id: 52_I2C_PCA9685.pm 10638 2016-01-26 00:11:07Z klauswitt $
8)
Funktioniert mit Ethernet ConfigurableFirmata V_2_06 + ArduinoNano mit
define PWM I2C_PCA9685 0x41 31
attr PWM IODev FRM_1
attr PWM modereg2 INVRT # fuer LEDs mit Vorwiderstand an PWM und V+ (5V)
attr PWM prescale 255
Die Readings werden nicht immer konsequent nach set aktualisiert (vor allem bei set all in den höheren Kanälen).
Bei einem Reload wird aber das letzte Setting dann richtig angezeigt.
Ab 32 Byte gibt's dann mit dieser Konfiguration Schluckauf im Log mit "set PWM all XX".
Jetzt hab ich doch noch was zum nörgeln:
Beim shutdown restart gibts noch den Fehler
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 218, <$fh> line 329.
und es wird noch nicht gewartet bis die Kommunikation zwischen FRM und Firmata steht.
Daher läuft die Initialisierung nicht sauber durch. Die Readings stimmen dann nicht unbedingt mit dem aktuellen Stand der Ports überein.
Das Problem bestand beim TSL2561 auch. Jens hat da irgendwo rumgeschraubt. Beim Überfliegen des Programmtextes vom TSL konnte ich die Stelle aber noch nicht ausfindig machen.
Zitat von: thymjan am 26 Januar 2016, 21:47:22
Funktioniert mit ConfigurableFirmata V_2_06 + ArduinoNano
LAN oder USB?
Zitat von: thymjan am 26 Januar 2016, 21:47:22
define PWM I2C_PCA9685 0x41 31
kannst du ruhig weglassen
Standard ist 30 und es werden sowieso nur vielfache von 4 gesendet (1 Port hat 4 Byte und wenn die nicht am Stück beschrieben werden dann flackert/wackelt die/der LED/Servo)
Zitat von: thymjan am 26 Januar 2016, 21:47:22
Die Readings werden nicht immer konsequent nach set aktualisiert (vor allem bei set all in den höheren Kanälen).
Bei einem Reload wird aber das letzte Setting dann richtig angezeigt.
Das liegt an der Kombination von Refresh der Seite und eintrudeln der Daten.
Liegt auch daran, das alle Register über FRM nach dem schreiben nochmal zurückgelesen werden müssen.
Mache die Detailseite ein zweites mal auf. Diese wir ja beim set nicht neu geladen und dort kommen die Readings korrekt an.
Habe keine Lösungsidee dafür. Allerdings wird man den PCA sicher eher im Zusammenhang mit readingsProxy und so nutzen.
Zitat von: thymjan am 26 Januar 2016, 21:47:22
Ab 32 Byte gibt's dann mit dieser Konfiguration Schluckauf im Log mit "set PWM all XX".
kennen wir ja schon, das FRM dann anfängt zu husten ;)
Zitat von: thymjan am 26 Januar 2016, 22:17:52
Beim shutdown restart gibts noch den Fehler
Use of uninitialized value in concatenation (.) or string at ./FHEM/52_I2C_PCA9685.pm line 218, <$fh> line 329.
ah prescale habe ich nicht mehr getestet, ist eh nur in einer der nutzlosen LogZeilen ;)
In Zeile 218
$hash->{confregs}{PRESCALE}
durch
(defined($hash->{confregs}{PRESCALE}) ? $hash->{confregs}{PRESCALE} : "empty")
Dann sollte der Fehler weg sein. Wenns passt ändere ich das.
Zitat von: thymjan am 26 Januar 2016, 21:47:22
und es wird noch nicht gewartet bis die Kommunikation zwischen FRM und Firmata steht.
Daher läuft die Initialisierung nicht sauber durch. Die Readings stimmen dann nicht unbedingt mit dem aktuellen Stand der Ports überein.
Sollte aber so sein.
Bei Verbose 5 beginnt die Initialisierung im Log mit:
Init1 Konfigurationsregister auslesen
Das passt auch in deinem letzten Log.
Was vorher kommt hat nichts mit der Hardwareinitialisierung zu tun:
Die Wiederherstellungsmeldungen sind nur für die Readings da. Das ganze wird über fhem.pl aufgerufen (aus log/fhem.save werden die Readings, welche beim Shutdown gespeichert wurden, wieder geladen).
Auch die Attribute werden vor der Hardwareinitialisierung geladen. Auch über fhem.pl.
Beides ist auch ok so.
Zitat von: thymjan am 25 Januar 2016, 20:59:15
Hinterher stehen falsche Werte in den Readings. Ebenso werden Port_dXX-Readings erzeugt, obwohl an diesen Parametern gar nicht geschraubt wurde.
Naja, das sind die fehlerhaften Readings, die vom wirren FRM vor dem Reset gesendet wurden. Diese werden in der fhem.save gespeichert und, wenn nich anderes im attribut onrestart angegeben ist, beim starten wiedergergestellt.
einmal "set name all 0 0" ausführen und alles ist wieder in Ordnung.
Mit der Änderung von Zeile 218 ist die Fehlermeldung dann weg.
Kleiner Nachtrag zu den Servos
Mit folgender Einstellung kann ich jetzt meine Servos im verfügbaren Winkelbereich steuern:
attr PWM prescale 121 # f = 50Hz
attr PWM modreg2 OUTDRV
Mit set PWM PortXX 130..550 beim analogen Servo und 161..528 beim digitalen kann ich jeweils den gewünschten Winkel anfahren.
hast du mit der LAN oder der USB Version getestet?
Das mit der Fehlermeldung habe ich mit der Ethernet Firmata getestet.
Also Deine aktuelle Version ist jetzt Ethernet fit!
Die Servos habe ich mit der StandardFirmata über USB getestet.
Zitat von: thymjan am 27 Januar 2016, 23:23:00
Das mit der Fehlermeldung habe ich mit der Ethernet Firmata getestet.
Also Deine aktuelle Version ist jetzt Ethernet fit!
super dann kommt demnächst noch nen update wegen des Fehlers
Hallo!
Habe das PCA9685 direkt am I2C des Pi hängen. Alles definiert, wird auch erkannt.
define i2c RPII2C 1
attr i2c alias Onboard I2C Controller 1
attr i2c room Aquarium
define PWM I2C_PCA9685 0x40
attr PWM IODev i2c
attr PWM room Aquarium
Ich kann Werte setzen, aber es gibt keine Veränderungen am Output. Nur wenn ich modereg2 Invrt setze, dann wird der Ausgang ausgeschalten.
Angeschlossen ist ein LED Stripe mit MOSFET.
Was kann das sein? Ist das Chinateil hin? :)
Zitat von: projectsun am 17 April 2016, 21:55:05
Ich kann Werte setzen, aber es gibt keine Veränderungen am Output. Nur wenn ich modereg2 Invrt setze, dann wird der Ausgang ausgeschalten.
Angeschlossen ist ein LED Stripe mit MOSFET.
Was kann das sein? Ist das Chinateil hin? :)
Wenn eine Mosfet Treiberstufe angeschlossen wird sollte OUTDRV gesetzt werden.
Die Standardeinstellung der Ausgangsstufe ist Open Collector. Da ist es, je nach Schaltung schon möglich, das der FET durchgesteuert bleibt, wenn das Gate nicht entladen werden kann.
Hmm, OUTDRV hatte ich auch schon gesetzt. Da gab es auch keine Reaktion auf das verschieben der Regler. Der FET ist ein STP16NF06L.
Verkabelt wie hier:
https://blog.adafruit.com/2013/03/29/powering-an-analog-rgb-led-strip-with-the-pi-piday-raspberrypi-raspberry_pi (https://blog.adafruit.com/2013/03/29/powering-an-analog-rgb-led-strip-with-the-pi-piday-raspberrypi-raspberry_pi)
Vielleicht hilft das ja.
Zitat von: projectsun am 18 April 2016, 20:21:52
Hmm, OUTDRV hatte ich auch schon gesetzt. Da gab es auch keine Reaktion auf das verschieben der Regler. Der FET ist ein STP16NF06L.
Verkabelt wie hier:
https://blog.adafruit.com/2013/03/29/powering-an-analog-rgb-led-strip-with-the-pi-piday-raspberrypi-raspberry_pi (https://blog.adafruit.com/2013/03/29/powering-an-analog-rgb-led-strip-with-the-pi-piday-raspberrypi-raspberry_pi)
Vielleicht hilft das ja.
Invert sollte, wie der Name schon sagt, nur die Logik invertieren.
An wird aus und die LEDs werden bei höherem Dimwert dunkler statt heller.
Ein Bug im Modul kann auch Möglich sein, halte ich aber für unwarscheinlich.
Was ist denn das genaue Fehlerbild?
Nutzt du auch den kompletten Dimbereich zum testen?
Hast du den OE Pin angeschlossen? Ohne den schaltet bei bestimmten Registerkonfigurationen nix.
Ich habe den kompletten Dimmbereich versucht - nix. Kein dunkler, kein heller, kein Flackern. Den OE Pin habe ich nicht angeschlossen. Hatte keine Beispielverkabelung gesehen, wo dieser verwendet wird.
Habe das hier mal nachgestellt. Allerdings nicht direkt am Raspi, das PCA9685-Modul hängt am Standard-Firmata Nano. Und ich habe momentan kein MOSFET zur Hand sondern einen Transistor TIP120 mit 220Ohm Vorwiderstand an der Basis (https://learn.adafruit.com/rgb-led-strips/usage (https://learn.adafruit.com/rgb-led-strips/usage)).
Bei modreg2 habe ich OUTDRV gesetzt.
Damit funktioniert's bei mir.
Hast Du mal statt MOSFET und Led-stripe eine LED direkt angeschlossen?
Kannst Du mal ein list PWM zeigen?
Wo soll ich die LED mit Vorwiderstand hinhängen? Zw. V+ und PWM?
Oder ohne Vorwiderstand zwischen PWM und GND? Das hatte ich nämlich schon versucht. Bleibt dunkel. Bis ich INVRT setze.
Guckst Du hier:
https://forum.fhem.de/index.php/topic,45759.msg388074.html#msg388074 (https://forum.fhem.de/index.php/topic,45759.msg388074.html#msg388074)
Ich weiss nicht warum.... jetzt funktioniert alles. Allerdings an einem anderen Port (14). Möglich, das da Port 1 bei mir einen Defekt hat.
Moin,
ich habe ein seltsames Phänomen mit den PCA_9685 Modul. (Raspberry 3)
Einige Attribute (Bsp. modereg2 INVRT) werden nicht korrekt angenommen. Als Ergebnis erscheint eine leere Seite in FHEM mit einer 1 oben links.
In FHEM ist bisher nicht viel initialisiert bis auf einem OWController mit ca. 20 Temperatursensoren. Auch wenn ich diese rausnehme klappt das setzen der Attribute manchmal, meistens aber nicht.
Hat einer vielleicht eine Idee was ich falsch mache?
Danke im Vorraus!
Zitat von: Joe4630 am 27 Januar 2017, 23:44:17
Moin,
ich habe ein seltsames Phänomen mit den PCA_9685 Modul. (Raspberry 3)
Einige Attribute (Bsp. modereg2 INVRT) werden nicht korrekt angenommen. Als Ergebnis erscheint eine leere Seite in FHEM mit einer 1 oben links.
Was bringt denn
version I2C_PCA9685
?
Hallo Klaus,
Hier die Version:
52_I2C_PCA9685.pm 12059 2016-08-22 21:14:59Z klauswitt
LG
Gut, die ist schonmal aktuell. Da muss ich das Teil mal wieder in Betrieb nehmen.
Evtl. komme ich am We dazu.
Grüße
Klaus
Edit:
Poste bitte deine Config (von PCA9685 und RPII2C).
Und ein list beider Devices.
Ist die Adresse korrekt?
Kannst du das Modul über die Konsole erreichen? (i2cdetect/i2cget)
Hallo Klaus,
Über I2C kann ich die Devices erreichen. Auch kann ich im Prinzip Dimmen, die Werte die ich mit set vorgebe werden umgesetzt, aber eben wie auch die Attribute nicht immer in der Oberfläche angezeigt. Ich bekomme immer die leere Oberfläche mit der einzelnen 1 oben links.
Nach einem Neustart werden mir für die PCA9685 auch "Error during initialistation" angezeigt und die modereg2 Attribute sind weg. (Dann geht bei mir überall das Licht an....) Wenn ich allerdings dann einmal einen Wert auf einen Kanal schreibe, wird das Device mit "OK" angezeigt.
Hier die config:
#################################
# I2C Controller
#################################
define I2C_IO RPII2C 1
attr I2C_IO alias Onboard I2C Controller 1
# PWM PCA9685 Addr. 40
define PCB1_PWM24V I2C_PCA9685 0x40 60
attr PCB1_PWM24V IODev I2C_IO
attr PCB1_PWM24V modereg2 INVRT,OUTDRV
attr PCB1_PWM24V room PWM
# PWM PCA9685 Addr. 41
define PCB1_PWM3V I2C_PCA9685 0x41 60
attr PCB1_PWM3V IODev I2C_IO
attr PCB1_PWM3V modereg2 INVRT,OUTDRV
attr PCB1_PWM3V room PWM
Listings:
#####################################
Internals:
DEF 1
DeviceName /dev/i2c-1
NAME I2C_IO
NOTIFYDEV global
NR 31
NTFY_ORDER 50-I2C_IO
STATE Ok
TYPE RPII2C
ioctl_ph_exists 1
Attributes:
alias Onboard I2C Controller 1
#################################
Internals:
DEF 0x41 60
Frequency 196.9 Hz
I2C_Address 65
I2C_Buff 60
I2C_IO_SENDSTAT Ok
IODev I2C_IO
NAME PCB1_PWM3V
NR 51
STATE Ok
TYPE I2C_PCA9685
Readings:
2017-02-05 20:25:45 Port00 896
2017-01-27 23:10:17 Port01 off
2017-02-01 22:32:38 Port02 1139
2017-01-27 23:10:17 Port03 off
2017-01-27 23:10:17 Port04 off
2017-01-27 23:10:17 Port05 off
2017-02-03 19:51:21 Port06 off
2017-02-05 21:02:40 Port07 off
2017-02-05 20:57:29 Port08 4000
2017-02-05 20:27:34 Port09 off
2017-02-05 20:57:38 Port10 on
2017-01-27 23:10:17 Port11 off
2017-01-27 23:10:17 Port12 off
2017-02-01 22:30:56 Port13 2385
2017-02-05 21:04:18 Port14 759
2017-02-05 21:06:16 Port15 off
2017-01-27 23:11:52 Port_d00 0
2017-02-01 22:32:38 Port_d02 0
2017-02-03 18:57:15 Port_d06 0
2017-01-27 23:22:00 Port_d07 0
2017-02-01 22:36:17 Port_d08 0
2017-01-29 17:13:39 Port_d09 0
2017-01-29 11:25:32 Port_d10 0
2017-02-01 22:30:56 Port_d13 0
2017-01-28 00:10:36 Port_d14 0
2017-01-28 00:49:53 Port_d15 400
2017-02-05 21:06:16 state Ok
Confregs:
ALLCALLADR 224
PRESCALE 30
SUBADR1 226
SUBADR2 228
SUBADR3 232
modereg1 32
modereg2 20
Attributes:
IODev I2C_IO
modereg2 INVRT,OUTDRV
room PWM
######################################
Die modereg2 Attribute werden nicht nach einem Neustart übernommen. Von Hand kann ich die (manchmal) einzeln setzen, aber wie gesagt dann mit leerer Seite und der einzelnen 1 oben links.
Während ich das Listing erstellt habe, waren einige Ports auch definitiv auf andere Werte. Das INVRT Attribut war auch nicht aktiv. OUTDRV dagegen schon.
Ich habe mir gerade noch einen Raspberry bestellt, damit ich in Ruhe testen kann. Auch will ich den neu aufsetzen. In FHEM habe ich neuerdings auch noch das Problem das es sehr, sehr lange dauert bis ich nach dem Klick auf "save fhem.cfg" auf die Startseite von fhem geleitet werde.
Auch wir z.bsp. ein "get PCB1_PWM3V" mit "no get implemented for PCB1_PWM3V" quittiert..
Vielleicht ist ja auch meine Konfiguration irgendwie zerschossen?...
Ich denke ich habe Mittwoch ein neu aufgesetztes (Test)System zur Verfügung. Der jetzige steuert bei mir schon die halbe Wohnung....
Danke für Deine Hilfe!
Kurzes Update,
das es nach dem klick auf "save fhem.cfg" so lange dauert bis ich zur Startseite zurück geleitet werde liegt wahrscheinlich an dem ROLLO Modul. Wenn ich die rausnehme geht alles wie gewohnt schnell.
Ich werde da mal nach dem Phänomen nachfragen.
oh mann, mein Fehler. beim letzten commit habe ich eine falsche Version verwendet
im Moment bekomme ich den SVN Zugriff nicht hin.
In Zeile 484 gehört:
return undef;
Direkt vor
} else {
if (AttrVal($hash->{NAME}, "dummy", 0) == 1) {
Du kannst es, bis das Modul im SVN aktualisiert ist, händisch eintragen.
Edit:
ist eingecheckt
nach einem Update morgen sollte es funktionieren
Hallo Klaus,
ich habe jetzt geupdated und das Verhalten mit der leeren Seite ist behoben. Danke!
Leider habe ich immer noch das Problem das die zwei modereg2 Attribute INVRT und OUTDRV nicht gleichzeitig gesetzt werden können. Beim Start von FHEM habe ich immer noch "Error during initialisation" stehen.
Wenn ich INVRT zuerst einzeln setzte, dann separat OUTDRV setze wird mir zwar INVRT nicht mehr angezeigt, ist aber dennoch aktiv. Dann funktioniert alles.
Woran könnte es liegen das beim Start die Attribute nicht übernommen werden obwohl diese unter Attributes angezeigt werden?
Danke und Grüße
Zitat von: Joe4630 am 09 Februar 2017, 23:19:15
Leider habe ich immer noch das Problem das die zwei modereg2 Attribute INVRT und OUTDRV nicht gleichzeitig gesetzt werden können. Beim Start von FHEM habe ich immer noch "Error during initialisation" stehen.
Wenn ich INVRT zuerst einzeln setzte, dann separat OUTDRV setze wird mir zwar INVRT nicht mehr angezeigt, ist aber dennoch aktiv. Dann funktioniert alles.
Woran könnte es liegen das beim Start die Attribute nicht übernommen werden obwohl diese unter Attributes angezeigt werden?
Seltsam, bei mir läuft das jetzt. Hier ein List welches ich direkt nach "shutdown restart" gemacht habe:
Internals:
DEF 0x68 60
IODev RPiI2C
NAME PCB1_PWM24V
NR 541
STATE defined
TYPE I2C_PCA9685
Readings:
2017-02-15 20:31:22 Port00 3929
2017-02-07 22:23:28 Port01 off
2017-02-07 22:23:28 Port02 off
2017-02-07 22:23:28 Port03 off
2017-02-07 22:23:29 Port04 off
2017-02-07 22:23:29 Port05 off
2017-02-07 22:23:29 Port06 off
2017-02-07 22:23:29 Port07 off
2017-02-07 22:23:30 Port08 off
2017-02-07 22:23:30 Port09 off
2017-02-07 22:23:30 Port10 off
2017-02-07 22:23:30 Port11 off
2017-02-07 22:23:30 Port12 off
2017-02-07 22:23:31 Port13 off
2017-02-07 22:23:31 Port14 off
2017-02-07 22:23:31 Port15 off
2017-02-07 22:24:00 Port_d00 0
2017-02-15 20:31:22 state Ok
Confregs:
Attributes:
IODev RPiI2C
modereg2 INVRT,OUTDRV
room UniPi
Beide modereg Attribute sind auch korrekt im IC angekommen.
Du hast nicht zufällig noch ein weiteres I2C Device auf der selben Adresse (war bei mir so.... und da hatte ich Fehler)