Group Projects
Week 3. Computer-Controlled Cutting
Tasks
-Do your lab’s safety training.
-Characterize your lasercutter’s focus, power, speed, rate, kerf, joint clearance and types.
-Document your work to the group work page and reflect on your individual page what you learned.
Laser Cutter Certification and Safety Certifications
I earned my Laser Cutter Certifications for the Full Specrum P Series Lasers when I started working at Moonlighter FabLab.
Laser Cutter Characterization
Focus
The Laser Cutters at Moonlighter FabLab do not have the auto focus tool which means we are required to manually focus the focus head to the material using a laser cutter guide placed on the brass holder which would have housed the official focussing component. Focusing a laser is very important for the quality of the cut. A we well focused laser can produce sharper cuts with less unwanted burning.
Speed, Power and Current
Testing the speed and power is an important step in preparing a laser cut as it can save time and prevent the material from burning. I understand that a 1/8" sheet of bass wood can be cut through with 70 Speed, 70 Power, 100 Current and 1-2 passes.These values may changed depending on the calibration of the machine. An example of an unexpected difference would be when a lower power of 40-60 with 1 pass might cut through. This can meanthat the machine was recalibrated, the leveling was done incorrectly, or that the material was thinner or softer than expected.
We normally keep the current at 100 to ensure that our cuts have the best chance of going through the material. It is worth reducing the current for engraving operations.
Kerf
Understanding the kerf of the Moonlighter FabLab Laser Cutter was very helpful in this week's project. I knew that I would need to account for the kerf in som way but this was the first time I learned that there are actual values.
I designed a simple test for my cardboard using my usual method to getting a rough material thickness with a ruler. I made slots ranging from 3.4mm to 3.6mm to see which one would have the correct dimensions for my material and how the Kerf changes the fit.
I was able to get the material to fit in all 3 slots. the difference was very subtle differences. My conclusion is that in a difference form factor, the diffences in kerf would be more pronounced.
Joint Clearance and Types
I used a Push fit method to assemble these parts. The clearance I used was based on the previous test results. I used the dimension which I thought worked best which was 3.5mm.
The assembly went well. I had no issues with excess movement, gaps or difficulty fitting the parts together.
Week 4. Embedded Programming
Tasks
-Demonstrate and compare the toolchains and development workflows for available embedded architectures
-Document your work to the group work page and reflect on your individual page what you learned
Link to ChatGPT1. Arduino IDE (Beginner–Intermediate)
Best for: quick prototyping, simple projects, education
Toolchain Components:
- Arduino IDE
- Seeed board package (adds XIAO RP2040 support)
- USB bootloader (built into the board)
Workflow:
- Install Arduino IDE
- Add Seeed RP2040 board support (Boards Manager URL)
- Select XIAO RP2040 board
- Write code using Arduino-style C/C++ (setup() / loop())
- Plug in board and press boot button if needed
- Upload via USB
Pros:
- Easiest setup
- Huge library ecosystem
- Fast iteration
Cons:
- Less control over hardware
- Slight overhead vs native SDK
2. MicroPython (Beginner–Creative Coding)
Best for: interactive projects, teaching, rapid experimentation
Toolchain Components:
- MicroPython firmware
- Thonny IDE or similar editor
Workflow:
- Flash MicroPython UF2 file (drag-and-drop after boot mode)
- Open Thonny and connect to board
- Write Python scripts (main.py)
- Run code instantly or save to board
Pros:
- Very fast iteration
- Beginner-friendly syntax
- Great for creative tools (sensors, LEDs, etc.)
Cons:
- Slower execution
- Limited libraries compared to C/C++
3. C/C++ SDK (Pico SDK) (Advanced)
Best for: performance, custom firmware, embedded systems
Toolchain Components:
- Raspberry Pi Pico SDK
- CMake build system
- GCC (ARM toolchain)
- Optional IDE: Visual Studio Code
Workflow:
- Install ARM GCC toolchain
- Clone Pico SDK
- Write C/C++ code using hardware libraries
- Configure project with CMake
- Build to generate .uf2 file
- Drag-and-drop onto device in bootloader mode
Pros:
- Maximum control and speed
- Access to dual cores, PIO, DMA
- Professional embedded workflow
Cons:
- Complex setup
- Steeper learning curve
4. CircuitPython (Alternative to MicroPython)
Best for: creative coding and hardware libraries
Toolchain Components:
- CircuitPython
- Text editor (no full IDE required)
Workflow:
- Flash CircuitPython UF2
- Board appears as USB drive
- Edit code.py directly
- Device auto-runs code
Pros:
- Plug-and-play
- Strong hardware library support
- No compile step
Cons:
- Slightly less performant
- Less flexible than full SDK
Typical Development Workflow (Generalized)
-
Write Code
- Arduino → .ino
- MicroPython/CircuitPython → .py
- SDK → .c / .cpp
-
Build / Interpret
- Arduino → auto-compile
- SDK → manual build (CMake + GCC)
- Python → interpreted
-
Upload Firmware
- USB drag-and-drop (.uf2)
- Direct upload via IDE
-
Test + Debug
- Serial Monitor (Arduino / SDK)
- REPL console (MicroPython)
-
Iterate
Modify → upload → test → repeat
Hardware-Specific Considerations
-
Dual-Core Processing
- Core 0: main program
- Core 1: parallel tasks
-
PIO (Programmable I/O)
Custom hardware protocols without CPU load
-
USB Bootloader
No external programmer needed. Hold BOOT button and drag .uf2 file.
Example Workflow (Servo + Button Project)
- Choose Arduino IDE
- Import servo library
- Write logic: button pressed rotates servo
- Upload via USB
- Adjust timing and angles
Choosing the Right Toolchain
- Fast and simple: Arduino IDE
- Creative coding: MicroPython
- Max performance: Pico SDK
- Plug-and-play: CircuitPython