Hacking the HP45
- dragonator
- Site Admin
- Posts: 616
- Joined: Fri Aug 14, 2015 4:48 pm
- Location: The Nethelands
- Contact:
Re: Hacking the HP45
I have included 2 images. The V3.02 controller (the firmware of the Teensy 3.2 based controller) and the V4.02 controller (the firmware of the Teensy 3.5 based controller). The addresses run top to bottom on both. The pin mapping of this primitives should be possible to change just by changing the pins on the microcontroller, but the address mapping needs to be fixed in the table. As you can see in the images, the mapping of the addresses is completely wrong.
- Attachments
-
- HP45 V4.02 controller.png (71.25 KiB) Viewed 29942 times
-
- HP45 V3.02 controller.png (50.64 KiB) Viewed 29942 times
-
- Posts: 1
- Joined: Sun Sep 29, 2024 1:00 pm
Re: Hacking the HP45
Hi everyone,
We're two 18 year old students studying Industrial Engineering and for our annual engineering test, we've decided to build an Oasis 3DP ourselves.
We've fully constructed the Oasis 3DP machine and have soldered the V4.02 HP45 controller. All that's left now is trying to make the HP45 V4.02 controller run on the V3 software (which uses bit-banging instead of DMA) whilst using a Teensy 4.1.
We are somewhat clueless of how would make all of this work in this way. We've seen user "Ichrg" do exactly what we're about to do next. So if he can contact us at: "zandprinter@gmail.com" and share some insight on how you did this, we would be very grateful and would be willing to help fix issues (like routing the addresses for the new controller).
Or if anyone else has some info they can share on how we would best approach this task, this would be appreciated.
Email: zandprinter@gmail.com
Or: send us a message back!
Thanks in advance!!
We're two 18 year old students studying Industrial Engineering and for our annual engineering test, we've decided to build an Oasis 3DP ourselves.
We've fully constructed the Oasis 3DP machine and have soldered the V4.02 HP45 controller. All that's left now is trying to make the HP45 V4.02 controller run on the V3 software (which uses bit-banging instead of DMA) whilst using a Teensy 4.1.
We are somewhat clueless of how would make all of this work in this way. We've seen user "Ichrg" do exactly what we're about to do next. So if he can contact us at: "zandprinter@gmail.com" and share some insight on how you did this, we would be very grateful and would be willing to help fix issues (like routing the addresses for the new controller).
Or if anyone else has some info they can share on how we would best approach this task, this would be appreciated.
Email: zandprinter@gmail.com
Or: send us a message back!
Thanks in advance!!
- dragonator
- Site Admin
- Posts: 616
- Joined: Fri Aug 14, 2015 4:48 pm
- Location: The Nethelands
- Contact:
Re: Hacking the HP45
Have you had any mails regarding this? I have no experience and pointers beyond what I already told you by mail, but do like to see this project succeed.
-
- Posts: 6
- Joined: Wed Jun 09, 2021 1:07 pm
Re: Hacking the HP45
Do any of you have this document:
800e6d22 Inkjet Writing Systems Design Fundamentals(HP document).
Appreciate it if someone could provide me with this document.
800e6d22 Inkjet Writing Systems Design Fundamentals(HP document).
Appreciate it if someone could provide me with this document.
Re: Hacking the HP45
hi, i am also attempting to achieve the same thing, would be amazing if you could share any discoveries or pointers you stumble uponDries Vandenbroucke wrote: Thu Oct 17, 2024 7:04 pm Hi everyone,
We're two 18 year old students studying Industrial Engineering and for our annual engineering test, we've decided to build an Oasis 3DP ourselves.
We've fully constructed the Oasis 3DP machine and have soldered the V4.02 HP45 controller. All that's left now is trying to make the HP45 V4.02 controller run on the V3 software (which uses bit-banging instead of DMA) whilst using a Teensy 4.1.
We are somewhat clueless of how would make all of this work in this way. We've seen user "Ichrg" do exactly what we're about to do next. So if he can contact us at: "zandprinter@gmail.com" and share some insight on how you did this, we would be very grateful and would be willing to help fix issues (like routing the addresses for the new controller).
Or if anyone else has some info they can share on how we would best approach this task, this would be appreciated.
Email: zandprinter@gmail.com
Or: send us a message back!
Thanks in advance!!

