In Home & Office Uroflowmetry Device


The In Home & Office Uroflowmetry Device, which has been nicknamed “Uroflow”, is an ongoing project with the pediatric urology department at the Children’s Hospital of Philadelphia. The goal is this project is to help combat lower urinary tract dysfunction in children.

Lower urinary tract (LUT) symptoms and dysfunction affect 17-22% of all school-aged children. Common symptoms of this include hold maneuvers, urinary incontinence, urinary urgency & increased frequency, and urinary retention (urine left in bladder). The most common causes of LUT dysfunction include dysfunctional voiding, overactive bladder, voiding postponement, and primary bladder neck dysfunction. [Statistics and information courtesy of Children’s Hospital of Philadelphia, Urology Division]

A typical urine flow profile resembles a bell shaped curve, where the flow rate of urine begins low, increases, peaks, and slowly tapers off to 0. In children with LUT, the flow profile will look like a bit like a sinusoid, indicating that the stream is starting and stopping repeatedly. This is called staccato flow. This commonly leads to urine being left in the bladder, commonly leading to infection. Shown below are healthy and unhealthy (LUT) flow profile. [Images courtesy of Children’s Hospital of Philadelphia, Urology Division]

A healthy urine flow profile

A healthy urine flow profile

A urine flow profile with LUT, staccato flow.

A urine flow profile with LUT, staccato flow.

The urology division at CHOP explained to us with the concept of training, where they can actively teach a child how to better control their muscles to mitigate staccato flow and train the child to urinate in a bell-shaped flow profile, limiting urine left in the bladder and limiting risk of infection and other complications. Doing this requires a way to monitor urine flow rate.

Currently, the “gold standard” monitoring method is the setup shown to the right. It involves the child urinating into a container that is weighed as they urinate, and this weight-over-time is converted to a flow rate. The main issue with this method is that it doesn’t provide real time feedback.

The results are printed on a piece of paper, printed after the patient is finished urinating. Beyond the antiquation of this method, it can also only be done in a hospital setting.

A big issue associated with the concept of ‘training’ is that it can only be currently done in a hospital, with a doctor, and only a few times a week at most: taking up the doctor’s time, the patient’s time, and the patient’s family’s time. How can we enable the patients to be able to train more often, on their own time?

Screen Shot 2018-10-26 at 1.20.54 PM.png
Results from current hospital “gold standard”. Flow simulated using digitally controlled water pump, simulating sine wave.

Results from current hospital “gold standard”. Flow simulated using digitally controlled water pump, simulating sine wave.

Our team’s goal was to match this gold standard, but provide the feedback to the patient in as real-time as possible. After experimenting with a number of sensors and ideas, including an ultrasonic range finder to measure fluid height and a dedicated liquid flow sensor, we were able to find a simple idea that worked: an air pressure sensor.

Our chosen sensor is the MPX5050, from Freescale Semiconductor. It provides a simple analog output, proportional to the air pressure it detects in its input ports. In our test setup, we attached the sensor to a rigid plastic tube, and inserted the other end of the tube at the bottom of a collection chamber. We found that the pressure sensor would output a voltage proportional to the height of the liquid in the collection chamber (which matched the height of the liquid in the rigid plastic tube attached to the sensor). If we could measure the height of the liquid over time, we could mathematically calculate the flow rate.

Using a digitally-controlled water pump, we generated various flow profiles, including sine, square, and triangle waves. These waves were generated using the PWM output of an ATMega328 microcontroller.

The analog output of the sensor was fed, using a microcontroller and serial communication, into MATLAB. In MATLAB, we planned to take the derivative of the data (by taking the difference between two consecutive samples and dividing by the sampling period), to generate a flow rate. We found that this method of taking a derivative was extremely sensitive to noise, and ruined the results. To combat this, we applied a low-pass filter to the data, to smooth it out, and then calculated our derivate.

This method, when tested in a hospital setting, matched the gold standard of urine flow monitoring perfectly.

Our next question became, how we can move our platform off of MATLAB/PC entirely, and allow a patient to use this methodology in their homes?

This phase of the project is currently ongoing, and a solution is being implemented, as shown in the below schematic.

Screen Shot 2018-10-26 at 1.14.12 PM.png

The small goals of the project are to read the data, filter/process it, visualize it, and empty the urine in a responsible, sanitary manner.

I am currently using a Teensy 2.0 microcontroller, to read the sensor, filter the data using a filter library, take the derivative onboard, and convert it to a flow rate (which requires calibration).

The data is being sent over Bluetooth, using an HC-505 module, connected to the TX&RX lines of the microcontroller. The data is visualized using the Adafruit Bluefruit mobile app.

Lastly, the urine needs to be emptied. At the bottom of the collection chamber is a motorized valve, which can be opened and closed using the GPIO pins of the microcontroller. The valve has 3 pins, a ground, an open, and a close. To open it, a HIGH signal is sent to the open pin and LOW to the close pin, and vice versa to close it. It takes approximately 5 seconds, and approximately half a watt of power (12V @ 40 mA). In order to control this with low voltage, low current GPIO signals, two high side switches are implemented. Their schematic is shown below. One of these circuit is used to control each control pin on the valve.

Screen Shot 2018-10-26 at 1.39.02 PM.png

This phase of the project is ongoing. The full device is currently being assembled and updates will be provided as it progresses!

The source code, written for the ATMega32u4 microcontroller, can be found here! https://github.com/bgarberman/Uroflow/tree/master/src