CatGenie: Resetting a SaniSolution Cartridge by ScottSEA
P7090166.JPG
Some Background:
I have two CatGenies, both of which take a proprietary cartridge that are good for sixty cycles. The CatGenie will not run without a non-empty cartridge installed. In my home, each unit runs four times a day (I have six cats), so a cartridge lasts only fifteen days. Each cartridge is about fifteen bucks. For those of you following along without benefit of a calculator, that totals sixty bucks a month in cartridges.

Environmentally, four cartridges per month equals a lot of foil, plastic and little circuit boards in the landfill - and I really don't see how CatGenie could sell refills without totally redesigning the cartridge.

Proposed Solution:
Adding new solution to an empty cartridge is not that complicated (see my other instructable), but it isn't really helpful because the cartridge has a microchip on it that acts as a counter. When the counter reaches zero, the cartridge is trash. This instructable will demonstrate how to reset the counter on the cartridge to "full" - allowing you to drop it back into the unit and rock on.

NOTE:
This instructable does cover resetting but does not cover refilling the solution in the cartridge; it assumes you have done so already. If you need help with the refilling process, please see my other instructable.
 
Remove these adsRemove these ads by Signing Up

Step 1: Disclaimers, Warnings, Materials And Safety

Disclaimer:
It should be noted that I am in no way affiliated with CatGenie or PetNovations LTD. This instructable is (obviously) not approved or endorsed by PetNovations LTD. CatGenie is a registered trademark of PetNovations LTD.

Should you break or damage your CatGenie, your CatGenie SaniSolution cartridge, an Arduino, your computer, sprain your thumb get divorced or whatever - you follow these instructions at your own risk and I assume no liability for what you do or what happens to you. You're a big person. Caveat Emptor.

Warning:
By following this instructable you may in some way void your CatGenie warranty... but as long as you don't send back the cartridge with non-CatGenie cleanser in it, I don't see how they would know.

Safety:
There really aren't any safety concerns I can think of beyond common sense. If common sense is an uncommon virtue for you, maybe you should find someone to help you. :-) If not, then rock on!

Materials:
  • an Arduino microprocessor (or clone thereof)**
  • some breadboarding wires and an LED (any color)
  • a computer with which to program said Arduino
  • a "dead" SaniSolution cartridge
  • a CatGenie you're willing to disassemble and put back together.***

