Ankündigung

Einklappen
Keine Ankündigung bisher.

Alternative Firmware für das Raum-Sensormodul von Masifi

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hi Björn,

    mehr als die Tipps von Masifi kann ich auch nicht geben. Außer vielleicht, dass Windows-Rechner beim anstecken des USB-Kabels (wenn KNX schon dran ist) einen Ton abspielen. Wenn das Fehlt, dann wurde USB nicht erkannt und VSCode kann dann auch nichts machen.

    Sobald das Aufspielen der Firmware grundsätzlich klappt: Beachte, dass Du auch die Änderung aus #158 für ein V3.1-Board brauchst.

    Gruß, Waldemar

    OpenKNX www.openknx.de

    Kommentar


      Ah, genau! 2 max Reset drücken, dann sollte die Prog-LED dauernd Auf-und-Ab-Dimmen. In dem Modus gibt es einen anderen Bootloader, der auch einen anderen COM-Port nutzt. Das könnte klappen.

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        Zitat von Masifi Beitrag anzeigen
        beatboxking: Falls du Probleme mit den USB hast, dann den USB Stecker aus und wieder einstecken. War es zufällig die Nr. 82?
        Was meinst Du mit Nr. 82?

        Zum Prüfen ob die USB Verbindung passt nutze ich immer die Arduino IDE, hier muss das Modul mit dem Port zu sehen sein. Wenn es dort nicht zu sehen ist, dann brauchst du es mit dem VSCode erst gar nicht versuchen.
        Das werd ich gleich morgen früh probieren.

        Gründe können sein:
        • kein PWR da nicht an KNX angeschlossen
        • USB Stecker nicht richtig gesteckt
        • altes oder schlechtes USB-Kabel
        • OK Treiber Probleme dann natürlich auch
        Bis auf die Treibergeschichte kann ich alles ausschließen...

        Ich werd das dann morgen alles nochmal Schritt für Schritt durchchecken, Fehler sitzt vermutlich vor dem Rechner....

        Danke für eure schnelle Unterstützung!

        Viele Grüße
        Björn

        Kommentar


          Juhu, es hat funktioniert ;-)

          Nachdem es mit dem Bootloader zunächst wieder nicht funktioniert hatte, hab ich mit Arduino IDE den Port gecheckt - dieser war leider ausgegraut. Hab dann das Modul nochmal resettet und es wurde mir zunächst wieder kein Port angezeigt. Kurz bevor ich endgültig Feierabend machen wollte, kam dann plötzlich der kurze Jingle, dass ein USB Gerät erkannt wurde und mir wurde im Arduino IDE prompt der Port COM4 angezeigt. Sofort VS Code angeschmissen und den Upload gestartet --> SUCCESS! Hurra, vielen Dank nochmal für die tolle Unterstützung. Jetzt kann ich beruhigt ins Bett gehen und mich morgen an die ETS Parametrierung machen :-)

          Gute Nacht!
          Björn

          Kommentar


            Hi beatboxking,

            schön dass es geklappt hat. Wenn Du rausfindest, wie man zuverlässig auf einem Apple die USB-Funktionalität herstellt, kannst Du das vielleicht hier posten. Ich habe keine Apple-Hardware und kann so was nicht testen.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              Hi Waldemar,

              wirklich nachvollziehen kann ich das bisher auch nicht. Aktuell hab ich das Problem, dass ich in der ETS die Applikation nicht auf den Sensor bekomme. Die Erst-Programmierung wurde mit einem Timeout beendet, kurz bevor der grüne Balken komplett war. Jetzt bekomm ich immer die Fehlermeldung "Interner Gerätefehler"...Wenn ich das gelöst hab und dann noch Muse hab, probier ich den Firmware Upload auf den Modulen mal mit einem nativen Mac OS und poste das Ergebnis....

              Viele Grüße
              Björn

              Kommentar


                Hi Björn,

                also manchmal - beim entwickeln - passiert es schon mal, dass sich das Modul aufhängt und dann gar nichts mehr geht, eben auch nicht mehr die Applikation hochladen. In solchen Fällen flash ich nochmal die Firmware über den alternativen Bootloader (2x reset drücken) und dann geht alles wieder.

                Ich hab zwar nicht erwartet, dass das mit der fertigen Firmware passiert, aber es wäre einen Versuch wert, ob das für Abhilfe sorgt.

                Hier nochmal die groben Schritte, so klappt es zumindest unter Windows aus einem "Totalhänger" heraus (diese Art vom Hänger ist daran zu erkennen, dass beim drücken der Prog-Taste die rote LED nicht mehr aufleuchtet):
                • 2x reset (2.nd bootloader)
                • Firmware flashen über USB
                • Mit der ETS nur die PA programmieren (nicht PA+Applikation)
                • Dann Applikation programmieren
                Wie gesagt, ich dachte bisher, dass das nur beim Entwickeln passiert, da mach ich ja manchmal grobe Schnitzer, da kann das schon passieren... Aber versuch einfach mal.

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  Hi,

                  ich habe soeben noch ein mini-update gemacht, damit auch das neue Board v3.1 unterstützt wird. Das entsprechende dev-setup-Dokument ist auch angepasst. Man muss jetzt in der platformio.ini für v3.1 nichts mehr ändern, aber für v3, v2 bzw. v1.

                  An der Funktionalität hat sich aber nichts geändert.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    Kurzes Update: Nachdem ich die Firmware wie von Dir beschrieben nochmal auf das Modul gespielt habe, konnte ich die Applikation ohne Probleme laden. Bei allen anderen Modulen hat es dann auf Anhieb geklappt. Danke nochmal!

                    Gruß - Björn

                    Kommentar


                      Hi Björn, freut mich, dass es funktioniert hat. Ich wünsche natürlich keinem Probleme!

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        Cool! Could this firmware also work on Eugenius' Multi Interface? https://knx-user-forum.de/forum/proj...%B2c-spi-1wire
                        I tried to build it, but got some errors:
                        Code:
                        > Executing task in folder knx-sensor: C:\Users\Philippe\.platformio\penv\Scripts\platfor mio.exe run <
                        
                        Processing build (platform: atmelsam; board: zeroUSB; framework: arduino)
                        ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                        
                        Verbose mode can be enabled via `-v, --verbose` option
                        CONFIGURATION: https://docs.platformio.org/page/boards/atmelsam/zeroUSB.html
                        PLATFORM: Atmel SAM 4.5.1 > Arduino Zero (USB Native Port)
                        HARDWARE: SAMD21G18A 48MHz, 32KB RAM, 256KB Flash
                        DEBUG: Current (jlink) External (atmel-ice, blackmagic, jlink)
                        PACKAGES:
                        - framework-arduino-samd 1.8.6
                        - framework-cmsis 1.40500.0 (4.5.0)
                        - framework-cmsis-atmel 1.2.0
                        - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
                        LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
                        LDF Modes: Finder ~ deep+, Compatibility ~ soft
                        Found 72 compatible libraries
                        Scanning dependencies...
                        Dependency Graph
                        |-- <SPI> 1.0
                        |-- <Wire> 1.0
                        |-- <knx-common> 0.1.0
                        | |-- <Wire> 1.0
                        | |-- <Adafruit BME280 Library> 2.0.2
                        | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | |-- <SPI> 1.0
                        | | |-- <Wire> 1.0
                        | |-- <Adafruit Unified Sensor> 1.1.4
                        | |-- <SPI> 1.0
                        | |-- <ClosedCube HDC1080> 1.3.2
                        | | |-- <Wire> 1.0
                        | |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | | |-- <Wire> 1.0
                        |-- <Adafruit BME280 Library> 2.0.2
                        | |-- <Adafruit Unified Sensor> 1.1.4
                        | |-- <SPI> 1.0
                        | |-- <Wire> 1.0
                        |-- <Adafruit Unified Sensor> 1.1.4
                        |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | |-- <Wire> 1.0
                        |-- <knx-sensor> 0.6.0
                        | |-- <knx-common> 0.1.0
                        | | |-- <Wire> 1.0
                        | | |-- <Adafruit BME280 Library> 2.0.2
                        | | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | | |-- <SPI> 1.0
                        | | | |-- <Wire> 1.0
                        | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | |-- <SPI> 1.0
                        | | |-- <ClosedCube HDC1080> 1.3.2
                        | | | |-- <Wire> 1.0
                        | | |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | | | |-- <Wire> 1.0
                        | |-- <Adafruit BME280 Library> 2.0.2
                        | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | |-- <SPI> 1.0
                        | | |-- <Wire> 1.0
                        | |-- <Adafruit Unified Sensor> 1.1.4
                        | |-- <SPI> 1.0
                        | |-- <Wire> 1.0
                        | |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | | |-- <Wire> 1.0
                        | |-- <knx> 1.1.0
                        | |-- <knx-logic> 1.0.0
                        | | |-- <knx> 1.1.0
                        | | |-- <Wire> 1.0
                        | | |-- <knx-common> 0.1.0
                        | | | |-- <Wire> 1.0
                        | | | |-- <Adafruit BME280 Library> 2.0.2
                        | | | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | | | |-- <SPI> 1.0
                        | | | | |-- <Wire> 1.0
                        | | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | | |-- <SPI> 1.0
                        | | | |-- <ClosedCube HDC1080> 1.3.2
                        | | | | |-- <Wire> 1.0
                        | | | |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | | | | |-- <Wire> 1.0
                        |-- <knx> 1.1.0
                        |-- <knx-logic> 1.0.0
                        | |-- <knx> 1.1.0
                        | |-- <Wire> 1.0
                        | |-- <knx-common> 0.1.0
                        | | |-- <Wire> 1.0
                        | | |-- <Adafruit BME280 Library> 2.0.2
                        | | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | | |-- <SPI> 1.0
                        | | | |-- <Wire> 1.0
                        | | |-- <Adafruit Unified Sensor> 1.1.4
                        | | |-- <SPI> 1.0
                        | | |-- <ClosedCube HDC1080> 1.3.2
                        | | | |-- <Wire> 1.0
                        | | |-- <SparkFun SCD30 Arduino Library> 1.0.8
                        | | | |-- <Wire> 1.0
                        Building in release mode
                        Compiling .pio\build\build\src\main.cpp.o
                        Archiving .pio\build\build\libfdd\libSPI.a
                        Archiving .pio\build\build\libcc3\libWire.a
                        src\main.cpp: In function 'void setup()':
                        src\main.cpp:11:13: error: 'PROG_LED_PIN' was not declared in this scope
                        pinMode(PROG_LED_PIN, OUTPUT);
                        ^~~~~~~~~~~~
                        src\main.cpp:11:13: note: suggested alternative: 'PIN_LED_TXL'
                        pinMode(PROG_LED_PIN, OUTPUT);
                        ^~~~~~~~~~~~
                        PIN_LED_TXL
                        src\main.cpp:29:24: error: 'PROG_LED_PIN_ACTIVE_ON' was not declared in this scope
                        knx.ledPinActiveOn(PROG_LED_PIN_ACTIVE_ON);
                        ^~~~~~~~~~~~~~~~~~~~~~
                        src\main.cpp:29:24: note: suggested alternative: 'REG_DMAC_ACTIVE'
                        knx.ledPinActiveOn(PROG_LED_PIN_ACTIVE_ON);
                        ^~~~~~~~~~~~~~~~~~~~~~
                        REG_DMAC_ACTIVE
                        src\main.cpp:31:19: error: 'PROG_BUTTON_PIN' was not declared in this scope
                        knx.buttonPin(PROG_BUTTON_PIN);
                        ^~~~~~~~~~~~~~~
                        src\main.cpp:31:19: note: suggested alternative: 'PIO_NOT_A_PIN'
                        knx.buttonPin(PROG_BUTTON_PIN);
                        ^~~~~~~~~~~~~~~
                        PIO_NOT_A_PIN
                        src\main.cpp:33:30: error: 'PROG_BUTTON_PIN_INTERRUPT_ON' was not declared in this scope
                        knx.buttonPinInterruptOn(PROG_BUTTON_PIN_INTERRUPT _ON);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        src\main.cpp:33:30: note: suggested alternative: 'NOT_AN_INTERRUPT'
                        knx.buttonPinInterruptOn(PROG_BUTTON_PIN_INTERRUPT _ON);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        NOT_AN_INTERRUPT
                        src\main.cpp:37:18: error: 'SAVE_INTERRUPT_PIN' was not declared in this scope
                        appSetup(SAVE_INTERRUPT_PIN);
                        ^~~~~~~~~~~~~~~~~~
                        src\main.cpp:37:18: note: suggested alternative: 'AC_INTENSET_WIN'
                        Archiving .pio\build\build\lib9bf\libAdafruit_Unified_Sensor .a
                        appSetup(SAVE_INTERRUPT_PIN);
                        ^~~~~~~~~~~~~~~~~~
                        AC_INTENSET_WIN
                        Archiving .pio\build\build\lib739\libAdafruit_BME280_Library .a
                        Archiving .pio\build\build\lib12c\libClosedCube HDC1080.a
                        Archiving .pio\build\build\lib6ce\libSparkFun SCD30 Arduino Library.a
                        Compiling .pio\build\build\lib820\knx-common\EepromManager.cpp.o
                        *** [.pio\build\build\src\main.cpp.o] Error 1
                        In file included from C:\Users\Philippe\.platformio\packages\framework-cmsis-atmel\CMSIS\Device\ATMEL/samd21/include/samd21.h:69:0,
                        from C:\Users\Philippe\.platformio\packages\framework-cmsis-atmel\CMSIS\Device\ATMEL/samd.h:105,
                        from C:\Users\Philippe\.platformio\packages\framework-cmsis-atmel\CMSIS\Device\ATMEL/sam.h:540,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\cores\arduino/WVariant.h:22,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\variants\arduino_zero/variant.h:39,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\libraries\Wire/Wire.h:24,
                        from C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp:1:
                        C:\Users\Philippe\.platformio\packages\framework-cmsis-atmel\CMSIS\Device\ATMEL/samd21/include/samd21g18a.h:226:0: warning: "LITTLE_ENDIAN" redefined
                        #define LITTLE_ENDIAN 1
                        
                        In file included from c:\users\philippe\.platformio\packages\toolchain-gccarmnoneeabi@1.70201.0\arm-none-eabi\include\sys\types.h:67:0,
                        from c:\users\philippe\.platformio\packages\toolchain-gccarmnoneeabi@1.70201.0\arm-none-eabi\include\stdio.h:61,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\cores\arduino/Print.h:23,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\cores\arduino/Stream.h:26,
                        from C:\Users\Philippe\.platformio\packages\framework-arduino-samd\libraries\Wire/Wire.h:23,
                        from C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp:1:
                        c:\users\philippe\.platformio\packages\toolchain-gccarmnoneeabi@1.70201.0\arm-none-eabi\include\machine\endian.h:17:0: note: this is the location of the previous definition
                        #define LITTLE_ENDIAN _LITTLE_ENDIAN
                        
                        C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp: In member function 'void EepromManager::beginPage(uint16_t)':
                        C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp:22:32: error: 'I2C_EEPROM_DEVICE_ADDRESSS' was not declared in this scope
                        Wire.beginTransmission(I2C_EEPROM_DEVICE_ADDRESSS) ;
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
                        C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp: In member function 'void EepromManager::prepareRead(uint16_t, uint8_t)':
                        C:\Users\Philippe\Documents\PlatformIO\Projects\kn x-common\src\EepromManager.cpp:47:28: error: 'I2C_EEPROM_DEVICE_ADDRESSS' was not declared in this scope
                        Wire.beginTransmission(I2C_EEPROM_DEVICE_ADDRESSS) ;
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
                        *** [.pio\build\build\lib820\knx-common\EepromManager.cpp.o] Error 1
                        ================================================== ================================= [FAILED] Took 5.16 seconds ================================================== =================================
                        
                        Environment Status Duration
                        ------------- -------- ------------
                        build FAILED 00:00:05.156
                        debug IGNORED
                        uploadUSB IGNORED
                        uploadJLINK IGNORED
                        uploadATMEL IGNORED
                        ================================================== ============================ 1 failed, 0 succeeded in 00:00:05.156 ================================================== ============================
                        The terminal process "C:\Users\Philippe\.platformio\penv\Scripts\platfo rmio.exe 'run'" terminated with exit code: 1.
                        
                        Terminal will be reused by tasks, press any key to close it.

                        Kommentar


                          Hi fluppie,

                          I have no idea, if this works with Eugenius board - and the other question is, what "work" means: I would expect, that the KNX-Stack works, also the logicmodule part. But the sensor part, accessing external sensors, might work or not, depends on the hardware itself. To be honest, I have no idea, if this would work...

                          The errors above: It seems, that the include path is not correct. I can't tell you, why this happens. Last time I heard of this problem, it helped to uninstall and reinstall VSCode.

                          Regards,
                          Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            Hey Mumpf,

                            Klasse Arbeit deine Firmware.

                            Habe diese jetzt mehrere Monate mit Masifis Hardware in betrieb und läuft.

                            Jedoch habe ich das Problem dass mit dem BME680 die Luftqualität durchgehend bei 0 steht.

                            Feuchtigkeit, Temperatur, Luftdruck, VOC, CO2 werte kommen an. Behaglichkeit und Taupunkt werden berechnet.
                            Adresse Name Zentralfunktion Datentyp Länge Anzahl der Verknüpfungen Letzter Wert
                            6/6/1 In Betrieb Nein Boolesch 1 bit $01 | Wahr
                            6/6/4 Sensorwerte anfordern Nein Bestätigung 1 bit
                            6/6/5 Sensorfehler Nein Pulse 2 bytes 00 00 | 0 pulses
                            6/6/6 Diagnose Nein Zeichen (ISO 8859-1) 14 bytes 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                            6/6/7 Temperatur Nein Temperatur (°C) 2 bytes 07 67 | 18,95 °C
                            6/6/8 Luftfeuchte Nein Feuchtigkeit (%) 2 bytes 14 10 | 41,6 %
                            6/6/9 Luftdruck Nein Druck (Pa) 2 bytes 36 1D | 1001,6 Pa
                            6/6/10 VOC Nein 2-Byte Gleitkommawert 2 bytes 1F 26 | 146,4
                            6/6/11 CO2-VOC Nein Teile/Million (ppm) 2 bytes 36 12 | 994,56 ppm
                            6/6/12 Taupunkt Nein Temperatur (°C) 2 bytes 02 30 | 5,6 °C
                            6/6/13 Behaglichkeit Nein Dezimalfaktor (0..255) 1 byte $02 | 2
                            6/6/14 Luftqualität Nein Dezimalfaktor (0..255) 1 byte $00 | 0
                            6/6/15 Kalibrierungsfortschritt Nein Prozent (0..100%) 1 byte $FF | 100 %


                            Woran könnte das liegen?

                            Kommentar


                              Hi,

                              Zitat von mpl1337 Beitrag anzeigen
                              Woran könnte das liegen?
                              wahrscheinlich an mir . Ich muss mal schauen, wahrscheinlich hab ich da noch einen Bug drin. Danke auf jeden Fall für die Rückmeldung. Ich hab das zwar damals eingebaut, aber ich kann nicht behaupten, dass ich jetzt der wichtigste Wert für mich war... Ich schau mal am Wochenende uns sag Dir Bescheid,

                              Freut mich sehr, dass das auch bei Dir stabil läuft, bei mir inzwischen an meinem Langzeittest-Sensormodul seit über einem Jahr!

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                Hallo Waldemar,

                                ich bekomme genau den selben Fehler wie fluppie . Habe Visual Studio schon delinstalliert alles gelöscht und neu installiert, habe es auch auf einem ganz frisch installierten PC versucht selber Fehler. Hast du noch eine Idee?

                                src\main.cpp:29:24: note: suggested alternative: 'REG_DMAC_ACTIVE'
                                knx.ledPinActiveOn(PROG_LED_PIN_ACTIVE_ON);
                                ^~~~~~~~~~~~~~~~~~~~~~
                                REG_DMAC_ACTIVE
                                src\main.cpp:31:19: error: 'PROG_BUTTON_PIN' was not declared in this scope
                                knx.buttonPin(PROG_BUTTON_PIN);
                                ^~~~~~~~~~~~~~~
                                src\main.cpp:31:19: note: suggested alternative: 'PIO_NOT_A_PIN'
                                knx.buttonPin(PROG_BUTTON_PIN);
                                ^~~~~~~~~~~~~~~
                                PIO_NOT_A_PIN
                                src\main.cpp:33:30: error: 'PROG_BUTTON_PIN_INTERRUPT_ON' was not declared in this scope
                                knx.buttonPinInterruptOn(PROG_BUTTON_PIN_INTERRUPT _ON);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

                                Gruß
                                RObert

                                Kommentar

                                Lädt...
                                X