01 — Overview
Project Overview
The shape is a big oval, like an oversized pill lying on its side. On top there's a small screen that shows the time and which day of the week it is. Running through the middle horizontally is a seam: that's where the body opens up when you need to refill the medication inside. At the bottom there's a dispensing door, it swings open downward, like the payload bay of a jet, and the pill drops out into the slot.
Inside are three circular rotor discs, one for morning, one for lunch, one for night. Each disc is divided into seven equal sections, one for each day of the week. When the time comes, the right disc rotates to line up with the bottom door and the dose dispenses. The screen tells you what's happening.
What I'm trying to do
- 3D print the outer oval body with a functioning bottom dispensing door and top screen housing.
- Design and fabricate the three circular rotor discs (morning / lunch / night), each with 7 day-sections.
- Get a small screen and microcontroller running inside to show the time and trigger dispensing.
- Document everything clearly enough that someone else could build one too.
02 — Problem Statement
Problem Statement
I started thinking about this because I had to multiple tablets every day when I was having fevers and kept forgetting them. Not because I didn't care, but because I was usually busy and tended to forget the pills. You walk past it and your brain doesn't register it.
The usual fixes don't really work either. Phone alarms get snoozed and eventually disabled. Existing pill organisers look like something from a hospital supply catalogue. None of them feel like something you'd actually want to own.
Who's it for?
- Older people managing several medications at once — where missing a dose actually matters.
- Anyone on a strict schedule where morning / afternoon / night doses are all different.
- Caregivers who fill a weekly tray for someone else and need it to be obvious when it's been opened.
- Honestly, anyone who just wants something nicer looking on their bedside table.
03 — Concept & Sketch
Concept & Visual Sketch
The shape is an oval,a big pill lying flat. It came from the sketch below. I started drawing it and realised that the body of the dispenser being pill-shaped was almost too obvious, and that meant it was probably right. The hand-drawn version shows the three key parts: the screen at the top, the horizontal seam that splits the body open for refilling, and the dispensing door at the bottom that opens downward to drop the pill out.
Inside there are three circular discs. Each one is a rotor with 7 compartments around the edge, one for each day. The morning disc, the lunch disc, and the night disc each rotate independently. When it's time for a dose, the right disc spins to align its current day-compartment with the opening at the bottom, and the door swings open.
The dispensing door is the part I'm most uncertain about mechanically. It needs to open cleanly without the pill bouncing off and rolling away, and close firmly enough that nothing spills if you tilt the device. Still figuring out the hinge and latch geometry — that'll probably take a few print iterations to get right.
04 — Components
Possible Components
This is still a work in progress, so some of these are confirmed and some are "I think this will work." I've tried to be honest about which is which.
Mechanical & Structural
PLA for the first prototype, maybe PETG later if I need it tougher. About 2 mm walls, 20–30% infill.
StructureClear acrylic so you can see at a glance whether the compartment is empty. Seven trays, three slots each.
StructureHinged door at the bottom of the body — swings open downward to drop the pill out. Needs a latch so it doesn't open accidentally.
MechanismThree circular discs (morning, lunch, night), each with 7 compartments around the edge. A small motor or manual turn rotates them to the right day.
MechanismElectronics
Dual-core, USB, runs MicroPython. Wi-Fi and BLE built in.
MicrocontrollerAddressable RGB LEDs that'll sit along the seam line. The glow-through-the-gap effect should look good.
OutputFor when the LEDs aren't enough. Ideally not too loud — just enough to notice.
Output500 mAh LiPo tucked inside the dome. The TP4056 handles USB-C charging. Should last a week or more.
PowerThis keeps time even when the microcontroller is asleep, which is most of the time. Essential for battery life.
TimingThe ESP32 has Wi-Fi and BLE built in so it's tempting. Would let you update the schedule from your phone. A stretch goal.
CommunicationSoftware & Firmware
I picked this because I can actually read it back the next day. Handles the RTC, LEDs, and buzzer.
FirmwareSimple BLE app (built with MIT App Inventor or Flutter) to set reminder schedules.
SoftwareUsed this to model the whole thing. It's also where I've spent most of my time so far, honestly.
Design ToolFor the PCB layout. I want the board to be circular so it sits neatly inside the shell — we'll see how that goes.
Design Tool08 — Firmware
Firmware & Programming
I'm using MicroPython — partly because I know it from the assignments, and partly because I can actually read it the next morning without needing comments on every line. The basic loop is pretty simple:
- Wake up — the RTC pulls a pin low when an alarm fires, which wakes the ESP32.
- Check what time it is — ask the DS3231 over I²C.
- Is it dose time? — compare against the schedule saved in flash.
- If yes, alert — LEDs animate, buzzer beeps for about 30 seconds.
- Wait for acknowledgement — a button press, or it times out on its own.
- Go back to sleep — set the next alarm, kill everything, deep sleep.
How the code is split up
| File | What it does |
|---|---|
main.py | Starts everything up, runs the loop described above. |
rtc.py | Talks to the DS3231 — read time, set alarms, clear them. |
leds.py | Controls the WS2812B strip — colours, breathing effects, solid fills. |
schedule.py | Saves and loads the alarm schedule from flash memory. |
buzzer.py | Handles buzzer patterns over PWM — single beep, escalating, etc. |
ble.py | Stretch goal — BLE server so you can update schedules from a phone. |
LED colours
- Green — you took it, all good.
- Amber (pulsing) — it's time right now.
- Red — it's been over an hour, you missed it.
- Dim white — nothing happening, just waiting.
09 — 3D Design
3D Design in Fusion 360
This was the first proper piece of work I did for the final project. I used Fusion 360 to model both halves of the shell and the internal tray system — it's parametric so I can adjust things like wall thickness or how many trays it holds without redoing everything.
I hadn't used Fusion much before this course. It's a lot more capable than I expected — and a lot more confusing to start with. The CAM and PCB tools I haven't touched yet, but the solid modelling workflow makes sense once you get used to the timeline at the bottom.
You can download it from the Autodesk website — it's free for students.
What I actually did
- Modelled the oval body as a single solid, then cut it along the horizontal seam plane to create the two halves.
- Added the screen recess on the top face and the door opening on the bottom face as cut extrusions.
- The three rotor discs were modelled as cylinders with 7 equal wedge-cuts to create the compartments.
- Added 1–2° draft angles on the vertical walls so the print doesn't need excessive supports.
- Applied a dark matte plastic material — the render came out looking almost exactly like the hand-drawn sketch, which felt satisfying.
Here's the final model:
Rendering
I went into Scene Settings, picked a background from the Environment Library, then hit the In-Canvas Render button. It takes a few minutes but the result is much better than a screenshot of the grey model.
Saved it with the Capture Image tool in the toolbar.
10 — Animation
Product Animation in Blender
Once the Fusion model was done, I exported it as FBX and brought it into Blender. I hadn't used Blender seriously before this, and it is a lot. The interface is not exactly welcoming. But the Cycles renderer makes things look genuinely good once you figure out what you're doing.
What's in the animation
- A slow camera orbit around the closed capsule so you can see the shape from all sides.
- A twist-and-open sequence — the two halves rotate and separate.
- An exploded view pulling the inner trays apart so you can see how they stack.
- Studio lighting with ambient occlusion — trying to make it look like a product photo rather than a 3D render.
Here's the final render:
I also created a medicine tray in blender.
I have to create medicine slots for the next step.
Then I managed to light up an oled that should go as the screen.
11 — Timeline
Project Timeline & Progress
Where things are right now. I'll keep updating this as I go.
| Phase | Deliverable | Target Week | Status |
|---|---|---|---|
| Concept | Idea definition, sketches, BOM draft | Week 01 | Done |
| CAD | Parametric 3D model & render in Fusion 360 | Week 02 | Done |
| Animation | Product animation in Blender | Week 02 | Done |
| Laser Cutting | Inner tray prototypes from acrylic | Week 03 | In Progress |
| 3D Printing | First physical shell prototype | Week 05 | Planned |
| Electronics | PCB design & milling | Week 08 | Planned |
| Firmware | RTC + LED + buzzer code | Week 09 | Planned |
| Integration | Full assembly, testing, iteration | Week 16 | Planned |
| Documentation | Complete project page with all files | Week 19 | Planned |
12 — Future Work
Future Improvements
Things I'd like to add eventually, once the basic version actually works.
Hardware
- A capacitive touch area to mark a dose as taken — nicer than a button.
- A small e-ink display on the surface so you can see which day you're on without opening it.
- Wireless charging, so there's no hole in the shell for a USB-C port.
- Proper injection moulding if it ever goes further than a prototype — with food-safe lining inside the trays.
Software
- A phone app that lets you update the schedule over Bluetooth without plugging anything in.
- OTA firmware updates — so you can fix bugs without flashing the board by hand.
- Some kind of logging, so a caregiver can check whether doses are being taken.
- Multi-user support if there's more than one person in a household using it.
13 — References