05/03/2018 at 05:01 •
New diabetes monitor project Meter to Monitor Ketoacidosis Via Breath
I'm continuing to look at and develop less expensive, open source and open hardware, methods to monitor blood glucose levels in type 1 diabetics. This is a very personal issue for me and I continue to look for methods to help type 1 diabetics control blood sugar levels.
The ideal, of course, would be a non-invasive method that does not use consumables (test strips, etc.).
Currently I'm looking at measuring ketone levels, as an indirect method of looking at blood glucose levels, through analysis of acetone present in exhaled breath. This is a promising method that many researchers have been evaluating.
If you are interested, look at my new project Meter to Monitor Ketoacidosis Via Breath
01/28/2017 at 05:33 •
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.
10/24/2016 at 06:32 •
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.
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)
10/15/2016 at 06:07 •
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.
10/13/2016 at 06:06 •
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.
10/03/2016 at 05:54 •
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.
09/16/2016 at 19:35 •
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!!!
09/14/2016 at 04:46 •
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.
09/10/2016 at 16:53 •
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.
09/05/2016 at 23:18 •
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...