Xaar 128 Printhead Driver

The Xaar 128 is a piezoelectric inkjet printhead used in large format vinyl sign-making. It *might* be useful in 3d printing, conductive ink, or masking applications.

Why piezo? TLDR: Most inkjet printheads are “thermal”: They work by superheating a fraction of the ink in a chamber, turning it into gas, which expands to force the remainder of the ink out of a nozzle. Superheating limits the range of materials that can be used in these printheads. Piezoelectric printheads are less common, and since they use a mechanical operation to force fluid out of a nozzle, they don’t have to modify the state of the fluid to operate, and can work with a broader range of materials.

More details on the Rep Rap wiki.

Starter source code on GitHub.

Learnings

  • While I planned to try some different materials with the Xaar 128, I started out with the Solvent Ink that it’s built for. I was mostly using used printheads that I could buy inexpensively on eBay, since new Xaar 128s are pretty expensive. Nozzle clogs were a big problem. I had to flush the nozzles every time I sat down to work. This wasn’t really compatible with an after-hours hacking schedule.
  • I used flexible flat cable (FFC or FPC) to connect my board to the printhead. I’ve been burnt by overflexing ribbon cable before, so I thought this was a good idea. But I didn’t properly anchor the connection points. After some use, I started getting erratic behavior and stalling from the printhead. After a lot of debugging, I found that the leads on one end of my cable had overflexed and would break contact at certain points in the movement. Lesson: anchor connection ends so that no flexing happens near the exposed leads.
  • I was never able to consistently push anything more viscous than solvent ink through the printheads. Epoxy or photo curing resin is much more viscous (eg. ~1000-2000+ cp vs ~10-20). This means these heads may be useful for something like depositing a low viscosity binder for powder printing, but probably not for depositing a material that can harden into a solid by itself. I’d love to find a printhead that can.

Boxen #1

Macro photo printed as a large format bitmap made up of 3d boxes in PLA Plastic, printed with Makerbot Replicator 2. Size: 6.5 feet X 2 feet.

Each “pixel” is a 3 dimensional box that tapers into a quadrilateral opening. The corners of the quadrilateral are determined by sampling the grayscale intensity of a grid of 9 subpixels within each box.

Example quadrilaterals, based on grayscale sampling

Inspired by “Bloom” from UC Berkeley.

Veronoi #3

Medium: PLA Plastic, printed on Makerbot Replicator 2 in 8 parts.

Modeled in Rhino3d with Grasshopper. Size of the veronoi part is 20″x20″. This was a super-challenging project to do with an FDM 3d printer, due to the large number of overhangs and small cavities. Each part took 10+ hours to print, but perhaps even more time to finish. I used a large amount of support material that was, at first a friend, then… a nightmare to extract and sand down.

Prototype part, before geometry was smoothed, shows volume of support material.
Support material removed. Rough sanded.
8 parts, primed and medium-sanded.
Original model.

Some learnings:

  • If a space is too small to get your fingers into, it’s going to be a bear to sand. I took a few breaks from this project because finishing was so tedious.
  • This project likely would have been much easier with access to a dual head printer with water-soluble filament or an SLA or SLS printer. When I started this in 2013, I didn’t have any access to such equipment and printing something this size with an online service would have been cost-prohibitive.
  • Solvent glue works great with PLA.
  • Makerware’s generated support is pretty good, but I could have saved myself a lot of time by modeling my own support for precarious overhangs and certain bridges. I had to throw away some prints and patch some gaps when Makerware’s support failed.

Nib to Bar Chocolate Making

Adding nibs to juicer.
Separating liquor. Luckily we thought to lay down newspaper. Chocolate making is messy.
Adding liquor, cocoa butter, sugar to melanger.
Melanging…
Melanging 18 hours later.

Really smooth.
Separating about a 3rd of mixture for tempering.

Letting temperature come down slowly. Maybe too slowly. It took all day.
Adding back in to temper remaining chocolate.

Chilled and ready to demold.

Wireless Sensing

I haven’t posted about soil moisture sensors in ages, but I’ve completed a number of iterations and I thought it’d be fun to look over the evolution of the hardware. My goal has been to build a small, low power, inexpensive device, that I can place in indoor and outdoor plants to collect soil moisture, light, and temperature readings. I shared some early information on sensors more than a year ago and will have more to share, but this post will focus on the wireless sensor relay.

This device collects readings from one or more sensors at an interval (15 minutes), then broadcasts the readings to a receiver that uploads data to a store where I can crunch numbers, trigger alerts, and generate graphs.

mote.jpg

Board

Hobby-friendly PCB shops typically have a 2-week turn around. I’m new to this and wanted to prototype at my own pace, so I made my first boards on a CNC router. These are “channel isolation” boards, where an an outline is etched around the conductive channels on a copper clad board.

CNC ROUTING FINISHED, READY TO DRILL

Ultimately, this enabled me to knock out a few boards in a weekend, but it required a lot of experimentation, tweaking, and router bits to get usable results. Producing a single board required a lot of effort to calibrate the CNC for two routing passes (for 2 sided boards) and drilling. A minor leveling or alignment issue would result in a useless board. Once I found a reasonable design, I moved over to a PCB shop, trading long turn-around times for less overall effort and more consistent results.

Radios

I experimented with a handful of different radios, but mostly focused on the TI CC2500 and Nordic NRF24L01. Both are available as ~12mm X 20mm modules with a trace antenna. The best price I found for the CC2500 at volume was about $2.00. The NRF24L01 was about twice that. The CC2500 was very inexpensive and has very low idle-time power consumption. But it required a lot of work to configure properly and handle errors. In my experience, it worked very poorly in the presence of noise from other CC2500s. The NRF24L01 worked out of the box, had better range, and was more resilient to interference. Ultimately, I tired of debugging the CC2500 and elected for the pricier NRF24L01.

FIRST AND LAST ITERATIONS

“Final” Product

My latest iteration is a 1.45″ square board, with screw terminals for any combination of 3 temperature, light, and moisture sensors. It uses the Nordic NRF24L01 2.4ghz radio with trace antenna, which gives it enough range to work anywhere inside or immediately outside my house. It runs on an Atmel AtTiny24 microcontroller. The sensor readings are taken from the AtTiny’s on board ADC (Analog-to-Digital Converter). The whole unit is powered by a 3.3V battery. Sensing and reporting every 15 minutes, the battery should last 2-3 years.

Spherification and Ice Cream

So what does one do with these flavor spheres? Are they strictly novelty? I sure hope not because they’re pretty cool. From my first encounter, I knew I wanted to do something with Spherification, but I wanted it to be useful.

spherification - scooped.jpg

My first idea was to make an ice cream with alcohol. Here’s the idea: Normally, mixing alcohol and ice cream will yield a cold soup, since alcohol has a very low freezing point. Can spherification provide a barrier around alcohol that will enable it to be mixed with ice cream? I set out to find out.

The inspiration for this ice cream is a cherry cordial: dark chocolate, almond liqueur, and cherry.

Ingredients:
Custard ice cream base, slightly tweaked from Alton Brown:

  • 3 cups half-and-half
  • 1 cup heavy cream
  • 6 egg yolks
  • 9 ounces vanilla sugar
  • 1 teaspoon pure vanilla extract
  • 1 teaspoon almond extract

Chocolate:

  • 1.5 – 2oz of 70% cocoa, dark chocolate

Candied Cherries from David Lebovitz:

  • 2/3lb Cherries
  • 1 C water
  • 2/3 C sugar
  • 1 tablespoon fresh lemon juice

Almond liqueur spheres from, erm, Kyle Scholz:

  • 2g sodium alginate
  • 3g calcium chloride
  • 1 1/2 C water
  • 1/2 C amaretto

Making ice cream isn’t for the impatient. It’ll take at least 2 days.

Day 1 Steps:

  • Follow Alton Brown’s recipe for the custard base, with adjusted ingredients. When the custard is finished on the stove top, it needs to cool and be refrigerated for several hours, preferably over night.
  • Prepare the alginate / water mixture in my spherification recipe and set it aside for a few hours. This can go in the refrigerator, covered, overnight.

spherification - cherries.jpg

Day 2 Steps:

  • Follow David Lebovitz’ recipe for candied cherries, but scale the recipe back to 2/3. Take the cherries out while they still have some structure so they’ll hold up better in the ice cream. Quater the cherries and set aside.
  • About 30 minutes before freezing the ice cream, start the chocolate and amaretto spheres:
    • Use a double boiler to melt the chocolate.
    • Prepare the calcium chloride bath for spherification.
    • Add some of the alginate / water mixture to amaretto. Test. Repeat until spherifying takes, but don’t make your spheres just yet.
  • Begin freezing the custard in your ice cream maker.
  • Make the spheres. Make lots of them. The volume of the ice cream after freezing will be 7-8 cups (300-400 teaspoons). If you want some spheres in every spoonful, you should make at least 400 spheres.
  • Freezing time varies, but mine usually takes ~20 minutes. Right before it finishes, take the melted chocolate and drizzle it into the mixing chocolate to make stracciatella. Don’t add the cherries during the freezing process or they’ll get beaten up and muddy the ice cream. Don’t add the spheres during the mixing process because they won’t hold up.
  • Finish freezing the ice cream. As you are transferring it to a container, sprinkle in the cherries and spheres.
  • Seal it up and put in the freezer for a few hours, preferrably overnight.

spherification - just frozen2.jpg

Day 3: Ready to eat.

spherification - scooped.jpg

Alternative serving suggestion: Use spheres as a topping.

Spherification and Ice Cream (Topping)

Spherification and Alchohol

Spherification is a “Molecular Gastronomy” technique for making small edible spheres out of just about anything. Since my first flavor sphere experience I’ve wanted to learn more and make my own.

DSC_0802.JPG

I had the Willpowder kit for basic spherification. The instructions sound straightforward:

  • Stir a quantity of Sodium Alginate into the target mixture for your spheres.
  • Fill a dropper or small squeeze bottle with the alginate mixture.
  • Drip the mixture into a bath of calcium chloride in water. The droplets will become spheres.

