• I want to thank all the members that have upgraded your accounts. I truly appreciate your support of the site monetarily. Supporting the site keeps this site up and running as a lot of work daily goes on behind the scenes. Click to Support Signs101 ...

Let's Emulate A Mimaki Chip! (DS2430/DS2431) compatible!

Smoke_Jaguar

Man who touches printers inappropriately.
===This is going to be a multi-part thread, so the first post will not be all-encompassing. ===

This is open source information, zero special software needed. It simply allows someone to emulate a chip for duplication, backup or easy transfer. This should not interfere with any printer functions, but there are no guarantees it will work.

Things we need:
Arduino Uno (Nano will work, but pins may be different, will need to be based on ATMEGA128 series)
USB cable that fits your Arduino
Donor Mimaki chip
Soldering tools
20-28AWG Wire
'Dupont' header connectors (optional)
Computer with Arduino IDE (to program your Arduino)
Basic Nerd Skills
Chip Serial Number/Chip Data (covered later, will also provide examples)

===HARDWARE===
1) Remove the old chip from the circuit board from your donor Mimaki chip.
2) Solder wire to Ground (BIG pin) and Data/+ (smaller pin)
3) Connect BIG/Ground pin to Arduino GND connector
4) Connect Data/+ pin to Digital (PWM) 2

Yup, that's it for the hardware side. See attached pictures. Using thin wire helps a lot for keeping a low profile to keep chip from getting wedged in.
 

Attachments

  • ChipEmu1.jpg
    ChipEmu1.jpg
    117.6 KB · Views: 106
  • ChipEmu2.jpg
    ChipEmu2.jpg
    155.4 KB · Views: 49

Smoke_Jaguar

Man who touches printers inappropriately.
===SOFTWARE===

I am going to assume that people who are going to this step have some basic experience with the Arduino IDE. Pretty easy to get started and there are thousands of tutorials.
1) Open the Arduino Library Manager under Tools> Manage Libraries
2) Install OneWireHub library.
3) Copy and paste the Arduino sketch paste it into a new sketch window.
4) Set your Arduino board type and COM port.
5) Verify and upload sketch. Upon restarting the emulator, you will have a working chip emulator.
Note that the emulator will require a constant power source. I use a cheap USB power bank connected to wall power. If I lose power, it has hours of backup time if need. Older DS2430 chips can be reset using the Reset button on the Arduino. Newer DS2431 chips will likely be invalidated if the ink level gets reset, and new chip data will need to be used.

CODE STARTS BELOW AND ENDS AT BOTTOM OF THIS POST:

#include "OneWireHub.h"
#include "DS2430.h"
constexpr uint8_t pin_onewire { 2 };
auto hub = OneWireHub(pin_onewire);
auto ds2430 = DS2430(DS2430::family_code, 0x43, 0x03, 0x53, 0x01, 0x00, 0x00); //This is chip serial number, first hex is chip type, 2-7 serial number, 8 is check digit (auto calculated)

void setup()
{
hub.attach(ds2430);
constexpr char memory[] = {0x5C, 0x21, 0x0A, 0x01, 0x4C, 0x32, 0x38, 0x31, 0x30, 0x37, 0x31, 0x35, 0x19, 0x01, 0x03, 0xE8, 0x07, 0x0A, 0xD6, 0x62, 0x35, 0x00, 0x00, 0x12, 0x08, 0xCC, 0x3B, 0x00, 0x26, 0xFE, 0x04, 0x8D};
ds2430.writeMemory(reinterpret_cast<const uint8_t *>(memory),sizeof(memory),0x00);
ds2430.syncScratchpad();
}
void loop()
{
hub.poll();
}
 
Last edited:

Smoke_Jaguar

Man who touches printers inappropriately.
Note that the code in this chip is for PR-200 primer, 1 liter bottle. The expiration date is contained within the 13th hex value (0x19) and can be incremented by simply adding to it. So, changing it to 0x20 will move date further out and 0x18 would be a sooner expiration date.

Most newer inks post 2016 are the DS2431 chips, and those are far more complex on their encoding. Will cover that more in depth later on.
 

Mohammed Issa

New Member
===SOFTWARE===

I am going to assume that people who are going to this step have some basic experience with the Arduino IDE. Pretty easy to get started and there are thousands of tutorials.
1) Open the Arduino Library Manager under Tools> Manage Libraries
2) Install OneWireHub library.
3) Copy and paste the Arduino sketch paste it into a new sketch window.
4) Set your Arduino board type and COM port.
5) Verify and upload sketch. Upon restarting the emulator, you will have a working chip emulator.
Note that the emulator will require a constant power source. I use a cheap USB power bank connected to wall power. If I lose power, it has hours of backup time if need. Older DS2430 chips can be reset using the Reset button on the Arduino. Newer DS2431 chips will likely be invalidated if the ink level gets reset, and new chip data will need to be used.

CODE STARTS BELOW AND ENDS AT BOTTOM OF THIS POST:

#include "OneWireHub.h"
#include "DS2430.h"
constexpr uint8_t pin_onewire { 2 };
auto hub = OneWireHub(pin_onewire);
auto ds2430 = DS2430(DS2430::family_code, 0x43, 0x03, 0x53, 0x01, 0x00, 0x00); //This is chip serial number, first hex is chip type, 2-7 serial number, 8 is check digit (auto calculated)

void setup()
{
hub.attach(ds2430);
constexpr char memory[] = {0x5C, 0x21, 0x0A, 0x01, 0x4C, 0x32, 0x38, 0x31, 0x30, 0x37, 0x31, 0x35, 0x19, 0x01, 0x03, 0xE8, 0x07, 0x0A, 0xD6, 0x62, 0x35, 0x00, 0x00, 0x12, 0x08, 0xCC, 0x3B, 0x00, 0x26, 0xFE, 0x04, 0x8D};
ds2430.writeMemory(reinterpret_cast<const uint8_t *>(memory),sizeof(memory),0x00);
ds2430.syncScratchpad();
}
void loop()
{
hub.poll();
}
Will this code work with the DS2431 even though it's the DS2430 library?
 

Smoke_Jaguar

Man who touches printers inappropriately.
Yes, just need a proper ds2431 serial number and data and a few values changed. Some inks like lh-100, pr-200 and such are dual chip compatible.
 
Top