Skip to main content
FabAcademy week18 assignment

Week 18 — Applications & Implications

We are finally approaching the end of the Fab Academy journey. After weeks of jumping between different fabrication processes—from PCB milling and 3D printing to hardware assembly and system integration—Week 18 is a moment to step back and document the big picture.

Rather than building a new module, the assignment this week requires us to define the exact scope, implications, and specifications of our final project by answering a standard set of ten questions. It essentially serves as a comprehensive project proposal and a reality check before the final evaluation.

For my electro-acoustic Morin Khuur, taking the time to write this out was actually quite clarifying. Because this instrument combines entirely different domains—upcycled traditional wooden components, modern digital fabrication, and web-based IoT interactions—formally answering these questions helped me map out the complete system architecture and ensure no critical details were overlooked for the final push.

The 10 questions I need to answer:

What will it do?

Who's done what beforehand?

What will you design?

What materials and components will be used?

Where will they come from?

How much will they cost?

What parts and systems will be made?

What processes will be used?

What questions need to be answered?

How will it be evaluated?

What will it do?

My final project is an electro-acoustic Morin Khuur (a traditional Mongolian string instrument). It serves two main functions: acting as a playable acoustic instrument and serving as an interactive digital visualizer.

First, it functions as a real musical instrument. By combining upcycled wooden components from a broken Khuur with a custom 3D-printed resonance box, it can be played with a traditional bow to produce actual acoustic sound.

Second, it visualizes the music being played in real-time. An onboard I2S microphone captures the raw audio, and an ESP32 microcontroller processes the frequencies. This data is used to drive a 160-LED array embedded inside the 3D-printed body, lighting up according to the music. Simultaneously, the microcontroller sends the visual data over Wi-Fi to a web browser, allowing the audience to see a synchronized digital light show on a screen.

The concept evolved significantly during the design phase. My initial idea at the beginning was simply to combine ethnic music with interactive light.

Image

(The sketch of idea is generated by Google Gemini)

After confirming the actual electronic components, power limits, and structural requirements, I refined the idea into a much more concrete system. I mapped out exactly how the 3D printed parts, the custom PCB, the ESP32, and the web interface would connect.

Image

(The sketch of more detailed original design is generated by Google Gemini)

Who's done what beforehand?

There are a few different areas I looked at for this project, as it combines traditional instrument making with electronics.

First, traditional Mongolian craftsmen have been making wooden Morin Khuurs for a long time. I am relying on their standard designs for the neck, strings, and tuning pegs so that my instrument can actually be played.

Image

Second, in the commercial music world, brands like Yamaha have made electric violins and cellos. But those are mostly about using electronic pickups to amplify the sound to speakers. They don't usually have built-in LED visual feedback or Wi-Fi connections.

Image

Third, in the maker community, audio-reactive LED projects are very common. Many people have used microcontrollers and microphones to make LED strips react to music. However, these are usually built as desktop displays, lamps, or flat panels.

Image

What I haven't seen much of, and what I am trying to do here, is combining these elements. I am taking the audio-reactive LED setup and the web interface from the maker space and building them directly into the body of a playable ethnic instrument.

While there are open-source 3D-printed violins (like the Hovalin), finding a 3D-printed Morin Khuur is extremely rare, especially one that tries to maintain a good acoustic tone using "plastic" instead of traditional resonance wood. This new 3D printed resonance box of Morin Khuur could be the biggest challenge for me.

What will you design?

Since I am reusing the wooden neck, strings, and tuning pegs from an old broken Morin Khuur, I don't need to design those traditional old parts. My design work focuses entirely on the new structural and digital systems:

Mechanical Design: I will design the main acoustic resonance box using Onshape. This is actually quite challenging because the box needs to be structurally strong enough to handle the tension of the strings, have a solid mounting point for the upcycled wooden neck, and also include enough internal space to hide the ESP32, battery, and LED strips. Besides the box, I will also design a 2D vector file for a CNC-milled wooden stand to display the instrument.

Image

Image

Electronics Design: I will design a custom PCB carrier board for the XIAO ESP32-C3. The main purpose of this board is to cleanly integrate the I2S microphone module and properly route the power and data connections to the WS2812B LED array. This will help keep all the internal wiring organized and stable inside the resonance box.

Image

Software and Interface Design: I need to write the code for the ESP32 to handle the real-time FFT audio processing and LED control. I will also design the front-end Web UI using HTML and JavaScript, which will connect to the ESP32 via WebSockets to display the live visualizer on a phone or computer screen.

