L.I.P.S
Welcome to the build guide for L.I.P.S.! This project is a fully open-source sip-and-puff accessibility device designed to give users with severe motor disabilities or paralysis a reliable, everyday way to interact with computers and electronics using just their breath.
For more in-depth documentation and all the files needed for this project—including the hardware architecture, firmware, and 3D models—please visit the GitHub repository. You can also flash and configure your completed device directly through the official L.I.P.S. website (https://projectlips.me/).
Why I built this: High-quality assistive technology is often prohibitively expensive and locked behind proprietary, closed-source ecosystems. I designed L.I.P.S. to break down those barriers by providing a low-cost, highly customizable alternative. By making the designs completely open-source, the goal is to empower users and makers to adapt the device to their specific needs without relying on expensive medical tech companies.
Thanks to the support of PCBWay, the custom circuit boards are simple to manufacture and assemble. In this Instructable, I will walk you through the entire process—from sourcing the electronics and flashing the firmware to the final hardware assembly.
Supplies
Here is the complete list of components and materials you will need to build L.I.P.S.
Core Electronics
- 1x CH552G (SOP-16): Main microcontroller (U1)
- 1x XGZP6897A-series: Differential pressure sensor
- 1x USB4085-GF-A_REVB: USB-C connector (J1)
- 1x USBLC6-2SC6: USB ESD protection array (U3)
- 3x 5.1 kΩ (5k1) Resistors: (R1, R4, R5)
- 3x 100 nF Capacitors: (C1, C3, C4)
(Note: The Solder Jumper (JP1) and Test Points (TP1-TP4) are marked as DNP (Do Not Populate) or are just bare PCB pads, so you do not need to source components for them.)
Off-Board Hardware & Enclosure
- 1x Hall Effect Analog Joystick Module: 2-axis with a center detent
- 3D Printed Enclosure: Head, top lid, and bottom lid (PLA or Resin)
- Silicone Food-Grade Tubing (3 mm ID): At least 13 cm, cut to fit
- Hookup Wire: A few short lengths (3–5 cm) for wiring the joystick to the main board
Assemble and Solder the PCB
Before moving on to the enclosure, you need a fully assembled mainboard.
- If you ordered your boards from PCBWay using their assembly service, you are ready to go and can skip straight to Step 2!
- If you ordered bare boards, you will need to hand-solder all of your components. Follow the image sequence to solder the components in the easiest order.
⚠️ WARNING: WATCH YOUR HEAT It is absolutely crucial that you follow the exact soldering order shown in the images. The XGZP pressure sensor is highly sensitive to temperature. Applying too much heat or leaving your iron on the pads for too long will permanently damage or destroy the internal sensor membrane. Work quickly, use flux, and do not overheat the component!
Inspection Checklist Before powering on your freshly soldered board, verify the following:
- No solder bridges between adjacent pins (check closely).
- No "tombstoned" passives (where one end is lifted off the pad).
- No short between VBUS and GND (test this using a multimeter in continuity mode).
- The CH552 pin 1 orientation is correct.
- The USB connector is flush with the board edge.
- All SMD components are seated flat against their pads.
First Power-On
- Connect the board to power by plugging it into a PC USB port.
- Watch closely for smoke, hot spots, or unusual smells for the first few seconds.
- Verify you are getting ~3.3 V on the board using a multimeter.
Wire the Joystick
Cut a few lengths of hookup wire to at least 3–5 cm long and strip the ends.
Solder the wires to the joystick first. You will route these to the PCB later.
The joystick has two axes, meaning it has two GND pins and two VCC pins. Since these are on the same net, you can bridge the two GND legs together and the two VCC legs together directly at the joystick. This way, you only need to run one GND wire and one VCC wire to the PCB.
Pay close attention to VCC and GND—they must be connected correctly. (The X and Y signal lines can easily be swapped in software later, so wire them however is most convenient for your physical layout).
Flash Firmware and Test (Before Closing!)
Do not put the device into the case yet! It is much easier to fix wiring or soldering issues while the board is still accessible.
- Plug your assembled PCB into your computer via USB.
- Go to the official web tool at https://projectlips.me/.
- Use the web tool to automatically put the device into bootloader mode and flash the correct firmware for your variant.
- Test the device to verify that:
- It enumerates correctly over USB.
- The joystick successfully moves your mouse cursor.
- Sip and puff breath pressures are correctly detected.
Route the Silicone Tubing
Take your food-grade silicone tube and push it through the designated sensor hole in the 3D-printed case from the outside. Push it further in than it needs to go so that you have some extra length to work with inside the case.
Seat the PCB
Insert the PCB into the case, leading with the USB-C connector end.
Once the USB-C connector is perfectly aligned with its cutout in the case, firmly connect the silicone tube to the pressure sensor port on the board.
While pulling the silicone tube back out from the outside of the case (to take up the slack), simultaneously press the PCB toward the case from the inside.
Continue pressing until you hear and feel a snap—this means the PCB is seated flush against the case walls.
Fit and Glue the Joystick
Route the wires from the joystick to the PCB pads, adjusting the length and orientation as needed, and solder them to the board. (Once seated, the final wire run should be no more than ~1.5 cm).
Move the joystick module into its designated position inside the case. Check that it fits smoothly. (Depending on your 3D print tolerances, you might need to trim or sand a tiny amount of material).
Once the fit is confirmed, apply super glue (cyanoacrylate) to secure the joystick in place. Hold it for a few seconds until the glue sets.
Close the Enclosure
Check that no wires are pinched.
Apply super glue to the contact points along the edges of the case.
Carefully align the top lid, press it down, and hold it firmly in place for a few seconds while the glue sets.
Attach your silicone mouthpiece to the tubing.