HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von jp112sdl » 21.04.2021, 14:28

FUEL4EP hat geschrieben:
21.04.2021, 14:07
die Dateigröße von ATmegaBOOT_168_atmega328_pro_8MHz.hex 5484 Bytes
Die Dateigröße wird aber beim Flashen nicht angezeigt, sondern die Größe der "Nutzdaten".

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
stan23
Beiträge: 2038
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 582 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von stan23 » 21.04.2021, 14:36

Hackertomm hat geschrieben:
21.04.2021, 09:52
Ich würde übrigens, erst den Bootloader flashen und dann die Fuses setzen!
Denn der Bootloader könnte andere Fuses mitbringen.
Der Bootloader an sich ist nur Programmcode, wird also in den Flash geschrieben.
Mit AVRdude (Kommandozeile) oder AVRDUDESS (GUI) passiert auch nur genau das.

Tatsächlich ändert die Arduino IDE bei der Aktion "Bootloader brennen" auch die Fuses in einer Art, wie sie zum gewählten Board (meistens "Arduino Pro Mini") passen.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

Benutzeravatar
FUEL4EP
Beiträge: 586
Registriert: 01.11.2017, 17:26
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 76 Mal
Danksagung erhalten: 78 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von FUEL4EP » 21.04.2021, 14:59

jp112sdl hat geschrieben:
21.04.2021, 14:28
FUEL4EP hat geschrieben:
21.04.2021, 14:07
die Dateigröße von ATmegaBOOT_168_atmega328_pro_8MHz.hex 5484 Bytes
Die Dateigröße wird aber beim Flashen nicht angezeigt, sondern die Größe der "Nutzdaten".
Ich beziehe mich auf RG1004's LOG

Code: Alles auswählen

avrdude.exe: input file C:\Program Files (x86)\AVRDUDESS\ATmegaBOOT_168_atmega328_pro_8MHz.hex contains 32652 bytes
Das ist m.E. die Größe des Bootloader HEX Files. Ich nutze aber kein AVRDUDESS und kann das daher nicht verifizieren.
Grüße

Ewald

Meine SmartHome Entwicklungen gibt es hier: FUEL4Ps Homeautomation Github Repository oder als ZIP
Das passende RaspberryMatic Addon ist hb-ep-devices-addon
Passende Platinen gib es hier: PCBs

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von TomMajor » 21.04.2021, 16:40

jp112sdl hat geschrieben:
21.04.2021, 11:27
Bei 32652 Byte Sketch Größe passt kein Bootloader.
Moin Jerome,
dieser Bootloader geht erst bei Addr 7800h / 30720 los, und geht bis ca. Addr. zu 7F8Ch / 32652
ich denke die Ausgabe
avrdude.exe: input file C:\Program Files (x86)\AVRDUDESS\ATmegaBOOT_168_atmega328_pro_8MHz.hex contains 32652 bytes
bezieht sich auf die oberste Addr im hex file, ohne Rücksicht darauf das unter 7800h alles frei ist.
https://github.com/TomMajor/SmartHome/b ... o_8MHz.hex
Sollte also passen für den bootloader.
Viele Grüße,
Tom

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von jp112sdl » 21.04.2021, 18:12

TomMajor hat geschrieben:
21.04.2021, 16:40
jp112sdl hat geschrieben:
21.04.2021, 11:27
Bei 32652 Byte Sketch Größe passt kein Bootloader.
Moin Jerome,
dieser Bootloader geht erst bei Addr 7800h / 30720 los, und geht bis ca. Addr. zu 7F8Ch / 32652
Stimmt, da ging es ja um den reinen Bootloader. Hab ich übersehen. Dachte das war Sketch-Hex-File :shock: :roll:

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

RG1004
Beiträge: 33
Registriert: 02.01.2021, 14:51
System: CCU
Hat sich bedankt: 3 Mal

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von RG1004 » 22.04.2021, 00:38

Also ich habe jetzt unendlich viel Zeit investiert um die Problematik genau zu rekonstruieren.
Zunächst habe ich den Original Bootloader gemäß Anleitung von Arduino mit Arduino IDE und dem Diamex Programmer wieder geflasht:
Bild.
Wichtig ist, dass es nur in der im Screenshot dargestellten Konfiguration funktioniert, also Programmer "Atmel STK500 development board"
Wenn ich nun danach wie beschrieben mit dem AVRDUDE die Fuses adaptiere, ist ein Zugriff mit dem Arduino IDE nicht mehr möglich.

Also Kommando retour und nochmals Bootloader flashen wie zuvor beschrieben und dann wieder die Sketches (Freq.Test und danach den Fühler) flashen. Das funktioniert problemlos aber jetzt bin ich halt wieder am Anfang, nämlich dass sich der Sensor ohne ändern der Fuses nicht anlernen lässt.

Conclusio:
Der geänderte Bootloader z.B. https://github.com/TomMajor/SmartHome/b ... o_8MHz.hex führt zu folgenden Problemen:
- es lassen sich in welcher Konfiguration auch immer keine Sketches mehr über Arduino IDE einspielen
- nach dem Trennen und wiederverbinden des Arduino und verifizieren des Bootloaders kommt immer ein Fehler (beim ersten verifizieren nicht)
- mit dem Original Bootloader und Änderung der Fuses lassen sich keine Sketche mehr flashen.

Gibt es Ideen?
Dateianhänge
Bootlader.png
Bootlader.png (17.83 KiB) 440 mal betrachtet

Benutzeravatar
FUEL4EP
Beiträge: 586
Registriert: 01.11.2017, 17:26
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 76 Mal
Danksagung erhalten: 78 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von FUEL4EP » 22.04.2021, 07:41

RG1004 hat geschrieben:
22.04.2021, 00:38
- mit dem Original Bootloader und Änderung der Fuses lassen sich keine Sketche mehr flashen.
Lassen sich dann auch mit dem ISP Programmer "Sketch => Hochladen mit Programmer" keine Sketches mehr hochladen?

Mit einem ATmega328P basierten Testsensor habe ich Folgendes verifiziert:

a) Setzen der Fuses und Zurücklesen mit avrdude:

Code: Alles auswählen

avrdude: safemode: Fuses OK (E:FF, H:D6, L:D2)
Danach lässt sich im Arduino IDE

a) mit dem ISP Programmer (Sketch=>Hochladen mit Programmer) ein Sketch erfolgreich hochladen:

Code: Alles auswählen

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/ewald/.arduino15/packages/arduino/hardware/avr/1.8.3/avrdude.conf"
         User configuration file is "/home/ewald/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : usb
         Using Programmer              : stk500v2
avrdude: usbdev_open(): Found AVRISP mkII, serno: 0000000000000
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: AVRISP mkII
         Hardware Version: 0
         Firmware Version Master : 1.32
         Vtarget         : 3.3 V
         SCK period      : 8.00 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/tmp/arduino_build_863902/HB-UNI-Sensor1-THPD-BME280.ino.with_bootloader.hex"
avrdude: writing flash (32652 bytes):

Writing | ################################################## | 100% 10.92s

avrdude: 32652 bytes of flash written
avrdude: verifying flash memory against /tmp/arduino_build_863902/HB-UNI-Sensor1-THPD-BME280.ino.with_bootloader.hex:
avrdude: load data flash data from input file /tmp/arduino_build_863902/HB-UNI-Sensor1-THPD-BME280.ino.with_bootloader.hex:
avrdude: input file /tmp/arduino_build_863902/HB-UNI-Sensor1-THPD-BME280.ino.with_bootloader.hex contains 32652 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 9.69s

avrdude: verifying ...
avrdude: 32652 bytes of flash verified

avrdude done.  Thank you.

b) mit dem FTDI Adapter (Sketch=>Hochladen) kein Sketch hochladen:

Code: Alles auswählen


         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
Ich programmiere immer mit dem ISP Programmer. Das Debugging mit dem FTDI Adapter ist parallel zum ISP Programmer möglich.

Nachtrag: Versuche mal das Fuse-Setting H:D2 statt H:D6:

Code: Alles auswählen

avrdude: safemode: Fuses OK (E:FF, H:D2, L:FF)
Das ist für eine 1024 Byte Boot Flash Section (normaler Bootloader). H:D6 ist für eine 256 Byte Boot Flash Section. Das ist falsch gewesen. Sorry!

Mit

Code: Alles auswählen

