{"id":9063,"date":"2026-07-26T12:48:10","date_gmt":"2026-07-26T10:48:10","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=9063"},"modified":"2026-07-26T12:56:48","modified_gmt":"2026-07-26T10:56:48","slug":"the-groovebox-project","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2026\/07\/26\/the-groovebox-project\/","title":{"rendered":"The Groovebox Project"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">From Curiosity to a Complete Musical Instrument<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">66 keer bekeken \/ views<br><br>Sometimes the best projects begin with a simple annoyance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For me, it was connecting yet another TFT display to an ESP32. Every new project started with a handful of jumper wires before I could even write the first line of code. There had to be a better way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That search led me first to the <strong><a href=\"https:\/\/www.amazon.nl\/s?k=cheap+yellow+display\" target=\"_blank\" rel=\"noreferrer noopener\">Cheap Yellow Display<\/a> (CYD)<\/strong>. What immediately appealed to me was its simplicity. The ESP32, display, microSD card slot, and I\u00b2C connector were already integrated on a single board, eliminating almost all of the wiring normally required for display-based projects.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The only thing I really missed was a practical user interface. The CYD offers little more than a touchscreen, whereas many embedded applications benefit from physical controls such as a rotary encoder and push buttons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not long afterwards I discovered the <strong><a href=\"https:\/\/www.amazon.nl\/s?k=TFT-LCD-Display-EC11\" target=\"_blank\" rel=\"noreferrer noopener\">TFT-LCD-Display-EC11<\/a><\/strong> module. It offered exactly the user interface I had been looking for: a colour display, a rotary encoder with an integrated push button, and a second dedicated push button.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unfortunately, the EC11 module brought me back to the very problem the CYD had solved. Although it provided the ideal user interface, it still required an external ESP32 board and a large number of interconnecting wires for power, SPI, and the encoder signals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That was the moment the idea for the <strong><a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/05\/19\/tft-lcd-display-ec11-piggy-back-board\/\" target=\"_blank\" rel=\"noreferrer noopener\">PiggyBack board<\/a><\/strong> was born.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of wiring an ESP32 development board to the EC11 module with a bundle of jumper wires, I designed a board that plugs directly onto the back of the display module. It integrates an ESP32-S3, a microSD card slot, an I\u00b2C connector, and ten additional GPIO pins, transforming the EC11 module into a compact, self-contained embedded development platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After completing the PiggyBack board, I wanted to create a series of practical projects that would demonstrate its capabilities. The first was the <strong><a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/05\/22\/universal-timer\/\" target=\"_blank\" rel=\"noreferrer noopener\">Universal Timer Project<\/a><\/strong>, which is also available here on my website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But for many years I had been fascinated by drum machines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over the years I recreated several designs published by other makers, including <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2023\/02\/19\/midi-drum-machine\/\" target=\"_blank\" rel=\"noreferrer noopener\">Peter Balch&#8217;s drum machine<\/a>. They were enjoyable to build and taught me a great deal, but they also left me with a growing curiosity. I could build someone else&#8217;s design, yet I still did not fully understand how a modern groovebox was architected, or what it would take to design one entirely from scratch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That curiosity gradually became impossible to ignore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One day I found myself looking at the <em>TFT Display with the PiggyBack<\/em> board and asking a simple question:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>What if this little ESP32S3 board could become a complete standalone musical instrument?<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That single question became the starting point for <strong>The Groovebox Project<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is much more than a DIY electronics project. It is a deep dive into the engineering behind a modern embedded musical instrument. The project covers digital audio generation, sample playback, sequencing, real-time scheduling with FreeRTOS, persistent storage, hardware design, software architecture, user-interface design, and much more.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Throughout the development I worked extensively together with Artificial Intelligence. Not as a replacement for engineering, but as a technical sparring partner. AI helped me explore unfamiliar subjects, discuss architectural choices, analyse design trade-offs, and refine both the firmware and the documentation. Every important decision was still made, implemented, tested and validated by me, but AI proved to be an extraordinary companion throughout the journey.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"739\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/aGroovebox.jpg\" alt=\"\" class=\"wp-image-9068\" style=\"aspect-ratio:1.3856842785587333;width:297px;height:auto\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/aGroovebox.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/aGroovebox-300x217.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/aGroovebox-768x554.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">The firmware itself has grown into a substantial embedded application consisting of tens of thousands of lines of code. It demonstrates how a relatively inexpensive ESP32S3 can perform real-time audio mixing, sequencing, sample management, display handling, file storage, and multitasking simultaneously.<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/groovebox-26072026-12.27.mp3\" loop><\/audio><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re only interested in building the hardware, you&#8217;ll find everything you need on this website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But if you would like to understand <strong>why<\/strong> the system was designed the way it is, how the firmware works internally, why certain architectural choices were made, how the real-time audio engine operates, and what lessons were learned during development, then <strong>The Groovebox Project<\/strong> book is written for you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rather than simply presenting the finished result, the book takes you through the complete engineering journey\u2014from the very first idea to a fully functioning musical instrument. It explains not only <em>what<\/em> was built, but also <em>why<\/em> it was built that way.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether you&#8217;re interested in ESP32 development, embedded systems, FreeRTOS, digital audio, firmware architecture, or simply enjoy seeing how ambitious projects come to life, I hope the book will both inform and inspire you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"819\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/bookCoverSmall.jpg\" alt=\"\" class=\"wp-image-9067\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/bookCoverSmall.jpg 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/bookCoverSmall-300x240.jpg 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2026\/07\/bookCoverSmall-768x614.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<a href=\"https:\/\/www.boekenbestellen.nl\/shop\/winkelwagen\/add\/1\/84448\/1\" target=\"_blank\" rel=\"nofollow\"><img decoding=\"async\" src=\"https:\/\/www.boekenbestellen.nl\/open-social\/website\/buynow\/btn_buynow_b_blue.png\" border=\"0\" style=\"cursor:pointer\"><\/a>\n\n\n\n<p class=\"wp-block-paragraph\">Happy reading&#8230; and perhaps, happy building.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>From Curiosity to a Complete Musical Instrument 66 keer bekeken \/ views Sometimes the best projects begin with a simple annoyance. For me, it was connecting yet another TFT display to an ESP32. Every new project started with a handful &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2026\/07\/26\/the-groovebox-project\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":9080,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3,157,143,10,115],"tags":[210,211,119,51,208,55,209],"class_list":["post-9063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-computer","category-esp32","category-firmware","category-hardware","category-kicad","tag-boek","tag-book","tag-esp32","tag-firmware","tag-groovebox","tag-hardware","tag-piggyback"],"views":66,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/9063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/comments?post=9063"}],"version-history":[{"count":9,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/9063\/revisions"}],"predecessor-version":[{"id":9075,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/9063\/revisions\/9075"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media\/9080"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=9063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=9063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=9063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}