The challenge
Not every patient fits the standard pill format. Children, the elderly and patients with rare conditions often need dosages that are not available as standard medication. Pharmacists then have to manually fill capsules or split tablets, a time-consuming and error-prone process.
Doser B.V. wanted to fundamentally change this: a 3D printer that can produce personalised medication directly at the pharmacy. Per patient, per dosage, custom-printed. This requires a machine that meets GMP standards (Good Manufacturing Practice), is reliable enough for daily use in a pharmacy, and is easy to operate by a pharmacist.
Our approach
A complex mechatronic system combining precision, reliability and ease of use. From CAN bus to touchscreen.
For 2.5 years, we were truly part of the Doser team. Doser acted as product manager and was responsible for the mechanical design of the printer. Jitter developed the electronics, firmware and software. This close collaboration allowed us to move fast and bring a complex product from concept to working machine together.
Distributed system with CAN bus
The DoseRx1 is built as a distributed system with CAN bus and the CANOpen protocol as its backbone. The machine contains a mix of standard CANOpen components, motors, actuators, and custom CAN nodes designed by Jitter. This architecture makes the system modular and extensible: every component communicates via a standardised protocol, but the specific nodes are fully tailored to the requirements of pharmaceutical 3D printing.
Embedded firmware in Rust
The DoseRx1 was Jitter's first major embedded Rust project. The choice for Rust was deliberate: in a pharmaceutical context, reliability is not optional. Rust's memory safety and strong type system help eliminate an entire category of bugs upfront. The firmware coordinates the entire printing process: motor control, material dosing and communication between all nodes on the CAN bus.
Embedded GUI with Angular
The touchscreen interface is built with Angular and runs directly on the embedded system. By leveraging our existing Angular expertise for the embedded GUI, we could rapidly build a professional interface. The PrintJob Wizard guides the pharmacist through the process: select the active ingredient, set dosage and quantity, review and print. Designed for daily pharmacy use: clear, error-resistant and fast.
The result
A working pharmaceutical 3D printer that can produce personalised medication at the pharmacy. From a complex mechatronic concept to a reliable, user-friendly device. Doser B.V. is bringing the DoseRx1 to market as a solution for personalised medication.
What Jitter delivered
- Electronics design — custom CAN nodes and central controller
- CAN + CANOpen implementation — distributed system with off-the-shelf and custom devices
- Embedded firmware in Rust — print process control and motor coordination
- Embedded GUI — Angular touchscreen interface for pharmacists
- System architecture — design of the complete distributed system
More about the product: dosermedical.com