Probeer eens eerst gewoon communicatie tot stand te brengen. Gebruik RX2 en TX2 van de ESP. SoftwareSerial vermijd ik ten alle tijden. Dan zit je weer interrupt gebonden. Terwijl hardware serial zijn eigen timers heeft. Welk IC zit er op de Arduino? Heeft die een 2de RX en TX, gebruik die.

Van je ESP32 code kan ik geen speculaas maken. Dit is toch niet geschreven in de arduino omgeving en/of in C.

Ik verwacht eerder iets als:

void setup(){
    Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
}

Verder kan je best kijken naar een tutorial voor UART ontvangst met start en eind markers. Zit alles dicht bij elkaar, dan is ISP of I2C ook een mogelijkheid.

Bij 9600Bd is de timing met zowat elk kristal op de arduino uit te voeren. Vanaf 57 600Bd kan je beter kiezen voor een communicatie kristal zoals 18,4320MHz of 14,7456MHz.

Op dinsdag 24 maart 2026 19:46:56 schreef Frankyie:
Code

Dank je, maar dat is een berg YAML files. Daar is niet aan te zien waar je timing-probleem zit. Dat is netjes "gebruiksvriendelijk" weg-geabstraheerd.

Welke taal is dit / waar programmeer je dit in?

Het lijkt een-of-andere "hoog niveau" taal, waarmee je dusdanig ver van de hardware af zit dat je niet meer met interrupts etc. bezig bent. Dus ook de timing niet meer kunt bepalen.

https://esphome.io/guides/yaml/

Dat is er gewoon niet voor bedoeld... Het is geen programmeertaal, maar een configuratie-iets. Je gebruikt een lambourgini om je pizzadeeg uit te rollen...

Dat gevoel begon ik ook al te krijgen ja.
Het is sowieso de vraag of ESPHome niet te beperkend is voor wat ik eigenlijk wil.
Na de opmerking van buckfast_beekeeper heb ik ESPHome maar eens even achterwegen gelaten en heb ik een simpel stukje arduino code geschreven. En warempel, de UART werkt uitstekend. Niets aan de hand. ESPHome loopt te prutsen.

Dat was de verklaring dus.
Voorlopig maar eens ESPHome achterwegen laten en alles zelf gaan schrijven.

Update
Beste mede hobbiesten!
Ik kan jullie advies weer eens goed gebruiken. Ik ben in alle rust al een tijdje bezig de software voor de lamp te schrijven en testen aan het doen van de elektronica. Het gaat goed, op 1 punt na. De communicatie tussen de bovenbak en de pods. Hier ben ik niet happy mee.

Om te beginnen hier het schema van hoe ik nu de zaak opgebouwd heb. Ik heb bewezen dat dit op mijn werkbank werkt.

Echter, de keuze om met IR te communiceren met de pods is een verkeerde geweest. In dit plaatje kan je het oorspronkelijk plan zien. Ter info Die filters zijn een gevolg van het filteren van het zichtbare ligt. IR is daar tussen verstop. Die lucht tunnel wordt veroorzaakt door het glas van de pod.

Het idee was om IR te reflecteren vanaf te tafel. Echter, ik maak mijn ernstig zorgen hoe zwaar de IR lampen moeten zijn om dit werkend te krijgen.

Om een idee te geven. Dit is de IR zender die ik op het moment gebruik voor testen. Een zwak dingetje.
https://www.tinytronics.nl/nl/componenten/led's/led's/ir-led…

Dit is de ontvanger in de pod.
https://www.tinytronics.nl/en/communication-and-signals/wireless/infra…

Op het moment moet ik die led zowat in de pod leggen om überhaupt met de pod te communiceren. Met name als de pod zelf vol ligt geeft is dit een probleem. Dan heeft de IR er nog meer moeite mee. Ik weet niet hoe sterk de IR moet gaan worden om dit voor elkaar te krijgen, maar ik denk heel sterk. Daarnaast vind ik het ook niet zo netjes dat de ESP32 redelijk lam gaat tijdens het IR zenden. Iets wat best tijd in beslag neemt als de 3 pods verschillende instellingen doorgestuurd moeten krijgen (64 bit per lamp). Tijd om dit alles te heroverwegen.

Dus hoe moet dit wel? De Arduino pro in de pods is niet heilig. Ik heb wel een beetje een voorkeur voor Iets dat mijn ESP32 in de bak niet doet haperen tijdens communicatie, hoewel ik altijd meer IC's kan plaatsen zoals ik nu ook met de RF receiver gedaan heb. Wat ideeën.

  • IR ontvanger boven op de pod plaatsen in plaats van erin --> Wil ik niet. Dit tast het uiterlijk aan en lichtlekkage is ook een probleem als ik gaten bovenin de pod moet maken.
  • Communicatie over de kabel naar de pod --> Niet als dit extra aders vergt. Ik wil de kabel dun proberen te houden. Communiceren over power kabels lijkt me lastig? De pods met hun pwm leds zullen wel flink wat storing geven.
  • Draadloos --> bluetooth? De lamp moet wel stand alone blijven, dus de pods moeten communiceren met de bak. Niet via een wifi router. Bij voorkeur