But it wasn’t that easy. I chose to start with alcohol and I had a hard time blending the sodium alginate into amaretto. They just didn’t want to mix and my repeated attempts to blend them resulted in lots of air bubbles in the mixture. Worse, when I dropped the amaretto/alginate mixture into my calcium bath it splattered on the surface and spread out into a thin film. Fail.

I had read that others had more luck using “Reverse Spherification” with alcohol. I gave this a try but I could only produce large amorphous non-spheres by dunking a spoon of the mixture in the bath. Dropping from any height had the same issue as above. Also note, reverse spherification is done with calcium lactate gluconate and NOT calcium chloride. I tried. You don’t want the taste of calcium chloride in your spheres!

After some trial and error, I came across an article in Make Magazine that saved the day. The key was to first blend a mixture of sodium alginate and water to create a stable suspension. Here’s a short recipe:

DSC_0802.JPG

Amaretto Spheres
Ingredients:

  • 2g sodium alginate
  • 3g calcium chloride
  • 1 1/2 C water
  • 1/2 C amaretto

Tools:

  • An immersion blender.
  • A slotted spoon (with slots small enough that you can pick up your spheres).
  • A squeeze bottle or plastic syringe.

Steps:

  • Blend sodium alginate and 125g (about 1/2 C) of water with an immersion blender.
  • Set aside for a couple of hours to let bubbles disperse.
  • Meanwhile, make a calcium chloride bath, with 1.5g calcium chloride to 1C water*. I usually make 2 cups to fill a medium bowl.
  • After most of the bubbles have dispersed, add a small quantity (perhaps 1/8th) of the sodium alginate / water mixture to the amaretto. Mix with a spoon or small wisk. Load some of the amaretto mixture into a dropper or squeeze bottle and test.
    • If the drop disperses on the surface of the bath, clean it off the surface, add more of the alginate mixture to the amaretto and try again.
    • Once the spheres start to hold together, you’re all set. The longer the sphere sits in the bath, the more the alginate and calcium will react so you’ll get thicker walls.
  • Remove spheres from the bath within a few seconds to prevent the whole sphere from going solid. Dip in a water bath. Slosh around. Remove from water and use within a few minutes.

I’ve found that the contents of the spheres leach out if they’re left to sit for some time. You want to use them as soon as you can to preserve color and flavor.
* Some people insist on using distilled water for the bath, since impurities in tap water might prevent the alginate and calcium from bonding. I took this suggestion and haven’t yet experimented with tap water.

Some other things I learned while spherificating:

  • Sodium alginate is useful both for creating the bonds that form a membrane around your spheres and for thickening your target mixture. Your mixture will need to be thick enough to break the surface tension of the calcium chloride bath.
  • Dropping height matters. Again, it’s all about breaking the surface tension. Experiment by dropping from different heights. Dropping height can determine whether you break the surface and dictate the shape of your spheres.
  • While creating an alginate suspension in water makes it easier to introduce alginate into your target ingredient, it will water it down. This recipe provides a 1.6% alginate solution. A thicker solution can provide a similar result while adding less water.

Now to find something useful to do with these spheres…

Moisture Sensors

I grow plants. For a time, I’ve wanted a low-cost sensor that can live in my plants and broadcast information about temperature, light, water, and drainage that I can compare to ideal growing conditions. I’ve set out to build such a device. This post focuses exclusively on the moisture sensor component.

Commercial grade soil moisture sensors are available, but they are cost-prohibitive for placing in dozens of plants, rather large, and sometimes have very high power requirements for a small device. I’ll need to make this component myself.

I have a handful of designs in mind for the sensor. A couple of other hobbyist projects use a variation on the gypsum block sensor:

I’ve elected for a different design because plaster is quick to absorb moisture and slow to dry. As a result, gypsum block sensors may provide a less granular measure and can inaccurately represent the wetness of the surrounding soil (perhaps I should prove this assertion?).

The designs I’m considering generally share a common component: The sensor is a simple design involving a pair of concentric electrodes, sand as a neutral moisture medium, and a plaster disk to filter out salts or impurities that may cause errors in measurement. These parts are assembled inside a 1/2″ plastic tube cap.

moisture_sensors1.jpg

This is a resistive sensor that works when an external device applies a voltage across the electrodes. The medium between the electrodes (in this case, sand) acts as a resistor. As the moisture in the medium varies, the voltage carried across the electrodes varies. This voltage can be measured to determine how wet the medium is.

moisture_sensors2.jpg

moisture_sensors3.jpg

At the start of the test, I arranged the sensors in a pot of sand, then fully saturated the sand with water. The test ran for about three days, sampling (excessively) once every 30 seconds. Below is a plot of the measure taken by the four devices at 15-minute granularity.

calibration1.png

While the measurements from the four devices are relatively consistent, there’s room for improvement in both precision (note the poor measurement granularity and flapping) and consistency across devices (I seem to have one “wet” sensor and one “dry” sensor). A few adjustments should offer an improvement.