Esp32-s2?

Hallo,

Ich bin noch neu und ziemlich am Anfang von ESPuino, drum find ich irgendwie nicht wonach ich suche. Aber wenn man kein Bluetooth will oder braucht, gibt es dann irgendeinen Grund nicht den S2 zu nehmen? Er scheint ja doch neuer, effizienter und ein bisschen stromsparender zu sein, und tuniii hat ja scheinbar schon einiges refactored, dass die ESPuino Software darauf läuft.

Als Boards hatte ich ins Auge gefasst:

  • FeatherS2: Tolle Ausstattung, aber leider etwas teuer und nur schwer zu bekommen
  • LILYGO T8 ESP32-S2 V1.1 (ohne Display): Abgesehen von 4MB Flash noch passendere Ausstattung, aber nur aus China zu bestellen
  • Wemos S2 Mini V1.0.0: Nur 4 MB Flash und 2MB PSRAM (reicht hoffentlich?) und man müsste Ladeschaltung & SD-Karte selber dranlöten, dafür ist es (bei opencircuit.shop) billig und leicht verfügbar.

Vielleicht noch zu „meinen“ Anforderungen:

  • Tochter liebt ihre Speicherkarte mit Hörbüchern und hat kürzlich Kinderradios entdeckt, die man wohl per Webstream empfangen könnte
  • Ein RC522 soll dran und ein paar TTP223 Knöpfe, wahrscheinlich kein Drehencoder
  • Voraussichtlich Stereo, um den mit S2 eingesparten Strom gleich wieder zu verbraten
  • Ich möchte einen richtigen AUS-Knopf ohne Deepsleep und würde wohl einen pololu Schalter mit einbauen, bzw. je nach Board irgendwie den EN-Pin vom 3.3V Regler manipulieren.
  • Da es einfacher ist, passende Komponenten zu finden, werden es wohl LiIon Akkus mit Schutzschaltung, auch wenn ich LiFePo4 an sich sehr mag

Möchte jemand versuchen, mich zu überzeugen, dass ein ESP32 ohne S2 doch die bessere Alternative ist? Trotz dem scheinbar langsameren SD-Zugriff, etwas höherem Stromverbrauch und obwohl ich Bluetooth nicht brauche?

Viele Grüße,
Olaf

@tuniii hatte das mal versucht und ist afaik vom s2 wieder abgekommen. Es ist halt letztlich sagen wir mal ein kastrierter esp32 und besitzt nur einen Core. Wenn dann ist eher der S3 interessant.
Ansonsten reden wir beim ESPuino von einem Stromverbrauch von 150 mA von SD und 180 mA per Webstream. Also da kann man schon ein paar Stunden hören mit nem passenden Akku.

Ok, dann bin ich ja froh, dass ich gefragt habe. Beim Überfliegen des Codes ist mir halt aufgefallen, dass eigentlich sowieso alle Tasks auf einem Core laufen und dass es viele Verweise auf den S2 gibt. Daher dachte ich, dass das schon alles funktioniert, und der S2 nicht so sehr als „kastriert“ anzusehen ist, sondern eher als „im Leistungsumfang genau passend für die Anwendung“.

Woran es konkret scheitert kann uns aber vermutlich nur tuniii selbst sagen? Würd mich freuen, wenn er antwortet.

In der Zwischenzeit überleg ich mir nochmal, was für ein Board ich nehme, und ob es nicht vielleicht doch eines mit LiFePo4 Laderegler wird…

Ich glaube es hat an Speicher gemangelt. Muss @tuniii was zu sagen.
In Sachen esp32 kenne ich in Sachen lifepo nur mein eigenes Board. Hatte auch mal überlegt nach dem s3 zu schauen, aber bisher hatte ich keinen Bock. Vorteil wäre mehr gpios und ggf auch mehr Durchsatz bei SD.

Richtig gescheitert ist es eigentlich nicht. Es lief stabil, allerdings musste ich ein paar Libs anpassen und es war damals ein ziemliches „gebastel“ bis es lief, da der Support vom Arduino Core noch nicht offiziell war. Würde ich es heute angehen, dann würde ich den S3 nehmen, welcher der eigentliche Nachfolger vom S ist. Der S2 ist eher als Nachfolger vom 8266 zu sehen. Allerdings habe ich das aus zeitlichen Gründen nicht weiterverfolgt.

Das klingt jetzt schon weniger pessimistisch. Vielleicht bestelle ich mir bei Gelegenheit einfach so ein Wemos S2 Mini mit und schaue, ob es mit dem aktuellen Arduino Core einfacher geht. Ob ich wirklich Zeit dafür finde ist aber noch ungewiss…

