Towards an Open Source Low-Field MRI prototype

My friend David Lesser and I have started work on an ambitious project that I’ve been thinking about for nearly seven years — constructing a low-field desktop magnetic resonance imager (MRI) prototype. We’re hoping to do this by borrowing from coded aperture spectroscopy and imaging to back out the field inhomogeneities in electromagnets. If we’re clever, and lucky, we hope to be able to get a few cubic inches of useful scanning volume.

You can follow the project build logs here, which is an entry for this year’s Hackaday Prize to space.

Here are a few images from the build logs:







Thanks for reading!

Towards a simple solder-paste extruder


I recently posted about a simple and inexpensive pick-and-place vacuum head that I’ve been designing. With the swivel house connector figured out, I’m just waiting on some hose couplers before mounting it to give it a spin. In light of the pick-and-place vacuum head seemingly in good shape, I thought I’d take a moment to post a few pictures of a prototype solder paste extruder that I started designing this weekend, since I’m hoping to do this automatically as well.

When I first started with surface mount components I just manually dispensed the paste from the syringe, and in the last few years I’ve been using the inexpensive solder paste stencils from places like OSH Stencils to really speed up the pasting process, as well as make it more repeatable and reliable. But as much as I refine my technique, I’m still not great at stenciling paste on larger boards that have lots of fine pitched components, on the order of 0.4mm to 0.5mm spacing. I find that after stenciling I’ll spend a good deal of time moving the paste around with fine tweezers to help prevent bridging (although often there are still bridges), and so I usually end up manually soldering fine pitch TQFP parts, which is very time consuming. For a project in my queue, I’ve designed a board that has about 300 parts (summing to a little under 2000 pads), most of which are 0402 capacitors or 0.4mm pitch leadless QFNs over a board that’s about 10cm on an edge — which is likely beyond my capacity to easily, reliably, or comfortably assemble by hand. This is exactly what these machines were designed for, after all!


I had a good look at a bunch of open paste extruders on Thingiverse to see what folks have been up to, and how this is traditionally approached. I’ve read that high-capacity commercial machines often use pneumatics for solder paste extrusion, but that’s a level of complexity that a lot of the folks in the open source community aren’t willing to get into (myself included), although there are some examples of this approach being used, like the Claystruder. The two more common approaches to open paste extruders seem to be using a lead screw to press on the plunger (like with this simple-paste-extruder or the Printrbot Paste Extruder), or using a belt attached to a vast system of gears to very slowly press down on a syringe plunger with high torque (as with Richrap’s Universal Paste Extruder). I happen to have one of Richrap’s extruders and it’s a beautiful piece of work, but all the gearing make it a little large and heavy for the machine that I’m putting together. The lead screw approach has always appealed to me for it’s simplicity, so I decided to give that a try first. The recent kickstarter for the Voltera Circuit Printer has also convinced me that the lead screw approach can likely be done very compactly, with a minimum of weight, and support quickly changing paste syringes.

The prototype that I put together is more of a sketch in hardware to help me appreciate the issues of paste extrusion, and help hammer out a design. Instead of using a plunger, I’ve used a very long lead screw that acts as the plunger, and has a gear atop with a captive nut to transfer force. The gear is driven by a Parallax continuous rotation servo, which I thought I’d try given that it simplifies the design by having an integrated gear box (which gives it lots of torque), and it can be directly driven by a microcontroller rather than requiring a separate stepper driver.


There are aspects of this design that work really well — the syringe is very easily accessible, and very quick to change. It’s also fairly compact, but I think could be even more compact — the size is largely driven by the orientation and width of the servo motor. Some important bits that I observed with this test rig:

  • Resolution requirements: Using this 8-32 screw, it takes about a quarter turn of the nut to start the paste extruding (from rest). But the paste keeps flowing, so it’ll likely need to move (say) a quarter turn in one direction to get the paste flowing, then immediately move most of a quarter turn in the opposite direction to stop the paste from flowing, and get an appropriately small spot of paste. It’s not clear whether I’ll have to move to a stepper to get the required resolution for this back-and-forth traversal.
  • Force: Quite a bit of force is required — it does bow the MDF on my prototype a bit at the top, so that plate will have to be more rigid.
  • Reversing: Some designs include rails, while others appear not to include them. Given that reversing appears to be not just a convenience for more easily swapping out paste syringes, but also an integral part of the extrusion process to prevent oozing and more accurately deposit precise amounts of paste, some rails will have to be added to ensure that the linear motion is transferred to the screw (and that it doesn’t just spin in place).

