Zeigt her eure ESPuinos

@admiral_snyder

Hattest du zufällig schon Zeit die aktuelle Kopfhörerplatine zu integrieren?

Falls jemand bedarf an einem von @admiral_snyder s Gehäusen hat kann sich gerne melden.

Farben müssten wir mal schauen. Wenn jemand Vorschläge hat kann er sie gerne mitteilen.

Eine Frage: Diese Switchs haben out of the box aktiv einen high Pegel.
Hast du die Firmware angepasst oder die Lötbrücken auf den Switch gemacht, damit diese aktiv low reagieren?

Ich dachte ursprünglich auch daran die Lötbrücken zu setzen anstatt eine Firmwareanpassung zu machen. Doch mit der Lötbrücke funktioniert das dann zwar mit aktiv Low (äquivalent zu den Tastern) aber leider leuchten dann dauernd die LEDs am Switch. Die LEDs berücksichtigen leider nicht die Änderung des aktiven Pegels. Deshalb habe ich eine Konfigurationsmöflichkeit in die Firmware aufgenommen. Damit erspare ich mir die Lötbrücken und den nutzlosen zusätzlichen Stromverbrauch.

Die Änderung habe ich bereits via PR im dev-branch vorgeschlagen.
Diese kann aber auch schnell in den bestehenden Source übernommen werden.

Hier die Änderung in Button.ccp

Hier der zu tauschende Block (copy & paste):

		// Buttons can be mixed between GPIO and port-expander.
		// But at the same time only one of them can be for example NEXT_BUTTON
		#if defined(BUTTON_0_ENABLE) || defined(EXPANDER_0_ENABLE)
				gButtons[0].currentState = Port_Read(NEXT_BUTTON) ^ BUTTON_0_ACTIVE_STATE;
		#endif
		#if defined(BUTTON_1_ENABLE) || defined(EXPANDER_1_ENABLE)
				gButtons[1].currentState = Port_Read(PREVIOUS_BUTTON) ^ BUTTON_1_ACTIVE_STATE;
		#endif
		#if defined(BUTTON_2_ENABLE) || defined(EXPANDER_2_ENABLE)
				gButtons[2].currentState = Port_Read(PAUSEPLAY_BUTTON) ^ BUTTON_2_ACTIVE_STATE;
		#endif
		#if defined(BUTTON_3_ENABLE) || defined(EXPANDER_3_ENABLE)
				gButtons[3].currentState = Port_Read(ROTARYENCODER_BUTTON) ^ BUTTON_3_ACTIVE_STATE;
		#endif
		#if defined(BUTTON_4_ENABLE) || defined(EXPANDER_4_ENABLE)
				gButtons[4].currentState = Port_Read(BUTTON_4) ^ BUTTON_4_ACTIVE_STATE;
		#endif
		#if defined(BUTTON_5_ENABLE) || defined(EXPANDER_5_ENABLE)
				gButtons[5].currentState = Port_Read(BUTTON_5) ^ BUTTON_5_ACTIVE_STATE;
		#endif

		// Iterate over all buttons in struct-array

In den settings.h sind dann noch die neuen Definitionen einzufügen (copy & paste):

	// Buttons active state: Default 0 for active LOW, 1 for active HIGH e.g. for TTP223 Capacitive Touch Switch Button (FinnBox)
	#define BUTTON_0_ACTIVE_STATE 1
	#define BUTTON_1_ACTIVE_STATE 1
	#define BUTTON_2_ACTIVE_STATE 1
	#define BUTTON_3_ACTIVE_STATE 0    //  keep rotary switch active low 
	#define BUTTON_4_ACTIVE_STATE 1
	#define BUTTON_5_ACTIVE_STATE 1

Nach folgendem Zeilen einfügen:

	// Buttons (better leave unchanged if in doubts :-))
	constexpr uint8_t buttonDebounceInterval = 50;      // Interval in ms to software-debounce buttons
	constexpr uint16_t intervalToLongPress = 700;       // Interval in ms to distinguish between short and long press of buttons

	// Buttons active state: Default 0 for active LOW, 1 for active HIGH e.g. for TTP223 Capacitive Touch Switch Button (FinnBox)
	#define BUTTON_0_ACTIVE_STATE 1
    . . .

VG Niko

2 „Gefällt mir“

Die kann man auch auslöten, dann leuchtet da nichts mehr und man muss trotzdem die Software nicht ändern.

geht natürlich auch, wenn man das so möchte. :slight_smile:
Ich wollte die Kontrollleuchte für Sensor aktiv nicht verlieren.

Hallo @Niko ,

tatsächlich habe ich die Lötbrücken gesetzt und die LEDs ausgelötet wie das auch moin vorgeschlagen hat, damit die LEDs nicht dauerhaft leuchten.
Deine Softwareänderung finde ich aber auch nice, da man damit die Möglichkeit hat das visuelle Feedback beim Tastendruck zu erhalten (falls das Gehäusematerial das Durchscheinen zulässt). Allerdings finde ich die Platzierung der LED auf der Platine selbst nicht so gut gelungen da sie off-center ist, was mich auch dazu animierte sie komplett zu entfernen und gar nicht über eine Anpassung in der Software nachzudenken. Vielleicht probiere ich am Wochenende mal deine Änderung aus wenn ich Zeit habe.

@Birger @corsaturbo: ich hatte bisher noch keine Zeit, plane es aber demnächst einzubauen und werde dann das update auch wieder hier posten. Ich bitte noch um ein wenig Geduld :slight_smile:

2 „Gefällt mir“

Der Pinguin-ESPuino für unsere Tochter ist vor ein paar Wochen fertig geworden :tada:

Danke an @bw87 für die ganze Heranführung an das Thema und Verweis auf diese Community, an @biologist für das Projekt, das PCB und und und + Dank an die Community, die mir hier die ein oder andere doofe Frage beantwortet hat.

Grundlage ist eine Pinguin-Bluetooth-Karaoke Box von AliExpress, die ausgeschlachtet und zu Teilen wiederverwendet wurde. Wir wollten einfach etwas sehr kindliches und unsere Kleine fährt auf Tiere total ab.
Leider kam erst die hässliche Einhorn-Variante, aber nach ein bisschen Beharrlichkeit haben sie die korrekte Box nachgesendet.

Die Batterie (geschützter 18650er Li-Ion), die Lautsprecher, die Mikro-USB Ladebuchse und die Taster der Box habe ich wiederverwendet.
Dann noch einen Wemos Lolin D32 pro, einen RFID Reader RC522 sowie biologists PCB ESPuino-mini 4Layer mit zweiten MAX98357a und der Kopfhörerplatine.
Für eine Neo-Pixel Ring war der Platz eindeutig nicht da, deshalb habe ich zu einem 8-LED Stick gegriffen.

Fertige Box :star_struck:

Front mit Bedienpanel. Das Loch für den Kopfhöreranschluss musste ich ein bisschen weiten. Rechts daneben gab es im Original einen Schalter, den ich allerdings beim Versuch mit dem Heißluftfön abzulöten gebruzelt habe :fire: :see_no_evil:. Stattdessen habe ich dann ganz rechts in die ursprüngliche USB-A Buchse einen Schalter eingesetzt. Darüber war/ist ein SD-Karten-Slot, den ich aber nicht wiederverwenden konnte.

Rückseite mit dem NeoPixel-Stick. Oben sieht man die rote LED des RC522 durchscheinen. Im Original war die Rückseite komplett mit weißer Pappe beklebt. Allerdings scheue ich mich davor, wieder irgendwas über die Löcher zu machen, falls ich doch nochmal ans Innere muss.

