Hacking the HP45

Powder and inkjet printing
DigitalShadow
Posts: 20
Joined: Sat Jan 30, 2016 1:49 am

Re: Hacking the HP45

Post by DigitalShadow »

Heh, release material for supports would be a great use of that idea :) I was considering things like conductive inks and such but I hadn't considered that one. I would love a set of those pcb's to work on if possible. I live in Canada, so if there are any extra fees for shipping I can manage. Just let me know how you would like me to send you my home address (as I cannot pm via this forum as of yet)

Hope that source driver works, 8 channels was the most I was able to come across in a single IC with those specs. Looks like it updates all of its output on the rising signal of the clock (200ns to change). From what I can see they have a graph in the datasheet outlining the max current draw as a outputs being used vs. the duty cycle. This could possibly limit the number of simultaneous primitives being activated by each chip. I suppose some level of sequential output would be needed to pulse them enough to fire. You mentioned 3 2us pulses, do you happen to know the recommended time between them?

User avatar
dragonator
Site Admin
Posts: 478
Joined: Fri Aug 14, 2015 4:48 pm
Location: The Nethelands
Contact:

Re: Hacking the HP45

Post by dragonator »

The main site has a contact form. I can also email you directly, but that is something I only do with permission. The PCB fits in an envelope, so shipping is no issue. I'll send you 2 if I get the address. Pogo pins are these:

http://www.ebay.com/itm/231497396915

Only a few sizes will fit, spacing is incredibly tight.

8 channels is the most for most drivers. It should work well. I initially thought of the latch as unnecessary but not in the way, but the more I think about it, the more I like it. Any microcontroller can only set a port at a time, which is usually 8 pins. There are 14 primitives and 22 addresses (gates). This way a full set of primitives can be set, triggered with the clock, and reset with the clr_. This is probably exactly what is needed to drive the HP45.

Timing is as follows (as far as I know). All addresses run as a cascade. It goes from 1 to 22, and then back to 1. An address is opened. 1-3us later, all primitives that need to fire in that address are opened. They stay on for around 2us, and then closed. 1-3us later, the address is closed as well. Now the next address is opened and the previous steps are repeated. A full 22 address cascade should take around 100-150us.

From what I have heard so far, the printhead needs to stay warm to function. This can be done by triggering every nozzle 2us every 3rd time the address passes. It can also be done by triggering every nozzle every time, but only for 200ns, but that requires speed we do not have. When a nozzle is triggered 3 times in a row, a droplet is ejected. This still needs to be verified.

DigitalShadow
Posts: 20
Joined: Sat Jan 30, 2016 1:49 am

Re: Hacking the HP45

Post by DigitalShadow »

Awesome, I sent you my mailing address via the website contact option.

The firing sequence seems to make sense the way you describe it there. I was mistaken in that I thought the primitive was being pulsed three times in succession before closing the address lines. The way you described makes more sense though. I wonder if the nozzles could be kept at tempature by pulsing every second(EDIT: I meant fourth, my thinking was backwards. Less frequently not more) sequence with a pulse between the 200ns and 2us. I imagine the thermal feedback will be indespensible to discovering if that is a viable rout. Especially if we plan to experiment with unconventional inks that may slightly deviate in viscosity or boiling point

And I see what you mean by the latching function. I do not know how critical it will be, but I imagine the ability to fire multiple nozzles at once lends itself to drawing less of a slanted sequence of dots (As the carrige is in motion, any deviation in timing wold in theory translate to an offset in the direction of the carrige). If i'm not mistaken I do believe that the patent mentioned an offset in rotation of the cartrige or offset in the location of individual nozzles to compensate for this.

As the surface I intend to print on will not be perfectly flat, the x/y vector will be important to take into consideration when depositing the ink. The bigger the gap between the part and the print head, the longer the droplet will have to travel before making contact. So long as the droplets don't dry up in transit, I should be able to hit the sides and slopes of the part.
Last edited by DigitalShadow on Mon Feb 01, 2016 11:29 pm, edited 1 time in total.

User avatar
dragonator
Site Admin
Posts: 478
Joined: Fri Aug 14, 2015 4:48 pm
Location: The Nethelands
Contact:

Re: Hacking the HP45

Post by dragonator »

Address received, I have prepared the package and will ship this week.

All 14 primitives in an address need to be fired at once. Most microcontrollers cannot manipulate that many pins at the same time and at 2us, clock cycles start counting. With the latch, a whole set of primitives can be prepared relatively slow, and triggered with the clock pin. This can also be done with driver chips at once.

I don't think you can accurately deposit ink on the side of a print with all velocities, but take that as a challenge, not a discouragement.The patent does mention to angle the printhead, but that is to get a denser print, not to compensate for slanted nozzle orientation. If you see the rest of the patent, you will see that nozzles are on 2 sides, and in a certain pattern spread out quite much. This offset needs to be calculated on computer level, no controller should have to deal with those calculations.

