Problem
Visual overlays can slow precision work (occlusion, split attention). It’s easy to glance between part and HUD and lose flow.
My name is Rodrigo A. Gallardo. I’m a graduate student at MIT in Architecture and Electrical Engineering & Computer Science, researching multimodal systems that integrate vision, haptics, and AI. My work focuses on developing interactive platforms that enhance usability, ergonomics, and task performance, with my thesis centered on textile-based actuation for soft, wearable haptic feedback.
A wrist-worn device exploring discrete squeeze cues via an SMA-based haptic array, synchronized with hand motion and MR instructions, to help follow assembly steps without relying only on vision.
Visual overlays can slow precision work (occlusion, split attention). It’s easy to glance between part and HUD and lose flow.
Wrist band with discrete squeeze feedback from an SMA array. Cues are parametrized and addressed per cell for spatial hints (rotate, translate, confirm).
Prototype control on a 3-channel RP2040 board. Iterating TPU band, SMA cell modules, and MR link; moving from vibration-first to a squeeze-only array.
~45% so far (concept + 3-ch control tried; housing + array in progress).
Rationale: squeeze tends to feel clearer for “act/confirm” than low-amplitude vibration during tool use.




.jpg)





Machine and Worflow
Drew parts in Rhino → exported .dxf → opened in CorelDRAW. Set all vectors to Hairline and grouped by color
(black/red/blue/green) for different cut/engrave settings. Turned on the shop vacuum; focused with the stick (top surface for thin stock,
mid-thickness for thicker). In the ULS UI: set power/speed/frequency per color, positioned the job, and used the red pointer to check placement.
Characterization(notes) Material: corrugated cardboard (~1/8″). Dialed settings until edges were clean with minimal burn. Fill in when measured: focus: top / mid; power: 65%; speed: 50%;
Process Notes Within a color, cut order creates interesting toolpaths. We balanced speed and power to avoid charring while maintaining full separation, then produced the final piece shown above.
Parametric construction kit: design, lasercut, and document a press-fit kit that accounts for kerf and can assemble multiple ways.
Extra credit: include non-flat elements and combine engraving with cutting.
This week, I practiced and developed skills in soldering and embedded systems. The system I worked on was designed by Quentin Bolsee.
Components soldered:
Tools / materials: soldering iron, flux, tweezers, hot air, solder gel
Verification:
Printer: Bambu Lab P1S 3D PrinterSlicer: Bambu Studio
Goal: This week, I set out to 3D print an early version of the haptic bracelet I am designing. The design required two different materials: a rigid PLA housing for the motors, and flexible TPU bands that could stretch for donning and doffing.

Using the parametric model I created in Week 2, I completed the 3D models in Rhino. Because of its size and overhangs, this design could not have been fabricated subtractively, making additive manufacturing essential.



.jpg)
.jpg)
.jpg)
I went through multiple iterations to refine the design:
Overall, this process gave me a clearer understanding of material constraints and tolerance requirements for future versions of the bracelet.
.jpg)
Scanner/App: Reality Scan Object: Clay object casted in dirt
This week I jumped into KiCAD. I picked it because, out of all the PCB design tools, it felt like the one with the most tutorials and documentation floating around online. It seemed like the best choice for me as a beginner.
For my final project I’ll eventually need to control five separate 3V vibration motors, each individually. At first, I tried hunting down ready-made footprint and schematic files online but couldn’t find what I needed. So instead of wasting more time, I decided to just keep it simple and use this week as practice.
The idea was to make a breakout board where I could plug things in more easily and test them out. I followed the hardware overview from lecture, added in pin sockets, and labeled SDA and SCL on pins 4 and 5. The naming conventions were a little confusing at first since they didn’t always match up, but I worked through it.







I did run into a few design rule check (DRC) warnings while routing. I used them as a checklist—fix a spacing issue, re-run DRC, repeat—until I cleared the critical ones.


Seeing the board in 3D really helped sanity-check footprints, connector clearances, and general orientation before sending anything out.