Definitely a successful experiment, and plenty to absorb for my next free evening infront of the laser cutter. Hopefully with a few more iterations I’ll have arrived at a very functional, capable, and compact design. Thanks for reading!

Towards a tiny pick-and-place vacuum head


I try to have a few different projects on the go at any time — a big, long term project (like the Arducorder), a shorter-term fun project (like the Open Source CT scanner), and a bunch of smaller weekend or few-weekend project (like the open mini spectrometer). Having a few projects of varying time scales allows you to switch projects when you’re burned out on one, and make more headway on creative pursuits when you’re at the mercy of inspiration. A project I’ve had on the backburner for some time is building a small, open source pick-and-place machine. In the past year or so there’s been a lot of interest in this space, and different groups (e.g. openpnp, firepick) have been working on designs to help folks assemble boards quickly and inexpensively. I thought I’d take a moment to show my progress on a pick-and-place vacuum head, given that I haven’t found a great deal of consolidated information on the topic.


I confess that I’ve been thinking /very/ big and intractable on my pick-and-place project, so much so that it’s been never ending. There’s been a half-built machine in my workshop for several years that slowly sees progress every few months, largely because the project is too big — I have been trying, as a hobby, to make a factory in a single 50cm cubed machine. I designed the machine with an automatic tool changer so that it could pick up different heads, the idea being that you could pick up a mill head to mill out a circuit board, pick up a solder paste dispenser to apply paste, then pick up a pick-and-place head to populate the parts, and finally pick up a 3D printing extruder to create an enclosure for the board, all assembled by the same machine. This is of course fantastically challenging, and likely way too large a project for a single person, and I’ve only progressed as far as designing and building the tool changing head and x/y/z cartesian robot, but haven’t returned to the project to build any of the tool heads, like a vacuum head for picking-and-placing components and populating circuit boards.


Putting together a small, working pick-and-place machine has jumped closer to the front of my queue lately. One of the most challenging things to accept as I’ve been getting a little older is that there’s only one of me, and only so many hours in the day — especially when trying to have a work/life balance. I have an interesting sensing project in my queue, but populating the board requires populating about 300 components, many 0402, extremely precisely. More than that, I’ve been working to put together a few extra Arducorders, and each Arducorder takes me 4 full days to put together — the motherboard alone tends to take about 8 hours, as it’s double-sided, full of fine pitch components, and one side tends to have to be hand soldered. All this means the process has been going very slowly, much slower than I’d like.


I feel like inexpensive open source pick-and-place vacuum heads are in a similar place to where open source 3D printer extruders were about a decade ago. In the early days of the RepRap 3D printer project, many folks were trying to figure out exactly how one could design an inexpensive FDM extruder, and there were a lot of different designs from melting pots that were fed with shredded scraps of plastic bottles, to pinch-wheel designs that are similar to the extruders commonly used on 3D printers today. Many folks have posted great prototype designs for inexpensive pick-and-place vacuum heads, but I haven’t seen many that have been demonstrated to reliably pick up parts larger than 0603 resistors, or that have been demonstrated to reliably rotate parts into their desired orientations.


This isn’t to say that there hasn’t been a lot of fantastic work in this space. Frequently someone will post an absolutely gorgeous pick-and-place design that they’ve put together (this one by Daniel Amesberger comes to mind), but they’re usually both expensive and intended for professional use. It’d be nice to have an easy to assemble system that was around a few hundred dollars, and that sped up the process a good deal without being intended for high throughput.


Recently I saw a post on Hackaday describing a clever prototype pick-and-place head that uses a tiny piezoelectric vacuum pump (or “microblower“) from Murata. This design is attractive — at about 20x20x2mm, the pump is very small, and could be contained on the pick-and-place head itself, simplifying the design, and removing the need for an external vacuum pump, which are often fairly large and noisy.


The microblower is designed to blow air rather than act like a vacuum, and so to use it as a small vacuum pump the intake ports have to be covered. I put together a small acrylic sandwich with the microblower in the middle, the blower output on one side, and a port for the microblower input on the bottom. I also found a small NEMA14 stepper motor with a hollow shaft to use as a rotation mechanism for the part. This is attractive, as the mechanical design can be kept quite simple — a microblower on one side of the motor, and a nozzle on the other to interface with the part.


The pick-up end couples the business end of a solder paste syringe and detachable luer-lock dispensing tip (from Zeph) to the 5mm stepper motor shaft using a set of press-fit rings that I laser cut out of acrylic.


The bottom of the Murata microblower is shown above, which is where the large inlet draws in air. The tiny hole under the inlet is about 2.2mm in diameter, which is the same size as the drill in the hollow shaft stepper. I happened to have some polystyrene tube that was nearly press fit, and just required a little sanding on either end to couple the microblower inlet with the stepper shaft. Also seen here is the microblower driver board from the Murata evaluation kit.


The top of the microblower, shown above, is also press-fit coupled to the top of the acrylic case. I added in some sealing silicone to this aperture (as well as the wire harness aperture) after taking this picture, to ensure the highest vacuum, and best chance of success.


An arducorder, for size. Although a prototype, and the long coupling tube between the microblower and motor could clearly be shrunk up quite a bit to reduce the overall height to just over the height of the NEMA14 stepper.


How well did it do? Like other’s designs I’ve seen, it had little issue picking up 0603s with ease, but the real measure is how well it does with other components. Unfortunately about the heaviest I could pick up, even with some suction cups attached, was this ~4x4mm magnetometer — and even then, it was right on the edge of the pick-up strength. It could be picked up flat from the table, but not from within the tape.


And so it appears that a microblower, while a very exciting component, is likely only useful for picking up extremely small components when used as a vacuum pump for pick-and-place heads.


Some time ago I’d also tried this experiment using a KPV14A-6V micro vacuum pump from Clark, again without much luck. In light of this, it looks like my hope of designing a tiny, inexpensive, and completely self-contained pick-and-place vacuum head likely is still a ways off, but there are plenty of other options for vacuum pumps, if we’re willing to relax the completely self-contained constraint. Grant Trebbin has reported a good deal of success with the Sparkfun vacuum pump for his manual pick-and-place, and mentioned that he’s able to pick up around 15g with appropriately sized suction cups — more than enough for most components. So let’s give that one a try.


I put together a quick adapter to go from the 1/4 ID tubing from the Sparkfun vacuum pump to the ~2mm diameter bore on the stepper shaft. This larger diameter tubing is far too stiff to move around, so eventually it’ll have to be sized down to something much smaller and more flexible, and the adapter mount will have to better allow for up to 180 degrees of rotation — but this make-shift coupler is good enough for a first test.


The Sparkfun vacuum pump is capable of much more lift than the microblower, and was able to lift nearly every part that I gave it. Here a 100-pin TQFP is lifted with ease, even with the motor running at 8.5V (from 12V) to reduce the noise a bit.


And here, the pump similarly has little issue picking up an entire bluetooth module. Definitely very promising!

I hope this has helped some folks who are also thinking of putting together their own pick-and-place vacuum heads. The microblower is a beautiful part, and were it to have enough suction, mounting it atop the stepper would make for a very small, self-contained, inexpensive vacuum head — but as it is, it looks like it’s only appropriate for picking up small passives. The Sparkfun vacuum pump definitely has more than enough suction for most of the parts that I’m likely to encounter, and after figuring out a better coupler between the vacuum pump and the stepper shaft that will better allow for rotation, it’s likely to perform quite well. My one reservation is that the luer-lock heads appear to attach slightly off-center, so that when a part rotates, it translates a little while rotating. I’m sure with a little alignment it’ll work out famously.

Thanks for reading!

Spectrometer Group Buy, and see the Arducorder at CES!

Just a quick update, and my apologies for being slow to update — I think I speak for all the Hackaday prize finalists when I say that the push to finish was absolutely exhausting! In the mean time I’ve been very busy catching up on writing two papers in the lab, visiting with family over the holidays, taking care of a sick kitty, and trying to find a few hours of rest.


Arducorder at CES

The good folks at Hamamatsu have borrowed the Arducorder this week to help demonstrate their beautiful C12666MA micro-spectrometer in action. If you happen to be at CES, be sure to drop by the Hamamatsu booth to check it out!


Micro-spectrometer Group Buy

