Close
0%
0%

Continuous Inkjet Printing

Learning about continuous inkjet printing and sharing my experience with the community.

Similar projects worth following
Here is another inkjet project and this time it is about continuous inkjet printing. In this project I want to set up and work with a CIJ Printer to find out how it works down to the smallest detail to possibly build a CIJ printer by my own.

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 (Videojet Excel 170i AF) 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 »

  • Everything in GCODE

    Dominik Meffert04/09/2021 at 12:39 0 comments

    I just figured out how to send messages to the CIJ printer from the 3D printer controller, so that it can be completely controlled by GCODE. 

    For doing so I used the i2c feature of the Marlin firmware to send the messages to an Arduino NANO which then sends the messages via serial to the MAX3232 and so to the CIJ printer.

    On the Arduino NANO I used the code from the Arduino i2c slave receiver example:

    #include <Wire.h>
    void setup()
    {
      Wire.begin(9);
      Wire.onReceive(receiveEvent);
      Serial.begin(9600);
    }
    
    void loop()
    {
      delay(100);
    }
    
    void receiveEvent(int howMany)
    {
      while (Wire.available())
      {
        Serial.write(Wire.read());
      }
    }
    

    Here is the gcode that I used:

    (with a small change to print only 3 lines)

    G28
    M260 A9
    M260 B84     ;T
    M260 B104    ;h
    M260 B105    ;i
    M260 B115    ;s
    M260 B32     ;Space
    M260 B77     ;M
    M260 B101    ;e
    M260 B115    ;s
    M260 B115    ;s
    M260 B97     ;a
    M260 B103    ;g
    M260 B101    ;e
    M260 B13     ;CR
    M260 S1        
    G1 X30.000 Y200.000 F2000
    M106 P1 S255        
    G1 X80.000 Y200.000 F2000
    M106 P1 S0
    
    M260 A9
    M260 B119    ;w
    M260 B97     ;a
    M260 B115    ;s
    M260 B32     ;Space
    M260 B115    ;s
    M260 B101    ;e
    M260 B110    ;n
    M260 B116    ;t
    M260 B13     ;CR
    M260 S1
    G1 X30.000 Y185.000 F2000
    M106 P1 S255
    G1 X80.000 Y185.000 F2000
    M106 P1 S0
    
    M260 A9
    M260 B119    ;w
    M260 B105    ;i
    M260 B116    ;t
    M260 B104    ;h
    M260 B32     ;Space
    M260 B71     ;G
    M260 B67     ;C
    M260 B79     ;O
    M260 B68     ;D
    M260 B69     ;E
    M260 B13     ;CR
    M260 S1
    G1 X30.000 Y170.000 F2000
    M106 P1 S255
    G1 X80.000 Y170.000 F2000
    M106 P1 S0
    G1 X150.000 Y170.000 F2000

    So, now that this works the next thing would be writing a python script to create the GCODE for longer messages.

  • Testing with GCODE

    Dominik Meffert04/06/2021 at 10:47 0 comments

    I set up the printer controller and stepper motor connections, wrote some gcode to a file and let it run to test it out.

    The next thing would be sending my own messages to the printer. 

  • Testing per Hand

    Dominik Meffert04/05/2021 at 00:23 2 comments

    To test the printer for the first time without GCODE and software I 3D printed two parts (A printhead mounting bracket and an encoder mounting bracket) for mounting the printhead and encoder to a cheap 3D printer.

    To test it I entered HACKADAY.IO on the CIJ printer display and powered the printer controller what also powered the MOSFET board and triggered the product detect.

    Then I moved the printhead by hand to print the message and that's it. The first printed message.

    I also tried printing on my hand :)

    The ink that I used is (as far as I know) acetone based and could be cleaned off by soap with some effort or immediately with the make up fluid.

  • Controlling the Printer

    Dominik Meffert04/04/2021 at 23:09 0 comments

    To control the printer there are 3 signals needed:

    - Droduct Detect

    - Encoder

    - RS232

    Product Detect:

    Everytime the Product Detect signal is triggered the printer starts printing a message.

    Encoder:

    If an encoder is connected to the printer the printer is able to detect the exact position of the printhead, so that no matter how fast the printhead moves the message gets printed as it should be.

    RS232:

    To send messages for printing to the printer RS232 is used and the messages are send in HEX numbers.

    The upper connection at the right is the product detect and the lower is the encoder.

    Here you can see the DB25 RS232 connector which is also able to use hardware serial.

    Because I used software serial only 3 lines and some bridges are needed.

    The other end of the cable is connected to a DB9 connector.

    Which is connected to a MAX3232 board.

    I also placed a Ramps 1.6+ & Arduino Mega 2650 with two TMC2130 and a power supply in there to control two stepper motors. A mosfet board is used to trigger the product detect.

    At the moment I have not connected anything to the printer controller because I still have to configure the firmware for it.

  • Working at Night

    Dominik Meffert04/04/2021 at 20:22 0 comments

    I prefer working at night, but running an air compressor and a vacuum pump at night when you have roommates or neighbors is not the best idea and so I had to find a solution for this problem.

    Starting with the vacuum pump:

    Because I was concerned about acetone vapor buildup in the vacuum tank and therefore risk of fire or explosion I had to remove the vacuum tank.

    Without a tank the pump has to be able to run the entire time without overheating.

    To keep the pump as cool as possible I mounted it on an old LED heatsink and also reduced the voltage from 12V to 6V what also reduced the noise level.

    To prevent the pump from stalling at such a low voltage caused by too much load/too high vacuum level I added a regulatable muffler to let air in.

    To further reduce the noise I put a fitting with cap on the outlet and placed the pump in a plastic box.

    This worked very well and was also really quiet.

    Now I had a solution for vacuum, but still needed something to create pressurized air without being noisy.

    So I bought an old fridge at ebay Kleinanzeigen to get the compressor from it.

    After cleaning it I drilled 3 holes in it to let the old oil out and for modifying the case. After the old oil was gone I cut threads in the holes to attach fittings and a transparent tube to it for showing the oil level and to close the hole in the top with a screw.

    Then I filled in some new oil and attached the new compressor motor to the compressor tank.

    This setup worked very well and was really quiet, too. The most noisy part of the system is the check valve after some oil got to it. The noise is not really loud, more like a quiet oscillation that sometimes dissapears completely. Because of the oil I used a water seperator unit what should also prevent the oil from entering the printer.

    With the vacuum pump and fridge compressor the setup should be ready for the night.

  • Removing of the Armoured Cord

    Dominik Meffert04/04/2021 at 19:19 0 comments

    To be able to mount the printhead onto a lightweight machine frame like a 3D printer I had to remove the heavy armored cord which protects the cables and tubing connected to the printhead.

    For doing this I had to disconnect all tubing and cables from the printhead, remove the cables and reconnect them.

    Not much to say:

    - It worked

    - It was a big mess

    - I needed almost 100 zip ties

    - I had to clean my room afterwards

    - It was worth it :)

  • Functionality Testing

    Dominik Meffert04/04/2021 at 17:01 0 comments

    Now, after the printer got cleaned up I wanted to test if everything is still working.

    Because I had no ink and make up fluid, yet I wanted to test out everything with destilled water.

    The first thing I did was replacing the internal 9V battery that is used to keep the stored data in the memory, power a real time clock and also for the startup of the printer (I guess to meet some industrial safety standards or so).

    After that I connected a compressor, set the pressure regulator to 5.5bar, connected a power cord to the printer and tried to start up the printer.

    Moments after startup there was the noisy sound of vented air to hear, seconds later the compressor's pressure dropped below 6bar, so that it turned on and minutes later the printer shut down because the pressure dropped below 4 bar at which the printer detects that there is too less air pressure to work.

    So here is what happened:

    Besides pressurized air the printer also needs vacuum to operate, what is by default created by a pressurized air driven vacuum generator.

    This thing had a really high air consumption and was also really noisy, so I had to find a better way to supply vacuum.

    By default the printer only had a pressurized air connection and now I added an additional connection for a vacuumpump.

    For the first test I used this vacuum pump setup with vacuum tank, but later I changed to another setup because I had the concern that aceton vapor which builds up in the tank could cause an explosion or fire.

    So after adding a vacuum pump to the air compressor I turned both devices on and started the printer.

    After fixing a problem with the rubber check valves which got stuck together by the last used ink, that took me some time to find the printer worked and the destilled water could circulate in the ink circle.

    After making sure that everything works I drained the destilled water and shut down the printer.

    A few days later the ink and make up arrived and I loaded the printer with it.

    After loading I checked that the viscosity got measured correctly and that there no errors occur by letting the printer run for a few hours.

    After that I selected the right nozzle drive parameters to split the ink stream into dropplets and turned on the high voltage.

    No error has shown up, what shows that the loading process should have been successful.

    To bring the functionality testing to an end I performed some test prints and everything seemed to work.

  • A new Inkjet Project

    Dominik Meffert04/04/2021 at 15:34 0 comments

    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.

    Because new CIJ printers are quite expensive and not so easy to order for private persons I bought an used one from ebay. After some cleaning to get it nice and shiny I tried to find out how to get it to work.

View all 8 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

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