**actually, any microprocessor that communicates via I2C (aka "Two Wire) protocol will suffice, but the Arduino is what I have available and one with which I am familiar. Programming a PIC controller or whatever is on you.

***unless you're willing to fabricate your own cartridge holder. You're on your own there.
1-40 of 131Next »
silentfett says: Feb 22, 2013. 12:21 PM
geezus. i am so tech impaired and I managed to do this on the first try. I had a broken cat genie I bought from CL for 10 bucks for the spare parts so I used the cartridge part and now have a separate cartridge holder yay! I cannot believe how amazing this is i'm still shocked how easy it was. The only thing that was weird was that I had to turn the LED around so the flat side had to be the opposite of the directions. But, in the end, I found the LED wasn't necessary at all with the Duemilanove because the board has another blinking light that blinks the same cadence(?) as the LED once it works. GREAT DARN INSTRUCTABLE!
tirano says: Jan 8, 2013. 3:02 AM
Hi,
Does this works with the new 120 sani solution cartridges?
Thanks
ponynicker53 says: Oct 2, 2012. 4:37 PM
Updated code for Arduino 1.0.1 and above. Power up and LED will light, attach contacts (insert cartridge) and when it is complete LED will flash several times.

#include <Wire.h>
#define CG (B1010000)
boolean resetSuccess = false;
int isReset = 13;
int byteArray []= {01, 01, 01, 60, 60, 60, 60, 60, 60, 8, 8, 8, 33, 33, 33, 255};
void setup()
{
pinMode(isReset, OUTPUT);
digitalWrite(isReset, LOW);
if (isReset == HIGH)
isReset = LOW;
Wire.begin(); // join i2c bus (address optional for master)
}
void loop()
{
if (resetSuccess)
{
delay (2000); // our work is done - pause for a while
resetSuccess = false;
} else {
resetCartridge();
resetSuccess = verifyCartridge();
digitalWrite(isReset, resetSuccess);
}
}
void resetCartridge()
{
for (int i=3; i < sizeof(byteArray)/2; i++)
{
Wire.beginTransmission(CG);
Wire.write(i);
Wire.write(byteArray[i]);
Wire.endTransmission();
delay(4);
}
}
void movePointerTo(int deviceAddr, int memoryAddr)
{
Wire.beginTransmission(deviceAddr);
Wire.write(memoryAddr);
Wire.endTransmission();
}
boolean verifyCartridge()
{
boolean success = true;
movePointerTo(CG, 3);
Wire.requestFrom(CG, 3);
while (Wire.available())
{
if (Wire.read() == 60 && success == true)
{
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second

// looking good so far
} else {
success = false;
}
}
return success;
}
ponynicker53 says: Oct 2, 2012. 8:33 PM
And no need to tear your cat genie apart. Here is the resetter I made from wire, electrical tape and a little piece of cardboard. I just hold it on the cartridge when I want to reset.
IMG_0884.JPGIMG_0883.JPG
monarchy says: Oct 23, 2012. 10:54 AM
Can you make one for me? I will pay you! I have the CG60, please reply! I need this bad!
Chrishugh says: Nov 3, 2012. 1:33 PM
Me too. I need this. My cartridge ran out and Amazon is taking forever to send a new one.
ponynicker53 says: Nov 3, 2012. 2:12 PM
PM me.
katerlyn says: Sep 23, 2012. 10:52 AM
does anyone know what i have to do with my cat genie, on first cartridge only...it is full of water and wont finish the cycle. i cannot TOLERATE calling them, having serial number found, and waiting for a call back, help!
ponynicker53 says: Oct 2, 2012. 4:38 PM
http://www.litterbox-central.com/litter-box/catgenie/topic3138.html
katerlyn says: Oct 2, 2012. 4:43 PM
i have switched to wood pellets, and 20 cent aluminum trays from warehouse club....they are wonderful and i make many ahead of time like they do at shelters! but thank you for when i tackle emptying my genie that has been brown for many weeks now........full of water!!
The Snake says: Aug 11, 2009. 4:13 PM
Great work!

I've made a few mods to the code which :
- Flash the LED on for 5 seconds at startup, to show the program is working
- Correctly lights and blanks the LED on a successful cartridge reset. Previously it was always on.

You should remove the cartridge during the time that the "reset OK" light is on (2 seconds).

This worked well on my Duemilanove.

For some reason they don't allow code to be pasted into comments - new code is available at http://www.poptart.org/catgenie.pde
compmrklein says: Apr 16, 2010. 5:12 PM
is there any way to make this unit set for 255 cycles? if so what do i need to change on the program
thanks
The Snake says: Apr 17, 2010. 4:14 AM
It is byteArray[3] that holds the number of uses to be written to the cartridge, so that's the 4th number in the array.

You can try changing that to a higher number, though beware that the CatGenie might not like it (haven't tried myself as I like to be reminded when the carts are getting empty).

If it doesn't work, just change it back to 60 and re-flash.


J>

heide1963 says: Aug 5, 2012. 7:40 AM
omg that sounds like way to much info for im not that smart is theire any way ican get one all ready made please me im laid off and icat keep buying them they cost way to much and ihave 5 cats the needy cat lady heidi
heide1963 says: Aug 5, 2012. 7:41 AM
sorry forgot email see heide1963@aol.com
tmamayek says: Sep 16, 2009. 4:24 PM
Every time I do this, the light continually blinks after I put the cartridge in the holder.
wozzwinkl says: Sep 4, 2009. 11:25 PM
Maybe I'm doing this wrong- When I use your program on my Duemilanove, it loads fine and when I reset the board it turns the light on for 5 seconds, then shuts it off. That's it until I reset it again. If I connect the cartridge after the light goes out, still nothing. I don't get the "reset OK" light, at all. And none of this seems to reset the cartridges, regardless of the LED lighting or not. Is the proper sequence turn on board, wait for light to go out, connect cartridge, wait for "reset OK" light, remove cartridge while light is on? How important is it that this all be done exactly right? I have successfully reset all 5 of my cartridges twice before, with the older version of the resetting program. However, I have had some weird issues lately with my cartridges not wanting to work after resetting, or working sporadically. The CG was complaining that the cartridge was empty (it was full), so I reset it and the CG ran a cycle, then started complaining again... Is it possible that I have damaged the chips on the cartridges? I'm just having a really hard time knowing what is going wrong, and I'd like to be sure I'm doing as many things right as possible. Thanks!
wozzwinkl says: Sep 12, 2009. 12:07 PM
UPDATE- I bought new cartridges, and they fixed it. I think I definitely managed to "pop" my chips somehow... I'm still interested in the proper sequence, etc, though. Please, help me not pop my cartridges again!
DMBillies says: Aug 22, 2009. 11:45 AM
That link to the program appears to be broken (for me at least). Can you re-post a new one please?
The Snake says: Aug 24, 2009. 2:10 AM
Hi... think there was a network problem at the time. Can you try again now? Seems OK for me.
DMBillies says: Aug 24, 2009. 9:25 AM
Yes, it must have been a network problem because it is working fine now. Thanks a lot for the work on the updated code!
kji716 says: Aug 15, 2009. 6:23 PM
WORKS FINE...! thanks!
polemos says: Apr 6, 2011. 2:04 PM
Does it work with CatGenie 120 cartridges?
weddlerr says: Sep 5, 2011. 9:34 AM
Its called the "Cartridge Genius"
weddlerr says: Sep 5, 2011. 9:31 AM
There is a device on the market that works with the 120 now. Here is a link to the forum that its posted on. http://www.litterbox-central.com/litter-box/catgenie/topic3601.html#p20848
CartridgeGenius-1.jpg
cd11 says: Aug 5, 2011. 3:48 PM
In one of the previous strings someone mentioned that you could get the cartridge 're-setter' already made but the people selling them had to go underground due to law suit threats by Cat Genie. How does a person find someone selling these? I read the string about how to do it yourself and it is waaaaaaay beyond me. If someone has information I can provide my email. thank you.
Jayefuu says: Jun 11, 2011. 12:32 PM
Nice ible! Your humour in your writing kept me reading all the way to the end :D A cute picture of cats prowling around the CatGenie (after cleaning not before!) would probably make this front page worthy! It's very well written and probably something a lot of people would thank you for!
drugrecognition says: May 25, 2011. 9:54 AM
Idid it! I did it! I am not a computer geek at all but I can follow instructions. Bought the board, hooked up as described and it worked. Thank you all!! Especially the author of this thread.
The Snake says: May 10, 2011. 4:46 PM
Hi I've just uploaded a new Instructable that builds on this one. Take a look at http://www.instructables.com/id/CatGenie-A-smart-resettable-SaniSolution-cartrid/. There's a new version of the code and some other enhancements.
ExpressZero says: May 8, 2011. 8:33 PM
Use the below code when programming your Arduino. Upon powering up, the LED will remain lit. When you apply your board to the contacts on the cartridge, it will flash on and off several times, and you know it will have worked.

#include
#define CG (B1010000)
boolean resetSuccess = false;
int isReset = 13;
int byteArray []= {01, 01, 01, 60, 60, 60, 60, 60, 60, 8, 8, 8, 33, 33, 33, 255};
void setup()
{
pinMode(isReset, OUTPUT);
digitalWrite(isReset, LOW);
if (isReset == HIGH)
isReset = LOW;
Wire.begin(); // join i2c bus (address optional for master)
}
void loop()
{
if (resetSuccess)
{
delay (2000); // our work is done - pause for a while
resetSuccess = false;
} else {
resetCartridge();
resetSuccess = verifyCartridge();
digitalWrite(isReset, resetSuccess);
}
}
void resetCartridge()
{
for (int i=3; i < sizeof(byteArray)/2; i++)
{
Wire.beginTransmission(CG);
Wire.send(i);
Wire.send(byteArray[i]);
Wire.endTransmission();
delay(4);
}
}
void movePointerTo(int deviceAddr, int memoryAddr)
{
Wire.beginTransmission(deviceAddr);
Wire.send(memoryAddr);
Wire.endTransmission();
}
boolean verifyCartridge()
{
boolean success = true;
movePointerTo(CG, 3);
Wire.requestFrom(CG, 3);
while (Wire.available())
{
if (Wire.receive() == 60 && success == true)
{
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second
digitalWrite(isReset, HIGH); // sets the LED on
delay(50); // waits for a second
digitalWrite(isReset, LOW); // sets the LED off
delay(50); // waits for a second

// looking good so far
} else {
success = false;
}
}
return success;
}
sonar1971 says: Jan 14, 2011. 7:16 PM
I keep getting this when i try uploading the sketch:
undefined reference to setup.

Anyone have any ideas??
sagus says: Jan 13, 2011. 4:40 PM
Okay, I'm about to put my head through a wall with this one. :(

I'm using the modified code posted in the first comment, and everything LOOKS like it's going to go through fine, but when I put a catridge in... nothing. No light, nada. I know other people have mentioned the same result but the reset worked... however, when I go and plop the cartridge into my catgenie, the reset never went through. Tried it with 3 carts, all to the same result.

I'm using a Mega2560, but the code looks pretty standard, and all the pins are right where they belong. This is just baffling to me, but I will be damned if I have to shell out money for more of those damned cartridges. :) Any idea what my issue may be?
candyann says: Dec 2, 2010. 12:02 PM
I would pay for one of these as I have no hacker smarts. Please email candyann@telus.net
Thanks.
catbox120 says: Sep 17, 2010. 8:40 PM
The 120 Cartridge (clear) do not work within the original CatGenie, which only uses the 60 Cartridge (green) The 60 Cartridge do not work within the CatGenie 120.
Doctorhash says: Nov 25, 2008. 10:27 PM
After reading through allot of the blogs it sounds like to me that the cartridge is using a RC charge timer to disable the cartridge. They do this in the auto industry to tell the computer the engine is still in its break time. After so many hours of charging the cap through a resistor the computer triggers on a set voltage setting a bit in the computer and then computer allows the engine to run at full power and acceleration limits. I read in one of the blogs that a gentleman shorted the two center contacts on the cat genie and he could constantly refill the cartridges. While another Gentleman tried this after the cartridge had been disabled and it would not work. I think what happened is the gentleman it worked for did this while the cartridge was new, shorting the blue contact to ground never gives the capacitor a chance to charge. But if you do it after the cartridge reaches 60 cycles you have to reset the EEprom which gets set when the cat genie reaches 60 cycles. So what I am saying is if you short the two contact pins (4 pins) in the center before the cartridge is disabled the cat genie never triggers on the RC time constant voltage and the EEprom never gets set. What keyed me in on this is you are using the analog voltage pins, why the analog voltage pins. If the cat genie is also using analog voltage I/O pins which are different from Digital I/O pins then there has to be a reason. Let me know what you think. I have a cat genie with about 8 wash cycles on it and a new cartridge. I am going to measure the voltage on those pins with a DMM to see if there is a difference between the two cartridges. If there is I will get back to you and let you know.
nelu57 says: Jun 23, 2010. 12:22 AM
Hello. Who is gentleman. Write address of bloog where he said that he had made changes to reset. Thanks.
steve3rj says: Jan 14, 2009. 3:22 PM
Hey doc, hope you get back soon. Since there are 11 pins on the cartridge and four on the unit is it easier to short the unit pins or the cartridge? If on the cartridge which of the 11 should be shorted together? Do not want to cause harm to the unit by shorting all of the wrong pins as my GF would NOT be happy with me and of course I would end up paying for a new board!!! Thanks, Steve
Doctorhash says: Jan 15, 2009. 7:34 PM
Steve, The pins maybe reversed from right to left rather than the way I stated left to right. Just follow Scotts instructions and you will be OK.
Doctorhash says: Jan 15, 2009. 7:19 PM
Hi, well the contacts are as follows from left to right 11,10(Skip 9) 8,7 (Skip 6) 5,4 (Skip 3) 2,1. The two pin line up like (1,2) are the same signal, why they used an 8 pin format for a two wire communications set up is anyones guess? (4 wire actually including +3.3v and Gnd) Probably did it to try and confuse everyone and make it look harder to mod than it really is. I don't suggest Shorting them on the cartridge as it may interfere with the mechanical fit or damage the contacts. Actually I'm pretty sure the pins on the cartridge are already shorted internally so all you really need to do is make contact with one of the contacts in each of the paired up sets. I used contacts from a AA wall type battery charger (Non spring type), the contacts on it were just the right width to contact both pins and long enough to glue to my home made sleeve. The skipped pins (9,6 and 3)are not connected to anything so if one of your contacts touches it and the adjacent pin does not your in the clear. At worst you ruin the cartridge or burn out the analog ports on the arduino processor board. Thats half the fun of it though, then you get to try again. Just follow Scotts instruction to the letter and you will be ok. Also the program does need a mod, that "While wire available" statement needs to be taken out. If the cartridge is removed the while sequence can't run and the light can never be turned off. The program is ok the way it is now, it will work just turn it on and press the reset button while connected to the cartridge. Have fun?
DSCN0061.JPGDSCN0059.JPGDSCN0058.JPG
jace26 says: Jan 11, 2009. 8:35 PM
Hey doc, any luck with shorting the cap?
1-40 of 131Next »
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!