Ansicht von 6 Antwort-Themen
    • Erich Pekar
      Teilnehmer
      Post count: 135
      #30675 |

       

      Nachdem ich von unseren Spezialisten im Club schon öfter auf die Bauelemente der Firma ESPRESSIF hingewiesen worden bin, habe ich (versucht) mir diese Dinger etwas näher anzuschauen.
      Dieses Baulelement (ESP8266) hat einen 32 Bit Prozessor (Tensilica L106 32-bit micro controller, mit Taktraten von 80 – 160 MHz) und ein komplettes WIFI-Modul an Board und es gibt damit ausgestattete Breakouts  in verschiedensten Ausprägungen mit unterschiedlich großer Zahl von zugänglichen General-Purpose In/Out (GPIO)-Pins ( http://bbs.espressif.com/download/file.php?id=714 )
      Mit 30 Seiten hat das obige Dokument (es nennt sich “Datasheet”) schon verdächtig wenig Seiten.
      Beim genaueren Durchbättern dieses Dokumentes bestätigt sich mein Verdacht:
      Es sind nirgends Registerbeschreibungen zu finden, in denen die einzelnen Bits der Register der Peripherie des Prozessors beschrieben sind. Genauso gibt es keine Timing-Diagramme für die Spezialfunktionen der verschiedenen Pins (SPI, I2C, I2S, UART, PWM, ADC). Auch für die Steuerung des WIFI Teils müssten verschiedene Register vorhanden sein – sie werden aber nicht einmal erwähnt.
      In den wenigen zu findenden technischen Daten wird z.B. ein “Input Pin Resistance Value” (ein Widerstandswert) mit 2 pF (ein Kapazitätswert) angegeben – nicht gerade vertrauenerweckende Angaben.

      Nachdem Tensilica spezialisiert ist auf kundenspezifisch konfigurierte Mikrocontroller (http://www.cs.virginia.edu/~skadron/cs451/xtensa/cs451_xtensa_data/xtensa.ppt) und daher der Controller höchstwahrscheinlich nicht einem bekannten “Standard-Controller” entspricht, müsste also auch die Beschreibung des 32 Bit Mikrocontrollers und insbesonders auch dessen Befehlssatz (Assembler bzw. Maschinensprache) von ESPRESSIF bereitgestellt werden.
      Rein “gefühlsmäßig” fehlen mir da mindestens einige hundert Seiten Dokumentation – besteht doch allein schon die Doku für den einfacheren ATmega328P (aus dem Arduino UNO) schon aus 650 Seiten.

      Nachdem der Chip ESP8266 ca. 50 kB SRAM (je nach Betriebsmodus des WIFI Moduls) für User-definierte Anwendungen -aber keinerlei ROM- zur Verfügung stellt, ist ein externer Flash-Speicher erforderlich.
      Diese Kombination ESP8266 + Flash-Speicher gibt es in veschiedensten Ausführung, vom Breakout (in dem beide Chips als solche auf der Platine erkennbar sind) bis zum metallgeschirmten Modul ( z.B. ESP8266MOD ESP-12 , 80 MHz Takt, 4 MB Flash-Speicher) des Anbieters  AI-Thinker. Die Homepage von AI-Thinker ( http://bbs.ai-thinker.com/forum.php ) ist aber nur für Leute mit Chinesichen Sprach- (und Lese-) Kenntnissen verständlich.
      Also gibt es für uns “Andere” (nicht des Chinesischen Mächtige) zu dem AI-Thinker-Modul keinerlei verfügbare Info.
      Es gibt aber offenbar eine rege Community ( z.B. http://www.esp8266.com/) rund im diese Module. Dort wird auch versucht fehlende Dokus zu sammeln.
      Nur gibt es auch dort keine Register-Dokumentation und die dort verfügbare geringe Information über Register wird aus den C-Libraries bzw. den entsprechenden Include-Files nach der Methode “Reverse-Egineering” bzw. “Trial and Error” extrahiert .

      Die einzige Möglichkeit, die Register anzusteuern, um irgendwelche – und hoffentlich – die gewünschten – Reaktionen an den Output-Pins des ESP8266 zu erhalten, besteht in der Nutzung der – nicht offengelegten und auch nicht wirklich ausreichend dokumentierten – Firmware von ESPRESSIF.
      Informationen zu den APIs dieser Firmware gibt’s hier : http://bbs.espressif.com/download/file.php?id=1106

      Zusammenfassend:
      Die Dokumentation dieses Chips bzw. der damit erhältichen Boards, ist eine “glatte Katastrophe”.
      Es ist weder die Hardware ausreichend dokumentiert , noch ist die Firmware offengelegt oder ausreichend dokumentiert.
      Mit diesem Chip können daher sicher keine Projekte im Sinne von Open-Source und Open-Hardware realisiert werden.
      Nachdem diese Chips aber sicher nicht (nur) für “Bastler” oder “Hobbyisten” , sondern auch für gewerblichen/industriellen Einsatz hergestellt werden, dürfte die Zuverlässigkeit der damit ausgestatteten Geräte bzw. Systeme wohl eher fraglich sein.
      Solange damit aber nur Wetterstationen für den Privatgebrauch gebaut werden, sind sicher keine ernsthaften Probleme zu erwarten, bei (fast) allen anderen Einsatzfällen kann die unzureichende Dokumentation und die nicht offengelegte Firmware (die Realisierung der APIs) durchaus zu ernsthaften Problemen führen.

      Und die Warnung am letzten Kongress des CCC-Hamburg vor Hardware-Trojanern ( https://digisociety.at/gruppen/infrastruktur/forum/topic/sicherheitsforscher-hardware-trojaner-sind-ernste-gefahr/#post-6725) wird am Beispiel dieses Chips durchaus nachvollziehbar.

    • Erich Pekar
      Teilnehmer
      Post count: 135
      #30738 |

      Ergänzung zum Doku-Umfang des ATmega328P :

      – besteht doch allein schon die Doku für den einfacheren ATmega328P (aus dem Arduino UNO) schon aus 650 Seiten.

      In dieser Doku ( mit den 650 Seiten) ist nur die Hardwarebschereinbung ( mit Systembeschreibung, elektrischen Daten, Register-beschreibung, Protokollen und Timings , Pinnings, Gehäuseformen) enthalten.

      Die Dokumentation jedes einzlnen Befehls ( bzw. Bits) der Maschinensprache ( bzw. Assemblers) umfast nochmals  160 Seiten.
      Also insgesamt zusammen ca. 810 Seiten Dokumentation  allein nur für den  relativ einfachen) ATmega328 ( und kleinere CPUs ) – ohne größere Anwendungsnotizen oder Evaluierungsbord-Beschreibungen.

      Aber selbst beim  ATMega  scheint die Hardware-Debugschnittstelle (debugWire – für “On-Chip”-Debugging)  nicht vollständig beschrieben  zu sein.

    • Erich Pekar
      Teilnehmer
      Post count: 135
      #31340 |

      Ich bin immer noch auf der Suche nach Informationen rund um den ESP8266, nachdem mittlerweile auch schon die Version 12F als ESP8266 von pHat als Module auch bei uns in Wien bei Semaf um ca. 10 € erhältlich ist.
      Nur :
      Es sind außer einigen eher Marketing-artigen Informationen so gut wie fast keine technisch verlässlichen Informationen zum ESP8266 lesbar (in Englisch) im Internet zu finden – auch nicht vom Hersteller ESPRESSIF des Chips ESP8266 und auch (zumindest in Englisch) nicht auf deren Entwickklerseite (http://bbs.espressif.com/viewtopic.php?f=21&t=412&p=1545#p1545. die Informationen dort sind zwar nicht uninteressant, die Hardewaredoku – z.B. Speicherstruktur, Registerstruktur .. und Softwaredoku z.B. Doku der Maschinenbefehele der CPU ist dort aber auch nicht zu finden). Auch für das AI-THINKER Modul (vermutlich bestehend aus dem ESP8266 + Flashspeicher mit je nach Modulversion unterschiedlicher Größe des Speichers unter einem Metallgehäuse) – verbaut auf verschiedenen Bords von Adafruit oder pHat- gibt’s offenbar keinerlei öffentlich zugängliche technische Detail-Info.
      Ich habe aber bisher im Internet (zumnindest in verständlicher lesbarer Sprache/Form) auch nirgendwo noch irgendwelche Infos gefunden, in denen Hinweise auf technische “Partnergrogramme” oder allenfalls auch Lizenzgebühren zu finden gewesen wären, unter denene man als interessierte Firma Zugang zu den fehlenden Detailinformationen finden könnte.
      Es ist daher für mich derzeit immer noch ein Rätsel, welche halbwegs seriöse Firma überhaupt mit diesen Modulen eine Entwicklung bzw. gar Produktion irgendwelcher IoT-Geräte starten sollte, so interessant diese Module auch zufolge der verfügbaren Beschreibungen und Beispiele sein mögen.
      Selbst die FAN-Gemeinde auf http://www.esp8266.com/ die in ihrem wiki auf http://www.esp8266.com/wiki/doku.php die von ihnen gefundenen Informationen zusammenträgt, hat dort noch keine diesbezüglichen Infos ( Hardwarearchitektur, Registerstruktur, Speicherstruktur, Interruptsystem … ) sammeln können.

      Die einzige Quelle zu Informationen über die interne Hardwarestruktur ( wie z.B. welches Bit an welchem Ausdgang gesteuert oder gelesen werden kann) wird dort den Headern des SDK entnommen. Der ESP8266 muss daher selbst in der Fan- bzw. Bastler-Gemeinde als Blackbox behandelt werden, dessen interne “Geheimnisse” erst allmählich durch Trial and Error und mit Hilfe der Headerfiles des SDK erkundet werden müssen. Eine direkte Anfrage bei ESPRESSIF auf verfügbare Dokumentationen zur Firmware des ESP8266 durch ein Mitglied der Fan-Gemeinde hat die klare Antwort ergeben, dass diese Infos nicht zur Verfügung gestellt werden.
      Unter diesen Umständen sind meiner Meinung nach Open-Source Projekte mit diesen Bauelementen nicht wirklich durchführbar und auch in sensitiven Bereichen ( z.B. der Infrastruktur oder in Bereichen mit zu erwartenden Datenschutzproblemen) sollten derartige ( großteils undokumentierte) Baulemente nicht eingesetzt werden, wobei hier der ESP8266 nur ein Repräsentant von möglicherweise auch vielen anderen – großteils undokumentierten – kritischen Baulelementen (mit programmierbarer Logik) sein dürfte.

      Hat vielleicht Jemand schon irgendwo mehr (Detail-)  Informationen zum ESP8266 gefunden  ?

       

       

    • Richard Drechsler
      Teilnehmer
      Post count: 13
      #31374 |

      Ich habe mir die verschiedenen Infos des Herstellers auf der Webseite zusammengesucht und lokal abgelegt. Wie du schon erwähnt hast, gibt es nicht viel mehr Information.

      Immerhin sind da ein paar PDF und XLS Dateien dabei, in denen die internen Adressen der verschiedenen Register (u.a. auch für UART, SPI usw.) und GPIO Pins mit Bedeutung der einzelnen Bits aufgelistet sind. Vom Detailgrad eines ATMEL Dokuments natürlich weit entfernt. Überhaupt nicht vorhanden ist eine Dokumentation des Befehlssatzes, wobei die WLAN Funktionen ja – wie du geschrieben hast – um den XTENSA-Kern herumgebaut sind. Das heißt für mich, dass die diesbezügliche Dokumentation (CPU-Register, Maschinenbefehle etc.) eigentlich von Cadence-IP (Tensilica) kommen müsste, die ja die CPU mit dem Befehlssatz als Basisbaustein für die SOCs zur Verfügung stellt.

      Ich habe dir das Verzeichnis mit meinen bei Espressif gesammelten Infos (in Summe 32 Dateien) im ccDrive freigegeben, falls du diese Dateien nicht ohnehin schon hast.

      Auf der anderen Seite habe ich mir einmal das Datenblatt des WizNet W5100 angesehen, der auf dem Arduino Ethernet Shield verbaut ist – das finde ich mit knapp über 30 Seiten auch nicht wesentlich ausführlicher. Ich weiß auch nicht, inwieweit der TCP/IP-Hardware Stack offen gelegt ist.
      Für mich also auch eine Blackbox – Im Moment muss ich einmal darauf vertrauen, dass er keine unerwünschten Nebeneffekte in meinem Netzwerk hat.

      Fragt sich, was man noch guten Gewissens für seine Basteleien verwenden kann ?

       

    • Erich Pekar
      Teilnehmer
      Post count: 135
      #31391 |

      Für Bastler sollten nicht zugängliche (Detail-) Informationen  nicht wirklich ein Problem sein, da für den (aus Händlersicht erfolgreichen) Absatz dieser Bauelemente – z.B. für die “Maker”-Gemeinde –  zumindest soviele Infos und Support durch die Hersteller bereitgestellt werden muss, dass damit  überhaupt jemand erfolgreich Projekte umsetzen kann.
      Für den Bau von Wetterstationen, Lichtsteuerungen  u.ä. sollten irgendwelche Befürchtungen oder Ängste vor Backdoors oder unerwartetem ( auch Fehl-) Verhalten dieser Geräte bzw. Steuerungen noch relativ bedeutungslos sein.

      Die Hersteller/Lizenzgeber  bzw. deren Partner/Hersteller werden wohl ihre eigene Technologie so weit beherrschen, dass es für  sie kein unerwartetes Verhalten gibt  und ihnen auch bekannt ist, wer allenfalls wirklich vorgesehene Backdoors oder bewusste Schwachstellen nutzt.
      Dass die Hersteller zwischen “Guten” (den eigenenen “Leuten”)  und Bösen ( den “Leuten” der anderen Seiten, bzw.Kriminellen ) unterscheiden müssen,  liegt wohl in der Natur der Sache des  Kampfes zwischen “Gut” und “Böse”.  Nur ist die saubere Abgrenzung zwische “Gut” und “Böse” halt oft nicht so eindeutig möglich und daher oft auch fließend.
      Und da schon länger auch der Bereich der Funktechnologien (Modulations/Demodulations-Verfahren) praktisch vollständig digitalisiert wurde, bietet dieser Umstand vermutlich eine weitere Begründung dafür, die entsprechenden Infos  zu Hardwarestrukturen  und erforderliche Algorithmen bzw. Firmware nicht allgemein zugänglich zu machen.

      Problematisch wird’s halt dann, wenn aus Bastler- oder Studenten-Projekten Start-Ups werden sollen , die andere Dinge als Wetterstationen oder Lichtsteuerungen entwickeln wollen und für diese professionellen Projekte dann auch nicht alle Dokumente ( z.B. über mögliche sicherheitsrelevante Schwachstellen ) der verwendeten Baulelemente bzw. der erforderlichen (herstellerspezifischen) Firmware  zur Verfügung  stehen. Vielleicht ist das auch der Grund, warum in jedem  Electronic-Shop zahlreiche Wetterstationen,. Lichtsteuerungen, Funk-Klingeln , aber kaum andere, ebenfalls sinvolle, Electronic-Gadgets zu finden sind.

      Für Bastler- und Studenten-Projekte würde ich daraus lediglich ableiten, dass mit derartigen, in wichtigen Bereichen undokumentierten, Bauelementen  keine Open-Source Projekte durchgeführt werden können – weil eben die wichtige Source “Bauelement” nicht wirklich “open” (vollständig dokumentiert) ist.

      Für den Bereich professioneller Produkte würde ich daraus ableiten, das mit nicht vollständig dokumentierten Bauelementen/Modulen ( Hard- und Firm-Ware ) keine  – aus elektrotechnischer , funktechnischer und Datenschutz-Sicht –  sicheren  Produkte entwickelt werden können.

    • Erich Pekar
      Teilnehmer
      Post count: 135
      #31441 |

      im Internet gibt’s von “Bastler”- Seite  auch recht gute  Übersichten mit eigenen Erkenntnissen/Projekten  und Links  zu den offiziell zugänglichen Informationen zu ESP8266  ( und  “Derivaten” )

      z.B. :    http://www.msxfaq.de/sonst/bastelbude/esp8266.htm

       

       

       

       

    • Erich Pekar
      Teilnehmer
      Post count: 135
      #31454 |

      Nachtrag : Das Impressum  http://www.msxfaq.de/sonst/impressum.htm  obiger Seite ist geradezu lesenswert !

Ansicht von 6 Antwort-Themen

You must be logged in to reply to this topic.