Hacking cartridge HP 84/85
- dragonator
- Site Admin
- Posts: 597
- Joined: Fri Aug 14, 2015 4:48 pm
- Location: The Nethelands
- Contact:
Re: Hacking cartridge HP 84/85
The printer giving errors does not surprise much. It would have been helpful if it just kept printing, but it should have error checking.
If there are analog signals, they should be coming from the printhead. There are a few things that should come as analog signals, such as temperature values.
I will believe you if you say you measured 3.3V. I based my assumptions on the scope videos of yours, which look like 2.5V.
Your pogo carrier looks really nice. One thing I would consider is the metal needle where your clamp is. This is where the ink enters the printhead. I do not know how much ink (if any) you have before the printhead itself is empty. Maybe the printhead is completely empty, in which case you need to prime it with ink first.
If you have specific C++ questions you can always ask. I assume you are using something Arduino based?
If there are analog signals, they should be coming from the printhead. There are a few things that should come as analog signals, such as temperature values.
I will believe you if you say you measured 3.3V. I based my assumptions on the scope videos of yours, which look like 2.5V.
Your pogo carrier looks really nice. One thing I would consider is the metal needle where your clamp is. This is where the ink enters the printhead. I do not know how much ink (if any) you have before the printhead itself is empty. Maybe the printhead is completely empty, in which case you need to prime it with ink first.
If you have specific C++ questions you can always ask. I assume you are using something Arduino based?
-
- Posts: 116
- Joined: Sat Aug 25, 2018 5:26 pm
- Location: Poland
Re: Hacking cartridge HP 84/85
the printer shows a printhead problem in which I closed the contact
I checked all the contacts with an oscilloscope and did not find an analog signal
With a needle for supplying ink, everything is okay, as a last resort, i can make a hole in the carriage in white.
There is ink there because I take off the head immediately from the printer the printer itself injects ink
At first I decided to use Arduino, but I doubt that it will be possible to work with three megahertz
but Wonko wrote Teensy and I became more interested in Teensy. will need to order teensy
C ++ I study to write the program on Windows and the 3D printer worked together with Windows
I plan to write a program that will cut the 3D part into layers and send the layers to the Color 3D printer
I checked all the contacts with an oscilloscope and did not find an analog signal
With a needle for supplying ink, everything is okay, as a last resort, i can make a hole in the carriage in white.
There is ink there because I take off the head immediately from the printer the printer itself injects ink
At first I decided to use Arduino, but I doubt that it will be possible to work with three megahertz
but Wonko wrote Teensy and I became more interested in Teensy. will need to order teensy
C ++ I study to write the program on Windows and the 3D printer worked together with Windows
I plan to write a program that will cut the 3D part into layers and send the layers to the Color 3D printer
Re: Hacking cartridge HP 84/85
Hi MAsic12345,
1: Note that the Teensy 3.5 and 3.6 uses 3.3V instead of most Arduinos with 5V. Teensy 3.5 is 5V tolerant, which is probably not so important here. There is also the Arduino Due with a Cortex CPU and 3.3V, but it runs at 80MHz .
2: Don't learn C++. Just learn C. C is far simpler and much quicker to learn. Avoid any comminication between the Arduino and the Host Computer in the beginning. Just send a fixed sequence from the Arduino to the printhead and verify it in the scope before ruining the printhead. The Arduino app is very easy and helpful. It has several test programs that you can try out and read.
For example, this makes an LED blink. Everything following a // is just a commentary for you and not part of the program.
3: I have a working slicer written myself that can convert arbitrary 3D models into commands that your Arduino would understand. If you get to the point where your printhead fires ink, and you mount it on a printer. I will gladly adapt my and your software to print slices.
1: Note that the Teensy 3.5 and 3.6 uses 3.3V instead of most Arduinos with 5V. Teensy 3.5 is 5V tolerant, which is probably not so important here. There is also the Arduino Due with a Cortex CPU and 3.3V, but it runs at 80MHz .
2: Don't learn C++. Just learn C. C is far simpler and much quicker to learn. Avoid any comminication between the Arduino and the Host Computer in the beginning. Just send a fixed sequence from the Arduino to the printhead and verify it in the scope before ruining the printhead. The Arduino app is very easy and helpful. It has several test programs that you can try out and read.
For example, this makes an LED blink. Everything following a // is just a commentary for you and not part of the program.
Code: Select all
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
-
- Posts: 116
- Joined: Sat Aug 25, 2018 5:26 pm
- Location: Poland
Re: Hacking cartridge HP 84/85
Can i repeat this signal with arduino? Well 5 volts I can pick up a resistor and lower it by 3.3 volts. With this problem, no, I think so. the most important thing is to repeat this signal in the pictureWonko
I already had time to study 50% с++
and programming in Arduino has also been mastered recently; practice is needed only
only I don’t know if the clock frequency should be kept the same as on the print head to 3 megahertz
Re: Hacking cartridge HP 84/85
Yes, you ca get this signal out of one of the fast Arduinos. To access pins really fast, you can write to registers directly: https://www.arduino.cc/en/Reference/PortManipulation . This manipulates 8 bits with a single instruction.
Wait cycles can be an issue at those high frequencies. There is a call for that: https://www.arduino.cc/reference/en/lan ... roseconds/ and for reading the current time as well: https://www.arduino.cc/reference/en/lan ... me/micros/
BTW: one nice way of debugging what your Arduino does is using the serial terminal. Even though serial port communication is extremely slow compared to the frequencies that you deal with, the serial port is great for launching command on the Arduino, and for reading result codes. The Arduino IDE has a serial terminal built in.
In the mean time, my printer arrived: HP something 90. It keeps switching itself off after a minute or two. I am afraid I have to return it
Wait cycles can be an issue at those high frequencies. There is a call for that: https://www.arduino.cc/reference/en/lan ... roseconds/ and for reading the current time as well: https://www.arduino.cc/reference/en/lan ... me/micros/
BTW: one nice way of debugging what your Arduino does is using the serial terminal. Even though serial port communication is extremely slow compared to the frequencies that you deal with, the serial port is great for launching command on the Arduino, and for reading result codes. The Arduino IDE has a serial terminal built in.
In the mean time, my printer arrived: HP something 90. It keeps switching itself off after a minute or two. I am afraid I have to return it
-
- Posts: 116
- Joined: Sat Aug 25, 2018 5:26 pm
- Location: Poland
Re: Hacking cartridge HP 84/85
perhaps the power supply fails but did not come across thisIn the mean time, my printer arrived: HP something 90. It keeps switching itself off after a minute or two. I am afraid I have to return it
Re: Hacking cartridge HP 84/85
The seller of the DesignJet promised to take a look at it. He's selling various printers, so I am hopeful he will fix it or have a replacement.MAsic12345 wrote: ↑Tue Oct 23, 2018 7:55 amperhaps the power supply fails but did not come across thisIn the mean time, my printer arrived: HP something 90. It keeps switching itself off after a minute or two. I am afraid I have to return it
-
- Posts: 116
- Joined: Sat Aug 25, 2018 5:26 pm
- Location: Poland
Re: Hacking cartridge HP 84/85
Hi Wonko
I tried to create this signal and I only managed to create 82.47 kHz with code it is not enough
maybe there is another solution?
I doubt that I will create 3 megahertz with because very low accuracy
Or is it better to think about a microcontroller that works faster?
I tried to create this signal and I only managed to create 82.47 kHz with code it is not enough
Code: Select all
int outPin = 8; // digital pin 8
void setup()
{
pinMode(outPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(outPin, HIGH); // sets the pin on
delayMicroseconds(1); // pauses for 1 microseconds
digitalWrite(outPin, LOW); // sets the pin off
delayMicroseconds(1); // pauses for 1 microseconds
}
I doubt that I will create 3 megahertz with
Code: Select all
unsigned long time;
Or is it better to think about a microcontroller that works faster?
-
- Posts: 116
- Joined: Sat Aug 25, 2018 5:26 pm
- Location: Poland
Re: Hacking cartridge HP 84/85
Can I use this method to divide the voltage for the signal outputs?
- Attachments
-
- сопротевление.png (6.44 KiB) Viewed 13986 times
Re: Hacking cartridge HP 84/85
Instead of try and . It directly manipulates the port instead of going through a lengthy subroutine to flip a bit. The has the same issues for very short times. You can look at this link https://stackoverflow.com/questions/440 ... xplanation for shorter delays, but that code may not run on your CPU.
PS: The operator sets a certain pattern of bits in a byte, clears the same bit pattern.
As for the voltage divider, yes, they work in theory, but thay put a big load on your outputs (your example pulls the CPU's output through 300Ohm to GND, I=U/R, 5V/300Ohm = 16mA. You are putting a load of 16mA plus whatever the printhead consumes on every CPU pin that has a voltage divider. With 12 Voltage dividers, you have either a quite warm CPU, or an ice cold CPU that will no longer run any instructions.
You can either try 2kOhm and 1kOhm, which reduces the load to 1.6mA, but that may not be enough to control the printhead. The better solution is a bidirectional logic level converter like this one: https://www.banggood.com/8-Channel-Logi ... 23173.html or many others from other suppliers like SparkFun, etc. .
Code: Select all
digitalWrite(8, HIGH);
Code: Select all
PORTB|=1;
Code: Select all
PORTB&=~1;
Code: Select all
delayMicroseconds()
PS: The operator
Code: Select all
|=
Code: Select all
&=~
As for the voltage divider, yes, they work in theory, but thay put a big load on your outputs (your example pulls the CPU's output through 300Ohm to GND, I=U/R, 5V/300Ohm = 16mA. You are putting a load of 16mA plus whatever the printhead consumes on every CPU pin that has a voltage divider. With 12 Voltage dividers, you have either a quite warm CPU, or an ice cold CPU that will no longer run any instructions.
You can either try 2kOhm and 1kOhm, which reduces the load to 1.6mA, but that may not be enough to control the printhead. The better solution is a bidirectional logic level converter like this one: https://www.banggood.com/8-Channel-Logi ... 23173.html or many others from other suppliers like SparkFun, etc. .