Image

4 & 5 & 6. What materials and components will be used? Where will they come from? How much will they cost?

This project uses a mix of 3D printing materials, standard electronic components, and upcycled traditional parts recovered from my old, broken Morin Khuur.

Keeping the budget low is one of the goals. By upcycling the wooden neck and bridge, and fabricating the PCB and 3D-printed body myself, the total material cost is kept under the $100 target, coming in at approximately $73.89.

Here is the detailed Bill of Materials (Component / Quantity / Cost / Source):

Image

What parts and systems will be made?

I will be making three main systems that need to work together to form the final instrument:

The Physical and Structural System: This includes manufacturing the 3D-printed resonance box and the CNC-milled wooden stand. It also involves the physical assembly process of fitting the upcycled wooden neck, tuning pegs, and strings onto the new 3D-printed body.

Image

The Electronics System: I made a custom PCB carrier board. This involves milling the board, soldering the XIAO ESP32-C3, the I2S microphone, and the necessary connectors, and wiring the WS2812B LED strip so it fits safely and neatly inside the resonance box.

Image

The Software System: I wrote the embedded firmware for the ESP32 to handle the audio input and LED light mapping. I also built the front-end web interface that receives the visual data via WebSockets.

Image

What processes will be used?

To build these systems, I will use several digital fabrication processes learned during Fab Academy:

Computer-Aided Design (CAD): Using Onshape to design the 3D instrument body and the 2D layout for the wooden stand.

3D Printing (FDM): Printing the PETG resonance box. This requires careful slicing settings to make sure the walls are solid enough for acoustic resonance.

CNC Routing / Milling: Cutting the wooden display stand using a CNC router.

Electronics Design and Production: Designing the circuit board layout, milling the custom PCB, and soldering the components.

Embedded Programming: Programming the ESP32 using the Arduino IDE (C++) to handle the I2S digital audio input, Fast Fourier Transform (FFT) calculations, and control the WS2812B lights via the FastLED library.

Interface and Network Programming: Writing HTML and JavaScript for the Web UI, and setting up the Wi-Fi and WebSocket communication on the ESP32.

What questions need to be answered?

The Acoustic Question: Can a 3D-printed resonance box produce a proper acoustic tone without harsh plastic noise?

I chose PETG because its acoustic damping properties are closer to wood than standard PLA, which helps absorb unwanted high frequencies. To optimize both structural strength and resonance, I applied specific slicing parameters based on the function of each part. The global layer height is 0.2mm. The middle frame, which bears the string tension, is printed with 35% to 40% infill and 4 wall lines for strength. The front and back soundboards use a lower 20% to 25% infill with a Honeycomb pattern to allow better acoustic vibration. The internal sound post is printed at 100% solid infill to effectively transmit vibrations between the boards. Finally, acoustic tape is used to seal the joints.

The Processing Question: Can the XIAO ESP32-C3 handle everything at once? It needs to continuously sample audio via I2S, calculate the FFT, drive 160 LEDs, and host a WebSocket server. Since the C3 is a single-core chip, any bottleneck could crash the system.

My solution is to write strictly non-blocking code in the Arduino IDE using the millis() function instead of delays. I also optimized the FFT sampling size and rate so that it provides a smooth visual output without overloading the processor's memory.

The Power Question: Will the power supply hold up? I am using a standard 5V 2000mAh battery. If the music gets loud and all 160 LEDs flash at full brightness, the current spike could trigger the battery's overcurrent protection and shut the system down.

I solved this primarily through software power management. The FastLED library has a built-in power control function (set_max_power_in_volts_and_milliamps) which I used to set a hard limit—for example, capping the draw at 1500mA. Additionally, I ran the LED animations at around 30% to 50% brightness, which still looks great visually but significantly drops the power consumption.

How will it be evaluated?

The success of the project will be evaluated based on three clear criteria:

Physical and Acoustic: The 3D-printed PETG body must be structurally sound enough to withstand the physical tension of the strings without warping or breaking over time. The assembled Morin Khuur must be fully playable and produce a recognizable, clear acoustic tone when bowed.

Electronic and Visual: The onboard I2S microphone must accurately capture the audio frequencies. The ESP32 must process this data and drive the 160-LED array to react to the music in real-time, without noticeable latency, flickering, or triggering the battery's overcurrent protection.

Software and Network: The ESP32 must stably host the web interface and maintain a WebSocket connection to a smartphone or computer. It must successfully stream the live digital visualizer data to the screen without dropping the connection or crashing the microcontroller.