DIe Idee einer neuen Dunstabzugshauben steuerung hatte ich auch, ich hatte die Idee alles per KNX zu steuern aber auch die normalen taster anzuschliessen diese bedienung dann aber auch als status auf den knx zu senden.
Ankündigung
Einklappen
Keine Ankündigung bisher.
KNX mit RP2040 / Pi Pico
Einklappen
X
-
Zitat von Albatros62 Beitrag anzeigenDas schreit nach einem neuen Thread
Zitat von Albatros62 Beitrag anzeigenKann man das Gehäuse, dass du benutzt, eigentlich irgendwo kaufen? Ich kann mich dunkel erinnern, dass es aus einem 3D-Drucker stammt, ich vermute aber nicht aus deinem. Oder nimmst du es evtl. in den Makerstuff auf?
Der Plan ist das Gehäuse passend zu einem Gerät mit anzubieten, ja. Generisch ist schwierig, Man braucht ja Aussparungen für die Klemmen.
Und das STL, für die die selber Drucken möchten.
Kommentar
-
Wo könnte man den Code finden, wie du eine Applikation auf den RP runterlädst?
Das würde ich gerne in den ESP8266 einbauen..😉
Du hast angedeutet, dass du Hilfe gebrauchen könntest, in welcher Form?
(Die Frage ist auch, ob man einem Profi noch groß helfen kann)
Hast du den RP bestücken lassen oder selbst gelötet?
GrußZuletzt geändert von odysee_2002; 25.09.2021, 12:57.
Kommentar
-
Zitat von odysee_2002 Beitrag anzeigenWo könnte man den Code finden, wie du eine Applikation auf den RP runterlädst?
Das würde ich gerne in den ESP8266 einbauen..😉Das hilft dir aber für den ESP gar nichts, das ist sehr hardwarenah und ganz spezifisch für den RP2040 gemacht.
Mal ein Ausschnitt:
Code:void __no_inline_not_in_flash_func(flash_range_erase_an d_program)(uint32_t flash_offs, const uint8_t *data, size_t count) { #ifdef PICO_FLASH_SIZE_BYTES hard_assert(flash_offs + count <= PICO_FLASH_SIZE_BYTES); #endif invalid_params_if(FLASH, flash_offs & (FLASH_PAGE_SIZE - 1)); invalid_params_if(FLASH, count & (FLASH_PAGE_SIZE - 1)); void (*connect_internal_flash)(void) = (void(*)(void))myrom_func_lookup(myrom_table_code( 'I', 'F')); void (*flash_exit_xip)(void) = (void(*)(void))myrom_func_lookup(myrom_table_code( 'E', 'X')); void (*flash_range_program)(uint32_t, const uint8_t*, size_t) = (void(*)(uint32_t, const uint8_t*, size_t))myrom_func_lookup(myrom_table_code('R', 'P')); void (*flash_range_erase)(uint32_t, size_t, uint32_t, uint8_t) = (void(*)(uint32_t, size_t, uint32_t, uint8_t))myrom_func_lookup(myrom_table_code('R', 'E')); void (*flash_flush_cache)(void) = (void(*)(void))myrom_func_lookup(myrom_table_code( 'F', 'C')); assert(connect_internal_flash && flash_exit_xip && flash_range_erase && flash_range_program && flash_flush_cache); flash_init_boot2_copyout(); __mycompiler_memory_barrier(); connect_internal_flash(); flash_exit_xip(); flash_range_erase(flash_offs, count, FLASH_BLOCK_SIZE, FLASH_BLOCK_ERASE_CMD); flash_range_program(flash_offs, data, count); flash_flush_cache(); // Note this is needed to remove CSn IO force as well as cache flushing flash_enable_xip_via_boot2(); }
Ich werde irgendwann wenn der SNS-8xTH an den Start geht die FW dazu veröffentlichen, aktuell ist das noch in keiner Form zum veröffentlichen.
Zitat von odysee_2002 Beitrag anzeigenHast du den RP bestücken lassen oder selbst gelötet?
Zitat von odysee_2002 Beitrag anzeigenDu hast angedeutet, dass du Hilfe gebrauchen könntest, in welcher Form?
(Die Frage ist auch, ob man einem Profi noch groß helfen kann)
Sei es der RP2040 als gemeinsame Basis um sich auszutauschen oder noch 3 Schritt weiter und z.B. eine eigene Applikation auf Basis der KUPS Controllerplatine.
Oder z.B. zusätzliche Sensoren für den SNS-8xTH...
Ich mache mir jetzt aber nichts vor, die meisten wollen entweder nur nachbauen oder machen gleich was ganz anders - weil man sich auf ganz grundlegende Dinge nicht einigen kann. Und das ist auch ok, ist bei mir nicht anders. Ich mach das ja weils mir Spaß macht, da will ich keine großen Kompromisse eingehen.
Kommentar
-
so ganz grundsätzlich läuft der Firmware-Update über KNX TP1 nun.
Realisiert mit Kaenx.Konnekt und ExtendedMemoryWrite und thelsin/knx Stack.
Was mir noch gar nicht gefällt ist die Geschwindigkeit.
Für ein 64Byte großes Paket + Response brauche ich ca. 1s.
Die RP2040 FW ist aber schon als "blinky" ca. 64k groß, mit knx stack, etwas Applikation und Update sind es dann 128k.
Das macht dann Upload-Zeiten von 30min...
Kann natürlich für unzugänglich eingebaute Geräte trotzdem eine Option sein.
Bei mir kommt dazu, dass bei hoher Buslast nach 2min die Gira-Ruchmelder anfangen zu piepsenblödes Gira-Gelumpe.
Kommentar
-
Ing-Dom Kenn mich mit dem RP2040 nicht aus, aber was mir so spontan einfällt:
- Verify Mode deaktivieren und erst am Schluss alles über CRC oder so überprüfen
- Ist der Anfang der FW vll immer gleich? (evtl vorher per Property einstellen ob komplette FW oder erst ab nem bestimmten Offset)
- Sind viele 0x00 oder 0xFF drin, die man vll überspringen könnte?
- MemoryExtWrite ünterstüzt bis 255 Bytes, was ist bei dir die Limitierende größe?
Kommentar
-
Zitat von proggerKA Beitrag anzeigen- Verify Mode deaktivieren und erst am Schluss alles über CRC oder so überprüfen
Nachteil wenn man die CRC erst am Ende prüft: man muss von vorne beginnen.
Aktuell ist ein neues Paket (Memory-Adresse entsprechend inkrementiert) vom PC auch das Zeichen dafür, dass die letzte zurückgemeldete CRC korrekt war. Wenn nicht, wird das Paket wiederholt.
Zitat von proggerKA Beitrag anzeigen- Ist der Anfang der FW vll immer gleich? (evtl vorher per Property einstellen ob komplette FW oder erst ab nem bestimmten Offset)
Zitat von proggerKA Beitrag anzeigen- Sind viele 0x00 oder 0xFF drin, die man vll überspringen könnte?
Zitat von proggerKA Beitrag anzeigen- MemoryExtWrite ünterstüzt bis 255 Bytes, was ist bei dir die Limitierende größe?
Mit 255 fehlt also 1 bytebei 128byte musste ich feststellen dass die Wahrscheinlichkeit dass ein Ack nicht kommt oder so ansteigt. Warum, muss ich mir noch anschauen.
Leider kann ich nur auf meinen Live-Bussystem testen weil ich nur da ein IP-Interface habe.
Auf dem Testnetz hab ich ein RasPi/knxd IP Interface, aber da erkennt das Modul die ExtMemWrite-Telegramme nicht (korrekt). Im Wireshark sehen sie gut aus, ich denke also da ist was faul am knxd (oder meinem Setup).
Smurf kann der knxd long frames? Oder gibts da bekannte Fehler?Zuletzt geändert von Ing-Dom; 28.09.2021, 10:46.
Kommentar
-
Zitat von SirSydom Beitrag anzeigenDas macht dann Upload-Zeiten von 30min...
Kommentar
-
Zitat von SirSydom Beitrag anzeigenLeider musste ich feststellen das der arduino-pico core keine rx/tx buffer im ram hat, nur die 32 byte in hardware. Etwas wenig, vor allem wenn man an extended frames denkt.
Kommentar
-
nein, in der Realität ist das überhaupt kein Problem.
Kurze Rechnung: KNX braucht ca. 1,35ms pro Byte.
Mit 32Byte buffer reicht es (theoretisch) den buffer nur ca. alle 40ms zu leeren.
Das ist reichlich Zeit und für ACKs innerhalb der Spec muss man eh viel schneller sein.
Zitat von STSC Beitrag anzeigenAnsonsten scheint der RP2040 gut für KNX geeignet zu sein.
- Likes 1
Kommentar
-
Mittlerweile ist auch der Adafruit ItsyBitsy RP2040 ganz gut in DE erhältich:
https://eckstein-shop.de/Adafruit-It...EaAu40EALw_wcB
Damit könnte man alte Design die für den ItsyBitsy M0 ausgelegt waren realtiv einfach auf den RP2040 heben, ich denke da z.B. an meine REG-Dimmer
Und hier nochmal ein Link zu einem anderen Faden wo es auch um den RP2040 ging:
https://knx-user-forum.de/forum/%C3%...pi-pico-rp2040
Kommentar
-
Zitat von jod314 Beitrag anzeigenIch bin gerade auf der Suche nach einer passenden Plattform für Unterputz-KNX-Sensoren und da passen deine Vorarbeiten wirklich super. Was spricht eigentlich dagegen,das Modul komplett ohne Gehäuse zu benutzen?
Mir schwebt ein Universalsensor mit Umgebungssensoren (Temperatur, Luftgüte), einem Lichtsensor (Menge und Farbe) sowie einem Radar/Kamera-Präsenzsensor vor. Nicht unbedingt alles auf einmal aber zumindest wäre die Option dafür wäre schön. Meinst du das gibt irgendwelche Probleme, z.B. Erwärmung, EMV. Ist klar irgend was ist immer, aber hast du da schon negative Erfahrungen gemacht?
Daher habe ich einen 3D-Drucker (kost ja nix mehr) und hab mich auch in CATIA reingefuchst..
Zum Rest kann ich wenig sagen, aber schau dir doch mal das Sensormodul von Masifi an, das klingt sehr nach dem was du machen willst.
Kommentar
-
Ing-Dom
Hallo zusammen,
ich bin wirklich begeistert, welche Fortschritte das OpenKNX Projekt gemacht hat! Nochmasl meinen Respekt an allen Mitwirkenden.
ich habe mein erstes Board mit einem RP2040 bestellt und versuche es zum laufen zu kriegen (noch unter Arduino). Ich verwende den Thesinbg KNX Stack und die earlephilhower Bibliothek. Ich bin soweit, dass ich gültige Frames empfangen und Acknowledgen kann. Was aber nicht funktioniert, ist das Programmieren der Physikalischen Adresse. Die Programmierl Led geht an und über print erhalte ich die Meldung das der Prog Mode läuft. Aber ETS sendet ewig ein Broadcast read
Hat jemand eine Idee voran das liegen könnte?
Kommentar
Kommentar