The C12666MA micro-spectrometer is a beautiful instrument, but it’s also not the easiest to get ahold of in small quantities. The folks over at Group Buy (who helped get the FLIR Lepton thermal imager out into the community) have a group buy for the micro-spectrometer at the fantastic price of $180, or about $50 off the regular single-quantity pricing. This is a really fantastic deal, and if you’ve been assembling your own Arducorder (or would like to experiment with the C12666MA micro-spectrometer), it’s a great opportunity. As of writing there are only 4 days left to get in on this group by, so you’ll likely want to act quickly.


Power Switch!

Every designer has aspects of a project that they do well, and places where they could use a little improvement. Power circuits are where I usually need improvement, and I tend to overengineer them for efficiency so much that occasionally they’re simply too complex to work on the first revision. The Arducorder has a very good and high-efficiency buck/boost power circuit, but the case design was missing an important element — the acrylic slider that covers the power switch, and lets you easily turn the unit on! Free yourself from the bounds of having to carry around a tiny screwdriver or paperclip, and cut out this power switch slider :).

Just a quick update — thanks for reading!

Arducorder Mini Update: Sensor Board Mega-Update, and Capacitive Touch Wheel

Hi folks — two exciting updates to the Arducorder Mini project! The first is a mega-update on the sensors, including this video testing out the magnetic field sensor by detecting the magnetic fields from the transformer in a soldering station!

The second update (fresh from this weekend!) shows the capacitive touch wheel working, with a test visualization I wrote. Looks beautiful!

The full updates can be seen on the project logs. Thanks for reading, and stay tuned!

Arducorder Update: Video and Sensor Board Assembly

Definitely making serious progress! Here’s a 2 minute video, the first for the Hackaday Prize, which describes the concept and initial prototype:

And a new project update describing the assembly of the first sensor boards can be found here, where all of the project logs can be found on the build log for the project.


The Hackaday Prize and the Arducorder!


I think it’d make a great story to say that the fellow who designed real (open source!) science tricorders made it into space, and so I’ve started the next chapter in the project — entering the hackaday prize to win a trip to space!

There’s something about a near-term fixed deadline that helps turn research projects and prototypes into complete and functional devices. The hackaday prize prototype has to be working in just over a month, and complete in a few months, with regular milestones on the way. This challenges you to be fast, efficient, make your mistakes cheaply, and make interesting but safe design choices to ensure that the design is completed on time. I confess that I’ve been excited about exploring the space of open source science tricorders, and so I’ve incorporated a lot of hot-off-the-press components into the designs that in many cases don’t yet have a lot of support or examples to work from. This makes for interesting and high-risk experiments, but it doesn’t lead to the end-game that I get so many e-mails about — actually having an inexpensive science tricorder-like device in your hands. Hopefully this will help change that.

I’ve redesigned an open, inexpensive, modular, mini version of the Arducorder — this time with more processing power, and transitioning back to a bright, beautiful OLED display. Part of the requirements for the hackaday prize are documenting your project, and I’ve taken this further to document the entire process from creative sketches, concept, and industrial design, to taking those designs and making them real. The first four project logs can be found here. This means much more frequent updates in the weeks and months to come, and I’ll post the links to new project logs here on the blog. The first logs are:

Step 1: An Introduction and Background

Step 2: Concept and Industrial Design

Step 3: Schematic and Board Layout Part 1

Step 3: Schematic and Board Layout Part 2

With more to come!

How can you help?
The hackaday prize is judged on several criteria, including community voting. There are three ways that folks interested in the project can help:

  1. Vote: There are two mechanisms for voting, and both require an account on Hackaday IO, but it only takes a moment to sign up. Once you’ve signed up, please visit the project on Hackaday IO and select “Give the project a ‘skull’ symbol” to show your support. This helps show your support for the project, and show it to more folks who visit Hackaday IO. buttons
  2. More Voting: The second set of voting helps determine the interest in each project concept entered into the hackaday prize. It takes a minute or two to complete this step, and as a bonus you get to quickly become familiar with some of the other great projects in the competition!
  3. Write a kind note: The kind words of encouragement that folks send are genuinely helpful, and are very appreciated. If you like the project and have a moment, please feel free to write a note in the comments (either here or on the Hackaday IO project site). I read them all, and apologize that there sometimes isn’t enough time in the day to reply to them all while still making progress.

Thanks for reading! With the first set of boards being made as we speak, it should be an exciting few months! Stay tuned!