Forum: Mikrocontroller und Digitale Elektronik Heizkörper Thermostat STM8L052 reversengeniering?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von dani3l (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich hab heute ein Heizkörper Thermostat eqiva Model N in einem 2Hand 
Laden für 1€ bekommen, bei dem offensichtlich die Batterien ausgelaufen 
sind. Hab mir gedacht für 1€ Motor + Getriebe warum nicht.

Egal, daheim angekommen erstmal neue Batterie eingelegt und es 
funktioniert.

Hab es dann geöffnet um es einer Komplettreinigung zu unterziehen und 
dann sehe ich dass es ein STM8L052 C6T6 GH21F VG CHN721 mit Prog1 
Schnittstelle auf dem Board gibt. Mir fehlt eine Funktion zum 
einschalten für X,X Stunden auf eine bestimmte Position.

Also habe ich danach gegoogelt und folgenden Threads gefunden:

http://forum.arduino.cc/index.php?topic=275157.15

http://www.efton.sk/curious/thermostat_s.htm

Dort gab es schonmal Ansätze ein ähnliches Thermostat um zu 
programmieren.

Da ich bis jetzt nur mit Atmegas gearbeitet habe habe ich nun ein paar 
fragen an euch. ST kenne ich nur von der Embedded und dass ich da ein 
stm32 board bekommen habe vor 7 Jahren (ungenutzt).

1. Wie geht man daran?
2. Welchen Programmer Debuger könnt ihr empfehlen?
3. Habt ihr Alternativen zu diesem Thermostat?

Ja mir ist bekannt dass es ein weiter weg ist, aber der Sommer kommt( 
hoffe ich) und bis zum Herbst sollte da doch etwas machbar sein.

Gruß

von dani3l (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch ein Bild

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ist doch ein schöner Grund sich mit dem STM8 zu beschäftigen.
Frage 3 relativiert das allerdings.

Ein billigst ST-Link V2 für STM32 und STM8 reicht zum programmieren.

Pin1 vom Chip ist SWIM und Pin2 NRST, damit ist die 
Programmierschnittstelle schon mal klar. Sind wohl die 4 Pins unter dem 
Chip.

Mit STM8CubeMX kann man sich die Belegung ansehen.

Das Schwierigste wird wohl die LCD Segment Zuordnung sein.

SDCC dürfte den Chip unterstützen.

von dani3l (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
pegel schrieb:
> Das Schwierigste wird wohl die LCD Segment Zuordnung sein.

Nuja da hat ja n anderer schonmal ne vorarbeit geleistet. siehe Links 
oben.

https://geekilyinteresting.wordpress.com/2014/05/04/using-your-stm32f4-discovery-board-as-a-programmer-and-debugger/

Wenn ich das hier richtig verstanden habe, müsste ich von meinem 
verstaubten ungenutzten STM32VLDISCOVER/ 01-0 die Jumper von CN3 
abziehen und SWD dann mit dem Thermostat verbinden.

pegel schrieb:
> Mit STM8CubeMX kann man sich die Belegung ansehen.

Gibt es ein empfehlenswertes Tutorial/Einstiegshilfe zur ganzen 
Tool-Chain?

Danke schonmal für die schnelle Antwort.
Gruß

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
dani3l schrieb:
> SWD dann mit dem Thermostat verbinden

leider nicht. Der STM8 hat eine SWIM Schnittstelle, nicht SWD wie beim 
STM32.

Suche nach:

st-link v2 stm8

von google (Gast)


Bewertung
0 lesenswert
nicht lesenswert
dani3l schrieb:
> Hab es dann geöffnet um es einer Komplettreinigung zu unterziehen und
> dann sehe ich dass es ein STM8L052 C6T6 GH21F VG CHN721 mit Prog1
> Schnittstelle auf dem Board gibt. Mir fehlt eine Funktion zum
> einschalten für X,X Stunden auf eine bestimmte Position.

Du kannst die Software nicht auslesen, da der Leseschutz eingeschaltet 
ist. Selbst wenn, hättest Du zunächst nur Binärmatsch. Das heißt, Du 
musst Deine gewünschte Funktionalität von Null neu programmieren. Auch 
die LCD Ansteuerung usw.

von Lukas K. (dustxman)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Und vielen Dank für die Vorarbeiten!

hat jemand von euch während seinen Entwicklungen zufällig eine 
Debug-Schnittstelle in der original-Firmware 
gefunden/reverse-engineered? Ich habe solche Thermostate auch und per 
ESP8266 "smart" gemacht. Allerdings drehe ich nur am Rad :) Also ich 
betätige das Kodierrad um zu einer gewünschten Solltemperatur zu kommen. 
Cooler wäre natürlich schon sich per Drahtkommunikation direkt mit dem 
STM8 zu unterhalten. Um zum Beispiel die IST-Temperatur herauszufinden 
oder einen Rückkanal für die Soll-Temperatur zu haben. Für eine eigene 
Firmware fehlt mir wohl die Muße :D

Grüße
Lukas

von Hansl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hey ich hatte gestern die gleiche Idee mit dem STM über UART zu 
kommunizieren. Jedoch war meine erste Idee, die Kommunikation zwischen 
BT-Empfänger und STM zu emulieren um die Firmware des STMs nicht 
anfassen zu müssen. Weiß zufällig jemand wie die beiden kommunizieren, 
und am besten ob es MPs gibt, an denen man die Befehle "sniffen" kann?

Hab auch ein viel versprechendes GithubProjekt gefunden, jedoch wird das 
leider nicht mehr gepflegt wie es aussieht :(

https://github.com/Jakeler/Model-N-Thermostat

von Zach (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
 habe auch so einen Thermostat mit Bluetooth. Der hängt jedoch im Update 
Modus fest.Batterie rein raus bringt nichts. Kann ich den STM8L052 auf 
Werkseinstellung zurücksetzen?
Gruß Roman

von au Backe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Zach schrieb:
> Kann ich den STM8L052 auf
> Werkseinstellung zurücksetzen?

Du kannst ihn per Reset neu starten.

von Philipp Klaus K. (Firma: Albert-Ludwigs-Universität) (pkk)


Bewertung
0 lesenswert
nicht lesenswert
dani3l schrieb:
> Gibt es ein empfehlenswertes Tutorial/Einstiegshilfe zur ganzen
> Tool-Chain?

Für den ersten Einstieg in die freie Toolchain gibt es:

http://www.colecovision.eu/stm8/

Fürs on-target-debugging mit gdb finden sich ein paar Informationen 
unter:

https://stm8-binutils-gdb.sourceforge.io/

Philipp

von Zach (Gast)


Bewertung
0 lesenswert
nicht lesenswert
au Backe schrieb:
> Zach schrieb:
>> Kann ich den STM8L052 auf
>> Werkseinstellung zurücksetzen?
>
> Du kannst ihn per Reset neu start

Hallo,
und wie geht das? Es gibt ja keinen Resetknopf. Ich weis es gibt evt. 
einen Resetpin am Microcontroller.
Ich bin leider nur ein einfacher Elektroniker und kenne mich mit 
Mikrocontroller nicht aus.
Gruß Roman

von au Backe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Zach schrieb:
> Ich weis es gibt evt.
> einen Resetpin am Microcontroller.

Das Pining findest du im Datenblatt
https://www.st.com/resource/en/datasheet/stm8l052c6.pdf

von Daniel D. (daniel_d269)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir das Ding mittlerweile auch angeschaut und einen nRF51 
eingebaut, der allerdings auch nur den Knopf dreht.

Ich habe allerdings die Vermutung, dass auf der BLE und der normalen 
Version verschiedene Firmwares sind, da die normale Version den "BLE" 
Menüpunkt weniger hat und auch kein Pairing modus hat, der 
Sicherheitstechnisch sowieso irrelevant ist. Ergo könnte ich mir 
vorstellen dass die Originalfirmware auf der normalen Version garnicht 
über UART etc. ansprechbar ist...

von Oliver F. (oliver_f142)


Bewertung
0 lesenswert
nicht lesenswert
au Backe schrieb:
> Zach schrieb:
>> Ich weis es gibt evt.
>> einen Resetpin am Microcontroller.
>
> Das Pining findest du im Datenblatt
> https://www.st.com/resource/en/datasheet/stm8l052c6.pdf

Servus, mein Thermostat steckt im Updatemodus fest. Gerät habe ich aus 
der App entfernt. Nach Rücksprache mit dem Hersteller wohl jetzt 
Schrott.

Ist es möglich durch einen Reset des Controllers/Chip das ganze System 
manuell auf Werkseinstellungen zurück zu setzten oder kann ich den Chip 
nur komplett flashen/löschen?

Wünsche allen einen guten Rutsch ins neue Jahr.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.