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.

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.

Step 1: Disclaimers, Warnings, Materials And Safety

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.

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.

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!

  • 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.
<p>has anyone come up with a solution for the 120 model yet?</p>
<p>I am still looking a year later.. Had I know that the darn thing would not run without the cartridge in it I would have never bought it!</p>
<p>cartridge genius.com - Keep checking back for stock on his item or send him an email. I don't think Arduino can do what the CartridgeGenius does...But I'd LOVE someone to prove everyone wrong!!!</p>
<p>If anyone cares...I found a temporary solution...</p><p>1. Take empty/full cartridge (shouldn't matter) and pull it out of the machine.</p><p>2. Insert cartridge and wait for lights to register and immediately press start until you hear the beep and genie starts up.</p><p>3. Pull out cartridge right after the genie starts.</p><p>You will have lights indicating no cartridge, but it will do the whole cycle anyway...The sanisolution is only added in the drying cycle so it's just for scent (it does help improve the smell a lot!!!)</p><p>I saw a post somewhere where someone was doing this...I ordered an Arduino chip and figured out after that it only works on the cg60 NOT 120 :(</p><p>I have been doing this with an &quot;empty&quot; cartridge for a while and it continues to work...possibly due to the CG not having time to recognize the cartridge level, but still enables the start function because it &quot;sees&quot; a cartridge in place for that 1 second.</p><p>I have yet to get a new cartridge to see if this process actually uses up the cycles stored in the cartridge...Try it out and let me know how it goes...You can't lose because it should work with spent cartridges as well</p>
<p>I tried this with an empty cartridge and didn't work for me. could it be that your cartridge wasn't quite empty when you started this process? </p>
<p>I think you're right. The cartridge I used must have 1 or 2 washes left...I just tried an empty one and it didn't work.</p><p>...So I guess you need a cartridge with at least a cycle left in it for this to work</p>
Hello I would love one of these for my CG120 please email me if you can help me out Jesse2Caldwell@gmail.com
<p>Did anyone find out if this is usable with the new CG120?</p>
<p>It's not! Different cartridge reading mechanisms doesn't allow this to work on the 120. Check out the solution I posted...</p>
<p>Just wondering if you ever got a reply to your question, and if it was a positive one? Thanks. :)</p>
<p>Hi there! would also like to be able to reset my CG120. do share if you have any info on the reset, please do share!</p>
<p>I am in search of this solution for my 120 as well..</p>
<p>I tried doing all of these instructions. I bought the Arduino UNO. I don't have the 3V3 slot but the 3.3V (which I assume is the same). I get all the way through and when I plug in the cartridge the LED doesn't light up. I'm sure I'm doing something wrong, but not sure if I uploaded the sketch properly (it said download was complete and the lights blinked on the UNO, so again, I assumed it was downloaded).</p><p>I need to get another part (it's the joiner of the two hoses because mine disintegrated and now the two hoses can't be joined). Once I do, I'll try the Genie to see if it will start, but again not sure if it will).</p>
<p>Hi all,</p><p>Unfortunately, the above didn't work. Can someone help me troubleshoot? A couple of items to note:</p><p>1. There are two places on the sketch where I can upload the code. One says &quot;for a loop&quot; and the other is &quot;single time&quot; (I can add a screen shot when I get home)</p><p>2. I have a 60 cartridge that I cracked open to put in a new solution bag and this is the one that I used to reset. Is that a problem?</p><p>Any help would be appreciated.</p>
<p>I just finished making this for my CG60. It seems absurdly complex, however this writeup makes it quite simple, do not be intimidated! I used an Arduino Duemilanove which was 20$ from amazon. I did buy a 9 volt power supply for a total of 25$, shipped. The only change from the original poster's arduino was that I do not have to jumper for changing back and forth. Total cost for me was about 50$ if I included the USB cable I bought (which if you have one, is free and unnecessary after you load the sketch), the spool of wire that I used maybe half for an extended lead from the board, and the LED. Note that I did need to cut a few strands out of the end of the wires that go into the pin slots on the arduino. <br><br>My only major change other than the board, was I fabricated a cardboard holder for the wires (see picture), which also was pretty easy. My cartridges were newer 60s with the 4 tabs so it made placement easier. <br><br>The sketch I used was ponynicker's from 4 years ago at the time of my posting (today is 5/7/2016). It worked fine with 1.6.8 from the arduino website. My LED does blink constantly on standby but it does do a rapid flicker and then back to blinking, so I can tell when it works. <br><br>For those who are asking for one to be made for them, it really is not a hard DIY, despite the intimidation factor. Trust me, I know nothing about arduinos and minimal about any sort of programming and it went together pretty easy for me. Take the plunge, it is well worth it!</p>
Hi does anyone know where i can get a reset box
<p>Checkout cartridgegenius.com. He has some cartridge genius in stock for $99.00.</p>
<p>Anyone know where I can get a 120 reset device please inbox me at annetteb069@yahoo.com..</p>
<p>I need one for my cat genie 120 where can I get this? the one site no longer has available ... Help I have a few cats...</p>
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.<br> <br> #include &lt;Wire.h&gt;<br> #define CG (B1010000)<br> boolean resetSuccess = false;<br> int isReset = 13;<br> int byteArray []= {01, 01, 01, 60, 60, 60, 60, 60, 60, 8, 8, 8, 33, 33, 33, 255};<br> void setup()<br> {<br> pinMode(isReset, OUTPUT);<br> digitalWrite(isReset, LOW);<br> if (isReset == HIGH)<br> isReset = LOW;<br> Wire.begin(); // join i2c bus (address optional for master)<br> }<br> void loop()<br> {<br> if (resetSuccess)<br> {<br> delay (2000); // our work is done - pause for a while<br> resetSuccess = false;<br> } else {<br> resetCartridge();<br> resetSuccess = verifyCartridge();<br> digitalWrite(isReset, resetSuccess);<br> }<br> }<br> void resetCartridge()<br> {<br> for (int i=3; i &lt; sizeof(byteArray)/2; i++)<br> {<br> Wire.beginTransmission(CG);<br> Wire.write(i);<br> Wire.write(byteArray[i]);<br> Wire.endTransmission();<br> delay(4);<br> }<br> }<br> void movePointerTo(int deviceAddr, int memoryAddr)<br> {<br> Wire.beginTransmission(deviceAddr);<br> Wire.write(memoryAddr);<br> Wire.endTransmission();<br> }<br> boolean verifyCartridge()<br> {<br> boolean success = true;<br> movePointerTo(CG, 3);<br> Wire.requestFrom(CG, 3);<br> while (Wire.available())<br> {<br> if (Wire.read() == 60 &amp;&amp; success == true)<br> {<br> digitalWrite(isReset, HIGH); // sets the LED on<br> delay(50); // waits for a second<br> digitalWrite(isReset, LOW); // sets the LED off<br> delay(50); // waits for a second<br> digitalWrite(isReset, HIGH); // sets the LED on<br> delay(50); // waits for a second<br> digitalWrite(isReset, LOW); // sets the LED off<br> delay(50); // waits for a second<br> digitalWrite(isReset, HIGH); // sets the LED on<br> delay(50); // waits for a second<br> digitalWrite(isReset, LOW); // sets the LED off<br> delay(50); // waits for a second<br> digitalWrite(isReset, HIGH); // sets the LED on<br> delay(50); // waits for a second<br> digitalWrite(isReset, LOW); // sets the LED off<br> delay(50); // waits for a second<br> <br> // looking good so far<br> } else {<br> success = false;<br> }<br> }<br> return success;<br> }
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.
How do you make this?
Does this device you made work for the new cartridges? If so mind sharing how you made it? KWELLS5214@BUCCANEER.ATLANTIC.EDU
<p>Hi.</p><p>You have them marked 1-4, and don't show what they connect to.</p><p>Im assuming one is a 9volt battery..Ground and Power.. and maybe the other 2 are ground and input leads? Question is... what do each of these numbers go to?</p><p>Thanks! </p><p>jemtec@roadrunner.com</p>
<p>what size of wires did you use and what kind</p>
Can you make one for me? I will pay you! I have the CG60, please reply! I need this bad!
<p>your instructions are great i am just techo dumb at some point. i just called cat genie they informed me i need a hole new machine. this one is almost brand new....very devastated because of the money i spent on it and i picked up new kittens last night. wondering if your still making the devices and if so can we talk about the price of you making me one, please? i can send you the pieces if needed from my machine as well. </p>
<p>forgot to leave contact info if some one would be so kind to contact me :) i would be grateful!!! gene32@comcast.net</p>
<p>Just a note to say that the sketch code above and the updated sketch in the comments doesn't work with the current Arduino v1.6.5, but you can download older versions that do work. I used v1.0.5 and it verified fine with no errors.</p>
<p>Hi mamalang. I know your post was 4 years ago, but I wanted to share with you the code I dressed up to current Arduino standard.</p><p>#include &lt;Wire.h&gt;</p><p>#define CG (B1010000)</p><p>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); Wire.begin();} </p><p>// join i2c bus (address optional for master)</p><p>void loop(){ if (resetSuccess) { delay (2000);resetSuccess = false; } </p><p>// our work is done - pause for a while</p><p> else { resetCartridge(); resetSuccess = verifyCartridge(); digitalWrite(isReset, resetSuccess); }}void resetCartridge(){ for (int i=3; i &lt; 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 &amp;&amp; success == true) { </p><p>// looking good so far</p><p>} else { success = false; } } return success;}</p>
<p>PaulF1- Would you mind telling me if your code or the original arduino code posted works on the 120 cartridge. Id like to try and build my own but i have the 120 model.</p>
<p>Help please! Really need one of these for my 120 sani solution cartridges but am not able to do this.Will someone make one for me? I have a Macbook pro and an old PC running windows 98. Glad to pay through Paypal. Thanks</p><p>maeyer@earthlink.net</p>
<p>There are new units for the catgenie 120 at www.cartridgegenius.com</p>
The 120 Cartridge (clear) do not work within the original <a href="/catbox120.wordpress.com/2010/09/11/catbox/">CatGenie</a>, which only uses the 60 Cartridge (green) The 60 Cartridge do not work within the <a href="/catbox120.wordpress.com/2010/09/11/catbox/">CatGenie</a> 120.
I was wondering if <em><strong>this instructable</strong></em> worked on the cat-genie 120 cartridges, NOT if the cartridges are interchangeable!!! Still waiting on a answer...
Hi <br>I am British (don't hold that against me). I have the Cat Genie 120. Only had it since April 2013, yes I have a love hate relationship with it already. We have 8 cats so it is proving to be expensive. Has anyone managed to refil and re use a 120 cartridge. And if so could you walk me through the steps. Would be grateful. In desperate need of some help <br>Graham
I am also wondering if this will work with the 120, have you gotten a response yet Graham? <br> <br>TIA! <br>~G~
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!
Hi, <br>Does this works with the new 120 sani solution cartridges? <br>Thanks
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!
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!!
Great work!<br/><br/>I've made a few mods to the code which :<br/> - Flash the LED on for 5 seconds at startup, to show the program is working<br/> - Correctly lights and blanks the LED on a successful cartridge reset. Previously it was always on.<br/><br/>You should remove the cartridge during the time that the &quot;reset OK&quot; light is on (2 seconds).<br/><br/>This worked well on my Duemilanove.<br/><br/>For some reason they don't allow code to be pasted into comments - new code is available at <a rel="nofollow" href="http://www.poptart.org/catgenie.pde">http://www.poptart.org/catgenie.pde</a><br/>
is there any way to make this unit set for 255 cycles? if so what do i need to change on the program<br /> thanks
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.<br /> <br /> 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).<br /> <br /> If it doesn't work, just change it back to 60 and re-flash.<br /> <br /> <br /> J&gt;<br /> <br />
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
sorry forgot email see heide1963@aol.com
Every time I do this, the light continually blinks after I put the cartridge in the holder.
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!

About This Instructable




More by ScottSEA:Put Your CatGenie in "Tech Mode" CatGenie:  Resetting a SaniSolution Cartridge CatGenie:  Repairing (And Preventing) An Arm Rotation Pin Failure 
Add instructable to: