Close
0%
0%

Universal Glucometer

Did your test strips just get more expensive? Has the drug store run out of strips for YOUR meter? Like to be able to use any test strip?

Similar projects worth following
Glucose test strips are expensive (especially in the long run) and each type only works for the meter they are made for. This is one reason many people do not test enough, since they can't really afford to. The goal of this project is to produce an accurate blood glucose measuring system that does not require proprietary strips from a single manufacturer but can (ideally) use any test strip from any meter.

A Universal Glucometer would make it possible for people to use strips from any manufacturer for any meter allowing you to use any strips that are available. This would allow people to shop for the best priced strips, without having to buy a new meter.

My goal is to develop a Universal Glucose Meter that is:

  • Completely open design for hardware and software (all design files, source code, etc. are open).
  • That is able to be built from easily sourcable (and inexpensive) components. (Minimal part count).
  • Is not tied to a single brand of test strips (ideally any brand of strips, but I'll start by focusing on strips that use the Amperometric method for measuring glucose concentrations - since they make up most of the market).
  • Ability to select the specific brand and type of strip.
  • Ability to calibrate meter to different manufactured lots of test strips using DIY glucose solutions to ensure accuracy and calibration.
  • Ability to update firmware to add more strip profiles or additional features.
  • Be extensible - act as a platform for others to build on and add features.
  • Ultimately I want to help make blood glucose monitoring as accessible and inexpensive as possible.
  • Inspire others to develop other open source / open hardware methods of blood glucose measurement that free diabetics from having to buy and use, proprietary, disposable, test-strips.
  • This project aims to be a stepping stone toward the development of an inexpensive, open source, method of reliably tracking blood glucose that can, ultimately, improve the lives of the millions of diabetics worldwide.

Quick Links

Working to complete info in a few links above

Background leading up to project:

My hope was to find a method of measuring blood glucose that didn't require the use of disposable, proprietary test strips. My first thought was to use some measure of light absorbance/transmittance (like with Blood Oxygen saturation) but that turned out to be full of problems from interference with other compounds present in blood. (Check out new findings on this). Then I thought I might be able to use the technology in Continuous Blood Glucose Monitors (CGM's) to make some sort of re-usable sensor - but after a bit of research I found that CGM's rely on the same Glucose Oxidase reaction that is used in test strips and are not able to be reused.

Next, I looked at how current test strips are manufactured, in the hope that their might be a less expensive method of making them. Making test strips, at present, does not seem to be an easy or economical option. Next, I looked for a method that could use a washable (cleanable) and reusable sensor (nothing to throw away). Again, this proved to be difficult to implement outside a laboratory setting. Other technologies: carbon nanotubes, quantum cascade lasers, dielectric spectroscopy, etc. are beyond my knowledge base (at the present time - but hopefully not forever).

Currently the best strategy seems to be to build a meter that is able to utilize multiple brands of strips and can be calibrated using a standardized glucose solutions.

Strips are by far the biggest expense in monitoring glucose levels. So, being able to purchase strips that are lower cost or discounted (on sale) without the need to actually purchase a new meter - could, hopefully, provide significant savings to patients. While it is possible to get meters cheap or even free (right now you need a prescription for a particular meter to get it free) no one wants to keep track of 4, 5 or more meters just to be able to take advantage of sales or discounts on strips.

So far I've been able to do a fairly significant amount of research into how current meters work, as well as breaking down the two meters in the project photo.

Luckily, it turns out that the functional design for a Glucose Meter is fairly straightforward (and widely published)....

Read more »

GerbersUniversalGlucometer.zip

Gerbers + human readable nc drill file

Zip Archive - 29.63 kB - 10/10/2016 at 00:58

Download

UniversalGlucometerBOM.pdf

Updated BOM - includes Digikey part numbers and item costs and total cost

Adobe Portable Document Format - 55.13 kB - 10/02/2016 at 03:58