Wat denken jullie?

Dit project is niet uit de hand gelopen hoor. Hoe kom je bij het idee :P Wel leerzaam :)

ESP32 heeft Bluetooth aan boord. Die kan je dus gebruiken voor afstanden tot een paar meter. Ik gebruik bluetooth serial voor communicatie tussen ESP en aaitelefoon. Werkt goed. Seriële communicatie tussen 2 ESP zal ook wel werken. Als het in 1 richting moet verlopen zal het niet direct een lastige klus worden.

Reflectie via een tafel is niet de beste oplossing. Zelfs als het zou mogelijk zijn, is het een heel onzekere oplossing. Staat er toevallig iets onder wat niet weerkaatst heb je een probleem. Heb je er iets onder staan wat het licht afbuigt heb je weer een probleem.

De IR ontvanger die je gebruikt heeft een bijhorende 38kHz zender nodig. Bijvoorbeeld iets zoals dit. Deze vorm van transmissie wordt ook gebruikt in afstandsbedieningen.

edit:@Lucky Luke: De led zal wel een 38kHz signaal uitzenden. Wordt ook aangeboden in combinatie met de gekende 38kHz ontvangertjes. https://www.bitsandparts.nl/infrarood-zender-ontvanger-set-38khz-hx183…

[Bericht gewijzigd door buckfast_beekeeper op (11%)]

Hoe zit de software in elkaar die de IR zend? Maak je daadwerkelijk 38 kHz? (Dat moet wel)
Het zou ook de ESP32 niet lam moeten leggen... Is er niet een hardware timer die je hiervoor kunt gebruiken? (Ik ken de ESP32 hardware niet goed). Er is mogelijk zelfs een library voor. Wat gebruik je nu? En hoe veel stroom stuur je door je IR led(s)? (Je zou het maken van de 38 kHz ook aan hardware over kunnen laten, maar ik weet niet of de module die buckfast_beekeeper linkt dat doet of dat het alleen een led en weerstand is en je zelf alsnog 38 kHz moet maken).

Dat gezegd hebbende, ik zou gekozen hebben voor bedrade communicatie via een extra aderpaar. Gewoon omdat het simpeler en betrouwbaar is.

Houdt je difuse filter geen IR tegen?

Edit @buckfast: Dank voor die link, ik kon de onderkant van het printje niet vinden. Daar zit dus niks op. Ik denk dat er alleen een 'power on' led tussen VCC en GND zit, en de IR led tussen DAT en GND, met elk hun eigen weerstand.... (Je zou op zich iets kunnen met een NAND, 1 ingang naar DAT, de andere met een RC aan de uitgang... Of iets met een 555 uiteraard. Maar dat zit er niet op.)

[Bericht gewijzigd door Lucky Luke op (21%)]

Klopt dit wel, moet dat esp er wel bij? espSerial.begin(9600)

Een Bluetooth netwerkje met 1 zender 3 ontvangers lijkt mogelijk, maar ik moet me er nog meer in verdiepen. Van het idee wordt ik wel enthousiast.
Ook moet ik me nog verdiepen of je bluetooth allebei kan doen op 1 chip. Anders moet ik dat ook nog uitsplitsen. Ik heb nog wat leeswerk te doen.

Kijkend naar de raw data die ik ontvang klopt die hele communicatie van de IR wel. Het werkt ook als een tierelier op de testbank. Geen enkel probleem. Dat heb ik wel voor elkaar gekregen. Ik heb alleen 0 vertrouwen in het bereik van deze oplossing in combinatie met dat reflectie concept.

Dat diffuse filter helpt natuurlijk niet, maar de impact is niet heel groot.

Update
Ik dacht, ik laat nog even weten wat ik uiteindelijk gekozen heb. De lamp zal als volgt gaan werken.

Het hele probleem met de IR communicatie met de pods is opgelost door een ESP-NOW communicatie. Oorspronkelijk had ik de ESP-NOW verbinding vanuit de centrale ESP-32 en niet met die extra ESP32-C6. Echter, tijdens strestesten liep ik tegen problemen. Als de wifi uitviel en weer aanging, ging de ESP-NOW connectie zich misdragen. Als ESP-NOW connectie naar 1 van de pods weg viel, ging de wifi zich misdragen en nog meer van die ongein. Ik heb niet de moeite genomen om dat allemaal uit te zoeken en heb besloten om de functionaliteit te splitsen. Dit was effectief want zowel de wifi als de ESP-NOW connectie zijn super robuust geworden. Dit was een van mijn harde eisen. De lamp moet altijd werken, ook als de wifi de weg helemaal kwijt is of een pod helemaal de weg kwijt is.

Ik had mogelijk de ESP32-C6 die de ESP-NOW connectie doet ook nog de RF kunnen laten afhandelen. Maar ik vond het niet de moeite om dat uit te zoeken. De hele setup zoals hij nu is werkt stabiel. Eindelijk!

