Using axidraw with a syringe pump?

Home Evil Mad Scientist Forums AxiDraw Using axidraw with a syringe pump?

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
  • #28087

    I recently purchased an Axidraw v3 and it works great. I’ve done a good bit of testing using standard pens, but my real interest is in using the Axidraw to deposit various chemical solutions on paper as part of a research project. My plan right now is to use technical pens to deposit my own ink formulations using the Axidraw.

    However, I think there may be a better approach. The Axidraw seems ideal for integrating with a syringe pump to control ink flow. I am posting this to ask if anyone has already done this, knows someone who has done this, or can suggest a good way to do this? I think that the syringe pump would simply need to be turned on when the pen is in the down position, and off when in the up position. I think a glass capillary could be used to deposit liquid, and the capillary should glide over the paper if the tip is polished and rounded.

    I came across an “Axipaint” project on hackaday, which seems similar to what I am thinking of. The project used a pneumatic syringe instead of a pump. I am somewhat familiar with Python programming and microelectronics fabrication. I could probably figure out a way to make it work with one of the syringe pumps I already own. I just don’t want to re-invent the wheel. If it has already been done, it would save time to just reproduce it.

    Windell Oskay

    A few people have done similar things. Technical pens are easy.

    Syringe dispensers controlled by air pressure are a common way to go as well. Beware that there is a response time for air pressure to turn on or off, particularly with viscous or thixotropic substances. (You can add air pressure to the channel, but it takes time for the substance to move.)

    One good precedent for glass capillary tubes is that some technical pens use sapphire tips. Beware that glass does wear down; paper is abrasive.

    There is a “secret” provision in the software for controlling a digital output pin that is high whenever the pen is commanded down. Open up (in the Inkscape or CLI or python API) and look for B3 in the code. It appears on three lines. Uncomment those lines, and then digital I/O pin B3 will be configured this way. B3 is set up as a “servo connector” with ground, +5 V (very little current capacity), and the I/O pin. That’s the highest set of 3 pins above the regular servo connector.

    You can disable the servo moving by unplugging its cable or setting the pen-up and pen-down positions to be the same.


    Thanks for the reply and the additional information. I placed an order for some parts. If/when I get it working, I will post what I did here to help anyone else who is interested in the same thing.

    I have several syringe pumps, a couple of Harvard Apparatus pump 11 models and a few New Era 1000 models. I discovered that a Python library (called “pumpy”) has been created for RS-232 control of Harvard pumps. The NE-1000 pumps can also be controlled using the pyserial Python library for RS-232 communication. The simplest thing would be a completely software approach, which is what I plan to try first. I’ll try to modify the Axidraw control software Python code so that the dropping the pen down simultaneously sends an RS-232 command to start the pump, and lifting the pen stops it. It is possible to program in a pump delay if needed.

    An alternative method is to use the B3 pins on the Axidraw board. The NE-1000 pump has a DB9 port on the back that is not used for RS-232 communication. It is instead used to monitor triggers as would be received from a foot pedal controller. Unfortunately, the high/low signal is 5 V, not 3.3 V. The NE-1000 documentation indicates that 3.5 V is the minimum high logic signal. Therefore, I would have to do some logic shifting, or perhaps use a transistor or relay to draw off the 5V pin on the B3 connector to send the high signal.

    Digging through the design files for the Axidraw board, it appears that there is zero room for drawing more current from the 5V pin on the B3 connector. It appears that the servo can draw up to 500 mA, and the board has a 500 mA limit for that 5V line. I’m worried that I might overload something. It will be a lot simpler if the Python software pump control works. The only thing needed will be some cables that plug into existing ports.

    Windell Oskay

    A 5 V level shifter needn’t draw substantial current– should be fine.

    Obviously, an all-software solution is quite clean as well.


    I made some progress on this. Below is some additional information for anyone else interested in doing something similar. I will try and post some pictures once everything is assembled and working.

    1. Instead of a glass capillary, it is far easier to use stainless steel. The nibs on technical pens are stainless steel tubes with a needle in the center. You can find pre-cut stainless steel tubing from suppliers of HPLC equipment that can be used to make a custom “nib” connected to a pump.

    Stainless tubing is available as small as 0.36 mm OD in size. The ends of this type of tubing can be electrolytically cut and polished by the supplier. It is not terribly expensive. I bought some 0.8 mm OD (1/32″) tubing, and the polished end glides across the paper smoothly. The tubing that I purchased has a 0.25 mm (0.01″) ID.

    2. If you use 1/32″ tubing, as I am doing, the OD of the tubing is close to that of a 22 gauge needle. You can get a 22 gauge needle, cut off the sharp tip and join it to a 1/32″ tubing using a standard tube union with 1/32″ fittings and ferrules. That way, you can link the syringe output to tubing that goes to the plotter.

    3. PEEK plastic tubing is also available in 1/32″ OD size. This tubing is quite flexible and is what I am using to join the syringe pump to the plotter. It can flex easily as the plotter arm moves around.

    4. I am joining the PEEK tubing to a stainless steel “nib” tip using a 1/32″ bulkhead union. That bulkhead will be mounted on a bracket that replaces the bracket on the Axidraw that holds the pen. I’m waiting for my bracket to be 3D printed. I decided to use plastic to make it as light as possible. My bulkhead union weighs 12 grams, and I do not want to overload the servo on the Axidraw.

    5. I found some information on the flow rate coming out of a technical pen. These guys wrote long lines on paper and used a gravimetric method to determine how much ink is being put down:

    For a 0.5 mm technical pen drawn across paper at a speed of 2 cm/s (this corresponds to 25% speed on the Axidraw if I am not mistaken), the flow rate is about 500 nanoliters per second. Syringe pumps are easily capable of these types of flow rates.

    I have yet to assemble everything and test it. Syringe pumps use stepper motors, so pulsing may be a problem at very low flow rates. I have some ideas to get around that if it is a problem, though.

    • This reply was modified 8 months, 4 weeks ago by Matt.

    Getting closer. Here is the custom holder with the 1/32″ bulkhead union:


    Now I just need to plumb everything to the syringe pump and start testing.

    Windell Oskay

    Looks great!


    This is fantastic thank you for sharing your progress. Please keep updating!

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.