ich bin auch schon gedanklich bei der Complete Platine. Ich bin allerdings von der A1S weg - hin zur Espressif Lyrat als „Vorlage“ geschwenkt. Die Platine ist deutlich besser beschrieben und es steht eine Schematic zur Verfügung.
Folgende Probleme beschäftigen mich zur Zeit noch:
Der verwendete Audio-Chip ES8388 benötigt - wenn ich das richtig sehe - eine eigene Library/Treiber…
Dem WROVER „fehlen“ ja die GPIOs 16 & 17, es wird also knapp. Sehr wahrscheinlich müsste ich die GPIOs für die Buttons einsparen
Die Touchpads und I2C würden der GPIO Knappheit ebenfalls zum Opfer fallen
Sofern eine einheitliche Entwicklung einer solchen Platine von der Community hier gewünscht wird, sollten wir auch überlegen die Zeichnung bei easyeda oder ähnlichen Anbieter zu realisieren. Das hätte den Vorteile, das wir die „Schwarmintelligenz“ nutzen und mit mehreren Leuten über Zeichnung und PCB schauen könnten.
Eure Einschätzung zum „Customized“ Lyrat würde mich aber durchaus interessieren…
WROVER (da gibt es inzwischen auch neuere Revisionen als B, aber weiß nicht, ob da mein Herz dran hängt)
DAC/Amp: Da habe ich keinen Überblick. Auf jeden Fall etwas, wo man mit den drei I2S-Pins hinkommt und wo man nicht noch i2c als Controller braucht. Weil das wird pintechnisch nicht gehen.
Integrierte Ladeelektronik für LiPo
Abschaltung: Grundsätzlich ist das mit den Mosfets ok. Worauf @compactflash jedoch schon eine Weile erfolgreich setzt: LTC2954. Da schaltet man den gesamten ESP32 gleich mit aus. Vorteil an dieser Sache ist: Sollte die Software mal hängen, kriegt man den ESP32 so auf jeden Fall, auch im Batteriebetrieb, neu gestartet. Bei den Mosfets braucht’s da entweder einen mehr oder weniger versteckten Reset-Button oder man muss halt das Gehäuse öffnen.
SD_MMC (Slot onboard)
PN5180 als RFID (braucht mehr GPIOs aber die Sensitivität schlägt den RC522 um Längen)
USB/UART-Converter fänd ich auch fein, weil man das Teil damit auch geflasht kriegt, wenn es eingebaut ist. Ob man das wirklich braucht, hängt ein Stück weit aber auch damit zusammen, ob man künftig OTA zum Flashen nutzt.
LDO, welcher aus 5V => 3.3V macht. Ich persönlich möchte das auch weiterhin per USB anschließen.
Breakouts als JST-Stecker (ich benutze PH, aber gibt ja auch andere)
Breakouts für Neopixel, Taster, Drehencoder, Serial, Batterie (ggf auch Reset)
Optionale Kopfhörerplatine, die extern angebunden wird. Technisch nicht notwendig, aber macht es halt einfacher, die Platine im Gehäuse zu platzieren.
Ist Kopfhörer eingesteckt, so geht der Lautsprecher aus und umgekehrt
Batteriespannungs-Messung
Insgesamt ist es auf jeden Fall wichtig, dass sich die Stromaufnahme im Batteriebetrieb und Deepsleep in Grenzen hält. Ich meine die Lolins liegen so zwischen 100 und 200 uA. Da kann ich sehr gut mit leben.
Bis auf den WROVER auf jeden Fall Dinge, die ich schon jetzt mit Carrier-PCBs + Kopfhörerplatine hinkriege.
Optional:
Analoges Auslesen der Buttons. Spart GPIOs.
Ich frage mich immer wieder, wieviel Zugewinn eine Antenne brächte. Bluetooth geht z.B. ein paar Meter, aber wennst aus dem Raum rausgehst, ist Feierabend.
Übrigens:
Wenn man nicht per PN5180 aufwecken will, kommt man mit obigen Zielen, auch ohne analoges Einlesen der GPIOs, exakt hin. Übrig ist dann halt keiner mehr.
Die einzelne Kopfhörerplatine hat auch den Vorteil, dass man diese beweglich lagern kann. Damit die Buchse beim grob Hantieren nicht aus der Platine bricht.
Wenn man den Bus nach außen legt, dann sollten zusätzliche I/Os über Expander kein Problem sein. Z.B. sind dann auch weitere Sensoren oder wie heute gewünscht ein Mikro theoretisch kein Ding (das habe ich noch nie ausprobiert)
falls man eine Ladeelektronik integeriert, dann sollte man vielleicht mal schauen ob man vom Lipo weggeht und z.B. wie die Kollegen im Nachbarforum einen LiFePo4 verwendet. In der Toniebox wird ein Ni-MH verwendet
Sehe ich auch so … bzw. reicht es ja, wenn die „Buchse“ nicht aufgelötet ist.
Aus diesem Grund habe ich auch die Ladeelektronik ausgelassen. So kann die Power-Platine irgendwo im Gehäuse platziert werden und man ist flexibel was den Akku angeht.
Hätte ich auch gerne, ist bei LiFePo4 nicht so trivial.
Mal unabhängig vom DAC, wäre i2c ja schon fein… Lasst uns doch mal GPIOs sammeln.
Was meinst du damit? Also welche einsparen kannst durch analoges Einlesen. Ansonsten werden gebraucht:
SD_MMC (1 Bit): SCK, MISO, MOSI => 3
PN5180: SCK, MISO, MOSI, CS, BUSY, RST (und bei Aufwecken auch IRQ) => 6 (7)
Drehencoder: CLK, DT, Button (3)
Tasten (3)
Neopixel (1)
I2S: BCLK, LRC, DOUT (3)
Kopfhörer-Detect (1) (Kann man auch weglassen, wenn man zwischen Lautsprecher und Kopfhörer keine getrennten Maximallautstärken braucht.)
Batteriespannung (1)
Bei einem WROVER muss man halt auf PN5180-IRQ oder z.B. Kopfhörer-Detect verzichten. Alles zusammen geht nicht. Außer man liest die Buttons halt analog ein. Oder wählt ein anderes Bedienkonzept. Oder nimmt keinen PN5180. Man muss halt die GPIOs geschickt verteilen, weil man nicht alle GPIOs uneingeschränkt für alles verwenden kann.
da bekommt man aber auch bloß 2 I/Os wenn das reicht isses okay. Nachtrag: eigentlich kommt doch noch der Button vom Drehgeber und der Kopfhörer detect dazu, oder?
Auf den Kopfhörer detect würde ich nicht (zum Schutz der Kids) verzichten.
Kleine Erfahrung von mir. Ich habe ein Sonoro AU1300 und da ist die Tastenfront auch durch Widerstände kodiert. Im Laufe der Zeit waren die Taster leicht korodiert, dadurch machte fast jeder Taster jetzt was anderes. Das analoge Einlesen kann also auch eine Fehlerquelle werden
Im Netz hab ich sowas gefunden, obwohl das nicht zur angehängten Kurve passt.
100% = 13,4
75% = 13,25
50% = 13,12 - 13,0
25% = 12,8 - 13,0
0% = 10,4 - 12,0
Da kann man sicherlich auch mit eremit telefonieren - er hat da sicherlich einen Tipp
Eigentlich es ja genau das, was man gerne hätte. Aber zur Ableitung der Restenergiemenge ist es natürlich doof, hehe. Zumal die ADCs des ESP32 jetzt auch keine Koryphäen auf ihrem Gebiet sind. Schon alleine im Spannungsbereich von >=3V. In dieses Problem bin ich schön eingelaufen, als ich einen Spannungsteiler mit 75% / 25% gemacht habe.
Bei LiPo ist es allerdings ok für mich. Oder anders gesagt: Eine Füllstandsanzeige nur auf Basis der Spannung ist für mich hinreichend genau. Das muss ja kein Präzisionsinstrument sein.
Ich hab noch nen Punkt für die Wunschliste: 3,3V Ausgänge, die am Mosfet hängen. Hab mir Taster mit LED gekauft, die ich gern mit Spannung versorgen würde, wenn der ESPuino läuft. Eigene 3Pin Anschlüsse wären natürlich noch besser, aber da ist die Kompatibilität dann wieder schwierig.
Ich habe hier einen MCP23017 I2C-Port-Expander.
Seit gestern spiele ich mit der Verdrahtung herum, um mit dem Lolin D32 Pro, SD-MMC, etc alles anschließen zu können.
Ich werde die Woche noch den MCP23017 ausprobieren.
Es spricht eigentlich nichts dagegen, für jeden unterstützen RFID-Reader einen Pinheader bereitzustellen, oder ist der Platz knapp? Die können ja alle SPI.
Damit wäre man flexibel, obwohl ich auf den PN5180 setze.
Die Thorsten´s hatten sich ja bereits im November zu einer Custom HW ausgetauscht daher melde ich mich jetzt hier bei euch.
Ich hatte vor einigen Monaten das ESP32 Board bereits angefangen aber Corona bedingt und der aktuell schwierigen Beschaffungssituation vieler Bauteile andere Aufgaben.
Das Board geht nach dem CNY in die Produktion.
Die Platine ist momentan wie folgt aufgebaut:
ESP32-A1S
FEPO/LIPO incl. Powerpath
USB to UART Converter
Class-D Mono AMP
I2C Expander PCA8574APW
USB-Typ C
Akku Verpolungsschutz
Kopfhörerbuchse mit Abschaltung der AMP
Die Schaltung verbraucht circa 35uA im Standby (Abschaltung des ESP)
Buttons via I2C Expander. (weitere I2C devices möglich )
Automatische HW Abschaltung des Akkus.
Das sieht sehr gut aus. Bei den Bezeichnungen gehe ich mit, die sollten etwas erweitert werden.
Du schriebst die T(h)orsten? Thorsten Voss und @biologist ?
Da habe ich eine Frage: Unterm Strich ist mir egal was auf dem Board steht. Haben die Tonuino-Jungs da irgendwelche Aktien dran oder Ansprüche? Nicht, dass der nächste Knatsch schon wieder vorprogrammiert ist.
Enthält die Platine auch eine Ladeelektronik für den Akku? Wenn ja, auf welchen Akkutyp hast du gesetzt?
Ich habe mal versucht die gewünschten Eigenschaften zu sammeln (Es wäre vielleicht gut, diese auch in den Kopf des Themas zu übernehmen, damit das nicht im Text untergeht):
freie IOs für Taster und LEDs → sollte durch den PCA8574APW gegeben sein
WROVER (da gibt es inzwischen auch neuere Revisionen als B, aber weiß nicht, ob da mein Herz dranhängt) → welche Version das ist weiß ich nicht aber der ESP32-A1S ist das Ai-Thinker’s Äquivalent zu Espressif’s ESP32-WROVER
Abschaltung: Grundsätzlich ist das mit den Mosfets ok. Worauf @compactflash jedoch schon eine Weile erfolgreich setzt: LTC2954 4. Da schaltet man den gesamten ESP32 gleich mit aus. Vorteil an dieser Sache ist: Sollte die Software mal hängen, kriegt man den ESP32 so auf jeden Fall, auch im Batteriebetrieb, neu gestartet. Bei den Mosfets braucht’s da entweder einen mehr oder weniger versteckten Reset-Button oder man muss halt das Gehäuse öffnen. → ist umgesetzt
SD_MMC (Slot onboard) → ist umgesetzt
USB/UART-Converter fänd ich auch fein, weil man das Teil damit auch geflasht kriegt, wenn es eingebaut ist. Ob man das wirklich braucht, hängt ein Stück weit aber auch damit zusammen, ob man künftig OTA zum Flashen nutzt. → ist enthalten
Ist Kopfhörer eingesteckt, so geht der Lautsprecher aus und umgekehrt → ist enthalten
Lange Akkulaufzeit (also wenig Verbrauch im sleepmode) → ist enthalten
Reset-Taster → ist enthalten
Folgende Wünsche sind offen bzw. habe ich in deiner Erläuterung nicht gefunden:
Optionale Kopfhörerplatine, die extern angebunden wird. Technisch nicht notwendig, aber macht es halt einfacher, die Platine im Gehäuse zu platzieren.
Breakouts für Neopixel, Taster, Drehencoder, Serial, Batterie (ggf. auch Reset)
Batteriespannungs-Messung
Möglichkeit für Stereo Sound und Kopfhörer
SD_MMC
LiPo Battery Modus (inkl. Laderegler)
Laden und Flashen über selben USB Anschluss
Ein / Aus schaltbar (ähnlich Polulu Switch)
Breakouts als JST-Stecker (ich benutze PH, aber gibt ja auch andere)
LDO, welcher aus 5V => 3.3V macht. Ich persönlich möchte das auch weiterhin per USB anschließen.
Reset-Taster auch gern einen 2-PIN-Header (da spart man sich das Aufschrauben des Gehäuses, wenn was klemmt bzw. ist man freier in der Gehäusegestaltung)
PN5180 als RFID (braucht mehr GPIOs aber die Sensitivität schlägt den RC522 um Längen)
Integrierte Ladeelektronik für LiPo
DAC/Amp: Da habe ich keinen Überblick. Auf jeden Fall etwas, wo man mit den drei I2S-Pins hinkommt und wo man nicht noch i2c als Controller braucht. Weil das wird pintechnisch nicht gehen.
Ich weiß, dass das Design und routen einer Platine eine mega Arbeit ist. Keine Ahnung, ob du die weiteren wünsche noch einpflegen möchtest bzw. kann man die Sinnhaftigkeit ja auch zur Diskussion stellen.
Ich würde mich freuen, wenn wir uns auf eine gemeinsame Platine verständigen können. Das ist dann so ein bisschen wie Apple (man hat eine festgelegte Hardware und läuft da läuft diese mit der Software Hand in Hand) – vielleicht eher ein C64 da die Hardware ja erweiterbar sein soll
Ihr dürft mich gern korrigieren, wenn ein Fehler in der Zusammenstellung ist