Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

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

Vorheriges Thema - Nächstes Thema

MarcelK

So, der AtMega328 ist dank meines selbstgebastelten MIF HVPP-Adapters (Maximum Insertion Force, erst wenn der Daumen weh tut ist der Kontakt gut genug zum Programmieren 8)) gerettet :D Heute kam dann schon die Lieferung an Ersatz-CPUs, von daher hätte ich mir den Aufwand sparen können, aber war eine Erfahrung wert...

Punkt zwei, das Flash-Problem. Tatsächlich ist das ein Bug im Bootloader. Die Variable expectedMsgId wird als 16-bit definiert, aber mit einem 8-bit Wert verglichen. Wenn die vorherige MsgId nun zufällig 0xFF war (was zumindest bei der Windowssoftware deterministisch immer an der selben Stelle der Fall war), dann wird nach Addition von 1 folglich 0x0100 mit 0x0000 verglichen -> Fail.
Abhilfe:

- uint16_t expectedMsgId = data[1] + 1;
+ uint8_t expectedMsgId = data[1] + 1;


Drittes Problem: Der selbstcompilierte Bootloader funktionierte zwar, die Firmware hatte danach aber nicht die gewünschte Model, Seriennummer und ID. Mein GCC ordnete die Variablen hm_Type, hm_serial und hm_id in der .addressSection Section einfach neu in die Reihenfolge hm_serial, hm_id und danach erst hm_type. Als Abhilfe habe ich jetzt einfach mal 3 getrennte Sektionen mit exakt definierter Start-Adresse verwendet.

So, war ein etwas steiniger Weg, aber konnte den Adapter nun mit der Windows-Software flashen und er sendet jetzt auch nur noch brav alle 2-3 Minuten ;D

Danke nochmal für das coole Teil und beste Grüße, Marcel

betateilchen

Zitat von: Dirk am 27 August 2014, 11:52:08
Er benutzt den Sensor an einer CCU.

Danke für die Info, so weit war ich im Thread wohl nicht zurückgegangen ;)

Zitat von: cactus-online am 27 August 2014, 12:06:27
Nur so aus Interesse: Berücksichtigt das FHEM-Modul eigentlich auch die aktuelle Temperatur bei der Berechnung ?

Ich habe schon vor längerem beide Korrekturrechnungen durchgeführt und verglichen, einmal mit und einmal ohne berücksichtigte Temperatur. Der Unterschied ist vernachlässigbar und liegt unter 1 hPa.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitat von: MarcelK am 27 August 2014, 22:26:54
Punkt zwei, das Flash-Problem. Tatsächlich ist das ein Bug im Bootloader.
IHH, Danke für's finden.
Ich checke das dann gleich mal ein.

ZitatMein GCC ordnete die Variablen hm_Type, hm_serial und hm_id in der .addressSection Section einfach neu
Ok, dann werde ich das auch noch entsprechend Ändern. Hast du hier irgendwelche Optimierungen eingeschaltet?

Was hast du da für einen Programmer bzw. Was ist das für ein Board?

Gruß
Dirk

MarcelK

Zitat von: Dirk am 27 August 2014, 22:47:22
Ok, dann werde ich das auch noch entsprechend Ändern. Hast du hier irgendwelche Optimierungen eingeschaltet?
Nein, hab einfach nur das original Makefile verwendet. Vom Standard her dürfte die Order aber auch nicht garantiert sein und gcc macht da gerne mal Dinge die man so nicht erwartet. Und vor allem von Version zu Version anders...

Zitat
Was hast du da für einen Programmer bzw. Was ist das für ein Board?

Das ist der erwähnte AVR Dragon von Atmel. Kann ISP, JTAG, HVSP, HVPP und sogar DebugWire. An Devices kann es ziemlich viel, inklusive der ATxmega und AT32 Serien, die hab ich aber noch nicht getestet. Kost in der Regel rund 65€, nur das Gehäuse muss man selbst feilen ;) Ich hab alle Pins auf nen 40er Flachband gelegt und kann dann mit alten IDE Kabeln verschiedene Adapter basteln und entsprechend anschließen. Manche löten aber auch direkt ein TexTool drauf oder ätzen sich diverse Adapterplatinen.

Grüße, Marcel

Dirk

Zitat von: MarcelK am 27 August 2014, 23:20:03
Vom Standard her dürfte die Order aber auch nicht garantiert sein
Ja, stimmt. Das sind jetzt ja einzelne Variablen. Die kann der gcc natürlich beliebig umsortieren. Ich habe das Makefile auch mit nachgezogen.
Kannst ja mal ins git schauen dass ich nix vergessen habe.

ZitatDas ist der erwähnte AVR Dragon von Atmel.
Ah, ok. Ich hatte den irgendwie anders in Erinnerung.

Gruß
Dirk

MarcelK

Zitat von: Dirk am 27 August 2014, 23:46:38
Ja, stimmt. Das sind jetzt ja einzelne Variablen. Die kann der gcc natürlich beliebig umsortieren. Ich habe das Makefile auch mit nachgezogen.
Kannst ja mal ins git schauen dass ich nix vergessen habe.

Ja, sieht gut aus, sollte passen denke ich.

Grüße, Marcel

cactus-online

Hallo,

mal eine etwas andere Frage: Ich beschäftige mich mit dem Gedanken (der Krams aus China ist leider noch nicht da, daher nur ein Gedankenspiel ...) aus dem Sensor ein Sensorthermometer zu machen, d.h. den Sensor mit einer Anzeige zu versehen. Das dürfte soweit nicht schwer sein. Allerdings wäre es perfekt, neben der Innentemperatur, auch die Aussentemperatur anzuzeigen.

