Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

Begonnen von trilu, 23 Februar 2014, 12:23:22

Vorheriges Thema - Nächstes Thema

MarcelK


Zitat von: vbs am 04 März 2015, 16:50:00
Ich hab das Gefühl, dass man per OTA nur updaten kann, weil das Gerät schon eine gültige Seriennummer haben muss. Stimmt das so?

Nein, die Seriennummer steht bereits im Boot-Loader und die Software holt sie sich dann von da.

Gruss Marcel

MarcelK


Zitat von: Dirk am 01 März 2015, 21:45:25Falls jemand einmal über den Quellcode schauen möchte würde ich mich auch freuen.
Ich hab mir das soweit zeitlich möglich war mal angeschaut und hab auf den ersten Blick keine Probleme gefunden (ausser dass StartTime nicht initialisiert wird, aber das sollte ja IIRC implizit von der libc auf 0 gesetzt werden). Bin durch die Logik des Power-Management Code aber auch noch nicht komplett durchgestiegen.

Gibt es nen Grund wieso Du jetzt doch noch einen Hot-Fix veröffentlichst und nicht gleich auf NewAskSin umgeschwenkt bist? Ist die Umstellung so aufwendig?

Grüße Marcel

Dirk

Hi Marcel,

Zitat von: MarcelK am 04 März 2015, 18:29:14
Gibt es nen Grund wieso Du jetzt doch noch einen Hot-Fix veröffentlichst und nicht gleich auf NewAskSin umgeschwenkt bist?
Ja, weil die Umstellung doch etwas Aufwendiger wie gedacht ist und noch nicht alles fertig ist.
Ich werde hier Trillu bei der weiteren Entwicklung so weit wie es geht unterstützen. Da ich da aber noch seine Unterstützung brauche möchte ich da keinen unnötigen "Druck" aufbauen.
Daher geht es erst mal mit der "alten" Lib weiter.

Gruß
Dirk

maxritti

Zitat von: Dirk am 04 März 2015, 18:00:02
Die Größe stimmt nicht.
Das hier:
https://github.com/kc-GitHub/Wettersensor/raw/v0.14_beta/Firmware-Release/HB-UW-Sen-THPL_update_V0_14_001_150301.hex
ist 68.124 kBytes groß.

Daher auch die Fehlermeldung "No valid record found"
schau mal in dein Hexfile rein. Da ist HTML-Code drinn.

Gruß
Dirk

Tausend Dank, da hatte ich wohl etwas mit den Links durcheinander geworfen.

Nun läuft der Innensensor schon mal unter 0.14.  :D

maxritti

Wie schaut denn die Belegung der Kontakte bei dem Aussensensor aus?
Wenn ich den so lege wie auf dem Bild ist das dann auch die untere Leiste beginnend von links?

Dirk

Ja.
Bei beiden ist das Funkmodul immer rechts. Beim Innensensor halt auf der Platinenunterseite.

maxritti

Prima. Dann sind beide Sensoren nun up-to-date.

Noch mal vielen Dank für Deine klasse Arbeit.

Poquito

Hallo Dirk,

vielen Dank für den Link.
Zitat von: Dirk am 04 März 2015, 18:18:47
https://github.com/kc-GitHub/AskSin/archive/c7c2910944212bea6dd199e9c3ace6c02ce29347.zip
Damit lässt sich es sich fehlerfrei compilieren und ich kann endlich meine Hardware testen.

Viele Grüße

Helmut
Raspberry Pi Typ B, 512 MB; FHEM 6.0; CUL V3 868MHz HM; & div. Homematic Sensoren & Aktoren

vbs

Ich versuche weiterhin den OTA-Bootloader auf meinen Sensor zu flashen (mit mäßigem Erfolg):

Zitat von: Dirk am 04 März 2015, 17:15:17
Im Git ist auch ein kleines flashscript. Aktuell leider nur für Windows.
https://github.com/kc-GitHub/Asksin_OTA_Bootloader/tree/master/Tools/Flash-Tool-Windows

Bullshit hatte aber auch eins für perl gebaut. Das findest du hier:
http://www.lxccu.com/hb-raspberry-bootloader-update
Ok, danke. Ich hab jetzt kapiert, dass man nicht einfach den OTA-Bootloader als Hex-File per AVRStudio flashen kann, da erst noch Seriennummer und co. eingetragen werden muss. Ich hab das Ganze nun sowohl mit dem OTA-Flash-Tool für Windows und auch mit der Perl-Variante mit meinem AVRDragon per ISP zum Laufen bekommen. Es sieht nun für mich aus, als würde der Bootloader korrekt geflasht geflasht werden. Jedoch reagiert der Sensor nahezu überhaupt nicht. Nach meinem Verständnis, sollte ja die LED blinken, wenn ich bei gedrücktem Taster die Batterien einlege. Aber da tut sich gar nix.
Aus dem seriellen Port kommen zwar ein paar Zeichen raus, jedoch egal welche COM-Settings ich wähle (9600,57600,115200, Flusskontrolle aus/XON), es kommt nur Kauderwelsch.