avrdude: safemode: Fuses OK (E:FF, H:D2, L:FF)
funktioniert bei mir das Programmieren sowohl mit dem ISP Programmer als auch mit dem FTDI Adapter.
Grüße

Ewald

Meine SmartHome Entwicklungen gibt es hier: FUEL4Ps Homeautomation Github Repository oder als ZIP
Das passende RaspberryMatic Addon ist hb-ep-devices-addon
Passende Platinen gib es hier: PCBs

RG1004
Beiträge: 33
Registriert: 02.01.2021, 14:51
System: CCU
Hat sich bedankt: 3 Mal

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von RG1004 » 02.05.2021, 12:10

Nochmals mit den neuen Einstellungen der Fuses getestet. Leider keine Verbesserung.
Ich fasse nochmals zusammen:
1.) Fuses sind auf E:FF, H:D6, L:D2 eingestellt und mittels AVRDUDESS verifiziert, ok
2.) ich habe dann mit dem Diamex Programmer und ARDUINO IDE den FreqTest Sketch erfolgreich mit Modus "Upload Using Programmer" hochgeladen, allerdings nur mit folgenden Einstellung beim ARDUINO IDE:
Arduino Einstellung.png
Sobald ich die Programmereinstellung "AVRISP mkII" oder irgendeine andere Programmereinstellung (mit Ausnahme von "Atmel STK500 development board" wähle, kommt beim Hochladen eine Fehlermeldung:

Code: Alles auswählen

Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328P (3.3V, 8 MHz)"

Sketch uses 11052 bytes (35%) of program storage space. Maximum is 30720 bytes.

Global variables use 661 bytes (32%) of dynamic memory, leaving 1387 bytes for local variables. Maximum is 2048 bytes.

An error occurred while uploading the sketch



This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
3.) nach dem (vermutlich) erfolgreichen Hochladen des FreqTest Sketches mit der Programmeinstellung "Atmel STK500 development board" beginnt die Koppel LED auf der Platine zu blinken, was vermuten ließe der Frequenztest wird durchgeführt.
4.) Anwahl "Serial Monitor" im Arduino: dort kommt keinerlei Antwort:
Serial Monitor.png
Serial Monitor.png (6.91 KiB) 369 mal betrachtet
Bei den Erstversuchen kamen die Antworten wie beschrieben. Die Koppel LED hört auch nach 10-20 min nicht auf zu blinken
5.) Versuch den "HB-UNI-Sensor1-THPD-BME280.ino" Sketch hochzuladen: funktioniert ebenso, aber eben nur mit den zuvor beschriebenen Einstellungen im Arduino.

Ich komme da einfach nicht weiter. :(

Hackertomm
Beiträge: 680
Registriert: 18.04.2018, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Neuhausen auf den Fildern
Hat sich bedankt: 15 Mal
Danksagung erhalten: 19 Mal

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von Hackertomm » 02.05.2021, 12:40

Probier mal, den Sketch mit einem FDTI-Adapter hochzuladen!
Achtung!
Den Adapter vorher bitte auf 3.3V Jumpern!
Es geht zwar auch mit dem anderen Adapter, aber besser und einfacher mit dem FTDI-Adapter.
Das geht auch der Serielle Monitor in der Arduino IDE.
Gruß
Hackertomm

Virtual Image auf einer Qnap TS-451D2, 2GHZ Celeron u. 8GB RAM, aktuell Raspberry OVA, Vers. 3.71.12.20231020

Benutzeravatar
FUEL4EP
Beiträge: 586
Registriert: 01.11.2017, 17:26
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 76 Mal
Danksagung erhalten: 78 Mal
Kontaktdaten:

Re: HB-UNI-Sensor1-THPD-BME280 HomeAssistant

Beitrag von FUEL4EP » 02.05.2021, 13:09

Bitte, wie beschrieben, dieses Fuse-Setting verwenden:

(E:FF, H:D2, L:FF)
1.) Fuses sind auf E:FF, H:D6, L:D2 eingestellt und mittels AVRDUDESS verifiziert, ok
ist falsch.
Grüße

Ewald

Meine SmartHome Entwicklungen gibt es hier: FUEL4Ps Homeautomation Github Repository oder als ZIP
Das passende RaspberryMatic Addon ist hb-ep-devices-addon
Passende Platinen gib es hier: PCBs

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“