Vielleicht ist das ja eine ganz blöde Frage, aber ich bin ja neu in dem Thema - es mag mir vielleicht verziehen sein. Könnte man die Außentemperatur am Innensensorthermometer irgendwie bekommen, von der CCU oder vom Außensensor selbst ?

lg.

TF

Dirk

Zitat von: cactus-online am 28 August 2014, 08:23:31
aus dem Sensor ein Sensorthermometer zu machen, d.h. den Sensor mit einer Anzeige zu versehen. Das dürfte soweit nicht schwer sein.
Was für ein Display hast du hier in Planung. Das muss ja entweder für Batteriebetrieb entsprechend wenig Energie verbrauchen oder du mußts das Ganze dann extern versorgen.

ZitatKönnte man die Außentemperatur am Innensensorthermometer irgendwie bekommen, von der CCU oder vom Außensensor selbst ?
Dafür muss man wohl ein neuen Gerätetyp bauen. Ich würde die Daten aber nicht von der CCU beziehen, sondern das Teil mit einem weiteren Sensor peeren von dem es die Temperatur bezieht.

Da die aktuelle Firmware ziemlich start Arduino-Komponenten einsetzt, ist der Programmspeicher schon gut gefüllt. Daher muss man hier wohl etwas umbauen damit der Code dann noch in die verbleibenden 28k passt. Falls es ganz eng wird, könnte man zur Not den Bootloader  einsparen. Dann hätte man noch weitere 4k zur Verfügung.

Gruß
Dirk

cactus-online

Ich dachte an ein LCD-Display. Die Sache ist die, meiner besseren Hälfte werde ich niemals beibringen, dass sie Ihr Smartphone zücken soll, nur um die Raumtemperatur abzulesen :-( .

Wie gesagt, mich interessiert in erster Linie, ob es sich lohnt einen Gedanken daran zu verschwenden, die Außentemperatur auch anzuzeigen, dann könnte ich mir die bisher verstreut vorhandenen verschiedenen Innenthermometer mit jeweils einem eigenen Außensensor endlich sparen.

Aber ich fange ja erst an mich mit der Materie zu beschäftigen. Ich habe mir einfach mal einen Haufen Zeugs bestellt und schaue mal, wie das in natura aussieht.

http://www.aliexpress.com/snapshot/6205919720.html
http://www.aliexpress.com/snapshot/6205919710.html
http://www.aliexpress.com/snapshot/6205919719.html

Wobei man dann wieder schnell bei der leidigen Gehäusefrage landet.

http://www.aliexpress.com/item/86-boxes-of-high-quality-plastic-shell-DIY-LCD1602-LCD-window-can-also-be-fitted-with/1645567100.html ist ja nicht so prickelnd ... .

Mr. P

Wenn du es mit Batterie betreiben willst, dann würde ich dir ein eInk-Display ans Herz legen.
(http://www.seeedstudio.com/depot/images/product/einksld.jpg)
Greetz,
   Mr. P

justme1968

wenn dich etwas mit display interessiert schau dir mal diesen thread an: http://forum.fhem.de/index.php/topic,20956.0.html

ist leider noch nicht so weit wie der sensor von dirk aber es gibt auf software seite schon einiges. im thread sind auch screenshots und videos von der bedienung.

gruss
   andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

in der bastelecke gibt es auch einen tread mit ein fhem modul für dieses epaper display. :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

cactus-online

Ja das e-ink Display hat schon etwas. Allerdings ist es auch arg teuer. Meine jetzigen Thermometer/Wetterstation mit LCD Display halten aber mit Batterie auch gut über ein Jahr. Ich schätze mal, mit einem klassischen LCD-Display sollte der Energieverbrauch auch noch überschaubar sein. Ich werde ja sehen, wenn das Zeugs da ist und ich überhaupt soweit bin, mit der Hardware etwas vernüftiges anzustellen.

Ich bin immer noch völlig im unklaren wegen der Außentemperatur, das wäre meiner Mitbewohnerin aber sehr wichtig ;-) .

Dirk

Deine Displays von unten brauche tatsächlich eine externe Spannungsversorgung.

Zitat von: cactus-online am 28 August 2014, 10:39:14
Ich schätze mal, mit einem klassischen LCD-Display sollte der Energieverbrauch auch noch überschaubar sein.
Hier braucht man aber einen MC der das auch entweder treiben kann, oder man braucht wieder eine Lösung mit Display und Controller. Da währ die E-Ink-Lösung schon sehr praktisch.

ZitatIch bin immer noch völlig im unklaren wegen der Außentemperatur, das wäre meiner Mitbewohnerin aber sehr wichtig ;-) .
Schon mal an ein Tablet gedacht, was an der Wand hängt? Da kannst du auch noch jede Menge anderer Infos anzeigen und gleichzeitig Aktionen auslösen.

cactus-online

Zitat von: Dirk am 28 August 2014, 10:44:15
Schon mal an ein Tablet gedacht, was an der Wand hängt? Da kannst du auch noch jede Menge anderer Infos anzeigen und gleichzeitig Aktionen auslösen.

Ja. Aber ich denke, dass meine Frau wenn sie im Schlafzimmer steht und aufs Thermometer schauen will, nicht erst eine Etage tiefer gehen möchte, weil das Display im Flur/Wohnzimmer/.. hängt vice versa ;-) .

Das Tablet ist ja schon in Vorbereitung, CCU.IO sei dank bekommt man das ja recht WAF-kompatibel hin.