Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage: Woran scheitert die Umprogrammierung von Verbraucherelektronik?


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 Steff (maexl)


Lesenswert?

Ich möchte in dieser Frage von einem erfahrenen 
Mikrokontrollerentwickler ("er") ausgehen.

Und zwar frage ich mich, woran er scheitern würde, wenn er versuchen 
würde Verbraucherelektronik mit einer eigenen Software 
umzuprogrammieren. Er würde also das komplette Gerät gerne selbst 
programmieren und nicht eine vorhandene Firmware nur bearbeiten.

Meines Wissens nach ist das nämlich kaum machbar.

Wenn man eine Annahme, dass er scheitern würde falsch ist, lasse ich 
mich natürlich gerne korrigieren. Vielleicht ist es auch so, dass er es 
nicht machen würde, weil es zu aufwendig wäre.

Ich denke dabei an folgende Verbraucherelektronik (Beispiele):
- ein Funkwecker
- ein Festplattengehäuse
- eine Mikrowelle
- ein DAB-Radio
- ein Bluetoothlautsprecher

Also woran würde er scheitern?

Dass kein Quellcode zugänglich ist, trifft wohl schonmal zu 99% zu.

Bei einem Festplattengehäuse wo ich mich über den Chip schlau gemacht 
habe, war wohl nicht mal ein Pin-Diagramm im Internet auffindbar.

Dann sind moderne Chips wohl teilweise auch noch für Firmware-Updates 
gesperrt.

Eine Software-SDK bei einer Mikrowelle zu finden ist wohl auch so gut 
wie unmöglich.

Dann gibt es wohl masked ROM, welcher sich überhaupt nicht flashen 
lässt.

Und so weiter...

Aber weil ich kein Experte für Mikrokontroller bin, wollte ich mal 
fragen ob meine Annahmen stimmen. Oder ist es etwa doch möglich, 
Verbraucherelektronik umzuprogrammieren?

von Jens G. (jensig)


Lesenswert?

Steff schrieb:
> Meines Wissens nach ist das nämlich kaum machbar.

Wer sagt das so paschal?

> Wenn man eine Annahme, dass er scheitern würde falsch ist, lasse ich
> mich natürlich gerne korrigieren. Vielleicht ist es auch so, dass er es
> nicht machen würde, weil es zu aufwendig wäre.

Erstens zu aufwendig, denn es wird ja nicht einfach so drauf los 
programmiert, sondern man muß sich ja auch mit der elektronik 
beschäftigen, die um den µC herum so kreucht und fleucht.
Dann wäre noch die Frage, ob es kundenspezifische bzw. 
maskenprogrammierte µC sind, denn die lassen sich nicht wieder neu 
programmieren.
Aber solche Teile, wo ein "normaler" µC mit Flashspeicher drin ist, 
lassen sich neu programmieren (egal, ob ausslesegeschützt).

> Dass kein Quellcode zugänglich ist, trifft wohl schonmal zu 99% zu.

Brauchst Du auch nicht - Du willst ja selber programmieren ...

> Dann gibt es wohl masked ROM, welcher sich überhaupt nicht flashen
lässt.

Runterlöten, und durch die Flash-Variante ersetzen ...

: Bearbeitet durch User
von Hmmm (hmmm)


Lesenswert?

Steff schrieb:
> Und zwar frage ich mich, woran er scheitern würde, wenn er versuchen
> würde Verbraucherelektronik mit einer eigenen Software
> umzuprogrammieren.

Vielleicht an maskenprogrammierten Controllern.
Vielleicht an ASICs.
Vielleicht an chinesischen Datenblättern.
Vielleicht an gar nicht zugänglichen Datenblättern.

Vielleicht aber auch an gar nichts, wie Projekte wie Tasmota oder 
Rockbox zeigen.

von Rüdiger B. (rbruns)


Lesenswert?

Mit einer Seriellen on Board gibt es einen Bootloader der evt. geschützt 
ist, mit einem ISP oder JTAG kannst du voll auf die MCU zugreifen.

von Helmut -. (dc3yc)


Lesenswert?

Steff schrieb:
> Ich denke dabei an folgende Verbraucherelektronik (Beispiele):
> - ein Funkwecker
> - ein Festplattengehäuse
> - eine Mikrowelle
> - ein DAB-Radio
> - ein Bluetoothlautsprecher