Der Vorderteil von Innen. Die Box ist wahnsinnig klein und eng. Ich musste Stabilisationsstege und Schraubverbindungen wegfräsen, damit überhaupt alles einigermaßen in die Box passt. Der Aufbau im Bild ist nicht der finale. Die Batterie musste ich am Ende noch vertikal zwischen die Boxen quetschen.
Man sieht, dass alleine schon der Schalter, das Überbleibsel der alten Platine und die Kopfhörerplatine mehr schlecht als recht nebeneinander gepasst haben. Am meisten Nerven hat mich aber die Wiederverwendung der Taster gekostet. Gibt dazu auch einen eigenen Thread Hilfe beim Recycling von Buttons

RFID Reader, NeoPixel-Stick und ESP verkabelt. Beim rückwärtigen Teil musste noch deutlich mehr rausgefräst, sowie die Löcher für den Stick gebohrt werden. Zusammengehalten wird alles von sehr viel Heißkleber.

Mein abenteuerlichstes Bauteil: Der Rest der Originalplatine mit dem Miko-USB Anschluss und der Lade-LED. Daran habe ich ein Mikro-USB Kabel gelötet, welches dann im ESP steckt. Da ich keinerlei Ahnung von der Elektrik hatte und ich wohl zu großzügig an der Platine rumgeknipst habe, leuchtet die LED jetzt einfach nur noch blau, wenn der Stecker eingesteckt ist :bulb: :large_blue_diamond:

Wir sind super happy mit der Box und die Kleine freut sich auch über den Pinguin.

Im Nachhinein betrachtet würde ich beim nächsten Mal vielleicht doch eine größere Ursprungsbox nehmen. Es hat alles nur mit sehr viel Drücken und Quetschen reingepasst, einige der Schraubverbindungen mussten aus Platzgründen weggefräst werden und sobald man die Box öffnet, springt einem die SD-Karte entgegen. Vielleicht würde es aber auch reichen, wenn man des ESP direkt auf das PCB lötet, denn die Steckerverbindung trägt schon ordentlich auf.

6 „Gefällt mir“

Hi @corsaturbo @Birger,

ich habe bei Thingiverse ein weiteres stl File hochgeladen, was das neue Headphone PCB unterstützt.

Soviel zum einfachen Teil…

Mit dem großen LiFePo4 Akku von Eremit war das schon etwas schwerer. Das ist ein ganz schön fettes Teil und ich hatte Probleme dafür noch Platz zu finden. Ich habe hier einen Vorschlag


In Fusion 360 sieht das alles ok aus. Man müsste vermutlich aber mal einen Probedruck machen und prüfen ob das so ok ist… (Der Abstand zur SD Karte ist ziemlich knapp). Zudem ist die Frage ob die Batterie wirklich nur 3.4cm dick ist oder durch die integrierte Schutzschaltung doch dicker ist und dann nicht mehr in die Halterung passt.
In der Halterung für die Batterie habe ich ein kleinen Durchbruch vorgesehn wo man das Kabel durchführen kann. Man könnte die Öffnung auch bis zum oberen Rand verlängern, dann hätte man für dickere Akkus doch noch ein bisschen Spiel weil sich der Halter dann ein wenig aufspreizen könnte.

Das stl-File für die Eremit Batterie gibt es auch auf Thingiverse.

Bitte um Feedback.




@admiral_snyder Die fast 36mm hat man nur dort wo die Kabel angeschlossen sind.

Wenn du es schaffst den Durchmesser zu vergrößern würde ich einen Probedruck machen… mir würde aber auch einfach nur ein Radius reichen den ich mit heißkleber oder Montagekleber vollschmiere und dann den Akku darauf Lege… ich hoffe du verstehst was ich meine

Ansonsten, wenn der Akku zu groß sein sollte: Ich hatte hier ja mal ein Tutorial geschrieben, wie man selbst einen kleinen Akku bauen kann. Damit geht’s dann auch kompakter.

1 „Gefällt mir“

Hallo @Birger

basierend auf deinen Messergebnissen habe ich den Innendurchmesser des Batteriehalters nochmal vergrößert und das stl file auf Thingiverse geupdated. Zudem ist der erwähnte Durchbruch fürs Kabel jetzt bis zum Rand des Batteriehalters nach oben hin verlängert, so dass man da auch nochmals ein wenig Luft hat.

