Tag Archives: development

3D Printing a Tool to find your Veins

I find that the best projects start with a purpose, however what most people don’t tell you is that the purpose doesn’t always have to be prophetic, necessary or groundbreaking. For a lot of people starting a project can be as simple as the intention:

“I want to blink an LED”

When I joined Leeds Hackspace this was the first concept I was introduced to, along with the Arduino platform. This small and, to me, humble beginning has led me down a path which resulted in a change of job, an introduction into an entirely new community and a world of Technological interest and learning that has took me from an interest in computing and network programming to electronics, 3D printing, scanning and more.

My recent project started with a purpose, (if you’re squeamish you may want to clench, skip a sentence or look away) when you visit the doctor for a blood test and they struggle to find a vein, usually there’s one nurse that can manage it. You don’t expect to be told:

“Usually when it’s this difficult, we would go in via your neck, but we can’t justify it for this test”

To say that’s horrifying is an understatement, so the response that came naturally was obvious to me. I must find a solution to this problem. How on earth can I make my veins easier to find so that I can prevent this in future?

Almost coincidentally, in some occurrence reminiscent of the telephone or television being invented at the same time in two sides of the world, I found my solution quickly. After exhausting the thoughts of ultrasound, radiation or other forms of potentially lethal solutions I happened upon an instructables.

3D printing is only as simple and easy as the tool that you’re using, and I quickly discovered that the printer at Leeds Hackspace required some tweaking. Those who’re familiar with their own built 3D printer will be no stranger to this concept. After a number of nights tinkering with the settings and observing the temperatures, the ‘hot end’ required cooling and the heat bed required heating. I feel that I’ve written stranger sentences.

Finally, the basis of the device is completed. However, now I have to populate it with components! Well, a few online searches and ordering later and I would have the crux of the job. LEDs of the correct wavelength to be able to be absorbed by non-oxygenated blood but reflected by the rest of my skin. Soon, I’ll be able to see my own veins.

 

The hardest part, I soon discovered, was that this portable design for a vein finder was not designed with an internal layout in mind. After a few rather hand-warming shorts later I managed to acquire suitable heat-shrink and seal up the device appropriately. Yes, it runs on two double-A batteries at 1.5volts (rechargeables don’t quite have the voltage/current for a setup like this, but that could be adjusted).

In the space of, consolidated, a week, I have something to take to the doctors with me the next time I visit. Thanks to the wavelength (628nm) of the red LEDs it’s difficult to capture on a digital camera, but hopefully, they won’t be going at me via the neck.

Here are some bonus pictures of the finished product in action:

Arduino IDE on Windows with Minimus32 Profile

Some time ago I typed up an explanation and presented a download of a compressed file for the Arduino IDE on Windows which included libraries for the Minimus32.

The zip file was/is unnecessarily bulky and has folders in places where they don’t need to be. So I decided to create a script.

The script downloads the Arduino IDE, of a version which you specify from the Arduino Website along with PBrook’s Minimus32 and OneWire components from his GitHub page and also the pre-compiled version 4.7.0 of AVR-GCC for windows (if you want a different version then feel free to update and compile from the source code yourself but for now it’s supplied by yours truly).

It then puts it all in a folder called ‘ide’ and it should copy/rename/move everything in its correct place within a sub-folder. The drivers still have to be manually installed.

There are some thoughts on what I’ve done:

1. Alter the script so that it scrapes the Arduino site for the latest stable revision number.
2. Have the drivers self-signed so that the don’t prompt with an error message. This can’t be done as self signing only works for the system it is signed upon.
3. Use a command line tool to inject the drivers into Windows / auto install them.
4. Perform error checking in the script. I have since done this to at least check that the files exist, but nothing more.

The over-all benefit of this, I feel, is that it’s not waiting for me to do a ‘snapshot’ and anyone can now check the latest version (if they modify the script a bit), type it into the script and when it’s finished downloading it should just work nicely without having to do anything (much) extra.

So once you’ve downloaded it. Extract it to wherever you have write access to, then just double-click or run install.cmd from a command prompt.

You shouldn’t need to, but run it as Administrator if you really get into trouble.

I mainly wrote this for myself, because I’m lazy. So if it does help anyone else, great. I am also aware it could be implemented a lot better, so go ahead.

Download: Arduino IDE Download Script for Windows with AVR-GCC 4.7.0 + Paul’s Minimus32 Profile & Internal PullUp OneWire Library (2.98mB)

Arduino IDE on Windows

If I have learnt anything from software development over the years, it’s that programming on Windows is a mixed bag. Even more so when it comes to the development of hardware, as I have learnt more recently since joining the Leeds Hackspace.

The Arduino, a rather nice prototyping board, does have an Integrated Development Environment (IDE) for windows, but when you try to do that little bit more with it, such as code for an unorthodox piece of hardware it can get a bit trickier. Namely, when certain chips aren’t supported.

The Arduino IDE (AIDE) is actually a mixture of smaller components. A Java GUI, the AVR-GCC compiler, source code in C++ and profiles for the various Arduino hardware. A problem mainly arises when you want to use a new device, that is perhaps acting like an Arduino but is using a newer chip on the board than is supported by the archaic AVR-GCC compiler that is bundled with the AIDE.

I’ve been working on a script which pulls down the latest AIDE and incorporates support for, in particular, the minimus32 (using the ATMega32u) but it isn’t exactly user friendly (yet). Until that appears (though if you want to try it out, get in touch), I have happened across a rebuild of the Arduino IDE which is a bit nicer and, perhaps with suggestions for including decent updates such as a recompiled AVR-GCC, it could potentially be a better solution.