Erst mal: es heißt einEN Funkwecker und einEN Bluetoothlautsprecher. 
Außerdem: ein Festplattengehäuse muss nicht programmiert werden; ist aus 
Metall oder Plastik.

Einen Funkwecker habe ich schon gebaut und programmiert, ein DAB-Radio 
ebenso. Bluetoothlautsprecher sind soo billig, Selbstbau lohnt sich 
nicht. Und ein Mikrowellensignal habe ich auch schon erzeugt. Was muss 
man da programmieren?

Der ganze Thread ist Mumpitz.

von Klaus H. (hildek)


Lesenswert?

Helmut -. schrieb:
> Der ganze Thread ist Mumpitz.

In der Überschrift steht: "Anfängerfrage".

Und wie schon gesagt: wenn die Hardware, die er steuert klar ist und 
wenn der TO eine andere Funktionalität haben will und auch versteht, was 
alles in dem Gerät vom µC wie erledigt wird, könnte man schon eine 
eigene Software schreiben mit eigener Funktionalität - falls es ein 
'normaler' µC ist und man dafür eine Programmierumgebung auftreiben 
kann.
Nur auslesen und auf Assemblerebene verstehen und einige 
Funktionalitäten anpassen, wird auf Grund des Ausleseschutzes schon mal 
nicht gehen, selbst wenn man alles nachvollziehen könnte. Und, der 
Quellcode ist nicht nur zu 99% nicht zu erhalten, sondern eher zu 
99,999%! Und selbst wenn, auch da müsste man einiges an Arbeit 
investieren, um alles richtig nachvollziehen zu können.

von Benedikt L. (Firma: Dem Ben seine Leiche) (dembenseineleiche) Flattr this


Lesenswert?

Es gibt zwar 8 Milliarden Menschen auf der Weltkugel aber offensichtlich 
nicht genug Nerds darunter die tagein tagaus consumer-TVs hacken und 
umfunzionieren. Schade eintlich!

von Michael M. (do7tla)


Lesenswert?

Benedikt L. schrieb:
> Es gibt zwar 8 Milliarden Menschen auf der Weltkugel aber offensichtlich
> nicht genug Nerds darunter die tagein tagaus consumer-TVs hacken und
> umfunzionieren. Schade eintlich!

Nicht nur Fernseher, auch Internetradios, denen man den benötigten 
Portalserver abgeschaltet hat und dadurch funktionslos wurden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bei Massenartikeln wie Mikrowellenöfen sind das maskenprogrammierte 
Controller, die man komplett ersetzen müsste, um da was zu ändern. Ich 
habe das damals z.B. mal mit einem Grundig Satellitenempfänger gemacht, 
weil die originale Ablaufsteuerung so richtig beknackt war. Aber dazu 
musst du die Schaltung haben und Verständnis für Protokolle und die 
grundlegende Technik. Da gabs I²C, SPI und GPIO Ports, sowie ein 595er 
LED Display usw. Damals habe ich das mit dem CEPAC-80 gelöst.

Letzten Winter gabs Langeweile und ich habe ein tragbares Messgerät von 
Leybold mit eigener Firmware ausgerüstet. Aber das war ein Projekt, was 
sich über 2 oder 3 Wochen hinzog, denn zuerst musste z.B. das Pinout des 
STM32F429 bis zum letzten Beinchen durchgeklingelt werden.

von T. L. (lawman)


Lesenswert?

Helmut -. schrieb:
> Erst mal: es heißt einEN Funkwecker und einEN Bluetoothlautsprecher.

Dann sind wir schon mal zwei alte Knacker die noch Wert darauf legen. 
Hab schon gedacht, das ich der einzige auf der Welt bin, dem dieses 
schriftliche Genuschel auf den Sack geht.

von Jack V. (jackv)


Lesenswert?

Ach, immer noch besser als „1 Wecker“ …

On-Topic: Manchmal ist’s auch möglich und einfacher, die Steuerung zu 
ersetzen und die Bedienelemente, das Gehäuse und ggf. den Leistungsteil 
zu behalten.

von G. K. (zumsel)


