Anfängerfrage: Woran scheitert die Umprogrammierung von Verbraucherelektronik?

#7599407
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?

#7599412
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 ...

#7599419
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.

#7599435
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.

#7599451
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.

(Firma: matzetronics) #7599498
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.

#7599528
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

#7599530
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.

Gast #7599534
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.

#7599551
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.

#7599630
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.

#7599644
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.

(Firma: matzetronics) #7599680
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.

#7599694
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.

Gast #7599777
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.

#7600450
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren