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