Deze blog beschrijft mijn zoektocht naar de juiste hardware voor een betrouwbare ESP32 time-lapse camera. Waarom de Seeed Studio XIAO ESP32S3 Sense uiteindelijk de beste keuze bleek, welke valkuilen ik tegenkwam met andere modules, en welke lessen ik daaruit heb getrokken. Praktische tips en eerlijke ervaringen voor iedereen die met ESP32-camera’s aan de slag wil.
Van een ArduCam die wel capture done gaf maar vooral rommeldata opleverde, naar een werkende end-to-end PTL-keten op de ESP32: in deze update laat ik zien welke kleine fixes het verschil maakten. Denk aan een cruciale timing-instelling, de juiste FIFO-read voor de OV5642-variant en het valideren van JPEG-markers, plus de stap naar een echte multipart-upload naar Flask. Resultaat: de eerste foto die volledig via camera, firmware en backend is gegaan.
Bij het aansluiten van een ArduCam op een ESP8266 liep ik direct tegen twee problemen aan: een mysterieuze SPI-fout (0xFF) en een LED die dimde zodra de camera aansloot. Copilot stuurde me op het verkeerde been door 3,3V te adviseren, terwijl de module gewoon 5V nodig heeft. Gaandeweg deed ik ook onderzoek naar het stroomverbruik – 300 mA normaal gebruik, moeilijk te vinden in de docs. Verder bleek de ESP8266 simpelweg te weinig geheugen te hebben om camerabeelden te verzenden. Dit zijn mijn eerste ervaringen, inclusief de omdraaimomentjes.
In dit artikel neem ik je mee in het ontstaan van een nieuw hobbyproject: een zelfgebouwde time-lapsecamera voor mijn desemexperimenten. Vanuit de wens om statische foto’s op de site levendiger te maken, groeide het idee uit tot een combinatie van ESP32, ArduCam en een nieuwe backend. Daarbij maak ik bewust de stap van mijn vertrouwde Perl/Dancer2-omgeving naar Python met Flask. Ik schets de opzet van firmware en backend, en deel de eerste praktische hardware-uitdagingen rond voeding en stroomverbruik. In de vervolgdelen laat ik zien hoe deze overstap in de praktijk uitpakt en hoe PTL stap voor stap vorm krijgt.
Dit artikel onderzoekt hoe kleine technische keuzes in softwareontwikkeling onverwacht kunnen uitgroeien tot een wirwar van nieuwe ideeën, afhankelijkheden en complexiteit – het bekende “can of worms”-effect. Aan de hand van praktijkvoorbeelden en reflectie wordt duidelijk hoe scope-creep en keuzestress ontstaan, en hoe je met focus, prioritering (zoals de MoSCoW-methode) en iteratief werken grip kunt houden op een groeiend project.
Leer hoe je je desem (zuurdesem starter) uit de koelkast weer actief maakt voor het bakken van heerlijk brood. Praktische uitleg, voedingen-tabel, tips voor onderhoud en het herkennen van een actieve desem.
De site heeft een nieuwe header en menubalk gekregen, waarmee een oude GitHub-wens eindelijk is afgerond. Ondanks frustraties met CSS en uitlijning is er nu een duidelijke scheiding tussen header en menu. Het resultaat is niet perfect, maar vormt wel een solide basis om verder te bouwen aan de uitstraling en functionaliteit van de site.
Dit artikel beschrijft recente technische vernieuwingen op de site, waaronder de introductie van een moderne, uitbreidbare Markdown-editor (Toast UI Editor) en de implementatie van veilige OAuth2-inlogmogelijkheden met Google. De auteur licht toe waarom deze keuzes zijn gemaakt, hoe privacy wordt gewaarborgd, en welke toekomstige functies in ontwikkeling zijn. Het artikel biedt inzicht in het leerproces en de experimentele aanpak van het project, en nodigt lezers uit om feedback of suggesties te delen.
Dit artikel beschrijft hoe je zuurdesem kunt drogen om het langdurig te bewaren en eenvoudig te transporteren, bijvoorbeeld voor familie in het buitenland. De auteur legt uit waarom en hoe je overtollige desem (‘discard’) kunt drogen, hoe je het later weer tot leven wekt, en deelt praktische tips en persoonlijke ervaringen.
Over mijn Perl module library om MS Graph API call te kunnen maken
Dit artikel laat zien hoe je met curl en de OAuth2 client credentials flow een access token ophaalt en Microsoft Graph succesvol aanroept. Aan de hand van een eenvoudig Bash‑script wordt uitgelegd hoe je server‑to‑server authenticatie toepast, hoe je JSON‑output parseert met jq en waarom dit direct toepasbaar is in Perl‑scripts met LWP. Het biedt een praktische basis om Microsoft Graph‑integraties betrouwbaar op te zetten en te begrijpen vanaf de command line.
Deze update beschrijft de eerste verbeterpunten na de livegang van de site: onduidelijke samenvattingen op de homepage, foutieve links, eenvoudige header en footer, en inconsistent gebruik van categorie‑iconen. Een transparant kijkje in wat er nog moet worden aangepakt — en dit is pas het begin.
Deze site markeert een frisse start na jaren experimenteren met HTML, PHP, MySQL en later WordPress. Met prjv.nl is gekozen voor een volledig zelfgebouwd content management systeem, ontwikkeld in Perl met Dancer2, een SQLite‑database en maatwerkmodules in JavaScript. De site draait in een Docker‑container en gebruikt Google OAuth2 voor authenticatie. Het project is ontstaan uit de wens om volledige controle te hebben over de technologie en de creatieve vrijheid die open source biedt. Naast technische artikelen komen ook persoonlijke projecten zoals het bakken van desembrood aan bod. De site blijft actief in ontwikkeling en staat open voor feedback, verbeteringen en nieuwe ideeën.