Applications + implications

Final project timeline

Most of the work that goes into the final project takes place in the last two weeks. There's a lot of soft project management that happens in preparation, but how it all comes together is quite different from how it's planned, in the end.

Everything before that final two week period I would classify as "brainstorming + learning". Pretty self-explanatory.

The final two to three weeks had a groove to it, that I'm going to spell out a bit, in case it might be useful for future students.

1. Prototyping

I began by prototyping the system. In order to make sure I wasn't wasting my time designing a system that wouldn't function, I built a test system using legos, some clamps and a 3D printed gear. The details of that process can be found on my final documentation page.

What was important from this stage was that I proved the physics of the idea could work. To get the system working it required a gear system, with a ratio that had enough torque to get beginning sequence of the toilet seat lifting to happen.

2. Designing

Because the final projects in 2025 had to be done earlier than usual, and since I had to leave the lab a week early for a work trip, I was stressed about not being able to get everything done on time. As such, my designing process followed the pattern of "make the most important shit first".

The design process can be split into two parts though, mechanical and electronic.

For mechanical, I prioritized the gear system, the base, the lid clamp with a servo. Unfortunately, I had to settle for a structure that used aluminum extrusions. I felt it gave the project a very unfinished feel, but at the same time, it would have taken too long to design and get everything else done in time. Helaas.

I designed the mechanical and electronic systems in parallel, but my focus was mostly on getting the mechanical system to work. While doing so, I used a breadboard electronics set up with a DC power supply. Designing mechanical parts is hard. Getting them to the exact right size is even harder.

As I neared a stage where the mechanics were working, I heavily shifted my focus towards getting the electronics of my project to function as I wanted.

3. Electronics production + coding

For my final project, I ended up making two boards: 1) The Frankenstein board, 2) The pretty board (and it's dead twin). In both cases I prototyped the electronics system using a bread board, some breakout boards, and a DC power supply.

I had made the Frankenstein board somewhat early on during my mechanics design process. The board was a bit of a Frankenstein board due to all of the errors that needed fixing.

  1. The step down converter was making contact with the board somewhere, so I cleared some copper so that it wouldn't short circuit
  2. I had designed the board with a small SMD capacitor, but I actually needed an electrolytic 100uF capacitor, so I used a through hole mount capacitor from an Arduino kit
  3. Some traces were ripped off while I was fixing the capacitor error, so I used wires as jumpers to reconnect what the traces were no longer connected

Those were a few of a litany of errors. Ultimately, I got that board working. It was handy to have a board to test with, because as I neared the end of my mechanical testing phase, I was able to make a new board that solved all of those errors. I would suggest to future students that they make a really simple early board, with an extra button or two, to run tests with.

When designing The pretty board, I used The Frankenstein board, but I also used breadboards again. As I neared the end of my mechanical design process, I started to try and get all of the different components to work together.

  1. A stepper motor
  2. A servo motor
  3. A limit switch
  4. Two ESP MCUs communicating with one another

At home I was able to able to prototype the whole system with breadboards. It was at this stage that I really started to expand on my code. I go into detail about that process in my System Integration week notes.

The nice part about code, in comparison to mechanical design, is that there are lots of resources online for the specific things you're trying to do. AI is also very helpful for a noob like me. The process was by no means quick, but it was more easily manageable than mechanical design.

The only major issue I had was that, when it came to milling and soldering my second board, instead of putting a XIAO ESP32c6 on the newly milled board, I put a XIAO ESP32c3. However, I had done my breadboard prototyping with the c6. The c3 was not able to control turning the stepper motor, the servo, and communicating via ESP-NOW. When I tried to swap out the c3 with the c6 I accidentally ripped up all of the traces had to mill it again.

Final project questions

What will it do?

The device will lift the toilet seat and put it back down. It will do so without having to be touched by the user.

The device should be usable with existing toilet seats (rather than users having to throw away their old toilet seats). This is why I didn't make a toilet seat lifter that had some kind of motor in it's hinge. The idea of people throwing away their existing toilet seats for a new one doesn't sit well with the side of me that wants the world to behave a bit more sustainably.

What will you design?

I designed the gears, the spool, the base, the limit switch holder, the stepper motor holder inserts, caps to hold the top shaft, the remote control case and circuit, and the motor controller circuit.

What materials and components will be used?

  • FR1
  • acrylic
  • PLA (for 3D printing)
  • metal shafts (6mm and 4mm)
  • 4 and 6 mm bearings
  • aluminum extrusions
  • a 12V wall charger
  • a DC voltage converter
  • XIAO ESP32c3 and c6
  • DRV8825 step stick
  • limit switch
  • NEMA 17 stepper motor
  • servo motor

Where will they come from?

The fab inventory and Tinytronics.nl.

How much will they cost?

Component Quantity Supplier Total Price
Nema 17 stepper motor 1 fab inventory €12.00
Daiwa 626ZZ Ball Bearing 2 tinytronics.nl €2.00
4mm shaft 1 fab inventory €2.00
608ZZ bearing 2 fab inventory €3.00
8mm shaft 1 fab inventory €3.00
DRV8825 step stick 1 tinytronics.nl €5.00
XIAO ESP32C3 MCU 1 tinytronics.nl €6.50
XIAO ESP32C6 MCU 1 tinytronics.nl €8.25
DC-DC Verstelbare Step-down Buck Converter LM2596 3A 1 Sam €3.00
Wire (to servo) --- fab inventory €1.00
Knorr Prandell bead thread --- fab inventory €2.75
Aluminum extrusions --- fab inventory €5.00
220 ohm resistor --- fab inventory €0.09
SM-S2309S servo motor 1 birthday present €9.92
Omron SMD buttons 4 fab inventory €2.88
LEDs 4 fab inventory €0.48
FR1 --- fab inventory €1.00
Bolts --- fab inventory €1.00
Micro Switch V-156-1C25 1 Henk €0.75
01x04 horizontal SMD pin header 2 fab inventory €1.12
01x03 horizontal SMD pin header 1 fab inventory €1.12
01x02 vertical SMD pin socket 1 fab inventory €0.60
PJ-002AH-SMT-TR (power jack) 1 fab inventory €1.21
12V / 1.5mAh cable 1 fab inventory €15.00
10k ohm resistor 1 fab inventory €0.09
100 ohm resistor 4 fab inventory €0.36
0 ohm resistor 3 fab inventory €0.27
100uF electrolytic capacitors 2 fab inventory €0.92
3.7V battery 1 Henk €10.00
03962a Battery Charger 1 Sam €2.00
TOTAL €106.65

What parts and systems will be made?

  • The stepper motor pulley system. This includes the 3D printed gears and laser cut end caps that hold the stepper motor in place. The spool that is connected to the middle shaft that winds up the wire, which is connected to the toilet seat clamp, and is turned by the top gear.
  • The remote control and motor board PCBs.
  • The clamp
  • The aluminum extrusion end caps (for the top shaft)
  • The base.

What processes will be used?

  • Project management
  • Embedded programming
  • 3D printing
  • Electronics design
  • Electronics production
  • Input devices
  • Output devices
  • Networking + communications

Who's done what (already)?

There are toilet seats / lids that have motors built into their hinges. There are devices that make toilet seats go down after flushing. There are mechanical toilet seat lifters.

And my personal favorite:

There's also this idea, that I found to be quite novel.

spring loaded

All but two of the examples require a new seat to be bought. And the other two are focused solely on putting the seat down (not up).

My project allows users to install it without buying a new seat, and it is capable of going up and down.

What worked?

The toilet lifted. The toilet went down. So, the mechanics worked.

The electronics also worked.

The code got the job done, but not exactly how I would like it. But it worked.

Everything worked, I would say, except for the base. And I think that was due to needing to replace the whole part at the last minute (the day before I flew to Barcelona).

What didn't work?

The base. I had designed it around the toilet seat that was set up the lab, but when I moved over to test the device on a real toilet, the gap between the bolts was different. That made it almost impossible to keep the device upright.

The code. It mostly worked, but there were some quirks that needed smoothing out. For instance, the settings that lowered down the seat were based on the stepper's position, which had a tendency to change over time.

The ESP32c3. For controlling the servo and stepper motor (and limit switch), so I used the XIAO ESP32c6.

What did work, but I would improve?

The clamp. When screwed in, the bolt would damage the top of the toilet. I added a leftover piece of acrylic to stop the scratching, but I would like to make something that is permanent.

The clamp again. Even though it actually worked really well, I would have liked to make the design a bit wider, so that the clamp wouldn't wriggle from side to side.

The power supply. I don't like having a cable near the toilet.

The base. I would add suction cups at the back of the base. They were really effective. Combined with the way the base is currently designed, I think it would work well in combination.

The base. I would make the outer arms of the baseplate a bit longer, to improve it's hold / resistance to tipping forward.

The spool. It held the wire well, but sometimes the wire would slip off the spool to the right or left, which would change the amount of steps it took for the lid to be returned back down.