Falls jemals kleinere Akkus verbaut werden sollten könnte man auch nochmal einen extra Adapterring designen der einfach in die große Halterung gesteckt wird…

@admiral_snyder

Top! Ich sehe zu das ich mal einen Probedruck machen. Hoffentlich zum Wochenende gibt es Rückmeldung.

@admiral_snyder

Soweit so gut. Nur die Senkungen für die Schrauben der usb c Buchse müssen ein Stück größer.




Na das sieht doch schon gut aus :slight_smile:

Kannst Du da vielleicht genauer werden? Am besten wäre Du machst eine Rotstiftänderung in der Bemaßung so dass ich sehe was genau zu eng ist und was wie vergrößert werden soll.

@admiral_snyder vielleicht ist es einfacher wenn du mir den link zu deiner Buchse schickst die du verwendet hast? Ansosnsten ist man wie beim led Ring nur den ganzen Tag am ändern.

Der Abstand der Befestigungsbohrungen von Mittelpunkt zu Mittelpunkt sind 17mm

Die Senkung sollte einen Mindestdurchmesser von 5,3mm bzw. einen Radius von 2,65mm um korrekt zu sein…

Ich habe keinen USB-C Adapter verwendet sondern bin deinem Link gefolgt:

Da das nicht viel hergab habe ich mir die USB-C Locking Connector Spezifikation angeschaut:

Da wird ein Lochabstand von 15mm angegeben den ich so auch umgesetzt habe. Sicher das es 17mm sind bei deinem Adapter?

Die Vergrößerung des Radius sollte kein Problem sein.

@admiral_snyder mein Fehler… ich habe eine andere Version bei Ali bestellt… mircwaren 10€ zu teuer für das Kabel…

Spricht was dagegen dir den von Amazon mal zu bestellen und auszuprobieren? Ich vermute in China nimmt man es nicht so genau mit der USB-C Spec :slight_smile:

@admiral_snyder

Ich habe vier verschiedene Buchsen zum Testen bestellt… diese haben alle 17mm und sind bis auf die Kabellänge identisch.

Es gibt einmal die kleine und filigrane Version und einmal die Größere die auch dickere Schrauben nutzt. die beiden kann man optisch gut trennen.

Würde mich also freuen wenn du noch einmal kurz dir die Arbeit machst :slight_smile: wenn du keine Lust hast würde ich mir natürlich die andere Buchse bestellen.


Hier wurden die icons vom 3D Drucker mit schwarzen Filament ausgeführt.

Druckzeit 11 Stunden für beide Hälften.

1 „Gefällt mir“

Hallo, heute möchte ich euch mal die Musikbox von meinem Kleinen vorstellen.

Das Innenleben der Box basiert auf dem SP32-Develboard “D32 pro LiFePO4” (Rev-Version ~ Oktober 2022). Danke an @biologist für das PCB und die Lötarbeiten :slight_smile:

Das Gehäuse recycelt eine unbenutzte/nicht benötigte „Arche Noah“ (ähnlich wie dieser Amazon). Da ich Handwerklich nicht so begabt und ausgestattet bin, hab ich mich für Gehäuse entschieden welches von Haus aus für die Nutzung durch Kinderhände (robust) ausgelegt sein solte. Die Handwerksarbeiten hab ich mit einem Bekannten ausgeführt, welcher das eindeutig besser ausgestattete Werkzeugsortiment hat :grin:.

Front mit Taster:

  • Giraffe → Zurück
  • Elefant → Play/Pause
  • Krokodil → Vorwärts

Rückseite mit Volume + Headphone Anschluss

Top mit Neopixel und RFID Leser

Rechte Seite mit Lautsprecher und USB-C Buchse

Linke Seite mit Zugriff auf das Innenleben durch Papa :wink:

Wartungs - Luke geöffnet

Innenleben inkl. LiFePo Akku (3.2V 6000mAh)

Schließmechanismus - Briefkasten Lock

12 „Gefällt mir“