Force sensor layout inside insole
Force sensor layout inside insole
Completed custom PCBs
Digital twin creation in Blender
As an intern in the RISE (Research Internships in Science and Engineering) program through the German Academic Exchange Service, I contributed to the development of a smart insole for a foot orthosis. My work involved designing and 3D printing enclosures using PLA and TPU, creating digital twins through 3D scanning and retopology, and designing, assembling, and debugging PCBs for force sensors and an IMU. I also wrote software for PCB-to-computer communication using MQTT and developed Unity-based VR/AR environments with OptiTrack/Motive integration and a custom heatmap shader. This experience enhanced my skills in hardware design, embedded systems, IoT devices, prototyping, and interactive simulations.
The previous solution: a rats nest of wires routed to an Arduino Mega.
The innovation: a custom PCB built around an ESP32 module with headers to connect to the force sensors and IMU.
The TPU insole with the 16 force sensors and IMU module.
Several iterations of the PCBs in KiCAD
Applying solder paste and manually placing components with a vacuum pick and place machine.
Iterations of the TPU printed insole side by side with the original foam insole.
Printing the TPU insoles.
Iterations of the PCB enclosure, adjusting geometry for strap attachment and close fit to the orthosis.
Finalized enclosures in context of the orthosis.
3D scanning and attempts at remeshing eventually led to performing retopology on the scan in Blender for a clean digital twin.
During my internship, I encountered several challenges that deepened my understanding of engineering design and problem-solving.
The PCB prototypes had misrouted traces, which led to connectivity issues and unexpected signal behavior. This experience reinforced the importance of meticulous schematic verification, careful trace routing, and thorough design reviews before fabrication.
One unexpected challenge was string parsing when handling sensor data. I initially overlooked that European number formatting uses commas instead of decimal points, causing errors in data processing. This taught me to always account for regional differences in data formats and reinforced the importance of robust input handling in software development
These experiences emphasized the value of testing early, designing with flexibility in mind, and approaching problems methodically.