CIJ Printer

An Open Source Continuous Inkjet Printer

Public Chat
Similar projects worth following
Here I'm trying to build a CIJ Printer by myself from common parts that you can buy online and in your local hardware store.

In my last inkjet project I built a piezo inkjet printer from scratch made of cheap electronics, pneumatic and 3D printed parts. I could get it to work, but I had a few problems with the reliability. The drop size was quite large, keeping the ink supply pressure steady was quite difficult and sometimes there formed drops on the nozzle or air got sucked into the printhead what both prevented the printhead from working. There also was a problem with clogging of the nozzle when not in use.

So I looked for a more reliable printing method and choosed Continuous Inkjet Printing.

CIJ printing is (as far as I know) only used in industrial or production applications and therefore super reliable. CIJ printers are working for years 24/7 with only minor maintenance. 

Even though CIJ printers have much more parts than piezo or thermal inkjet printers, all parts have a decent size - no sub millimeter dimension like piezo and thermal inkjet nozzles, so working on them, fixing problems and maybe also manufacturing them will be a lot easier.

How CIJ Printing works:

Here I will describe you in my own words based on my experience with my printer model how CIJ Printing works. The printer I have is an older model that uses pressurized air and vacuum instead of a special ink pump, what I think is really cool because it keeps everything simple and you can use any air and vacuum supply that you want.

Animation from Wikipedia

CIJ printers need two different fluids to work - Ink and Make Up Fluid. 

Both fluids get mixed by the printer to reach the right viscosity. The make up fluid is essentially a solvent to dilute the ink.

My printer has an ink mixing assembly in which the ink get mixed and also the not used ink returns to. The chamber of it is set under vacuum and the adding of ink and make up fluid is controlled by two pneumatic driven rubber valves.

From the ink mixing chamber the ink gets transfered to a viscosity measuring cylinder by a pneumatic rubber pump. The ink cylinder is pressurized and connected to the nozzle which has a valve that stays closed until it reaches a certain pressure to prevent the ink from dripping from the nozzle when not under the right pressure. The pneumatic driven rubber pump is driven with 1 bar above set ink pressure to be able to pump the ink into the cylinder through an ink filter. The pump also has check valves at the in and outlet.

The cylinder has a floating magnet in it and multiple reed switches to detect the ink level. For measuring the viscosity the printer measures the time that it takes to empty the cylinder and according to the set flow time the printer adds ink or make up to the ink chamber - or nothing if everything fits and the ink level in the ink mixing chamber is high enough (it also has a floating magnet and reed switches). The viscosity is measured to get the same print quality at all times during operation.

The next step in the cycle is the printhead.

The "low pressure limit valve" at the printhead is connected to the nozzle which contains a piezo crystal that is driven with a frequency that breaks the ink stream up into dropplets using the Plateau–Rayleigh Instability. 

After the nozzle there follows a tunnel that is driven by a high voltage to charge the dropplet and after this there follows a high voltage deflection plate to kick dropplets out of the stream to form pattern on the printed surface.

The unused ink streams right into an ink return block which is connected to a sensor that prooves whether the charging has worked and from there it get sucked back into the ink mixing chamber by vacuum to close the cycle.

I think the pneumatics, hydraulics and their control circuits are quite simple and would not be very complicated to build for an open source system.

The electrical control of the printhead at the other hand, like the nozzle piezo drive, charging, deflection and sensing signal are more complicated,...

Read more »

  • Monitoring Sensor Data with MYSQL and Grafana on a Raspberry Pi

    Dominik Meffert07/01/2024 at 22:00 0 comments

    For the last month, I tried out different ways to log and monitor the data that the sensors on the machine collect to get a graphical way to watch the operation of the machine over time.

    This way it is possible to verify that everything is working as expected and to find problems that would be otherwise hard to detect.

    It's also just nice to see your machine's sensor readings on a dashboard :)

    I tried out:

    - saving the data on my router's FTP server

    - saving the data on Google Sheets

    - saving the data on InfluxDB

    Finally, I ended up saving the data on a MYSQL database that I set up on a Raspberry Pi, which appeared to me as the most independent/universal solution.

    In addition to that I installed Grafana on the Raspberry Pi to get a nice way to display the sensor data.

    Sensor Reading over 15 Minutes of Operation

    In the current picture, all values besides the pressure are as expected, so I still have to find a way to get a stable pressure.

    The readings I currently get from the machine are:

    - The room temperature

    - The nozzle temperature

    - The viscosimeter temperature

    - The conductivity

    - The fall time (the time an 8mm steel ball needs to drop around 100mm in a 10mm PC tube at 25⁰C - equal to the current dynamic viscosity)

    - The pressure


    Today, I installed a new pressure regulator which finally outputs a stable pressure.

    New Ink Pressure Regulator

    It's also visible in the readings:

    Pressure Reading
    Sensor Dashboard

    Now, that all sensor readings are stable the work on the fluid management system is finished until new problems appear and I can finally continue working on the printhead design.


    I just found out what caused the pressure regulator to fail:

    The pin inside the pressure regulator got stuck, because the used PVB/Ethanol mix is quite sticky. Maybe in the future I can find a pressure regulator with a different design that also works for adhesives or sticky fluids. At least it's no general problem of the system. Until then it's needed to clean and "unstick" the pin of the pressure regulator before running the system.

    The next thing I want to do is learn more about things like electrostatic induction and conduction and how to measure the charge on droplets.

    For this, I'm planning to build a test stand for charging single water drops with variable voltage, detecting when the drops hit a copper mesh, and measuring their charge to learn how to do these things and which factors are important for a successful charge induction and measurement.

    Thank you for your interest in my project :)

  • Noise Reduction and new Pump Design

    Dominik Meffert05/14/2024 at 20:10 0 comments

    Problems with the large Pressure Pump

    When I started working on the new design around Christmas last year the first part I bought was a portafilter coffee machine pump with a high flow and pressure rating.

    My initial idea was to use only one single pump for moving all fluid in the system and use a venturi nozzle to generate the needed vacuum for the return line and makeup/solvent loading.

    Venturi Valve and Pressure Pump

    While it worked well with water and pure ethanol, more and more problems arose as the viscosity increased.

    With the high-viscosity ethanol + PVB mixture that I want to use for printing, the venturi valve injected a lot of small bubbles at a high rate into the mixture creating a layer of foam on top of it which kept on rising until the ink tank started foaming over. At the same time, the small bubbles got sucked into the pump causing it to run unstable which would damage the pump over time while creating a loud unhealthy sounding noise.

    Foam on the Ink

    Over the last weeks, I tried a few things to reduce the foaming problem, but nothing of it could solve it completely...

    Small Bubbles mixed with Ink

    Another problem with this design was that while the venturi nozzle could still generate a high-flow suction when powered by a high-viscosity fluid, the vacuum level got reduced so much that it could no longer draw in the fluid through the return line...

    While this wasn't already bad enough the pump also generated a lot of heat which makes it hard to keep the temperature inside the system constant...

    With these problems and the fact that these kinds of pumps are pretty noisy and also quite expensive when bought new, it was time to start working on a better and cheaper solution.

    Brushless DC Pump for Ink Circulation

    A few weeks ago I already added two small 24V brushless pumps to the printer for ink circulation inside the viscosimeter and for water cooling.

    While thinking about the changes needed for replacing the large pump I realized that the viscosimeter circulation pump can also be used for circulating all the ink inside the printer and not only the ink inside the viscosimeter. Because of that I could remove the valves needed for the "viscosimeter sample refresh" function and just keep the pump circulating the ink all the time.

    For lifting the steel ball inside the viscosimeter a solenoid valve connected parallel to the pump outlet can be opened from time to time.

    The ink flows from the ink tank to the circulation pump and gets pumped to the viscosimeter.

    Outlet of the Ink Tank

    Ink Circulation Pump

    From there it flows into a T fitting which is connected to the outlet of the relief valve that regulates the pressure of the pressurized part of the system.


    From there the ink flows into the heat exchanger that keeps the ink at 25⁰C by heating and cooling it.

    Heat Exchanger

    Finally, the ink enters the ink tank again to complete the cycle that keeps the ink well-mixed and at a steady temperature.

    Inlet of the Ink Tank

    Brushless DC Pump for Water Cooling

    The water cooling system is used for cooling a TEC 12706 Peltier module for heating up or cooling down the ink so that it can be kept always at 25⁰C independent from the room temperature.

    The water flows from the water reservoir tank to the circulation pump and gets pumped into the heat exchanger.

    Water Cooling Pump

    Heat Exchanger
    The Peltier module is driven by a BTS7960 H-Bridge module so that it can be used for cooling and heating as well.

    BTS7960 H-Bridge
    The H-Bridge is powered by an XL4016 step-down converter module which outputs 12V.

    XL4016 Step Down Converter
    From the heat exchanger, the water flows into the radiator and from there it flows into the water reservoir tank to complete the water cooling cycle.

    Radiator and Water Reservoir Tank

    Peristaltic Pump for Solvent/MakeUp

    For adding solvent/makeup (ethanol) to the mix I switched to using a peristaltic...

    Read more »

  • Touch Screen and more Pictures

    Dominik Meffert04/23/2024 at 04:01 1 comment

    Here are some pictures of the 7-inch ESP32 powered control touchscreen and the latest changes to the prototype:

    The squares on the left are touch buttons for the printer functions and on the right, you can see the sensor data on the top and the current time, date, day, and room temperature on the bottom.

    ESP32 LCD Touchscreen

    Since the display has no IO pins, I reassigned the 4 pins that were used for the micro SD card to use 2 of them for I2C (SCL and SDA) and the other two for PWM.

    To access the pins I soldered wires to a micro SD extension flat-band cable.

    Micro SD "Adapter"

    Connected via I2C are a DS3231 real-time clock, an ADS1115 ADC, and an MCP23017 IO extension.

    ADS1115, DS3231, MCP23017 and 8Ch Relay Module

    - The MCP23017 is used for switching the relays and valves and reading the inductive sensors of the viscosimeter.

    - The ADS1115 is used for reading the analog voltage of the pressure, conductivity, and temperature sensors.

    - The DS3231 is used to keep track of the time and measure the room temperature.

    3.3V/5V logic level converter and AMS1117

    The touchscreen is powered by an AMS1117 3.3V regulator.

    While the ESP32 is running well on 3.3V the LCD seems to need a higher voltage since it's flickering a bit when powered by 3.3V which doesn't happen when powered by its USB-C connection.

    To get rid of the heat from the Peltier module I added a dual-fan radiator, with the fans pointing toward the grid frame of the machine.

    Backside of the Radiator
    Front View of the Machine

    Currently, I'm using two XL4016 step-down converters for converting 24V from the power supply to 5V and 12V.

    While the 5V is used for powering the I2C devices and sensors, the 12V is used for the Peltier module and viscosimeter valve.

    XL4016 for 12V and 5V

    A single relay module is used to open the valve for lifting the 8mm steel ball inside the viscosimeter. The falling steel ball gets detected by 2 inductive sensors.

    Relays Module, 12V/5V Optocoupler, TDS Sensor Amplifier

    For the viscosimeter, I used a clear polycarbonate pipe with a 10x8mm diameter and 150mm length. The distance between the two sensors is 60mm.

    New Viscosimeter with Peltier Module and Circulation Pump
    Thermometer on the Main Ink Cycle

    I used a dual MOSFET module for switching the 12706 Peltier module with a 1kHz PWM signal.

    Dual MOSFET Module

    The Peltier model draws around 50W during testing and the MOSFET module gets very hot without cooling so I will likely place the MOSFET modules for both Peltier modules next to each other and add a small silent 40mm fan for cooling.

    Peltier Module

    Together with the pump that pumps the ink around inside the viscosimeter and also heats it up, a thermistor in the cross-fitting, and some PID code, the temperature of the ink inside the viscosimeter can be kept constant without oscillation.

    In the future, I will add some code to flush the viscosimeter from time to time with fresh ink to check if the viscosity has changed and automatically add solvent if the viscosity has risen too high because of solvent evaporation. 

    For flushing, the viscosimeter is connected to the main ink cycle by two valves that can be opened to let fresh ink flow through the viscosimeter while the pump is running and the measuring pipe's valve is opened to flush all the old ink out.

    LCD with Wifi Connection Indicator
    For the next update I'm planning to add a data logging feature to write all sensor readings and machine function states together with a timestamp to a file on an FTP server to make it possible to analyze every test run and see what changes in the sensor readings follow the performed action.

    I think this will add a lot of value to the machine since it makes the testing results more comparable and will provide a way to share the collected data besides recording videos and taking pictures. In the best case, it would be possible to display the sensor readings as graph lines...

    Read more »

  • Quick Update - Touch Panel and Viscosimeter Cooler

    Dominik Meffert04/16/2024 at 16:17 1 comment


    sorry for posting no updates in a while.

    I'm still working on the project and over the last months I added an ESP32 powered 7-inch touch panel to the machine and changed the code so that a PC is no longer needed for running the machine.

    I also built a new viscosimeter that features a thermistor, Peltier cooler, and circulation pump for keeping the temperature, always the same while measuring, even if the room temperature changes.

    Before, I couldn't get a reliable reading of the ink's viscosity since it changed from day to day depending on the room temperature. On some days when the sun was heating the room all day long the ball drop time reduced by it's half just by the rising of the temperature during the day.

    When the ink gets pumped around it also heats up, so that without cooling the viscosity would continuously drop until the temperature reaches its highest point which is also dependent on the room temperature.

    The good thing about ink heating is, that with it the ink in the viscosimeter and the rest of the printer heats up on its own so that only cooling is necessary to keep the ink temperature stable.

    Currently, I only finished the Peltier cooler of the viscosimeter, but I will also add a cooler to the printhead to keep the ink that exits the nozzle at the same temperature as the ink sample in the viscosimeter so that the measured viscosity equals the viscosity of the ink stream.

    While I haven't seen a cooling system on any CIJ printer so far, I have seen designs that feature a temperature sensor on the viscosimeter and on the nozzle.

    In contrast to commercial manufacturers who put a lot of work into designing the best ink for their products, I don't know the temperature-viscosity curve of the ink mixtures I'm using and I think it is nice to have a way to keep the ink's temperature constant at the nozzle and the viscosimeter.

  • Hydraulic-Powered Printer

    Dominik Meffert01/02/2024 at 23:13 0 comments

    The current printer is powered by pressurized air from an air compressor and vacuum from a vacuum pump. Both the pressurized air and vacuum are used to move the ink around.

    Pneumatic-Powered Printer

    The pressurized air pushes the ink from the ink tank to the printhead and through the nozzle forming the ink stream that hits the opening of the gutter. From there the ink gets drawn into the reservoir tank by vacuum. It gets collected there until the ink tank needs to be refilled. Then the ink gets drawn from the reservoir tank into the pump tank by vacuum. When the pump tank is filled, pressurized air with a higher pressure than that of the ink tank is applied to the pump tank to pump the ink from the pump tank into the ink tank.

    Compared to that, the new hydraulic-powered printer is much simpler since it uses ink as a hydraulic fluid. This way the pressurized ink can be taken from the hydraulic system which can also generate the vacuum that is needed for drawing the ink back into the system by the use of a hydraulic-powered venturi pump.

    Because of that, there is no need for a separate vacuum pump or air compressor which will make the printer cheaper, less complex, and more compact.

    All it needs is a powerful ink pump and a low-pressure air pump to power the hydraulic-powered printer.

    For that, I used a Fluid-O-Tech rotating vane pump (200l/h) and an AquaForte v30 pond air pump.

    Hydraulic-Powered Printer

    Until lately, I didn't know anything about hydraulic systems and so I thought the pump's output would have to go directly to the nozzle, which would have made finding a suitable pump very hard, but just a few weeks ago I read an article about RC hydraulic systems where they used a relief valve for limiting the hydraulic pressure by feeding some of the pump's output back to the tank.

    This makes everything easier because, by the use of such a relief valve, a pump running at a constant speed and a much higher flow rate than that what is used by the ink stream can be used for powering the system.

    The same can also be done by the use of fixed restrictions and a PWM-controlled pump, but since the constant flow pump + relief valve were cheaper, I used this method.

    After reading about the relief valve I looked for such a valve, but since hydraulic system relief valves are usually designed to work at high pressures e.g. from 10 to 200 bar I had to look for a relief valve that is designed to work at low pressures and so I bought a water relief valve that is designed to work from 2 to 8 bar.

    Relief Valve

    The valve I got works by opening up just enough to keep the pressure before the valve at the set level. When now some valve opens up to supply e.g. the venturi pump, printhead, or viscosimeter with ink, the relief valve restricts the flow out of it to keep the pressure of the system at the set level. It has a "screw" at the top that compresses a spring for setting the pressure.

    The valve was the first element of the new printer design and after confirming that it worked the way I thought it would, I ordered a venturi pump for testing both together to see if I could get the set system pressure and the needed vacuum for the printer from those two parts.

    Venturi pump
    Inner Structure of the Venturi Pump

    The venturi pump can generate a vacuum by the use of a gas or fluid that "draws" the air with it when it is ejected from a small nozzle into a narrowing and then expanding tube.

    I was a bit worried if it would work at all since the type of venturi pump I used is intended to be used with pressurized air, but it turned out to work pretty well with water when I tested it out.

    With that, I could confirm that just a supply of fluid at the right pressure and flow rate can be used to power the printer.

    A few Parts of the Printer

    After testing out the relief valve and venturi pump, next up was finding the right ink pump.

    This was not that easy, because the pump has to provide some capabilities to be...

    Read more »

  • PVB Ink from PVB Filament

    Dominik Meffert12/13/2023 at 22:09 0 comments

    For the project, I'm currently using an ink made out of ethanol and polyvinyl butyral (PVB) with an additive for increasing its conductivity (sodium acetate).

    Until now, I used PVB powder for it and while it can be used for ink without problems, I'm still a bit concerned about using it, because it is not a commonly used item, so it can be a little hard to find a shop that sells it.

    PVB Powder

    Because of that, I tried to find something else and saw that there is PVB-based 3D printing filament available almost everywhere you can buy filament.

    So, I ordered a spool of PVB filament to test out if it dissolves in ethanol while increasing its viscosity.

    PVB Filament (Polymaker Polysmooth)

    For the test, I wrapped some filament around my hand and cut the windings together to get a few equal-sized pieces that could stand upright inside the cup like spaghetti noodles.

    This way the filament dissolved better than when it was cut into shorter pieces or when PVB in powder form was used.

    The shorter pieces stuck to the wall or bottom of the cup, and the powder formed clumps that only came in contact with the ethanol on the surface and stayed dry inside so it took a long time until they dissolved whitout constantly breaking them apart with a spoon.

    At the same time, the longer pieces came in contact with the ethanol over the whole length and dissolved in about an hour without further ado.

    Long Filament Pieces

    Filament Spool and Ink from Filament

    Filament and Ink
    Glass with PVB Ink

    By heating the ethanol before adding the filament the time it takes to dissolve can be reduced even further.

    PVB Ink on a Magnetic Stirrer with Heated Plate

    After the filament was completely dissolved, I checked the viscosity of the mix with the Zahn 1 cup and saw that its viscosity had increased from around 26s of pure ethanol to over 30s with the filament mixed in.

    It also gave the mix a nice color so that no separate color pigments were needed to add color to the mix. It could still be, that on paper it would appear rather white than blue since the color is not as intense as the color of ink pigments.

    One disadvantage of the filament compared to the powder could be its purity. While the powder is only made out of PVB, the filament may also contain other substances that could clog the nozzle or the filter, so it's important to keep an eye on that.

    Overall, I think the PVB filament can be used to mix PVB ink and if it's easier to get than PVB powder it should be an suitable alternative.

  • Falling Ball Viscosimeter

    Dominik Meffert12/03/2023 at 07:35 0 comments

    Great thanks to Robert and @Paulo Campos for helping me with this :)

    To measure the viscosity of the ink more reliably I replaced the drain time counter with a falling ball viscosimeter, another viscosity measuring method that is also used by many commercial CIJ printers.

    9mm Steel Ball

    The falling ball viscosimeter works by counting the time a (steel) ball takes to fall a certain distance inside a tube that is filled with the fluid of which the viscosity should be measured.

    The size and weight of the ball and the distance never change, but the time reading will change with viscosity. The fall time increases when the viscosity gets higher and decreases when the viscosity gets lower.

    I did a lot of testing with it and as long as the fluid inside the tube doesn't move, the time readings are quite stable.

    Here is my progress on it in chronological order:

    I had the idea of building it in late August
    Possible mounting Location
    First Prototype

    First test of the Viscosimeter

    Prototype with Electromagnet Lifter and Stepper Motor

    Test of the Stepper Motor Lifter

    Testing out a Pump for lifting the Steel Ball

    Test of the Pump Lifter

    Viscosimeter with optical Switches and new Tube

    Test of the optical Sensors and Pump

    PVB for increasing Viscosity
    Ethanol and PVB

    Standalone Falling Ball Viscosimeter for Long Term Testing of different Viscosities
    New inductive Proximity Sensors

    Finished Viscosimeter

    Filter and Check Valve to prevent Backflow

    Relay for the Pump and Optocouplers for using the 12V Inductive Sensors together with an Arduino

    I didn't cut the Cables - To keep the Sensors ready for possible Modifications of the Setup in the Future

    Sensor Type and Pinout on the Label

    View from the Side

    Small Gear Pump for lifting the Steel Ball

    6mm Steel Ball used in the 3/8 inch PE Tube if the Viscosimeter
    Viscosimeter implemented into the GUI
    Continuous Testing - No Pause between Readings

    In commercial CIJ printers, the viscosimeter is calibrated by selecting the ink type that is used and doing some test readings with it. Based on the test readings the printers can calculate the relation between measured time and viscosity. This is possible because the exact viscosity of the used commercial ink type is known and always the same. Over time, some of the solvent in the ink bottle can evaporate which increases viscosity, so it's recommended to always use a fresh ink bottle for calibration. With the right calibration, the printers can show the actual kinematic viscosity reading in cPs.

    In theory, it would be possible to use this method for this DIY CIJ printer - ordering some ethanol based CIJ printer ink and using it for calibrating the viscosimeter. The problem with it, besides the high price of CIJ printer ink, is that the ink's viscosity is not shared with the public so there would be no reliable values for calculation. It's stated that the ink's viscosity is usually around 5 cPs, but for calculating a precise conversation value it would be no bad idea to get the exact viscosity from the ink's manufacturer. With some luck, it could still be possible to find one ink that has a datasheet that mentions its viscosity. In this case, this ink could easily be used for calibrating the viscosimeter and also for printing if the price tag doesn't make it unattractive compared to self mixed ink.

    Another way would be buying some calibration oil (oil with known viscosity) which probably could provide reliable values for calculation. The problem with it would be that for the calibration all lines would have to be cleaned from ink, then filled with oil for calibration, then cleaned again, and then filled with ink again to prevent mixing of both fluids and contamination of the ink. So, with some effort, this could also be a way to get readings in cPs from the viscosimeter.

    If no ink or oil is used for calibration it should also be possible to find out the optimal viscosity by keeping the ink pressure steady and looking at the feedback signal while increasing...

    Read more »

  • Summary - Ink Data Progress

    Dominik Meffert11/18/2023 at 02:50 0 comments

    Keeping the ink at the right viscosity is essential for getting a stable ink stream breakup and with that stable charging and deflection of the ink droplets.

    In the initial design, I counted the time it takes until the ink level of the pressurized tank has dropped from full to empty.

    Counter added in November 2022

    After using just tap water for a while I tried using Vegetable Glycerin instead of water since it has a higher viscosity.

    To measure its viscosity and compare it to the drain time counter I got a Zahn Cup 1 and a Stopwatch.

    Stopwatch for counting the drain time of the Zahn Cup

    Zahn Cup 1

    These cups have a hole on the bottom for fluid to leak out and are used by completely submerging them into a fluid, then lifting them and counting the time until the solid fluid stream from the bottom of the cup starts dripping.

    By using the corresponding conversation formula, it's possible to calculate the kinematic viscosity of the measured fluid.

    Chart for calculating Kinematic Viscosity

    While testing I saw, that the values lined up to some point:

    When I added VG to the water, the drain time got longer, when I added water the drain time got shorter.

    It worked ok, but since I'm constantly changing parts of the fluid lines that are filled with ink it's hard to prevent that some of it hits the desk or floor, and because Vegetable Glycerin is an oily fluid that not evaporates (in contrast to water), it turned out to be pretty messy to work with and I switched back to water after this test.

    The next update to the printer was adding a PPM meter and a temperature sensor for measuring conductivity and temperature.

    Since viscosity changes with temperature, I thought it would be a good idea to not only keep track of the viscosity but also of the temperature.

    Temperature in ⁰C, Conductivity in ppm

    While the conductivity is not related to viscosity it's still important because the ink needs to be conductive for charging.

    PPM sensor on the left, temperature sensor on the right
    PPM Sensor Amplifier

    To increase conductivity I used different additives over time:

    For water, I tried out:

    - Table Salt

    - Baking Soda

    - Citric Acid

    - Cleaning / Washing Soda

    - Sodium Propionate

    - Fountain Pen Ink
    Fountain Pen Ink mixed with Water for increasing Conductivity and for adding Color to the Ink

    There are likely many more additives that are soluble in water, but since I switched from water to ethanol to get a fast drying and water resistant ink, I didn't test out more of them.

    Bio Ethanol - Normally used for Heating

    Since not every salt that is well soluble in water is also well soluble in ethanol, it was needed to start searching for ethanol soluble salts.

    Sodium Propionate

    First I tried using Sodium Propionate, which was able to increase the conductivity but added an unpleasant smell to the ink and was quite corrosive on the metal parts.

    Measuring Conductivity with another PPM Sensor

    I still used it for a decent amount of time.

    Because of the corrosion on aluminum, copper, and brass parts that was caused by the sodium propionate and the former used additives, I replaced almost all feed lines and metal parts with either plastic or stainless steel at some point, to make the printer as corrosion resistant as possible.

    Old Printhead with Signs of Corrosion on the Brass Parts
    New Printhead made of Stainless Steel

    To get rid of the unpleasant smell and oily residue of the sodium propionate I searched for another ethanol dissolvable salt and found out that the Calcium Chloride from air dehumidifiers is also soluble in ethanol.

    Air Dehumidifier
    Calcium Chloride
    It added a white Color to the Ink

    The Sodium Chloride was good for increasing conductivity, but after working with it for a while I saw that it was also very corrosive on the brass, copper, and aluminum parts of the printhead that I could not replace with the last update.

    Since it is used for dehumidifying, it is very...

    Read more »

  • Stainless Steel Printhead

    Dominik Meffert10/20/2023 at 20:08 2 comments

    New Printhead

    Over the last few days, I worked on a new printhead that is more resistant to corrosion than the last one.

    Here, you can see the latest prototype which is specially designed for charge testing and has therefore no high voltage electrode and a too-wide gutter which will be replaced when the charging works reliably:

    New Printhead with Stainless Steel Bottom and Mounting Rails

    In addition to the stainless steel bottom, which I just took from the last printhead prototype, I also replaced the 2040 profiles with 26*18mm stainless steel mounting rails so that the printhead body (including screws and nuts) is now completely made out of stainless steel.

    Starting from the back:

    - The brass valves were replaced by the same valves as on the printer grid.

    - The nozzle assembly is now made out of a plastic 1/4 inch fitting which can in contrast to a metal one come in contact with the "hot/powered" elements of the nozzle assembly, so no isolators are needed.

    Piezo Ring and Contacting Plates

    New minimalistic Nozzle Assembly

    - The charge electrode is now made out of a stainless steel 1/4 inch fitting with a slit cut in it and a hole at the bottom for the strobe LED that illuminates the ink stream to make the breakup visible.

    New Charge Electrode with LED

    - The phase detector antenna/feedback sensor is now mounted onto a stainless steel bracket.

    Phase Detection Antenna

    - The high voltage electrode is currently missing.

    - The Gutter is now made out of a 1/4-inch stainless steel fitting and a plastic elbow fitting mounted on a stainless steel bracket.

    New Gutter

    In addition to that I'm currently trying out Sodium Acetate as a "conductivity-increasing agent" which seems to be a lot less corrosive than the salts I tried before.

    Sodium Acetate

    With the new upgrades the printhead should no longer have the corrosion problems from before and is now ready for a new series of testing.

    Here is an image of the whole setup:

    The next update will be about the new viscosimeter which I'm currently working on.

    Thank you very much for your interest in my projects :)

  • Corrosion Resistant Materials

    Dominik Meffert09/22/2023 at 01:37 2 comments

    While testing I realized that the ink that I used caused a lot of corrosion on steel, copper, aluminum, and brass parts:

    Corrosion on the Printhead

    Corrosion on the Piezo Ring and Contact Plates

    Salt Crystals on the Aluminum Profile

    Corrosion inside a Fitting

    Corrosion on the Charge Electrode, Deflection Plate, and Gutter

    I assume this is caused by the sodium propionate that I used for increasing the conductivity of the ink.

    Since the ink has to be conductive for the CIJ printing process, it needs to contain something that makes it this way and since all salts that I know so far can cause corrosion on metals like steel, copper, aluminum, and brass, these materials have to be replaced by other corrosion resistant materials like stainless steel, rubber, and plastic to prevent corrosion of the printer and also contamination of the ink.

    Fresh Ink on the left, Used Ink on the right

    So, I searched for corrosion-resistant fittings to replace all the brass fittings and ultimately stumbled across the Reverse Osmosis plumbing system of white fittings of all sorts + white 1/4 inch and 3/8 inch PE tubing.

    Old Setup at the bottom, New Setup at the top

    Top Cap of the Vacuum Tank made out of Stainless Steel with Plastic Fittings
    Vacuum Buffer/Overflow Tank, Valves for Draining the Tank, Ink Pressure Regulator in grey, Stainless Steel Vacuum Pump Exhaust Suppressor, Ink Filter
    From left to right: Ink Pressure Tank, Ink Pump Tank, Ink Pressure Overflow Tank + New Plastic Check Valves and Solenoid Valves
    Vacuum Tank
    Valves for Ink and MakeUp at the bottom, Valves for Pump Pressure and Venting at the top, Ink Pressure Regulator on the left, and Pump Pressure Regulator on the right
    Besides the Pressure Regulators/Gauges and Vacuum/Pressure Switches, all Parts were replaced by either Stainless Steel or Plastic on the Printer

    I think with all brass parts replaced by plastic or stainless steel the printer should now no longer have problems with corrosion caused by a small amount of salt in the ink.

    While the printer hydraulics should be fine now, the printhead is still made out of brass, copper, and aluminum and will also need an upgrade to withstand corrosion.