Overall, this week was more about getting my hands dirty in KiCAD than making something polished. I wanted to learn the basics: how to place components, wire things up, and troubleshoot when the layout got messy. It took a few retries, but I can already see how much smoother the workflow feels compared to when I started. Now I’ve got a simple breakout board under my belt and feel more ready to take on the complex designs I’ll need for the final project.
Before using the CNC, I completed the shop’s safety training. Key reminders included:
We also reviewed the standard bit types and the four cut types used in the lab: drilling, mortises/interior cuts, pockets, and profile cuts. To keep parts stable during milling, we used a thin onion skin layer that was later removed by hand.
.jpg)
.jpg)
Make (Design + Mill + Assemble) Something Big (~meter-scale)
Extra credit: no fasteners or glue

For my project, I designed a zero-waste lounge chair meant for sitting cross-legged. My goal was to use the entire 4×8 OSB sheet with minimal leftover material while creating a comfortable, low-angled form.
I started with sketches and modeled the design in Rhino, alternating between 2D nesting (for material efficiency) and 3D assembly (for ergonomics and joinery). Early versions felt too upright, so I adjusted the seat and back angles until the proportions felt balanced and supportive.
The final layout used nearly the entire sheet, with just thin perimeter offcuts.
.jpg)
.jpg)
.jpg)
I prepared all cut layers directly in Rhino, organizing toolpaths for drilling, pockets, and profiles. Once complete, I sent the file to the Arch FabShop for verification.
After feedback, I made small edits to the cut order and tolerances before submitting the final file. The machining was run by Geoffrey, the lab manager, while I was present during the cutting process to observe and take notes.
The parts were cut from a single OSB sheet. Once removed, I cleaned the onion-skin edges with a utility knife and sanded the press-fit joints. The pieces locked together without glue or screws, relying entirely on friction and geometry for stability.
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
The assembled chair supports a cross-legged sitting posture and highlights the geometry of each interlocking component. The design reflects an effort to balance ergonomics, efficiency, and zero-waste fabrication principles.
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
I’d probably make the chair a bit smaller next time, or design it so it can be taken apart more easily for transport. I’d also reinforce the seat area with extra supports since the middle began to flex slightly under weight. Overall, the build worked well, but those small adjustments would make it sturdier and more practical.
I wasn’t able to take the chair to the show and tell because of its size, here is a picture of me strugguling to move it out of the shop.
.jpg)
The Rhino 8 files, with toolpaths, for this project are available here: Fabrication Files
Measure the power consumption of an output device

Add an output device to a microcontroller board you've designed, and program it to do something.
For this week, I designed a custom PCB capable of controlling three individual LEDs.
Since my final project involves an array of 3 × 5 actuators, I created a smaller proxy PCB to test the control system on a simpler setup. The goal was to understand how to efficiently manage multiple outputs before scaling up to the full array.
Initially, I planned to design a board that could handle all fifteen actuators, but this required more complex routing and power management than I could complete within the week. To simplify the task, I focused on a three-channel LED control board, which still allowed me to explore PWM control, output regulation, and signal consistency.
I used the XIAO RP2040 as the microcontroller because of its compact form factor and sufficient I/O pins for this test configuration.

I designed the schematic in KiCad, connecting the RP2040 output pins to three NPN transistor channels to drive the LEDs safely. Each channel includes a current-limiting resistor and a clean connector footprint for modular testing.


.png)

The board was milled on the PCB mill using traces/outlines exported from KiCad. Toolpaths were generated in mods and the board was hand-soldered.
.png)
I programmed the board using the Arduino RP2040 core. Each LED was mapped to a PWM pin to test dimming and sequencing for timing/power response.

The three-channel prototype controlled each LED’s brightness as intended and validated the control logic for the future 3×5 array. Next steps: scale output channels and improve power distribution for the full actuator grid.


The KiCad design files and Arduino code for this project are available here: Project Files