Further hacking work went to step were I had to find how firmware uses cartridges memories. So I check possible text outputs and I have found:
Especially this one: “UpdateCartridgeQntCheckPresent: eWriteCartridgeStatus=%i” was very promising. Actually all this logs was also visible via UART terminal.
So when I went to function which called this log file, I was sure that one of the called functions there do a memory writing magic:
To understand how reading and writing to secured memory is working I read carefully (few times 🙂 ) documentation for DS1963S:
It was very hard but crucial to find all responsible functions used during writing of current quantity. Generally printer is using 2 banks of cartridge memory, both have 32 bytes length. Bank 0 consist information about material type, material color and max amount of cartridge. All of this information is additionally secured with special checksum. Bank 1 have only information about current quantity status.
It took me around 1 month to find how to read cartridges memories, 1 week more to find how to write them and 2 month more to find how to calculate checksum. Finally I have constructed ReCube v1, special tool to “refill” Cube3 cartridges:
This small “stick” is based on Arduino Nano and is able to “refill” fully cartridge with just 1-click or much more via UART console. Some short movie showing enhanced possibilities of this device you can find here:
I decided to share Light version of this device and you can find it here: RecubeV1
In given zip you have all needed files, binaries together with KiCad project for PCB board and STL file for cover.
Read carefully Readme.txt file 😉 and if you like it do not forget to donate. Paypal Link: Tomuro
Here is schematic:
And part list:
R1, R2 – 1k
R3 – 100k
R4 – 4,7k
D3 – LSG_T670
SW1 – micro, tact switch SMD 2,5 mm