Dann macht es doch mehr Sinn den s3 zu nehmen, oder? Der hat auch 16 MB Flash. PSRAM hat er auch.
https://www.wemos.cc/en/latest/s3/s3.html

Schade eigentlich, dass der keinen LiPo-Laderegler hat. Vielleicht bestelle ich sowas mal, um den SD-Durchsatz insbesondere zu testen.

Wobei die Esp32 S3 von hier sogar nen LiPo Laderegler haben:
https://esp32s3.com/

Ich gibt es wohl bei AliExpress auch als Remake, da bekommt man die günstiger. Interessant finde ich dass die verlinkten hier zwei Linearregler haben, wobei so richtig den Sinn habe ich da auch noch nicht gesehen.

Der zweite LDO lässt sich über einen GPIO steuern, um im Standby Strom zu sparen.

hier mal ein weiteres S3 Board…

Low Power klingt ja immer gut für „unsere“ Anwendung

Tatsächlich bin ich bereits dran, ein eigenes Board für den S3 zu designen. Dazu wollte ich wieder das von Wemos als Vorlage benutzen, wobei der zweite USB-Port für uns unsinnig ist. Man kann darüber (ohne USB-seriell-Wandler) die Firmware flashen. Klingt erstmal gut, aber damit man das kann, muss man das Ganze vorher aktiviert haben. Ergo muss man es eh über andere Wege flashen und dann kann man sich das auch sparen.
Ansonsten erhoffe ich mir vom S3, dass der SD-Durchsatz steigt und dass man sich, aufgrund der weiteren GPIOs, den Port-Expander sparen kann. SDMMC scheint man offenbar, im Gegensatz zum ESP32, auf beliebige GPIOs legen zu können.
Hinsichtlich der Ausstattung gibt es nun auch welche, die 8 MB Flash haben und 2 MB PSRAM. Das wäre für unsere Zwecke hier auf jeden Fall ausreichend. Deswegen habe ich einen solchen WROOM (nicht WROVER) auch mal bestellt als Modul.

Aber ich möchte jetzt keine Termine abgeben, zumal völlig unklar ist, ob der ESPuino-Code da gescheit drauf laufen wird.

Soweit ich das bisher einschätzen kann, lässt sich der S3 von Werk aus über USB flashen. Ich hatte bisher nur das Problem, dass bei einem Dauer-Reset der Software das Flashen nur über USB funktioniert, wenn man zuvor über den Reset- und Boot-Knopf den S3 in den Bootloader schickt.

Ups, ich sehe gerade, ich habe den Satz nicht richtig zu Ende gelesen: USB OTG Console - ESP32-S3 - — ESP-IDF Programming Guide latest documentation.

Also es gibt wohl doch Möglichkeiten (drei Stück). Aber kriegt man darüber dann auch serielle Ausgaben? Weil ich glaube ohne ist das mit Debugging eher schwer wenn was nicht geht. Am End ist ein CH340C auch nicht wirklich teuer. Und zudem gewinnt man halt zwei GPIOs (19, 20) - nehme ich zumindest an.

@tuniii Hast du ESPuino schon auf den S3 laufen?

Ja das funktioniert auch. Im Betriebssystem taucht dann auch ein serieller Port auf.
Man spart entweder RX und TX oder USB+ und USB-. Beides auf einem Board würde keinen Sinn machen, nur bei den Dev-Boards ist das natürlich zum Entwickeln und Ausprobieren sinnvoll.

Ein großer Vorteil der nativen USB-Schnittstelle ist die Debug-Möglichkeit über „JTAG over USB“. Damit kann man dann „richtig“ Debuggen ohne den Umweg über serielle Ausgaben.

Nein, ich habe keine entsprechende Hardware. Ich habe aktuell ein S3-Dev-Board und einen Prototypen eines anderen Projekts mit einem S3. Dort konnte ich schon etwas Erfahrung sammeln. Allerdings bisher hauptsächlich mit dem ESP-IDF.

Vermutlich ist der Aufwand nicht so groß, da Arduino ja eigentlich die HAL ist. Beim S2 ging die „Portierung“ auch recht flott. Einzig die Ansteuerung von I2S ist etwas anders und kann auf beliebige GPIOs gelegt werden. Für den S2 hatte ich damals die Lib „ESP32-audioI2S“ angepasst. Die Änderungen könnte man vermutlich ähnlich auch für den S3 übernehmen.

Mit etwas Hardware könnte ich in dem Bezug auch unterstützen, aber aktuell komme ich nicht dazu mir das selbst aufzubauen.

Eine gemeinsame Code-Basis für beide Controller sollte möglich sein.