So langsam aber sicher, nähere ich mich der mittelschweren Verzweiflung. :(

So habe ich geflasht, sieht da jemand ein Problem?
E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>flash.cmd dragon_isp Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex F1:01 86:C4:0D UWS5426622


E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>bin\sed -b -e "s/\(\x12\x34\)\(HB0Default\)\(\xAB\xCD\xEF\)/\xF1\x01UWS5426622\x86\xC4\x0D/" Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin  1>Bootloader-AskSin-OTA-HB_UW_Sen_THPL.tmp
12:34 HB0Default AB:CD:EF
Start flashing device with HM-TYPE: F1:01, HM-ID: 86:C4:0D and serial number: UWS5426622

****************************************
* Set fusebits with bitClock 187,5 KHz *
****************************************

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.18s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: erasing chip
avrdude.exe: reading input file "0xE2"
avrdude.exe: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0xE2:
avrdude.exe: load data lfuse data from input file 0xE2:
avrdude.exe: input file 0xE2 contains 1 bytes
avrdude.exe: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.06s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lfuse verified
avrdude.exe: reading input file "0xD0"
avrdude.exe: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of hfuse written
avrdude.exe: verifying hfuse memory against 0xD0:
avrdude.exe: load data hfuse data from input file 0xD0:
avrdude.exe: input file 0xD0 contains 1 bytes
avrdude.exe: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.06s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of hfuse verified
avrdude.exe: reading input file "0x06"
avrdude.exe: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of efuse written
avrdude.exe: verifying efuse memory against 0x06:
avrdude.exe: load data efuse data from input file 0x06:
avrdude.exe: input file 0x06 contains 1 bytes
avrdude.exe: reading on-chip efuse data:

Reading | ################################################## | 100% 0.06s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of efuse verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


*************************************************************************
* Write bootloader, application and set lock bits with bitClock 1,5 MHz *
*************************************************************************

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.18s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin"
avrdude.exe: writing flash (4096 bytes):

Writing | ################################################## | 100% 3.07s

avrdude.exe: 4096 bytes of flash written
avrdude.exe: verifying flash memory against Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin:
avrdude.exe: load data flash data from input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin:
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin contains 4096 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 2.19s

avrdude.exe: verifying ...
avrdude.exe: 4096 bytes of flash verified
avrdude.exe: reading input file "0x3F"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.06s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0x3F:
avrdude.exe: load data lock data from input file 0x3F:
avrdude.exe: input file 0x3F contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.06s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.



E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>


Dirk

Zitat von: vbs am 05 März 2015, 00:50:38
Ich versuche weiterhin den OTA-Bootloader auf meinen Sensor zu flashen (mit mäßigem Erfolg):
Ok, danke. Ich hab jetzt kapiert, dass man nicht einfach den OTA-Bootloader als Hex-File per AVRStudio flashen kann, da erst noch Seriennummer und co. eingetragen werden muss.
Du kannst das schon machen. Dann musst du aber im Bootloader deine Seriennummer eintragen und neu kompilieren.
Schau da mal nach HM_SERIAL und HM_ID in /devices/HB-UW-Sen-THPL.h

ZitatAus dem seriellen Port kommen zwar ein paar Zeichen raus, jedoch egal welche COM-Settings ich wähle (9600,57600,115200, Flusskontrolle aus/XON), es kommt nur Kauderwelsch.
Die Comport-Einstellungen müssen so aussehen: Baudrate: 57600, Databits: 8, Parity: none, Stopbits: 1

ZitatSo habe ich geflasht, sieht da jemand ein Problem?
Das sieht erst einmal ok aus. Nur dass diese Zeilen hier kommen wundert mich:
E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>bin\sed -b -e "s/\(\x12\x34\)\(HB0Default\)\(\xAB\xCD\xEF\)/\xF1\x01UWS5426622\x86\xC4\x0D/" Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin  1>Bootloader-AskSin-OTA-HB_UW_Sen_THPL.tmp
12:34 HB0Default AB:CD:EF

Das würde aber ggf. nur die Manipulation der Seriennummer und HM-ID betreffen.
Starten sollte der Bootloader aber trotzdem.

Blinkt der Sensor ohne gedrückten Taster?
Hier sollte er dann wenigstens die Bootloaderversion zeigen: 7mal kurzes Blinken

Gruß
Dirk

vbs

Zitat von: Dirk am 05 März 2015, 12:03:07
Blinkt der Sensor ohne gedrückten Taster?
Hier sollte er dann wenigstens die Bootloaderversion zeigen: 7mal kurzes Blinken
Nee, also ob mit oder ohne Taster: da blinkt nix. Ich hatte auch schon genau die von dir beschriebenen COM-Settings benutzt, aber wirklich nur Kauderwelsch :(

Wenn ich jedoch per AVRStudio das unmodifizierte Hex-File flashe, dann blinkt er brav und ich kann auch auf dem COM-Port diese Ausgaben sehen:

AskSin OTA Bootloader V0.7.0
TX bootloader sequence
Wait for CB msg
Timeout
CRC fail, Reboot


Scheint so, als würde bei dem Flashen per avrdude irgendwas schief gehen? Oder läuft vielleicht sed Amok und verändert irgendwas in dem Bin-File, wo es nichts ändern sollte? Ich werde mal die sed-Aufrufe auskommentieren und gucken, was dann passiert...

vbs

Nee, also auch wenn ich sie sed-Aufrufe weglasse (bzw. durch ein simples "copy %fileBasename%.bin %fileBasename%.tmp" ersetze) tut sich einfach gar nichts nach dem Flashen. Jedoch habe ich gemerkt, dass irgendwas dauerhaft ganz leise fiept, wenn ich die Batterien einsetze.

Dirk

Zitat von: vbs am 05 März 2015, 12:16:34
Scheint so, als würde bei dem Flashen per avrdude irgendwas schief gehen? Oder läuft vielleicht sed Amok und verändert irgendwas in dem Bin-File, wo es nichts ändern sollte? Ich werde mal die sed-Aufrufe auskommentieren und gucken, was dann passiert...
So sieht es aus.
Ich schaue mir heute Abend das Script noch mal an. nicht dass sich hier ein Fehler eingeschlichen hat.

Zitat von: vbs am 05 März 2015, 12:20:38
Jedoch habe ich gemerkt, dass irgendwas dauerhaft ganz leise fiept, wenn ich die Batterien einsetze.
Das ist die Spule vom Schaltregler die das immer mal macht.

Gruß
Dirk

vbs

Ich hab jetzt etwas rausfinden können: Und zwar scheint bei mir die hex2bin-Konvertierung das Problem zu sein.

Wenn ich das "unbehandelte" HEX-File so mit avrdude flashe, dann lebt der Bootloader hinterher:

E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>bin\avrdude.exe -patmega328p -cdragon_isp -Pusb -Uflash:w:Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex -B10

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.17s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex"
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex auto detected as Intel Hex
avrdude.exe: writing flash (32768 bytes):

Writing | ################################################## | 100% 3.90s

avrdude.exe: 32768 bytes of flash written
avrdude.exe: verifying flash memory against Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex:
avrdude.exe: load data flash data from input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex:
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex auto detected as Intel Hex
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex contains 32768 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 22.94s

avrdude.exe: verifying ...
avrdude.exe: 32768 bytes of flash verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


Wenn ich jedoch das HEX-File nach BIN konvertiere:

bin\hex2bin.exe -c Bootloader-AskSin-OTA-HB_UW_Sen_THPL.hex


Und das dann flashe, dann fiept er nur:

E:\Users\devkid\Projects\Asksin_OTA_Bootloader\Tools\Flash-Tool-Windows>bin\avrdude.exe -patmega328p -cdragon_isp -Pusb -Uflash:w:Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin -B10

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.17s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin"
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin auto detected as raw binary
avrdude.exe: writing flash (4096 bytes):

Writing | ################################################## | 100% 3.65s

avrdude.exe: 4096 bytes of flash written
avrdude.exe: verifying flash memory against Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin:
avrdude.exe: load data flash data from input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin:
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin auto detected as raw binary
avrdude.exe: input file Bootloader-AskSin-OTA-HB_UW_Sen_THPL.bin contains 4096 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 2.92s

avrdude.exe: verifying ...
avrdude.exe: 4096 bytes of flash verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done.  Thank you.


Sagt das jemandem etwas?

Akwak

#1544
Zitat von: Dirk am 04 März 2015, 13:32:30
Gut, dann muss ich am WE mal schauen woran das liegen kann.

Gruß
Dirk

Das kann ich Dir ersparen ;-) Ich habs gefunden. Im XML des Addons fehlt die Angabe für den Ausßensensor, das er updateable ist.


<?xml version="1.0" encoding="iso-8859-1"?>
<device version="2" rx_modes="CONFIG,WAKEUP,LAZY_CONFIG" cyclic_timeout="600">
  <supported_types>
    <type name="HB-UW-Sen-THPL-I" id="HB-UW-Sen-THPL-I" updatable="true">
      <parameter index="9.0" size="1.0" cond_op="GE" const_value="12" />
      <parameter index="10.0" size="2.0" const_value="0xF101" />
    </type>
    <type name="HB-UW-Sen-THPL-O" id="HB-UW-Sen-THPL-O" updatable="true">  <!---^hier fehlt in dem Addon das "updatable="true" -->
      <parameter index="9.0" size="1.0" cond_op="GE" const_value="12" />
      <parameter index="10.0" size="2.0" const_value="0xF102"></parameter>
    </type>
  </supported_types>



Nachdem ich das ergänzt habe, ließen sich auch die Außensensoren problemlos updaten.
Nun habe ich nur noch das Problem, das einer meiner Innensensoren der Meinung ist, er bräuchte neue Batterien, obwohl ich ihm ganz frische eingelegt habe.

Gruß,
Alfred