Learning Experience

This project provided a multifaceted learning experience for our entire group, spanning firmware customization, G-code generation, electronic system design, 3D printing modeling and real-world problem solving. Below, we detail the key technical areas where our team gained significant knowledge and practical skills.

 

Marlin Firmware Customization

Before this project, most of us have never came across Marlin. Through this build, we learned to navigate and modify one of the most popular open-source 3D printer firmware.

We worked on the configuration.h file, adjusting key lines such as X_BED_SIZE and MANUAL_X_HOME_POS, based on the needs of the wood etching machine.

Learning how firmware settings translate into machine behaviour helped us understand the deep integration between software and hardware.

 

G-code Fundamentals

G-code, which initially seemed like alien language, became second nature as we worked on image to G-code conversions.

Using tools like Inkscape and JSCut, we explored how vector paths and raster images get translated into precise motions in 3D. Learning how to read and write basic movement commands, we were able to understand what each G-code line was meant to do, and allowed us to identify and correct common G-code issues, such as negative coordinates that would push the tool out of bounds. We also became familiar with relative and absolute positioning modes (G90 and G91), and their implications on sequential movement.

 

3D Printing Modelling

As our group decided to repurpose a Creality Ender 3 printer to control the movement of the heating pen, we had to make significant modifications to the printer.

As such, we had to utilize Autodesk Fusion for certain parts that we wanted to mount onto the printer. As this software was new to everyone in the team, we took the effort to learn how to correctly model the parts of the correct dimensions. This took us multiple failed prints to achieve but at the end of the day, contributed significantly to our learning experience.

 

Electronic Circuit Design

Electronic circuits was something that most of us had learnt the theory about in school, but had rarely assembled a circuit in real life. Through this project, we finally got our hands on a breadboard.

We learnt how to design a simple overheat buzzer alarm system by connecting a 3-pin active buzzer, with a thermistor in a voltage divider configuration. We learnt to use a breadboard and jumper wires efficiently for prototyping, and later refined the setup with clearer wire routing.

 

Critical Thinking and Troubleshooting

Throughout the build, we encountered countless small challenges that forced us to think like an engineer.

When the printer was not responding to commands, we double-checked the connections and inputted test commands to identify what the issue was.

When the G-code toolpath started in the wrong place, we identified the coordinate mismatches and adjusted the G-code accordingly.

This iterative process of hypothesis, test and correction sharpened our team’s problem-solving skills and taught us how to methodically eliminate variables in a complex system.

 

Measurement, Calibration and Planning

We found out that a seemingy simple error like a 2mm offset in height can ruin a woodburning attempt. Through this project, our group developed a strong appreciation for precision and calibration.

We had to measure the diameter of the heating pen accurately as slight inaccuracies caused the pen to be not secured tightly, resulting in wobbling of the pen and thus, inaccurate results.

We also had to ensure that our platform was of the correct height such that it matched the home position of the heating pen. If the platform was too high, it might cause the pen to be pressed into the wood too much until damaged. If the platform was too low, the pen would not even make contact with the wood surface.

These taught us the value of planning, iteration and incremental testing, which are essential skills for any real-world engineering task.