View all 48 project logs

Enjoy this project?



Lichao wrote 06/25/2023 at 06:15 point

this project is amazing ! 

  Are you sure? yes | no

Dominik Meffert wrote 09/22/2023 at 16:49 point

Thank you :)

  Are you sure? yes | no

Michal Lenc wrote 04/18/2023 at 06:42 point

Dear Dominik, incredible, what you have been able to achive on your workdesk. If your printer will be acting up, don't worry. I have worked with CIJ printers from several brands. And, once you put them in the production, they are FAR from working 24/7 with minor maintenance. Actually, I would say, if you are not in very clean enviroment, there is a constant battle with everything what makes them print. It doesn't matter what brand, all of them suck.

  Are you sure? yes | no

Dominik Meffert wrote 04/18/2023 at 16:35 point

Hi Michal,

thank you very much :)

Oh... that sounds like there will be a lot of problems ahead of me, with the project, in the future 😅

If I can get it to work, I want to use it for 3D printing. So, if it would keep working for at least some hours, it would be fine.

  Are you sure? yes | no

Paulo Campos wrote 01/17/2022 at 00:29 point

I have worked with CIJ printers at least 18 years with projects and fluids. i'm impressed with your audacity and progress. Certainly the nozzle is not a big challenge, you can buy in Swiss (ruby) and assembly in a laser cutted plate, the diameter of the jet is governed by the size of droplet we want, 75 microns is most recommended. This give a wavelength of

  = 4.51x 75= 331 microns.

Also, the jet velocity at 40 Psi is 20~22 m/sec. If  divided by the wavelength, it gives the optimum frequency.

  =22 m/s / 331microns= 64000.Hz

In practice, other frequency / nozzle sizes can be used that are not 'optimum', for example 60 micron/ 64kHz, but these still work, they are simply less efficient or increase the frequency. Increasing Frequency you increase printing speed but get difficulty for ink formulations. 

Viscosity is a very important step in project, we can describe Viscosity using Stokes Law and do one kinematic viscometer but dynamic Viscometer also possible and workable, in my thought Dynamic is more cheap and easy , I have some experiments using one needle with detection rods as sensors.  I can calculate both for you.

 I recomend you 75u  as we can get the best resonancy for drops in 64Khz with around 2800mBar/40psi, but till 100u we sill can get some workarounds. At past I worked in my 'hobby time' with some PCBs and HV PS for CIJs and I can say you there is no chance of success without phasing control and for do it you will need add one FPGA to your project. I have the PCB and HV Power project  ready without firmware, I can share you and share experience., I got success in many things .   Have a nice week! 

  Are you sure? yes | no

Paulo Campos wrote 01/16/2022 at 23:57 point

Awesome progress Dominik! Congratulations! 

  Are you sure? yes | no

Dominik Meffert wrote 10/29/2022 at 07:28 point

Thank you very much :)

Sorry for the late reply. I paused the project for over a year and just read your comment.

Interesting insight. I'm planning to use a 100micron 3D printer nozzle, because they are cheap and available everywhere. 

I would really like to read more about your PCB and HV power project.

  Are you sure? yes | no

srbin25 wrote 10/27/2021 at 19:56 point

how connect CIJ print head with Arduino if it is possible?

  Are you sure? yes | no

Dominik Meffert wrote 11/02/2021 at 15:38 point

My current plan is to control everything with a Raspberry Pi so that I can write a python script with GUI for all the settings and infos. I think it will also take more time until I can get the project to an usable stage because I'm currently working on another project which I want to use for creating the printhead parts.

  Are you sure? yes | no

Hexastorm wrote 06/10/2021 at 08:36 point

Great to see you are still up with inkjet printing. In the past, I did some research into this topic.
What I would recommend is the book (inkjet technology for digital fabrication). A pdf can be found online.
TNO, a research institute from the Dutch State, also build one setup see .  I was not involved but building it took a crazy amount of time. The CIJ head used air for droplet selection instead of electricity.
This gave it the ability to print high viscous non conductive fluids.
A problem encountered was the wavy-ness in the final result and low through put. You can see it in the image (3D graded product made of three high viscousmaterials) in the linked pdf.  Dr. René Jos Houben did most of the work and use this as a query term to find out more.  I think some of the patents, if any, got transferred to a company called Nordson.
What I would recommend;

 - do research in the field of laser induced forward transfer

   This is a very active area of research and from what I understand relatively easy.
   It requires a coated glass plate and a laser to heat and release a droplet.

 - think of applications

Crazy applications I heard of is injecting droplets in chicken meat.  This preserves the dead meat longer. Also, some people were active in the making of perfume. This required making well defined mixtures.  Some chemicals are extremely expensive so if you can deliver small dosages or make small mixes that could be nice.

- make images of droplet formation with a stroboscopic camera

Everyone in this field does this. It's real easy and allows you to understand the process much better. Ideally you use global shutter camera with LED

Anyhow, good to see you are making so much progress :-)..

Also, the TNO project was not a commercial success.  Which must have been frustrating for those involved.

  Are you sure? yes | no

Paulo Campos wrote 01/17/2022 at 00:36 point

Dear Hexastorm, TNO project is really interesting! Thanks. Increase the ink viscosity is a good way to printing over difficult adhesion substrates, like polyolefins. CIJs printers has this limitation.

  Are you sure? yes | no

heinz wrote 05/28/2021 at 06:21 point

Wow 😍 This already looks too professional to be built by me for some precision dispensing.

Very cool, thanks for sharing.

  Are you sure? yes | no

Dominik Meffert wrote 05/28/2021 at 15:54 point

Thank you very much :)

If I can find out how to build the CIJ nozzle there will be more progress, soon.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates