Automatic cat litter box.

Posted on
of 2
/ 2
  • Hello again, just wanted to share an idea, this is based of the dsd6 I got sometime back from @fanoush, using espruino of course. The ball is a flower pot from Italian maker bama, it is a bit small, 40cm diameter, but otherwise very nice for a cat bed or litter box, and well priced, so it gave me the motivation to make it automatic. Everything else is paper, resin and some polyester coating. The servo is one from AliExpress, 30 euro, 12volt 150kg, I am running it at 5volts, only using a max of 5watts for moving 3.6 litters of sand.

    I will upload the code later, but it is not the strong point, I believe it is very cleaning friendly, very simple on using and maintaining.

    I uploaded my endeavours in this Greek version of channel4 forum, in Greek but there are some photos, If anyone cares on the how to, I will be happy to share my problems and solutions.­f=43&t=50568

    this a simple demo run, is is designed to allow for as simple ball placement/removal as I could think of.­vNE

    this shows how the scoop is removed and the sand emptied, for deep cleaning.­qtM

    and this is an not so happy to be on yt cat, but she did go while I was filming the demo, so here she is.­sxU

  • This looks awesome! It's so ingenious! Does anyone make anything you can buy like this, or was it all your own idea?

    I'm really impressed how nice you got this looking - so you just made it out of cardboard, added resin, some filler and sanded it down?

    How did you connect the servo to the dsd6? Just using the vibration motor output?

    Do you have a way to detect if the cats are in it before it does its cleaning cycle? I guess the DSD6 has an accelerometer so you could maybe detect any movement from the cats inside it and use that to delay the cycle?

    On the 'non-strong' software - I wouldn't worry! This is just the kind of thing Espruino was originally made for - if the code works, it'll almost certainly just keep working forever - it doesn't have to be pretty!

  • Hello Gordon,

    there are some ready made products, but they all use a quite bigger ball and the whole cat enters inside, there is not a ball based one that half the cat is outside. I think most if not all are not really cleaning/maintaining friendly machines for a toilet use, some are ok, some are really bad designs, I am proud on how simple/clean this implementation turned out to be. It is battery/mains powered, 6 months of 10 emptying cycles per day is my estimate on 8 18650 batteries, but I will know for real after I run some test during this weekend, and is basically water proof.

    the dsd6 has the serial on the usb, it turned out that I can controll 2 servos, 2 relays and the powerbank using just those two pins, so I did not opened it up, it is a standard dsd6. I went for the dsd6 because there were many problems to solve, I wanted the controller to be really simple in the first go, the dsd6 and espruino made the controlling part a breeze. I made a custom lock that also transfers vibrations from the ball to the dsd6, so the accel is working fine for cat presence, I am using the tap feature of the accelerometer at 2g force sensing, every trigger resets the 2 minutes counter. I also monitor voltage drop during the emptying cycle, I found out that I can relate drop to sand weight quite well, so it knows how much sand is in the ball, and this also serves as a "something went wrong" alert. I also run the dsd6 power in through a reed switch that is disabled when the drawer is missing, so it has drawer presence sensor , 5 volts is power on, 0.6 volts is power off( powerbank in sleep mode, 30μA drain), 0 volts is drawer out.

    Yes, it is just cardboard, two component thin liquid construction resin, it soaks in the cardboard well, filling and sanding. The resulting material feels a bit like poly-carbonate sheets, very nice for prototyping I think, it was my first try using this technique, I recommend it. My comment on the "not the strong point" was about my coding skills, other that this espuino is rock solid, as it has always been for me, a true tool.

    I have some photos of the "making of" in this greek forum, I will be happy if you care to have a look.

    Thank you again for espruino, happy new year.­t=50568&start=75

    ps, this is maybe the best product on the market, but it really served as a reason to make something more cleaning friendly, I do not like it, it is not bad but it is not good either, the scoop part is not even removable, there is no way to really wipe clean the sand pocket, I am not sure the people in the cat litter robots business really have cats.­eGU

  • BTW nice to see you back, you went silent for quite some time so I was a bit worried what hapened :-)

  • death happened, but life goes on I guess, sorry if I caused worry, nice to see you too fanoush, I missed reading you. :)

  • @enaon sorry to hear that, but I'm glad you're back!

    That's really cool about using a totally unmodified DSD6 - that makes them a really neat little tool!

    I was considering making something for Bangle.js that would give it IO (using SWD) but I think realistically it's a bit too pricey to be used in the same way.

    I did already look through the forum pictures - thanks! I'll have to give the cardboard + resin approach a try next time I need to make something biggish. I've always quite liked working with fibreglass, but I never considered building cardboard into it! I've got a laser cutter here so building nice cardboard parts should be pretty easy.

  • I've got a laser cutter here so building nice cardboard parts should be pretty easy.

    You make me feel like a caveman, I didn't even use a ruler, If you make something please tag me, I am curious.

    I am leaving this here too, the electronics, dead simple. The nice thing is that the powerbank module I used has a very nice feature, it turns off if the output is shorted or overloaded, but turns on again on a button press. The button is sensitive to pulses greater than 100ms, so it does not interfere with the servo.

    this demonstrates a power loss and an overload, the logic only has to recover power, cutting off power to release the servo in a case of overload is done by the power-source, fail proof.

    1 Attachment

    • InkedInkedInkedInked20240127_085928_LI.jpg
  • added bonus, I liked being able to remote control the powerbank output, so I made my self two powerbanks, one has 6 batteries and the dsd6 fits inside, the other has 5 batteries, two powerbank modules, and the dsd6 is removable.

    2 Attachments

    • 20240123_033922.jpg
    • 20240123_033637.jpg
  • Thanks! That's great - it's really cool how simple that was to wire up.

    And yes, I'll have to have a try doing something with cardboard forms made with the laser cutter. I do a few things (like Bangle.js stands) with it, but I only really ever cut cardboard stuff out when doing craft things for the kids at the moment.

  • Hi,

    @enaon, I'm planning to fully replicate your design. I'm newbie with espruino, dou you plan sharing your code?

    I've already read Greek forum, but:

    1. Do you recommend any commercial band (I'll buy for this project).
    2. Detailed info about electronic part would really be appreciated.
  • hello @jmontane, yes I will upload the code to github, and will make a final parts list for the electronics.

    as for the controller, I was thinking about it a bit too. @fanoush may know of a band that could work and is still on sale, or maybe an official espruino board could be used, or even an esp board if battery operation is not importand, or maybe have it in sleep mode. (I have not yet done any proper measurements, but the prototypes are now 2 months in, 300+ empty cycles, ~65% battery level, idle consumption of the powerbank module looks good)

    I used the ds-d6, because I had some, Ι wanted the controller to be waterproof and it was easy to use the accelerator for sensing movement, but I will use the magic3 (*) next, I will place it on the top of the power bank/motor cover, it is removable so it makes sence for easy deep cleaning, and I will use a shaking vibration sensor- Ι am not sure how they are called, little glass capsules- for the sensing part, so maybe you could get one of those, the code for it will be on github too, with menus etc.

    I plan to upload the current code for the dsd6 on github by monday.


  • fanoush may know of a band that could work and is still on sale

    DS-D6 was unique because it has two generic GPIOS on the usb data pins. Only few smart bands made by same Desay company had this feature DS-D9,DS-D6, HX03(W,F) and also SMA Q2 had it. Sadly none are available for sale nowadays. I don't have any more new DS-D6, only few used used ones (maybe atc1441

    still has some ?) , I still have two boxed HX03W.

    If you just want nrf52 device with battery and screen and don't mind taking it apart to get GPIOs then the Magic3/C17 is cheapest and is even nrf52840 and relatively easy to open (price is about 11EUR with shipping and taxes from aliexpress)

  • If you just want nrf52 device with battery and screen and don't mind taking it apart to get GPIOs then the Magic3/C17 is cheapest and is even nrf52840 and relatively easy to open (price is about 11EUR with shipping and taxes from aliexpress)

    I wanted to ask you, I will have a look myself, but did you happen to find any unused pins on the board, like you did for the dsd6 back then?

  • no, not me, but @yngv126399 did something with adding e-ink to Magic3 recently and other people mentioned some stuff on discord over years with some photos. but I guess you already opened it many times so you already know the inside,
    here is some recent photo of PCB, at least the TXD and maybe the one next to it (RXD?) and one button pin should be usable?

  • I found 3 pads on the back that were not listed on @fanoush's Magic3 pin table: D13 (unmarked, grouped with SXD,TXD,D+,D-), D28 (unmarked, to the far right of that cluster), and D27 (unmarked, to the near right, below and to the left of D28). I also reused I2C SDA/SCL as I have removed the touchscreen. Of course, that's the ACCEL lines as well, so you'd have to write a cooperative routine that makes sure they don't interfere with each other.

    Also good for hacking is the DT28 (also cheap on AE). No "new" pins that I found, but you can find the touchscreen pads (SDA,SCL,INT,RST). When I get a chance I can check the RX/TX to see what they are...

  • I do believe he still has several hundred thousand of those...

  • super, thank you both.

  • Also good for hacking is the DT28 (also cheap on AE).

    Do you have a link to the item on AE? The one I have bookmarked in my wishlist is gone.

    The board is easy to solder too, plus you get two buttons.


    I should add: I removed the original SQUARE display as it was cracked on delivery; that leaves the entire 12-pin array of solder points so if you can solder at 0.6mm you can get 3.3,GND,and 5 GPIOs (for the display CS,RST,SDA,SCL,DC). These are tricky and fragile solder points so I just used two here and secured them

  • Oh, that explains it. It is is the same item I have wishlisted but I get "Sorry, the page you requested can not be found:(" when clicking it. In wishlist I have "Currently unavailable" next to it. So it is some geo restriction if you still see it. It worked for me some time ago.

    EDIT: Oh I see small text "Sorry, this item's currently unavailable in your location." there too.
    And I see it also on this­80008305.html
    which should be Lenovo HX11 / Desay DS-D20F band possibly with gpios on USB too. Maybe somebody can see it?

    I see "That product can't be shipped to your address"

  • @jmontane sorry for the delay, I have uploaded the code to github, the main app file is here:­ter/app/main.js

    I also used the espruino tinydash to make a small control app

    ps. @Gordon, I had an issue when using puck.js for the comms, maybe it is due to my espruino version on the dsd6, or maybe it is a known issue, I am reporting it in any case. The problem is that the dsd6 was freezing/rebooting when communicating using the puck.js and the signal was low.

  • That looks great!

    It's hard to know what might be the issue with the communications I'm afraid. It's not something that I've heard of before with other Espruino nRF52832 devices communicating with each other, so I guess it could be an older firmware/softdevice on the DSD6?

  • Loving (and watching) this project, I actually have, and use one of the LitterRobots which is actually pretty good to use day-to-day, although I have been meaning to modify/work with the onboard control board at some point which could be better.
    having said that - I have a higher priority project to work on first which is to figure out the protocol for the SurePet cat flaps, since their software/setup is really lacking (aka dumb as a box of bricks).
    (even with "internet" control it needs DST manually updating, and loses all it's timing settings when you change the batteries🤦♂️)

  • my bad, I wrote puck.js, I meant, the script for communications you offer.

    there is a loop locking problem for sure, I have verified it using espruino 2.14 on the p8 watch, I will try to explain better.

    when using the code on this example* for communicating from a web page to an espruino device, two way comms, say sending from the device to a web page a string 40(so that the info gets split on 2 or more packets) characters long every 200ms, all is fine as long as the signal is strong. When the bt signal goes low or near lost, the espruino device reboots. You can verify it very easily, just have a led blink on every loop on the device, and force a bad signal on the phone running the web page. You will notice that the led blinks slower as signal gets worse, and eventually a reboot will follow.

    I used characteristics and all is ok for me now, just reporting it in case you want to test.


  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Automatic cat litter box.

Posted by Avatar for enaon @enaon