Jump to content
🌟 Home Assistant in WallDisplay! (2.3.0-Beta) 🌟 ×
NOTICE / HINWEIS: iOS 18 Update and Today Widgets ×

SkriptÀnderung killt Shelly


Recommended Posts

10 minutes ago, thgoebel said:

Ja, Johann, die Lötpads fĂŒr den GPIO-Port sind bei allen Minis gleich angeordnet. Hier ist das Teardown der Minis:

https://www.smarthome-forum.eu/thread/22066-teardown-shelly-mini/

Danke! Print sieht etwas anders aus bei der 3 Gen auch die Chipbeschriftung weicht ab.

Link to comment
Share on other sites

Ich vermute bei dem Posting eher einen Tippfehler:

Quote

 Shelly-C3F8 MCU. The Shelly-C38F 

Da steht C3F8 und direkt im Anschluss C38F wie es auf dem Chip auch aufgedruckt ist. Ist mir aber auch erst durch deine Bemerkung aufgefallen 😇

Edited by tvbshelly
Link to comment
Share on other sites

Posted (edited)
9 hours ago, thgoebel said:

Bitte berichte hier, wie Du vorgegangen bist.

---

Leider bin ich nicht weitergekommen. Ich habe einen USB-Adapter verwendet, um das Device zunĂ€chst mit PuTTY zu verbinden. Der Adapter funktioniert einwandfrei, wie der Test durch das Verbinden von RXD und TXD zeigt. Zum Vergleich habe ich einen Ă€lteren ESP8266 angeschlossen und erhielt dort eine Konsolenmeldung. Beim neuen ESP82C3 hingegen gab es leider keine Reaktion. Das [esptool-js](https://espressif.github.io/esptool-js/) sollte eigentlich eine vernĂŒnftige Meldung ausgeben. Wenn ich etwas falsch mache, lass es mich bitte wissen.

---

Edited by johann.pascher
Link to comment
Share on other sites

  • Members
12 minutes ago, johann.pascher said:

Hier ist eine verbesserte Version deines Textes:

Mein Text?

Zum Thema: In dem ganz oben verlinkten Artikel behaupte ich ja, daß Shellies der Generation 2 und 3 nicht mit „normalen“ Mitteln (ESP-Tool) zu flashen sind. Es ist ein Tool der Shelly-Entwickler erforderlich, ĂŒber das ich wegen eines NDA nicht sprechen/schreiben darf. Damit ist es mir gelungen, eine neue Firmware auf einen defekten Shelly Mini 1 aufzuspielen.

Link to comment
Share on other sites

8 minutes ago, thgoebel said:

Mein Text?

Zum Thema: In dem ganz oben verlinkten Artikel behaupte ich ja, daß Shellies der Generation 2 und 3 nicht mit „normalen“ Mitteln (ESP-Tool) zu flashen sind. Es ist ein Tool der Shelly-Entwickler erforderlich, ĂŒber das ich wegen eines NDA nicht sprechen/schreiben darf. Damit ist es mir gelungen, eine neue Firmware auf einen defekten Shelly Mini 1 aufzuspielen.

Entschuldiguing die erste Zeile war nicht vorgesehen. OK, dann ist es fĂŒr mich nicht machbar, wenn ich das Tool der Entwickler nicht besitze. GrundsĂ€tzlich wundert es mich, dass ĂŒber die serielle Verbindung absolut keine Zeichen kommen.

Link to comment
Share on other sites

Posted (edited)
15 hours ago, tvbshelly said:

Ah, ok. Gut zu wissen.

Es ist durchaus denkbar, dass ein einleitendes Handshake-Protokoll erforderlich ist, das den Baustein erst zu einer Antwort veranlasst. Voraussetzung dafĂŒr ist, dass man das Protokoll und auch die Übertragungsrate kennt. Andernfalls mĂŒssten viele Versuche vom Tool durchgefĂŒhrt werden, um den Baustein zu einer Antwort zu bewegen. Trotzdem ist das nicht unmöglich, da auch dieser Baustein per JTAG ausgelesen werden kann, was letztlich immer funktioniert. Allerdings ist dafĂŒr ein speziell angepasstes Tool erforderlich, das diesen Baustein bereits in seiner Liste hat. Ich habe mich damit frĂŒher lĂ€nger beschĂ€ftigt. Iheir kurz wie JTAG funktionet: 

JTAG (Joint Test Action Group) ist ein Standard fĂŒr das Testen und Debuggen von digitalen Schaltungen, insbesondere von Mikrocontrollern und Prozessoren. Es ermöglicht direkten Zugriff auf die internen Register und Speicher eines Chips ĂŒber eine spezielle Schnittstelle.

Hier ist, wie JTAG grundsÀtzlich funktioniert:

  1. Hardware-Schnittstelle: JTAG verwendet eine serielle Schnittstelle mit mindestens vier Signalleitungen: TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), und TMS (Test Mode Select). Manche Implementierungen verwenden auch eine fĂŒnfte Leitung, TRST (Test Reset).

  2. Scan-Kette: Der JTAG-Controller auf dem Chip enthĂ€lt eine Reihe von Registern, die in einer Kette miteinander verbunden sind, sogenannte Scan-Ketten. Über diese Ketten können Daten in die Register geschrieben oder daraus gelesen werden.

  3. Betriebsmodi: JTAG operiert in verschiedenen Modi, die ĂŒber TMS gesteuert werden. Zu den wichtigsten Modi gehören der Shift-Modus zum Verschieben von Daten durch die Kette und der Update-Modus zum Übertragen der Daten in die Zielregister.

  4. Test und Debugging: Durch die JTAG-Schnittstelle kann man Befehle an den Chip senden, um z.B. den Prozessor anzuhalten, Speicher auszulesen oder zu schreiben, und PeripheriegerÀte zu steuern. Dies ermöglicht das Testen und Debugging auf einer sehr niedrigen Ebene, oft wÀhrend der Entwicklung oder zur Fehlersuche im Feld.

  5. Boundary-Scan: JTAG bietet auch die Möglichkeit, die Verbindungen zwischen den Chips auf einer Leiterplatte zu testen (Boundary-Scan), indem es Signale an die I/O-Pins eines Chips sendet und die resultierenden Signale an den anderen Enden der Verbindungen ĂŒberprĂŒft.

Ja, der ESP32-C3 verfĂŒgt ĂŒber eine JTAG-Schnittstelle, die fĂŒr Debugging- und Programmierzwecke verwendet werden kann. Der ESP32-C3 unterstĂŒtzt JTAG ĂŒber seine GPIO-Pins, die entsprechend konfiguriert werden können.

### JTAG-Schnittstelle beim ESP32-C3:
- Der ESP32-C3 kann die JTAG-FunktionalitĂ€t ĂŒber vier GPIO-Pins realisieren, die mit den JTAG-Signalen verbunden werden mĂŒssen: TDI, TDO, TCK und TMS.
- Diese Pins sind standardmĂ€ĂŸig nicht zugewiesen und mĂŒssen konfiguriert werden. Die Standard-Pinbelegung sieht normalerweise so aus:
  - TDI: GPIO12
  - TDO: GPIO13
  - TCK: GPIO9
  - TMS: GPIO10

### Tools fĂŒr JTAG mit dem ESP32-C3:
- **OpenOCD** (Open On-Chip Debugger): OpenOCD ist ein weit verbreitetes Open-Source-Tool, das JTAG-Debugging unterstĂŒtzt. Es kann mit dem ESP32-C3 verwendet werden, um Code zu debuggen, Speicherinhalte zu ĂŒberprĂŒfen und vieles mehr.
- **Espressif-IDE (Eclipse mit Espressif-Plugin)**: Diese IDE unterstĂŒtzt JTAG-Debugging und kann zusammen mit OpenOCD verwendet werden. Espressif bietet auch spezifische Konfigurationen und Dokumentationen fĂŒr die Verwendung von OpenOCD mit ESP32-Chips, einschließlich des ESP32-C3.
- **JTAG-Hardware-Debugger**: Um JTAG-Debugging zu verwenden, benötigt man auch einen kompatiblen JTAG-Debugger wie den Segger J-Link, Olimex ARM-USB-OCD-H oder FTDI-basierte Debugger.

### Beispielkonfiguration:
Um OpenOCD mit dem ESP32-C3 zu verwenden, muss eine passende Konfigurationsdatei ausgewÀhlt oder erstellt werden, die die JTAG-Pinbelegung und die Zielarchitektur (RISC-V bei ESP32-C3) definiert. Espressif stellt entsprechende Konfigurationsdateien und Anleitungen bereit, um den Einstieg zu erleichtern.

### Zusammenfassung:
Der ESP32-C3 verfĂŒgt ĂŒber eine JTAG-Schnittstelle, und es gibt Tools wie OpenOCD und die Espressif-IDE, die JTAG-Debugging fĂŒr diesen Chip unterstĂŒtzen. Diese Tools ermöglichen es, den Chip auf einer sehr niedrigen Ebene zu debuggen und zu programmieren, was besonders in der Entwicklungsphase nĂŒtzlich ist.

Alles in allem gibt es durchaus Möglichkeiten, auch einen Chip auszulesen und neu zu beschreiben, der kundenspezifisch von Shell geĂ€ndert wurde. Allerdings ist der Aufwand dafĂŒr sehr hoch. Daher sollte man die Versuche zunĂ€chst mit einem Baustein durchfĂŒhren, der eindeutig in Ordnung ist.

Wer Lust und Zeit hat, kann sich gerne einlesen und ausprobieren, was möglich ist. Meine Motivation dafĂŒr ist jedoch gering, da ich meine Zeit lieber mit anderen Dingen verbringen.

Edited by johann.pascher
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Erstelle neue...