The updated 3D files are here. I made some walls too tight on the cartridge and probably mirrored the holes on the PCB. I will test it myself this week to see if it is all right.
HP45 carrier 20160201.zip
(190.05 KiB) Downloaded 679 times

User avatar
dragonator
Site Admin
Posts: 478
Joined: Fri Aug 14, 2015 4:48 pm
Location: The Nethelands
Contact:

Re: Hacking the HP45

Post by dragonator »

Printhead: Check
Carrier: Check
Driver chips: check
Completely lacking time: Check
2016-02-05 17.11.27.jpg
2016-02-05 17.11.27.jpg (495.39 KiB) Viewed 9250 times
I got everything I need to eject first ink. I hope the TLC59213 will be good for this. My list is full for this weekend, but I will try to do the experiments ASAP.

ezrec
Posts: 112
Joined: Sat Aug 15, 2015 1:31 pm

Re: Hacking the HP45

Post by ezrec »

Keep us posted!

Wonko
Posts: 96
Joined: Sat Aug 15, 2015 8:13 pm

Re: Hacking the HP45

Post by Wonko »

I use these to drive a 6x6 matrix, but using SPI may be a bit slow for a printhead:

http://www.farnell.com/datasheets/1793976.pdf

DigitalShadow
Posts: 20
Joined: Sat Jan 30, 2016 1:49 am

Re: Hacking the HP45

Post by DigitalShadow »

@Wonko:
Those are pretty cool IC's, though they look like they will be a little bit too slow for the timing requirements of this print head. Also I worry that the sheer amount of data being streamed to it would be quite taxing on the micro controller via an SPI line. I imagine they would be quite nice to drive a large amount of stepper motors though, I may look into that application for future controllers. I am currently using the A4988 to manage my steppers. Quite easy to use, but requires 3 pins per unit.

@Dragonator:
Any progress with those parts? I understand how it is to have many projects on the go at once heh heh. I noticed that you got the PDIP20 form factor of the chip. I was considering getting the TSSOP version, as it has slightly different timing requirements (Less hold time needed on the data inputs to set state, though the difference is relatively small. ~20ns vs 50ns). I would be interested to hear how those guys work for you in the case that they would be easier to work with. The PCB's have not arrived yet but I'm not expecting them for a few days yet at least. I'm still waiting on the pins and the chip to come in. Also I was curious, which micro controller are you using to run this? If I had to hazard a guess I would think the Arduino Due? I have been considering the bandwidth requirements to get the data to the printer in real time. Assuming all my math is correct, a resolution of 600 dpi covering 20cm per pass is approx 1.42 megabytes of data per pass per color. If the horizontal plane of the printer is 20x20 and you have 5 cartriges, that would be approx. 113 mb per layer. I have been considering adding a ram buffer between the controller and the driver IC's to smooth everything out and offload some of the raw memory requirements from the micro controller. If I am correct most printers use this approach to avoid dropouts while printing

User avatar
dragonator
Site Admin
Posts: 478
Joined: Fri Aug 14, 2015 4:48 pm
Location: The Nethelands
Contact:

Re: Hacking the HP45

Post by dragonator »

None so far, but I do plan on (trying to) ejecting first ink this weekend. I got the PDIP version because I do not want to fuss with SMT packages. DIP's still fit in a breadboard. The 50ns will still be safe, I do not worry much (though I did not notice the timing in the datasheet, good call).

Either a Mega or a Due for the test. Even a Mega should be fast enough if it is only handling inkjet. I do need direct port manipulation for that, but that is peanuts. For the full printer version I have been thinking about how to get a high enough data rate from a microcontroller with an SD card, but I think I have a good idea. It works because the inkjet drivers have a latch, otherwise it would need additional hardware.

A simple RAM chip, with a parallel interface. It stores a full sweep on its memory (requiring about 3-4 mbits). It has a 16 bit channel with 16 in/outputs. These in/outputs are connected to both the microcontroller and the drivers for the 14 primitives of the printhead. Before the sweep, the microcontroller reads all the data of the sweep from the SD card, and writes it to the RAM. All this time, the latches are not triggered, so none of this data is going to the printhead. Then, when the RAM is filled, the printhead starts to move, and the right address in the RAM is called at the right location. Now the latch is triggered, and the inkjet data goes straight from the RAM chip to the printhead, without ever going through the microcontroller. The microcontroller only needs to trigger the right printhead address and RAM address, which is a simple math operation that can be done on the fly. No data needs to be read from the SD card while the printhead is printing, requiring only a slow microcontroller to handle simple tasks.

If this explanation needs additional images, I can make those in half a day. I think this is the way to get higher speeds with better printheads with simple microcontrollers.

DigitalShadow
Posts: 20
Joined: Sat Jan 30, 2016 1:49 am

Re: Hacking the HP45

Post by DigitalShadow »

That is quite close to what I envisioned :) In my theoretical setup, I would have two RAM banks, one being filled while the other is used to print. Depending on the bandwidth, I would be filling the RAM with data from a PC, from either the micro controller or a separate usb serial line. Good thinking though, looking forward to seeing what you come up with

Post Reply