Lesenswert?

Helmut -. schrieb:

> Erst mal: es heißt einEN Funkwecker und einEN Bluetoothlautsprecher.

Quelle?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Nachdem schon vor einem Vierteljahrhundert z.b. auf den 
DF1/Premiere-Receivern (dbox, dbox-2) und deren Smartcards ordentlich 
und alternativ 'umprogrammiert' wurde, wuerde ich mal sagen: Es sind 
wohl 2 Gruende die heute das Scheitern verursachen:
1.) Mangelnde Motivation.
2.) Mangelndes Know-How.

Gruss
WK

von Alram L. (alram)


Lesenswert?

Jens G. schrieb:
> Aber solche Teile, wo ein "normaler" µC mit Flashspeicher drin ist,
> lassen sich neu programmieren (egal, ob ausslesegeschützt).

Das stimmt so pauschal sicherlich nicht. Wie ich selber kürzlich 
erfahren musste, kann man sich aus einem LPC11xxx sehr einfach 
selber/versehentlich aussperren. Würde mich wundern, wenn das nicht bei 
anderen IC's auch möglich ist.

In so einem Fall, wird der Aufwand eigene Firmware auf ein Gerät zu 
bekommen insofern erhöht, als man zuerst den µC durch einen neuen 
ersetzen muss.

von Björn W. (bwieck)


Lesenswert?

3.) Der geringe Preis der Geräte, der den Aufwand zur Modifikation 
allermeist nicht rechtfertigt.

von Steve van de Grens (roehrmond)


Lesenswert?

Dergute W. schrieb:
> 1.) Mangelnde Motivation.
> 2.) Mangelndes Know-How.

3.) Man lebt nicht lange genug, um fertig zu werden.

Einen Smart TV stampft kein Hobbyprogrammierer "mal eben" an ein paar 
Wochenenden aus dem Boden. Diese Programme bauen in der Regel auf dem 
Code von vorherigen Modellen auf. Außerdem müssen Bibliotheken zugekauft 
werden, an die man privat gar nicht heran kommt.

von Steff (maexl)


Lesenswert?

Danke, habe schon das ein oder andere aus den Antworten mitnehmen 
können.

@dc3yc Es geht hier darum Verbraucherelektronik umzuprogrammieren. Nicht 
darum, sie selbst zu entwerfen.

@dembenseineleiche Auch um TVs geht es mir nicht. Das sind für mich 
Computer (ähnlich wie Desktop-Rechner) und nicht 
mikrokontrollergesteuert.

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Steff schrieb:
> Es geht hier darum Verbraucherelektronik umzuprogrammieren. Nicht
> darum, sie selbst zu entwerfen.

Dann mach doch einfach. Nimm deinen Funkwecker, und mach ein Thermometer 
draus. Wenn du damit fertig bist, stells hier ins Forum.

Oliver

von Manfred P. (pruckelfred)


Lesenswert?

Steff schrieb:
> @dc3yc

Anstatt "@dc3yc" markiert man den Text und drückt im Editorfenster 
"Markierten Text zitieren"!

> Es geht hier darum Verbraucherelektronik umzuprogrammieren. Nicht
> darum, sie selbst zu entwerfen.

Das macht keinen Unterschied. Um ein Gerät "umzuprogrammieren", muß die 
Hardware zu 100% bekannt sein. Verabschiede Dich von Deiner Idee.

von Marc X. (marc_x)


Lesenswert?

Inzwischen betreiben auch einige Hersteller extremen Aufwand ihre 
Hardware zu schützen.

In einem Kundenprojekt programmieren wir beispielsweise die Firmware via 
JTAG in das Gerät und kommunizieren danach via CAN, schreiben Schlüssel 
welche wir von einem Server bekommen in den Speicher und verriegeln die 
JTAG Schnittstelle. Nun hat man nur noch die Möglichkeit entweder 
mithilfe der Schlüssel welche vom Server angefragt werden via CAN 
Bootloader die Software zu aktualisieren oder die JTAG Schnittstelle zu 
öffnen.

Der Aufwand ist enorm dafür das es nicht mal Automotive ist.

von Bernhard S. (b_spitzer)


Lesenswert?

Zabex hat auf seiner Seite (www.zabex.de - bringt ein paar Stunden Zeit 
zum stöbern mit) zwei Projekte, bei denen er Consumer-Elektronik mit 
eigener Hardware gesteuert hat.

Ein Herd mit Kalogenkochplatten, Hardware überschaubar, benötigte 
Signale auch klar. Steuerung war machbar und ist wohl "produktiv" im 
Betrieb. Hintergrund war aber, dass die alte Steuerung defekt war und er 
den Herd retten wollte.

Zweites Projekt war eine Waschmaschinensteuerung. Fundstück vom 
Sperrmüll, die benötigten Steuersignale konnten mit überschaubarem 
Reverse-Engineering auch rausgefunden werden. Aber bei der 
Steuerungssoftware hat er viele Versionen probiert und irgend wie kein 
brauchbares Waschergebnis erzielen können.

Um ein Produkt "nachbauen" oder wenigstens neu programmieren zu können 
braucht man tiefgreifende Kenntnisse von den verwendeten Schnittstellen, 
die passenden Programmierkenntnisse für den Controller (oder man reisst 
den Controller raus und hängt was bekanntes rein). Aber danach braucht 
man auch noch genaue Kenntnisse über die internen Abläufe, die sich 
teilweise nicht einfach beobachten lassen (z.B. weil über unbekannte 
Kennlinienfelder gesteuert). Dann stochert man ewig im Dunkeln und 
erreicht mit viel Mühe trotzdem nur Grundfunktionalität.

Da auch die meisten Bastler nicht unendlich viel Freizeit haben und 
heutige Consumer-Produkte (oft viel zu) günstig sind, lohnt sich der 
Aufwand äußerst selten.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bernhard S. schrieb:
> Ein Herd mit Kalogenkochplatten, Hardware überschaubar, benötigte
> Signale auch klar. Steuerung war machbar

Sowas habe ich mit meinem Herd auch gemacht, weil die alten Herdplatten 
7-Takt Typen waren und nicht mehr erhältlich. Stattdessen arbeiten da 
jetzt zwei Wellenpaket gesteuerte 2-polige Platten mit einem kleinen AVR 
2313 und selbstgemachten SSR. Load Balancing inklusive :-P
Aber Umprogrammierung war das eher nicht, denn da war ja vorher nix 
elektronisches.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Steff schrieb:
> frage ich mich, woran er scheitern würde, wenn er versuchen
> würde Verbraucherelektronik mit einer eigenen Software
> umzuprogrammieren. Er würde also das komplette Gerät gerne selbst
> programmieren und nicht eine vorhandene Firmware nur bearbeiten.

> Ich denke dabei an folgende Verbraucherelektronik (Beispiele):
> - ein Funkwecker

maskenprogrammierter µC unter einem Klecks Vergußmasse. Kann man nicht 
programmieren.

> - ein Festplattengehäuse

gar kein µC

> - eine Mikrowelle

dito. Wenn doch einer drin sein sollte, siehe Funkwecker.

> - ein DAB-Radio

i.d.R. ein programmierbarer µC drin (OTA Updates?). Es scheitert aber 
daran, daß du die Peripherie nicht kennst und auch keine Datenblätter 
bekommst.

> - ein Bluetoothlautsprecher

Was willst du daran umprogrammieren?


Aber im Normalfall lohnt es sich schlicht nicht. Man muß da so viel 
auseinanderbauen und reverse engineeren, daß man es auch gleich selber 
neu bauen kann.

von Steve van de Grens (roehrmond)


Lesenswert?

Steff schrieb:
> Es geht hier darum Verbraucherelektronik umzuprogrammieren. Nicht
> darum, sie selbst zu entwerfen.

Das Umprogrammieren läuft aber auf den gleichen Aufwand hinaus. Denn den 
alten Quellcode bekommst du ja nicht, ebenso wenig die Dokumentation des 
Codes.

Manfred P. schrieb:
> Um ein Gerät "umzuprogrammieren", muß die
> Hardware zu 100% bekannt sein. Verabschiede Dich von Deiner Idee.

Außerdem braucht man ein funktionierendes Konzept für die Software. Was 
man von außen sieht ist nur ein kleiner Teil dessen. Bis aus einer Idee 
ein solides Produkt wird, vergehen viele Versuche.

Steff schrieb:
> Auch um TVs geht es mir nicht. Das sind für mich Computer

OK, dann gehe ich mal konkret auf die von dir genannten Geräte ein:

> ein Funkwecker
Ist wohl kaum um-programmierbar.

> ein Festplattengehäuse
Komplexe Firmware, für deren Entwicklung du Jahre brauchst, falls du 
überhaupt an die vollständige Dokumentation des Chips heran kommst, was 
schon unwahrscheinlich ist. Da sind hoch spezialisierte Bauteile kein, 
keine Standard-Mikrocontroller.

> eine Mikrowelle
Habe ich bisher stets mit mechanischem Timer gekauft, weil ich keinen 
Ärger mit labiler irreparabler Elektronik will. Aber wenn sie von einem 
Mikrocontroller gesteuert wird, dann halte ich eine eigene Firmware dort 
durchaus für machbar. Mikrowellen-Öfen sind allerdings keine gute 
Spielwiese für Experimente - zu gefährlich.

> ein DAB-Radio
> ein Bluetoothlautsprecher
Problematisch, weil deren Chips in der Regel eine Software vom 
Hersteller erfordern. Die vollständige Doku dazu darf per Gesetz nicht 
veröffentlicht werden, damit du ihre HF/Funk Eigenschaften nicht ändern 
kannst. Nur wenige Funkmodule sind fürs Selbermachen ausreichend offen 
(z.B. ESP32). In den meisten Geräten steckt etwas anderes.

: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Steff schrieb:
> Es geht hier darum Verbraucherelektronik umzuprogrammieren. Nicht darum,
> sie selbst zu entwerfen.

Unterschied wo?

von Jens G. (jensig)


Lesenswert?

Steve van de Grens schrieb:
> Die vollständige Doku dazu darf per Gesetz nicht
> veröffentlicht werden, damit du ihre HF/Funk Eigenschaften nicht ändern
> kannst.

Ohh, da hätte ich jetzt gern eine Quelle dafür ...

von Joachim B. (jar)


Lesenswert?

Matthias S. schrieb:
> Ich
> habe das damals

Originalzitat Jeff Goldblum "Independence Day":
Es gibt nichts was ein Radio- Fernsehtechniker nicht kann.

Ich lasse aber auch langsam nach, auf Hex- debugging auf Karopapier habe 
ich auch keinen Bock mehr wie damals beim CBM mit 6502 und PC1500 mit 
LH5801

von Steve van de Grens (roehrmond)


Lesenswert?


von Manfred P. (pruckelfred)


Lesenswert?

Steve van de Grens schrieb:
>> eine Mikrowelle
> Habe ich bisher stets mit mechanischem Timer gekauft, weil ich keinen
> Ärger mit labiler irreparabler Elektronik will. Aber wenn sie von einem
> Mikrocontroller gesteuert wird, dann halte ich eine eigene Firmware dort
> durchaus für machbar.

Bei einer Mikrowelle mit defekter Taktsteuerung, mechanisch, habe ich 
diese überbrückt und eine externe Triac-Mimik mit Arduino-Nano davor 
gesetzt. Unter anderen Randbedingungen könnte ich mir auch vorstellen, 
sowas in das Gerät einzubauen.

> Mikrowellen-Öfen sind allerdings keine gute
> Spielwiese für Experimente - zu gefährlich.

Das Leben ist gefährlich, aber zumindest habe ich keine Angst vor 
Netzspannung. Die Spannung am Kondensator kann (und muß) man messen.

Bleibt noch das Risiko der Strahlung. Das ist lästig, ich würde sie 
niemals bei geöffnetem Gehäuse einschalten.

Joachim B. schrieb:
> Originalzitat Jeff Goldblum "Independence Day":
> Es gibt nichts was ein Radio- Fernsehtechniker nicht kann.

Es gibt verdammt viel, was ein Radio- Fernsehtechniker nicht kann.

Joachim B. schrieb:
> Ich lasse aber auch langsam nach,

Dich halte ich für ein untypisches Exemplar, was selbst "langsam 
nachlassend" noch immer mehr auf die Reihe bekommt als jene, die mir 
begegnet sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.