Preview Download

UniversalGlucometerSchematic.pdf

Schematics for Universal Glucometer

Adobe Portable Document Format - 29.65 kB - 09/16/2016 at 22:34

Preview Download

Adobe Portable Document Format - 167.50 kB - 08/15/2016 at 06:14

Preview Download

Adobe Portable Document Format - 4.20 MB - 08/15/2016 at 06:08

Preview Download

View all 13 files

  • 1 × PIC16F1786-I/SP-ND (Digikey) IC MCU 8BIT 14KB FLASH 28SPDIP
  • 1 × MCP9700AT-E/TTCT-ND (Digikey) SENSOR TEMP RATIOMETRIC SOT23-3
  • 1 × PG 164130-ND (Digikey) PICkit3 programmer
  • 1 × 100pF ceramic capacitor
  • 2 × 1uF ceramic capacitor

View all 14 components

  • Still Going

    Tom Meehan01/28/2017 at 05:33 0 comments

    It's been a few months since I've posted to this project - sorry about that. Due to issues with my changing code and the layout of the board, I really needed to step back and reorganize my approach.

    My background in C programming is weak so, I decided to do what I should have done at the start of this project, and that is go back to basics and start at the beginning to fully learn and understand the fundamentals of C programming (with a focus on micro-controllers). So, that is what I am presently doing.

    In addition, I am redesigning the PCB - 2 layer board with all components on one side. The original board I designed was 2 layers with surface mount components on both sides. Being accustomed to through hole components, I didn't realize keeping the components on one side would make things much easier when it came to re-flowing the board (I hand soldered all the components, even the SMD ones).

    So... check back soon for updates.

  • Other silly harware issues

    Tom Meehan10/24/2016 at 06:32 0 comments

    My last post turned out to be premature - it did fix issues on the bread board version but the PCB continued to have issues (LCD back light would flicker but no text would show). It took a good deal of trouble shooting but I finally found that the Vcc pin for the LCD was, somehow, not connected to the +3.3v net on the Eagle schematic. It "looked" like it was but somehow they were 2 separate nets - meaning the LCD was not actually connected to power.

    I was able to do a temporary fix to the PCB by soldering a jumper wire between the Vcc pin on the LCD connector to the Vdd pin on the PICkit3 programmer connector.

    New "code" repository

    I'm rewriting the code from the ground up and simplifying the project (which should make it more flexible for others - easier to pull pieces from or add function to).

    Busy trying to correctly set up an Eagle CAD "design file" repository on Github (really want it set up correctly so that I can update and "commit" changes and additions the right way).

    Changing PCB design:

    • 2 layer board (still) but all parts on one side. Previous board was my first effort at PCB design using SMD parts and 2 layer boards - in hindsight it seems much easier to place all parts on the front of the board. (Being a bit old school, 2 layers made me think "2 sided" - so I'm correcting that).
    • Correcting the other errors I've mentioned (pin assignment for the resonator and Strip Sense pin).
    • Method of sensing strip
    • Adding 5th pin to strip connector (Strip fill sense detector)

  • YES - finally uncovered the errors!!!

    Tom Meehan10/15/2016 at 06:07 0 comments

    I've been going through my design (schematic's, etc.) and coding (quite literally line by line with datasheets in front of me) all week. Finally, I believe I've found the errors that broke the code - both are a mix of hardware and software.

    The first issue, which I found fairly quickly, has to do with test strip sensing - when a strip is inserted. The original code that I was building on relied on using the XXX strips which have a straight contact across the bottom of the strip so that when it is inserted it completes a circuit (basically). I had attempted to adopt that to other strips that do not have that straight contact bar across the bottom.

    The second issue concerns pin assignments for Switch 4 and for the ceramic oscillator. Somehow, when I was transferring the circuit design from the PIC16F1786 over to the beefier PIC16F1789, I connected the resonator to the incorrect pins - I connected them to the same port pins that the resonator was connected to on the PIC16F1786 (C0 and C1).

    On the PIC16F1789 the external timing crystal or oscillator needs to be connected across A7 and A6 (pins 31 and 37 on the surface mount package I'm using). If that wasn't enough - I attached the digital input for Switch 4 to pin 31 (A7). So, of course I need to change the input pin for Switch 4.

    Just to get back to a working prototype, I've changed the code so that the strip sense pin (which has a pullup resistor on it) is attached to a reed switch that when triggered pulls the pin to ground potential. I also switched to the internal oscillator (4MHz) to avoid needing to solder wires directly to the chip.

    After it's working correctly, again, I'll implement a simpler variation of a reed switch into the strip reader/contact housing. Also, I'll be posting all these corrections to the schematics and gerbers for the board ASAP.

    In addition, I'll be adding 1 more pin to the strip reader connector, to monitor the "Fill" detection electrode.

  • New Firmware

    Tom Meehan10/13/2016 at 06:06 0 comments

    Due to code not working consistently - I'm re-writing and simplifying my code to meet my objectives and leaving other unnecessary functions out for now. I need to go back to basics and make the code simpler and more straightforward.

    One main area, that I found, that made the code freeze up at times was the strip sensing method - which I have redesigned with an easy to implement hardware and coding solution that should work for all types of strips.

    I'll post the essentials to later today.

  • Strip Connector Design for Universal Glucometer

    Tom Meehan10/03/2016 at 05:54 0 comments

    The strip connector has been one of the main obstacles in designing a Universal Glucometer. Glucose test strips all seem to have slightly different dimensions, as well as spacing and ordering of contacts.

    My original vision was to use a single connector/port to insert test strips into. My idea was to use a connector with multiple contacts and when the strip was selected from the menu the contacts specific to each strip would be enabled (and unused contacts disabled).

    To accomplish this I, initially, thought that I would either need a micro-controller with enough pins available for this or I would need to use a parallel to serial converter to select pins. Of course, using a shift register, (which would only work if all the pins also went through ADC's to convert the analog signal to digital information.

    I decided that this approach would add to many parts to the design – making it more expensive and more difficult to put together.

    Thankfully, I kept the suggestion by netrunner in the back of my mind – seems to be the best approach for now. This approach involves adapters that plug into the meter that match the contacts and dimensions of different strips and adapt them to the Universal Glucometer strip reader jack/connector.

    Currently this involves 3D Printing housings for strip connectors, Copper clad board, 90 degree male headers (0.1” standard spacing), and 22 gauge hook up wire.

    Evolution of the design:

    Accu-Check Aviva Strip connector salvaged from meter and adapted to breakout board for testing on breadboard (total of 8 contacts). This was the first connector I tried using (since it seemed adaptable to different strips by using different contacts).

    This connector I pulled out of a xxx test strip reader. Before I could test this with actual strips I broke it while trying to add mounting holes.

    Hand Milled from scrap acrylic - contacts are just 22 gauge wire threaded through. This basic setup worked fine with ReliOn test strips (not very elegant but functional)

    This is the type of connector I'm finally settling on - connects easily to the Universal Glucometer board, easy to adapt to different strip dimensions and pinouts.

  • Test Strip Profiles

    Tom Meehan09/16/2016 at 19:35 0 comments

    This is the start of building up a database on test strips. I'm starting with the pin-outs/contacts for the strips I know so far.

    The plan is to have a list of strips, contact locations for working electrode, dimensions of the contact area of each strip (spacing between contacts and distance from base of the strip to the center of each contact), and then work to develop the best fit equations for glucose response for each strip.

    ReliOn Ultima Test Strip

    Freestyle Test Strip

    Accucheck Aviva Plus Test Strip

    One Touch Ultra Test Strip

    The One Touch Ultra Blue looks to have a slightly different arrangement.

    This is just a start!!!

  • Ch-ch-ch-ch-Changes (in some parts)

    Tom Meehan09/14/2016 at 04:46 0 comments

    ARRGH... of course I forgot to order 1 part, in this case it was the surface mount power connector from the battery pack to the board. I choose this connector because the female side is used on lots of lithium single cell batteries and other battery packs (so I figured that the receptacle must be pretty common also... and my goal is to use an easy to source parts). Additionally, the Eagle CAD part is available in the Adafruit part library (so I wouldn't need to go through the headache of making a new part in Eagle). As it turned out, I could only find this part at Sparkfun (JST Right Angle Connector – White PRT-08612) or Adafruit (JST-PH 2-Pin SMT Right Angle Connector PRODUCT ID: 1769) and no where else – not Digikey, Mouser, Newark or even eBay. Well, that didn't equal common or easy to source part for me.

    Looking for a solution, since my boards are already out for fabrication, I needed to find something. Of course I could always just solder the battery pack leads directly to the board but I didn't want to do that. Eventually I found that the through hole version, which is quite available (either as the JST-PH-2 or Molex 5264), can be altered to fit the footprint for the SMD version. Both of these, the female connector and the male through hole receptacle, are fairly common as battery cable connectors in old wireless phones, lantern battery connector, older computer boards and many other devices (which is where I found the ones I'm now using). As soon as I can get the new part numbers I'll put them in the Bill of Materials, until then I'll leave the surface mount version.

    By bending the through hole wire connections back 90 degrees (so they are in line with the connector and extend out behind) they actually match the surface mount dimensions (yeah, this is definitely a Hack but there is no way I was going to place an order for just one part when postage and handling is more than the part itself.


    Soon after placing my last parts order I worried about the clearance for the Reset Switch that is placed in the top right of the PCB (which is under the LCD screen), I thought the switch might be to tall. After I received my order I used the actual parts to check clearances... and I was correct, the switch was to tall. Looking through my scrap/salvage boards (from old appliances: TV's, VCR's, Computers, Toys, etc.) I found some lower profile tactile switches with the same footprint as the ones I ordered. Beware – the current part number for this switch, on my Bill Of Materials, is the old switch since I need to find a part number for the lower profile one (as soon as I do I'll change it on the BOM – with a comment).

    Here, you can see the difference:

    I'm close to having all the base code straightened out and I'm designing the case for 3D Printing using OnShape. My project file is Public (so anyone with an account, which is free, can look at it - or download it) and it is named UniversalGlucometerCase. So, you can check out my design progress if you want.

  • PCB files out to OSH Park - FINALLY

    Tom Meehan09/10/2016 at 16:53 0 comments

    It seems to have taken forever (at least from my perspective) but last week I finally sent my Eagle CAD files to OSH Park to have boards made. At this point, they are already out at the PCB fabricator and I expect to get them by the end of September.

    This is my first time sending files out to have a board fabricated, everything else I've done has been with perf board (point to point soldering), strip board and single sided etched or CNC milled boards.

    This, present, board is mostly surface mount parts (to save money and space). My experience with soldering surface mount parts is very limited so I used larger package sizes (1206 for passive components) for components to make it as easy as possible for me, and others, to populate the PCB.

    I tried my best to include the ability to add more memory of functions I haven't been able to test yet (EEPROM chip to expand functional memory, and an additional button for data entry). I really want to add capability to transfer data to computer/phone/cloud, that will have to be a future addition.

    I'm posting the current schematics up, by 9/16/16.

  • Printable Test Strips

    Tom Meehan09/05/2016 at 23:18 0 comments

    I came across this completely by accident but found it very exciting.

    The idea began as a student project at Clemson University in South Carolina and they then went on to form a company Accessible Diagnostics LLC. They are currently winding there way through the regulatory process with the FDA.

    A great article covering the development of this method is on HealthLine Printing Low Cost Glucose Test Strips Paper . The major parts needed are an injet printer and custom filled ink cartridges.

    They've also developed a inexpensive screening method for diabetes:

    This makes all sorts of ideas come to mind...

  • GitHub, MPLABX, EAGLE... Oh my!

    Tom Meehan08/31/2016 at 05:56 0 comments

    I've been delayed in posting my progress due to working on another project for the Chicago Southland Maker Faire. I was determined to build a Van De Graaff generator for some fun demonstrations of the effects of static electricity. I got it the Van De Graaff finished and working - but with the high humidity it couldn't due to much. Also, got to show off my progress on the Universal Glucometer.

    Still trying to conquer linking my MPLAB X projects to my GitHub repositories (instead of committing changes I've been adding them manually - which defeats the purpose of GitHub, version control). This has been my biggest headache.

    In the process of updating MPLAB X, I found the MPLAB Code Configurator. I completely missed this on my initial install. It looks like it can be quite helpful in generating the code to set up, configure, all the different parts of the microcontroller (ADC, DAC, OPAMP, INTOSC, etc.). I am presently attempting to use it for my upgrade/migration to the PIC16F1789 chip (more memory, and another Port).

    screen shot of MPLAB Code Config.

    To migrate over to the PIC16F1789 and also add external EEPROM memory means that I have to move the LCD screen over to Port D - from Port C. This is because Port C has the pins to communicate with the EEPROM chip.

    Still busy with Eagle - finalizing my board design. Still need to add the battery/power contacts, a ground plane, and room to add external communication (USB, Bluetooth) to download data, also would like to add a bootloader and usb connection to make updating firmware easier.

View all 27 project logs

  • 1

    Purchase parts on BOM (bill of materials) link

  • 2

    Board - can purchase directly from OSH Park link or make your own (link to design files)

  • 3

    Enclosure - 3D Print, CNC, Hand Fabricate, etc

View all 10 instructions

Enjoy this project?

Share

Discussions

M. Bindhammer wrote 10/10/2016 at 15:48 point

Congrats again, Tom. http://hackaday.com/2016/10/10/these-20-projects-won-1000-for-assistive-technologies/

Maybe after the HAD Prize we could team up and develop a real product. Our projects could benefit from each other. I have some mathematical and chemical skills as well as some money to spend for RD...

  Are you sure? yes | no

Tom Meehan wrote 10/11/2016 at 04:03 point

I was actually thinking of something along the same lines, there is so much cross over in applications for both our projects.

  Are you sure? yes | no

David Findlay wrote 08/02/2016 at 08:12 point

Pity there isn't a way to do it without the strips. Consumable free would be a revolution.

  Are you sure? yes | no

Tom Meehan wrote 08/04/2016 at 04:39 point

Yes, I absolutely agree with you David. So far the closest device was the Glucowatch (no longer on the market). The most challenging issue is measuring blood glucose
without consuming the detector (even the continuous blood glucose monitors use the same glucose oxidase reaction and are only good for 3 days). There is some promise coming out of research – using other methods including some non-enzymatic methods as well as possible non-invasive devices (look at the Princeton Study I reference) and some implanted continuous blood glucose sensors that could last up to 5 years. I do hate the waste that is present from millions of people needing to use disposable strips multiple times every day. They may be small but they add up to a lot over time.

  Are you sure? yes | no

David Findlay wrote 08/06/2016 at 23:58 point

There's no sensors that can do it from a drop of blood?

  Are you sure? yes | no

M. Bindhammer wrote 07/18/2016 at 18:53 point

Congrats, Tom. You are a winner of the Citizen Scientist portion of the Hackaday Prize!

  Are you sure? yes | no

Tom Meehan wrote 07/19/2016 at 04:07 point

Thanks so much.

  Are you sure? yes | no

Tom wrote 07/06/2016 at 07:10 point

This is a great project.

I think you should add "Arduino based Glucometer  ... https://www.cooking-hacks.com/catalogsearch/result/?cat=&q=glucometer&order=pr&dir=desc&limit=64 ... Cooking Hacks E-Health Platform" (which you mention in these comments) to your "Some links to papers on other similar projects" section.

  Are you sure? yes | no

Tom Meehan wrote 07/06/2016 at 07:14 point

Thanks, I'll add it to my Reference list in my project logs.

  Are you sure? yes | no

Orlando Hoilett wrote 07/04/2016 at 18:16 point

Great project. I was curious if you looked at some of the legal stances on creating a glucometer such as this.

  Are you sure? yes | no

Tom Meehan wrote 07/04/2016 at 18:36 point

Actually I have, keep in mind that this is a research project.  I am currently in the proof of concept stage so this in no where near to being a commercial medical device.   I am aware of the regulations that commercial glucometers must meet (for accuracy, ESD protection etc.). Btw I like your simple pulse sensor design.

  Are you sure? yes | no

netrunner wrote 06/29/2016 at 14:27 point

Fantastic project that really helps people.

I left the PIC / microchip product line a few years ago because of exactly those problems you have now: Poor or directly hostile development software. Poor or directly hostile development hardware.

Several days to get the "blink a led" to work is not OK. Often I found that small simple tips or references could have saved many hours of troubleshooting. I can not find any other explanation than that Microchip deliberately want to make an extra bad software.

I think you have much to gain by going over to the Arduino. It would create more momentum and you could get help from other developers.

I would recommend making the device in two parts joined together with a DB9 (?) contact or an Arduino shield (?).

One part for  MCU / display / switches
One part for the test stripe.

If there will be a new test strip next year you can just order (or 3D-print) a new holder for that test stirpe. If you make it modular, you also make it future-proof.

Best wishes!

  Are you sure? yes | no

Tom Meehan wrote 07/01/2016 at 07:25 point

Thank you so much for the feedback.  I am familiar and comfortable with Arduino's and i would like to eventually port this over to that environment.  I decided to go with a Microchip PIC for this for a few reasons:

1.) Part count - the PIC16F17xx series has an internal oscillator, internal OpAmp, DAC and ADC.  I'm hoping this ultimately makes the project smaller and easier to build.

2.) Learning more C coding/programming.  I had just begun programming ATMEL AVR's directly in C, instead of relying on the Arduino environment (mainly to better learn how to use all the capabilities of microcontroller's) right before starting this project.

Also, an Arduino based Glucometer has already been made available https://www.cooking-hacks.com/catalogsearch/result/?cat=&q=glucometer&order=pr&dir=desc&limit=64 .  Cooking Hacks E-Health Platform is pretty cool, it works with Arduino and R-Pi and has numerous sensors, including glucose measurement.

I love your idea of a modular test strip connector, so that it can be changed out, I'll look into how I might be able to do that.

  Are you sure? yes | no

Andrej Mosat wrote 04/28/2016 at 20:51 point

Hi Tom, my team is working on a similar tech. The main question is: which test strips are you going to use? And the ultimate, 1 million dollar question: how is the universal test strip connector going to look like? Or do you plan on using multiple connectors on one device? Some have just 2 useful contacts out of 3, some have even 5 contacts. We have reverse-engineered some on the measurement procedure. What do you think on publishing each strip and each measurement procedure somewhere, so folks could use it and engineer it for their purpose as a first step towards open-source glucometer?

  Are you sure? yes | no

Tom Meehan wrote 04/29/2016 at 18:53 point

My hope is to make build a single connector (strip inserted with edge against left side) with multiple contacts.  Depending on the profile for the strip different contacts would be activated.

As I get further into this I will definitely put the info on each type of strip (contact placement, spacing, measurement procedure, etc.)

I am currently working with the strips I have: Contour Next, One Touch, and Accucheck.

Have you posted any info on your project?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates