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
Week 5. 3D Scanning and 3D Printing
This week I explored 3D Printing using the Bambu Labs A1 printer. Bambu printers have become extremely popular in the past few years for their accessibility and the ease to which experienced professionals and beginner hobbyists are able to produce high quality prints. My node, Moonlighter FabLab, now has a Bambu print farm with X1 Carbon, P1S, H2D and A1 printers. I decided to do my assignment using the A1 printers because the ones at the FabLab would have the same strengths and limitations as my personal 3D printer at home. I often print my projects wherever is most convenient.
3D Printing Rules
The basic model of the Bambu Labs A1 is not enclosed like most other Bambu printers, it also functions a little differently. The standard printer format with enclosures has a toolhead that moves along the X, Y axes while the printbed moves in the Z axis. For the A1 printer, the toolhead moves along the X, Z axes and the printbed moves in the Y axis. This format makes the printer more portable, keeping most of the moving parts closer to the heavier base. In my experience, this reduces the shaking and vibration which would have been managed by the structure of the other models. It is also much safer. I take this printer around kids and students very often. There is a risk that the Z axis printbeds can clamp down on objects or limbs. This is still a present risk for the A1’s toolhead and X-axis linear rail; however, this is much less dangerous of the 2 options.
The other concern about the A1 is that it would produce significantly lower quality prints. From what I have seen, the difference can be minor with the built in calibrations and having specific slicer settings for each printer model. Prints also take slightly longer on the A1 vs other printers. This is also a reason I wanted to work on the A1. If I use the lower end printer to test the base level.
Assembling the parts on the build plate in the Bambu Studio slicer wasn’t difficult. I made sure it was set to Bambu A1, textured PEI plate, 0.4 diameter nozzle, standard flow with PLA Matte which were all the correct settings and conditions of my physical printer and filament. I also set the first attempt to .028mm extra draft quality with supports off. My second attempt was .20mm standard quality with supports on. This difference in settings allowed me to compare a messy print to a much cleaner print.
Sending the print to the printer starts with connecting to the specific device. Under the Device tab, you can see the view from the onboard camera remotely, adjust device settings, load or unload filament, monitor prints and catch failures.
The extra draft print was unusable in some areas. I had unsupported bridges and spaghetti failures that fused together. An interesting observation is that the print was able to recover after a while of having hovering filament. The text and non-cantilevering areas printed well in most cases.
The standard quality print with supports turned out much better but needed to be spaced further apart. No failures observed.
Week 6. Electronics Design
Week 7. Computer-Controlled Machining
This week we learned to use the CNC at Moonlighter FabLab. My instructor Augusto went through the training with Alie and me. I also designed, milled and assembled a big fish installation for the ‘Make It Big’.
Group Work and Safety Training
Augusto explained the various parts of the CNC.
There is a dedicated PC for the CNC which uses Rhino software and Rhino CAM to layout and send the files for milling.
We got to help him with carefully placing ¾” plywood which we secured to the bed with screws.
He demonstrated the processes of selecting the 2D profiles and preparing the plot settings.
The tool settings we used for a profile cut were as follows:
- ¼ Compression Bit
- Holder Diameter: 1.5
- Holder Length: 1
- Shank Diameter: 0.25
- Tool Length: 1.25
- Shoulder Length: 1
- Flute Length: 1
- Tool Diameter: 0.25
The Feeds and Speeds settings were:
- Speed: 16000 RPM
- Direction: CW
- Plunge: 14.666 in/min
- Approach: 7.333 in/min
- Engage: 5.499 in/min
- Cut: 120 in/min
- Retract: 5.499 in/min
- Departure: 14.666 in/min
- Transfer: Use Rapid
- Plunge between Levels: 100%
- First XY pass: 100%
After preparing the tool path, we sent the plot.
What We Learned
The ShopSabre 4896 is a CNC router with a 48" x 96" work area and 2.5-axis movement. It runs on Shop Sabre Router Controller software using a Windows-based controller. The spindle tops out at 18,000 RPM and is powered by a 9.38 HP motor. We are being tasked with training ourselves on safe operation of the CNC and characterizing its operations and capabilities.
Safety & Use:
- Don't reach for parts while the machine is on. Use the emergency stop if needed.
- Keep the vacuum on during all cuts.
- Wear safety goggles inside the workshop.
- Kerf size depends on bit size and diameter.
- Inside corners will be round due to the bit shape and bit diameter.
- Use a 2D vector file for profile cuts.
- Use a 3D file type for 3D organic surfaces.
- Avoid designs with overhangs.
Material & Bit Pairings:
- Solid Wood – 2-Flute Endmill
- Plywood – Compression Bit
- MDF – 2-Flute Endmill
- Corrugated Plastics/Cardboard – Corrugated Bit
- Foam – Single-Flute Endmill
- Plastics – Single-Flute Endmill
- Thin Metal Composites – Single-Flute Endmill
Pick the right bit for the material you're cutting.
CNC Operations & Guidelines
2D Operations
- Profiling – Cuts along inner/outer edges of shapes
- Engraving – Adds shallow surface detail
- Pocketing – Clears material inside closed shapes
These operations are the most commonly used within our facility and space.
3D Operations
- Horizontal Roughing – Removes bulk in horizontal layers
- Horizontal Finishing – Refines detail using horizontal toolpaths
- Radial Machining – Radiates toolpaths from a center point, good for circular shapes
- Vertical Roughing – Clears material in vertical passes
- Vertical Finishing – Final vertical pass for fine detail
Design Tips
- Max cut area: 48" x 96"
- Leave a margin to screw stock to the table
- Keep at least 1" between parts to reduce vibration
- No vacuum hold-down—secure your stock manually
- Avoid cutting material over 2" thick or carving deeper than 3.5"
- Split complex designs into multiple parts
CNC Workflow
1. Load your material.
2. Turn on your machine.
3. Turn on the shop vacuum (ours is a ShopFox.)
4. Home the CNC
5. Load the correct bit for the job.
6. Tool height your bit.
7. Zero the Z-axis to your material.
8. Open or import your design file.
9. Program toolpaths using 2D or 3D operations.
10. Export toolpaths as a .NC file.
11. Open file in the Shop Sabre Router Controller.
12. Start cuts.
13. Stay by the machine and monitor until job completion.
Feeds and Speeds - Our CNC tops out at 18000 RPM but we max it out at 16000 RPM for longevity purposes. The feeds and speeds we use for a 1/4 inch flat endmill are located on Slide 11. Based on the Vortex Tool app, we can push our feedrate to 324 ins/min if we wanted to. Additionally our chipload at the default 120 in/min we leave it at would be 0.00375 and if set to the 324 in/min mentioned earlier it would be 0.010125.
feed rate (inches per minute) / (RPM x number of flutes)
120 (inches per minute) / (16000[RPM] x 2[number of flutes]) = 0.00375
324 (inches per minute) / (16000[RPM] x 2[number of flutes]) = 0.010125
Cut Depth - This is associated to diameter of the bit, but for our typical purposes and for this test we use a 1/4" bit and it can typically cut all the way through a 3/4" sheet of plywood without increasing the amount of passes. If it were a 1/8" bit, we would make sure that the passes were at least two.
Stepover - (diameter/2) This parameter is determined again by the diameter when divided by two. If pocketing or surfacing this is essentially the distance between each successive pass. The larger the bit the less runtime but less smooth a cut is, the smaller the bit the more runtime but smoother the cut is.
Bit Deflection - This is determined by cutting parameters relating to feeds and speeds and cut depth. In the case of our CNC, we do not cut anywhere near the recommended feedrate of 324 in/min. Since we cut it at 120 in/min. we stay at a safe distance away from any bit deflection issues but are still within a good range that cuts our materials quickly and properly. If we were to cut above 324 in/min. we would risk bending or flexing our bit which leads to inaccurate cuts/ surface imperfections, and if our bit does not break under the pressures being placed upon it we risk it going off center creating runout issues.
Runout - Runout is a measure of how off center a bit is. To determine if our bit was off center we used a right angle tool and flattened it on top of our work surface and lined up the other end against the endmill. Please keep in mind that we had to flip the endmill around temporarily to see how straight this alignment really was, otherwise the flutes would not have given us a proper idea of how centered it was.
Designing My Test File
I designed samples for a push fit installation project I planned for Maker Faire Miami. After making the 2D profiles, I selected them and began setting up my file.
Toolpath Accuracy - Regarding toolpath accuracy, kerf plays a large part in it but so does the programmed toolpath itself. When conducting those tests we used the "Profiling" command which has the option of being set to the center of the line, or inside or outside the line. We choose to cut outside the line and the CNC automatically offsets the toolpath by half the kerf. Additionally, we used a right-angle tool to determine how straight our cuts were and if there was any deviation in its angles. There were none.
We were also testing a new tool that could be used on ¾” honeycomb cardboard. The cut went well, unfortunately the finish was very messy with frayed edges and excessive dust. We decided to switch to a combination of laser cutting and finishing by hand.
Week 8. Elelctronics Production
This week I learned to prepare my PCB Gerber files for milling. I did it using KiCad, Bantam, and JLCPCB.
Using JLCPCB
Using the PCB I designed in the previous weeks, I went through the prcosees of setting up an order through JLCPCB. It was very easy once I realized I would need to compress all of my Gerber files into a ZIP folder in order to upload them. I selected the single sided FR-4 PCB, which I would not mill inhouse, in a green color. The minimum order quantity is 5 and the total came up to $29.58 with a 2-4 businessday shipping time. Fulfillment would be done by DHL Express.
Using Bantam
I returned to KiCad to create a proper schematic of the PBC. I still wasn’t fully confident but I followed the logic of how electric currents flow. My logic may have been a little off because I still think I put the resistors in the wrong place.
We use Bantam milling tools at Moonlighter FabLab to produce our PCBs. To use these tools I needed to install the desktop application for my Windows pc.
I found these bits for the mill thinking they were the correct type for PCBs.
You can see how sharp and pointed the tips are.
Next I had to prepare the Bantam
I loaded the bit by loosening the grommet and inserting it according to the instruction in the application.
Then I set up the interface for the bit type, material and positioning.
After uploading the Gerber file of my PCB from KiCad, I was able to place it on the material for the best layout to be cut.
This took some trial and error as I was figuring it out for the first time.
It was finally time to cut my first PBC. The program tracks the mill as it follows the tool path.
Week 9. Input Devices
Testing the PCB and Microcontroller
I used the multimeter to test the resistance on the date cannection to the servo. It confirmed that there were 1k ohms of resistance as specified by my AI instruction sheet.
I also saw good continuity from my microcontroller to the servo trace.
The switches worked consistently throughout the testing process.
The Serial Plotter in Arduino IDE mapped the signal from each push of the switches. Graph is showing that the first switch on D0 is sending the signal for a 180 degree rotation. The second switch on D1 is sending the signal to return to 0. The signals are sent at a uniform rate once the switches are pressed.