Leerzaam projectje :) Nu maar eens de lamp gaan bouwen.

5 ESP-32's? D'r zit straks meer rekenkracht in die lamp dan in de Apollo boordcomputer waarmee ze destijds de maanlandingen hebben uitgevoerd :D

Zonder gekheid: heeft u niet overwogen om ook een vorm van noodverlichting (op accu) toe te voegen? Dat heb ik zelf wel overwogen voor de lampen die ik hier binnenkort ga maken. Helaas in mijn geval niet makkelijk uitvoerbaar dus zie ik ervan af. Maar is een functionaliteit die ik zelf eigenlijk wel zou willen hebben, in geval van stroomstoring.

Ben een groot liefhebber van RVS, vind uw lamp er verdraaid goed uitzien. Ik heb zelf echter toch voor hout (eiken) gekozen als materiaal, vermits er al redelijk veel RVS in de woonkamer verwerkt zit (en nog gaat worden). Bij mij gaat de bediening trouwens ook heel wat simpeler worden: gewoon twee secties die apart ingeschakeld kunnen worden met schakelaars.

Nu maar eens de lamp gaan bouwen.

Da's het leukste deel van het project. Overigens, hou er rekening mee bij het bewerken van het RVS dat u gereedschap gebruikt dat niet met gewoon staal in contact is geweest (zagen, vijlen, schuur-en polijstmiddelen); anders kan dit na langere tijd aanleiding geven tot roestplekken op het RVS. Heb een zelfgemaakte RVS buitenlamp die hierdoor toch enigszins ontsierd is. Binnenshuis zal het probleem zich hopelijk wat minder snel voordoen, maar toch. Voorkomen is beter dan genezen.

No better kill than an over kill. :P
Die jongens bij het Apollo programma programmeerde heel wat netter. Ze hadden ook geen keuze.
Overigens ben ik meer functionaliteit uit aan het splitsen omdat dat allemaal problemen gaf, dan dat ik tegen rekenkracht problemen aan loop.

Ik ben bekend met de gevoeligheid van RVS. Al verwacht niet dat je daar problemen mee krijgt binnen.
Ik verwacht overigens dat ik bijna alles uit aluminium ga maken. De lamp is al zwaar zat. Laat staan dat hij van RVS wordt.

Een accu gaat mij te ver. Elke telefoon is een zaklamp. Ik red me wel.
Laatst hadden we een hele avond stroomuitval. Het is bizar hoeveel apparaten een mens bezit met een accu en een felle lamp.

Even nog een opmerking over die serial leds. Volgens mij heeft de ESP ook een DMA controller aan boord.
Die kun je gebruiken om autonoom de LED data naar buiten te sturen.
Dezelfde truuk wordt ook gebruikt op een RPI om die WS leds te sturen onder linux (waar je hetzelfde timing probleem hebt).

Je bent nu om het probleem heen aan het werken met losse arduino & esp bordjes en meer meuk wat uiteindelijk denk ik meer frustraties gaat opleveren.

Dan ben je van het hele timing probleem af en kun je je software normaal schrijven.
Dus de IR/RF/Wifi etc gewoon interrupt based gebruiken zoals het bedoeld is.

De rekenkracht van de ESP zou absoluut geen probleem moeten zijn.

Zoek maar eens op "Espressif RMT led strip". Er is zelfs een standaard library voor die leds.

De ESP32 heeft een speciale hardware module voor IR remote control. Dan moet de software de data klaarzetten en vervolgens wordt die door speciale hardware (RMT peripheral) verstuurd. De 38kHz modulator is daarbij ook voorzien.
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-refere…

Dus met de juiste libraries moet je IR kunnen doen (zowel transmit als receive) zonder timing issues.

In dit geval lijkt wifi de weg te gaan. Dat kan via de thuis wifi router (Station mode). En dat kan ook met een eigen lokaal netwerkt (Acces point mode). Beide modes kun je ook combineren als je wilt.

Dus dan kun je een AP mode wifi netwerk opzetten voor communicatie tussen de verschillende modules in de lamp, en de Station mode gebruiken om alles aan te sturen vanuit een browser op je PC of telefoon.

Er zijn velen wegen naar Rome. Het kan vast compacter met minder ESP32 bordje. Aan de andere kant, dit maakt je leven wel erg makkelijk. De software is erg simpel geworden. Je moet eenmalig die serial communicatie schrijven en dat kopieer je eindeloos door :)

IR zit er overigens niet meer in. De IR is vervangen door RF en ESP-NOW. En serial leds zijn er ook niet meer. Het zijn uiteindelijk domme led strips geworden die worden aangestuurd door zowel rechtstreeks door de hoofd ESP32 of via de PCA9685. Die oplossing bevalt me wel omdat ik die PCA lokaal kan plaatsen. Bespaart weer een hoop kabels vanuit de hoofd ESP32. Het wordt toch al vol in die bak.