-
- Posts: 1
- Joined: Mon Dec 23, 2024 10:34 pm
Re: Hacking the HP45
Hey guys, thanks for the invention. Sorry to get out of topic. Is there any specific reason to use teensy microcontroller other than most commonly cheap and available like esp32 or stm32 for controlling the print head? Because in my country teensy price is almost $80 for the 4.1. I’m interest to build oasis for making sand casting moulding
- dragonator
- Site Admin
- Posts: 616
- Joined: Fri Aug 14, 2015 4:48 pm
- Location: The Nethelands
- Contact:
Re: Hacking the HP45
There is no fundamental reason why to use it, other than it being available, has good peripherals, plenty of I/O, and good libraries. The ESP32 was either new, or not available when I started, this, and I stuck with what worked.
The ESP32 is powerful enough to run this. I think it has enough IO, but I am not sure. To control an HP45, you will need around 20-22 I/O, mostly output.
What is needed is the same issue preventing the V4 controller from being useful right now. The V4 firmware is hardcoded for a Teensy 3.5 because it uses a Teensy 3.5 specific bit of hardware. The V3 controller firmware is a bit more general, but that firmware is older and has fewer features. Getting the ESP32 to work with the HP45 will take a bit of modification of the firmware.
The ESP32 is powerful enough to run this. I think it has enough IO, but I am not sure. To control an HP45, you will need around 20-22 I/O, mostly output.
What is needed is the same issue preventing the V4 controller from being useful right now. The V4 firmware is hardcoded for a Teensy 3.5 because it uses a Teensy 3.5 specific bit of hardware. The V3 controller firmware is a bit more general, but that firmware is older and has fewer features. Getting the ESP32 to work with the HP45 will take a bit of modification of the firmware.
Re: Hacking the HP45
I am also trying to do the same thing (Running a teensy 4.1 on a V4 controller using V3 firmware) and I wanted to ask how it went and if you guys managed to do it .
Re: Hacking the HP45
Dragonator I have a Question Regarding the Controller, I saw in the Hacking HP84/85 thread that the drawing for the V3 Controller said that "Exact address layout Determined in the PCB Phase" does this mean that the addresses in the (NewNozzleTable) are the correct adddresses.
also You said that the V3 firmware is usable with the V4.02 Controller By Leaving the Primitives array But Changing the Addresses array to the one from the V4 firmware due to the Change in HEF4017 outputs so:-
V3 code
//conversion values --------------------------------------------------------------------------------------------------------------------------------
//these are alteres. The given number is the controller pin the given printhead pin is on, in order from P1 to P14, and A1 to A22
int8_t temp_primitive_conversion[14] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
uint8_t temp_address_conversion[22] = {21, 19, 14, 18, 17, 13, 20, 9, 16, 8, 4, 12, 1, 15, 0, 5, 10, 6, 7, 2, 11, 3};
V4 code
//conversion values --------------------------------------------------------------------------------------------------------------------------------
//these are alteres. The given number is the controller pin the given printhead pin is on, in order from P1 to P14, and A1 to A22
//static uint8_t primtivePins[14] = {15, 22, 23, 9, 10, 13, 11, 12, 2, 14, 7, 8, 6, 20}; //(C0-C7, D0-D5) the array for the primitive pins
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13
//odd or even o e o e o e o e o e o e o e
int8_t tempPrimitiveConversion[14] = {3, 1, 11, 2, 10, 8, 12, 5, 7, 9, 6, 0, 4, 13};
uint8_t tempAddressConversion[22] = {6, 1, 2, 5, 11, 4, 15, 0, 12, 7, 19, 3, 17, 8, 28, 9, 16, 13, 18, 14, 20, 10}; //changed to 28, it was 21
so by changing the contents of the temp address conversion lines from V4 to V3 the V3 code could theoretically be used with the V4 controller chip?
but with the teensy 4.1 only has 17 analog pins instead of the 22 in the teensy 3.5 so does that mean that I will not have the same level of control over the print head and would require a very major change in the controller pcb design. or am I misunderstanding the conversion values?
also You said that the V3 firmware is usable with the V4.02 Controller By Leaving the Primitives array But Changing the Addresses array to the one from the V4 firmware due to the Change in HEF4017 outputs so:-
V3 code
//conversion values --------------------------------------------------------------------------------------------------------------------------------
//these are alteres. The given number is the controller pin the given printhead pin is on, in order from P1 to P14, and A1 to A22
int8_t temp_primitive_conversion[14] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
uint8_t temp_address_conversion[22] = {21, 19, 14, 18, 17, 13, 20, 9, 16, 8, 4, 12, 1, 15, 0, 5, 10, 6, 7, 2, 11, 3};
V4 code
//conversion values --------------------------------------------------------------------------------------------------------------------------------
//these are alteres. The given number is the controller pin the given printhead pin is on, in order from P1 to P14, and A1 to A22
//static uint8_t primtivePins[14] = {15, 22, 23, 9, 10, 13, 11, 12, 2, 14, 7, 8, 6, 20}; //(C0-C7, D0-D5) the array for the primitive pins
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13
//odd or even o e o e o e o e o e o e o e
int8_t tempPrimitiveConversion[14] = {3, 1, 11, 2, 10, 8, 12, 5, 7, 9, 6, 0, 4, 13};
uint8_t tempAddressConversion[22] = {6, 1, 2, 5, 11, 4, 15, 0, 12, 7, 19, 3, 17, 8, 28, 9, 16, 13, 18, 14, 20, 10}; //changed to 28, it was 21
so by changing the contents of the temp address conversion lines from V4 to V3 the V3 code could theoretically be used with the V4 controller chip?
but with the teensy 4.1 only has 17 analog pins instead of the 22 in the teensy 3.5 so does that mean that I will not have the same level of control over the print head and would require a very major change in the controller pcb design. or am I misunderstanding the conversion values?
Re: Hacking the HP45
last time dragonator said if we use v3 pcb / schematic then use v3 firmware
int8_t temp_primitive_conversion[14] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
uint8_t temp_address_conversion[22] = {21, 19, 14, 18, 17, 13, 20, 9, 16, 8, 4, 12, 1, 15, 0, 5, 10, 6, 7, 2, 11, 3};
else if trying the harder router with v4 firmware and v4 board schematics/pcb then use v4 code
we can use the pins on the back assuming u are testing on a pcb and not breadboard
v4 uses an extra chip for pulsing so that causes a change
int8_t temp_primitive_conversion[14] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
uint8_t temp_address_conversion[22] = {21, 19, 14, 18, 17, 13, 20, 9, 16, 8, 4, 12, 1, 15, 0, 5, 10, 6, 7, 2, 11, 3};
else if trying the harder router with v4 firmware and v4 board schematics/pcb then use v4 code
we can use the pins on the back assuming u are testing on a pcb and not breadboard
v4 uses an extra chip for pulsing so that causes a change