I can understand (loosely) them not wanting the wrong product in a name branded dispenser - or specifically the wrong type of product, like sanitizer in a soap location, or worse, soap at the mall doors. Having one physical bottle design simplifies the factory tooling, but makes it easy for custodial staff to toss the wrong thing in. Absolutely not justified in locking out competitor refills though, that's gnarly.
Thanks for making this video. You helped me to be able to use some soap I bought that was the wrong one for my dispenser, but mainly I just wanted to comment on your mentioning that the dispenser sells for $60-70. I think most of the soaps sell for about $30-40 at least, also. It does bother me also how GoJo puts such security in the device and they won't let you use the brand of soap you want. Reminds me of the Coffee maker Keurig that I had to hack just so I could use another brand of coffee if I wanted to. I said all that just to say that I work in the Industrial Supply business and we deal with Gojo products. The way it works there is the Gojo Rep provides the dispenser for free if you buy their soap. Just thought you might want to know that.
Thank you for sharing the knowledge! I wonder, and would like to know your opinion, about bypassing "the brains" altogether, leaving only the optical sensor and the squirting electro-mechanics. The optics cannot draw in standby anything but a minimal quiescent current from the batteries. Would it be possible to adopt existing optics of the hand sensor? The rest should be relatively easy to rewire.
You certainly could but you still need something to act as the "brains." Something to tell the motor/pump to run when a hand is detected... You could keep the sensor and motors in place and come up with something using a different microcontroller or something else but I don't see the point. Unless you have one that's using a different microcontroller that can't be reprogramed.
@@AdamsLab Thank you for the reply! I was thinking about basic timer(s) instead of microcontroller. I have soap dispenser branded Array (probably a Gojo) that looks slightly different from yours but has the same limitations and RFID sensor in the soap container. New soap for it cost $30. I will play with it and post any good results. Thanks again for your time! Edit: I got cheap CMOS timers from ebay that take about 0.1 µA quiescent. Those are named "Multifunction Delay Trigger Chip Timing Mudule Timer IC Timing 2s-1000" usually sold as 10pcs packs for $2 and up.
they have one that uses "SAN ES8" now. . I think it's timer based since the dispenser fails at some point even when the battery is fine, and the cartridge is half full. My office got a few of them. when it fails and you put a new bottle in, it miraculously works. So RFID to check bottle and brand is not enough, they want to make sure you buy a new bottle every 6 months even when you don't go through that much
Hi Adam Super nice video, and well explained. And it works. However, I allso have several dispensers with only 5 contact plates. and with a PIC16F677 chip. The print is very similar but I can't quite see what I need. Can you help? Otherwise
Excellent solution and detailed instructions. Even though the Zapta repo and Arduino file say that it's for LTX-7 but it worked perfectly fine for LTX-12. Used my Arduino Uno to program it. I am having issues with the soap dispenser not dispensing every time but I believe it's related to weak batteries or something. Thank You So Much Again.
Appreciate your work on this and can't believe what a F'n dumb thing this is that we have to hack soap dispensers. I will never by a GoJo or LTX type dispenser with RFID again. What a POS.
I wonder if they have fixed this hack with the latest generation, the es8. The dispenser keeps track of the tag, if the batteries run out before the soap does, you can't replace the battery and not the soap.
Have you ever thought about cutting a hole in the soap/hand sanitizer bottle so you can refill it yourself? I just got this for my wife's salon and the refills are ridiculously overpriced especially considering foaming soap is about 75% water. I was thinking that you could cut a hole on the bottom of the bottle and get a silicone or plastic cap for it then you can refill it yourself for significantly less money.
I was refilling mine (the nozzle screws off when you remove the collar) but the controller would eventually decide that it had counted the maximum dispenses for the rfid and would demand a new bottle. I just hacked it and now I can continue refilling them.
Sir, I like your video but when I tried to burn bootloader it just says wrong microcontroller found. tried it on the model you have on the video and ltx-12. both output the same error :(
You may need to check the programmer... I was using the Sparkfun pocket programmer and had to set the programmer to USBtinyISP (ATTinyCore) to get it to work. You may try some different option depending on what programmer you're using. I'd also check the chip to make sure it's an ATTiny chip... If you're dispensers were bought recently, they may be using a different controller.
I recently ran into this issue and am still working to get through it. It is unfortunate that GOJO does not let you know which cartridge you are going to get, or what dispenser you are going to receive. I worked through all of your steps, however after I install the Attiny by Konde, there is no option for Attiny 48/88, I have options for Attiny 48/88 (there are however options of Attiny 48/88 no bootloader, or optiboot, but neither of those will connect). I tried a few other options which will attempt to connect, but they time out and fail. I have the same programmer as you, and cannot figure it out. this seems like a rather simple process, any ideas on what could be going wrong? thanks for the how to, very informative. I just need to get past this last step.
Hum, I'd try closing out of and reopening the Arduino IDE, make sure you're using an up-to-date version of the IDE, etc. You could also try reinstalling the core (you can find instructions on-line on how to do that). Also, since you're using the same programmer as me, make sure you watch this part of the video (starting at 13:22): ruclips.net/video/u5RHSwtY1WE/видео.html to insure you've got the right programmer selected. Also make sure that you don't have any batteries in the dispenser and that your programmer is switched to power the device. And, lastly check your wiring between the dispenser and programmer.
Try installing an older version of the ATTinyCore by Spence Konde. I originally tried to install the latest version (1.4.1), but ran into the same issue. When I tried installing version 1.3.2, I was able to get it to work.
Could you please tell me where I can buy a exactly same programer that displayed on 3:45. I am not good on this field, I just want follow your guide and doing exactly same process. Thank you.
If you had the “proper” soap or sanitizer bottle for the dispenser, you could clone the tag and the write other tags. I think it’s better just to reprogram the dispenser to work as it should.
I can't beleive you go to all this effort when all you need to do is take the RFID sensor out of a bottle that every resturant and health care facility pitches when they are empty. Further to save money and avoid availability issues you can refill these bottles for continued use: If you want to refill the empty 40 ounce bottle from any LTX 12 foaming dispenser just drill a 1/4 Inch hole in the top of the 40 ounce bottle, mix up the following solution , and add with a clean mustard like bottle. Clean and Tape over that 1/4 inch hole with black electrical tape so your home made solution below does not evaporate. All of the ingredients can be bought online. Purell bottles can be hard to fine in these Pandemic times. Don't waste your money on expensive refills and don't go without if you can't find them at reasoable prices. Formula: 12 Ounces of 100% Aloe Vera Gell 24 Ounces of Iso Rubbing Alcohol (70 or 90%) 1.5 Ounce of Cocamidopropyl Betane (Surfactant for Foaming) 1/2 Eye dropper of Lavender Essential Oil
Well, I mentioned in the intro that swiping a tag from an old bottle was an option. I also mentioned why I didn’t do that. Also, this wasn’t for me, as I mentioned in the video, this was for a friend. They just wanted the dispensers to work. While I believe they felt the reprogramming was clever (never mind fast and cheap), how it was done was ultimately immaterial to them. As far as effort, it was about as effortless as you could get while still accomplishing something useful. I’ve worked with these microcontrollers before, and the code was already written. Refilling the bottles might be an option in some cases. In some it may actually be a waste of time. More importantly though, I’m curious as to how you feel that a simple reprograming that took maybe 30-45 minutes for all 5 dispensers is more a waste of effort than rummaging through restaurant or hospital garbages for used soap bottles?
Once you get it setup, this process is really fast. Probably 90 seconds to disassemble the dispenser and 90 seconds to connect the leads to the board and program. I found that I didn't even have to unsolder the battery leads if I disassembled it carefully. While it is probably better to solder on the header pins, you don't have to do that either.
@@stephenkyu yeah, that's what I did. I used 90 degree leads and just soldered them in without disassembling the electromechanical unit. After figuring out the first one I cranked out a half dozen in 15 minutes.
@@RednecksGoneWild - You'd probably want to edit the line "#define STROKES_PER_ACTIVATION 1" and change the 1 to however many "shots" you want per activation.
I hacked a number of soap dispensers and then ran into an interesting problem. I ran into a Gojo that is externally exactly the same and has the same mechanism and RFID reader but instead of ATtiny48 it has a PIC16F677. Has anyone else come across these?
For some reason in the video I kept calling the GitHub repository owner "Za-pa" when it's clearly "zap-ta." Apologies to Zapta.
I tried to run the sketch but it gave me an error that pcmsk3 was not declared. I'm running the Arduino 1.8.13
@@eddiecazes5512 - Not sure on that one. Make sure that you have the correct board (ATTiny48) selected.
I can understand (loosely) them not wanting the wrong product in a name branded dispenser - or specifically the wrong type of product, like sanitizer in a soap location, or worse, soap at the mall doors. Having one physical bottle design simplifies the factory tooling, but makes it easy for custodial staff to toss the wrong thing in.
Absolutely not justified in locking out competitor refills though, that's gnarly.
Where to buy the programmer you use and headers and connecting wires?
I have several ltx-12 and hoping this will work
This is the one I used: www.sparkfun.com/products/9825
Also a good thing because nowadays Purell makes soap too
Thanks for your help I appreciate that you are willing to help us the common folks 😅
Thanks for making this video. You helped me to be able to use some soap I bought that was the wrong one for my dispenser, but mainly I just wanted to comment on your mentioning that the dispenser sells for $60-70. I think most of the soaps sell for about $30-40 at least, also. It does bother me also how GoJo puts such security in the device and they won't let you use the brand of soap you want. Reminds me of the Coffee maker Keurig that I had to hack just so I could use another brand of coffee if I wanted to. I said all that just to say that I work in the Industrial Supply business and we deal with Gojo products. The way it works there is the Gojo Rep provides the dispenser for free if you buy their soap. Just thought you might want to know that.
Thank you for sharing the knowledge! I wonder, and would like to know your opinion, about bypassing "the brains" altogether, leaving only the optical sensor and the squirting electro-mechanics. The optics cannot draw in standby anything but a minimal quiescent current from the batteries. Would it be possible to adopt existing optics of the hand sensor? The rest should be relatively easy to rewire.
You certainly could but you still need something to act as the "brains." Something to tell the motor/pump to run when a hand is detected...
You could keep the sensor and motors in place and come up with something using a different microcontroller or something else but I don't see the point. Unless you have one that's using a different microcontroller that can't be reprogramed.
@@AdamsLab Thank you for the reply! I was thinking about basic timer(s) instead of microcontroller. I have soap dispenser branded Array (probably a Gojo) that looks slightly different from yours but has the same limitations and RFID sensor in the soap container. New soap for it cost $30. I will play with it and post any good results. Thanks again for your time!
Edit: I got cheap CMOS timers from ebay that take about 0.1 µA quiescent. Those are named "Multifunction Delay Trigger Chip Timing Mudule Timer IC Timing 2s-1000" usually sold as 10pcs packs for $2 and up.
they have one that uses "SAN ES8" now. . I think it's timer based since the dispenser fails at some point even when the battery is fine, and the cartridge is half full. My office got a few of them. when it fails and you put a new bottle in, it miraculously works. So RFID to check bottle and brand is not enough, they want to make sure you buy a new bottle every 6 months even when you don't go through that much
Very interesting. Good to know.
So are you familiar with the ES8? It uses a battery in the bottle. I am trying to replace the battery so the bottle can be refilled.
Hi Adam
Super nice video, and well explained. And it works. However, I allso have several dispensers with only 5 contact plates. and with a PIC16F677 chip. The print is very similar but I can't quite see what I need. Can you help?
Otherwise
Apologies, I’m not familiar with programming PIC microcontrollers.
@@AdamsLab Daem :o( Me neither. Thanks for reply.
Excellent solution and detailed instructions. Even though the Zapta repo and Arduino file say that it's for LTX-7 but it worked perfectly fine for LTX-12. Used my Arduino Uno to program it. I am having issues with the soap dispenser not dispensing every time but I believe it's related to weak batteries or something. Thank You So Much Again.
Hey Umair, do you have the schematics for the LTX-12? Thanks in advance 🙏🏼❤️
Appreciate your work on this and can't believe what a F'n dumb thing this is that we have to hack soap dispensers. I will never by a GoJo or LTX type dispenser with RFID again. What a POS.
Also the 1/8" TRRS jack on the device allows for UART communication. You can get the refill serial number, battery status and a few other goodies.
I wonder if they have fixed this hack with the latest generation, the es8. The dispenser keeps track of the tag, if the batteries run out before the soap does, you can't replace the battery and not the soap.
Have you ever thought about cutting a hole in the soap/hand sanitizer bottle so you can refill it yourself?
I just got this for my wife's salon and the refills are ridiculously overpriced especially considering foaming soap is about 75% water. I was thinking that you could cut a hole on the bottom of the bottle and get a silicone or plastic cap for it then you can refill it yourself for significantly less money.
I’ve heard of people doing this…
I was refilling mine (the nozzle screws off when you remove the collar) but the controller would eventually decide that it had counted the maximum dispenses for the rfid and would demand a new bottle. I just hacked it and now I can continue refilling them.
Sir, I like your video but when I tried to burn bootloader it just says wrong microcontroller found. tried it on the model you have on the video and ltx-12. both output the same error :(
You may need to check the programmer... I was using the Sparkfun pocket programmer and had to set the programmer to USBtinyISP (ATTinyCore) to get it to work. You may try some different option depending on what programmer you're using. I'd also check the chip to make sure it's an ATTiny chip... If you're dispensers were bought recently, they may be using a different controller.
@@AdamsLab yes Sir, bought the same Sparkfun AVR programmer. sadly I also bought ltx-12 and 7 just last week :( both will ot work :(
Gawd I love the internet 😆
I recently ran into this issue and am still working to get through it. It is unfortunate that GOJO does not let you know which cartridge you are going to get, or what dispenser you are going to receive. I worked through all of your steps, however after I install the Attiny by Konde, there is no option for Attiny 48/88, I have options for Attiny 48/88 (there are however options of Attiny 48/88 no bootloader, or optiboot, but neither of those will connect). I tried a few other options which will attempt to connect, but they time out and fail. I have the same programmer as you, and cannot figure it out. this seems like a rather simple process, any ideas on what could be going wrong? thanks for the how to, very informative. I just need to get past this last step.
Hum, I'd try closing out of and reopening the Arduino IDE, make sure you're using an up-to-date version of the IDE, etc. You could also try reinstalling the core (you can find instructions on-line on how to do that). Also, since you're using the same programmer as me, make sure you watch this part of the video (starting at 13:22): ruclips.net/video/u5RHSwtY1WE/видео.html to insure you've got the right programmer selected. Also make sure that you don't have any batteries in the dispenser and that your programmer is switched to power the device. And, lastly check your wiring between the dispenser and programmer.
Try installing an older version of the ATTinyCore by Spence Konde. I originally tried to install the latest version (1.4.1), but ran into the same issue. When I tried installing version 1.3.2, I was able to get it to work.
You just fixed all my problems 🙏@@stephenkyu
Now I'm wondering what other fun things could be fed through them!
Me too. Let me know if you come up with any ideas.
In addition to LTX12, we also have ES6 and CS8. Do you know if this procedure work for ES and CS models?
Unfortunately, I couldn't say. You'd need to take them apart and see what (if any) microcontroller they're using.
Does any know the frequency that the dispenser LBL uses?
I don’t, sorry.
My LTX-7 have a different board that only have 5 pin in the header so not sure of the PIN out to connect it.
Were you able to figure the pinout for those?
@@dimitryshkurin6480 No, still need original rfid to work.
Could you please tell me where I can buy a exactly same programer that displayed on 3:45. I am not good on this field, I just want follow your guide and doing exactly same process. Thank you.
www.sparkfun.com/products/9825
@@AdamsLab thx!
Would a RFID reader writer work?
If you had the “proper” soap or sanitizer bottle for the dispenser, you could clone the tag and the write other tags. I think it’s better just to reprogram the dispenser to work as it should.
I put Jack Daniels in mine.
Nice :)
Thank you!
Adams lab
Solomon Kelly
I can't beleive you go to all this effort when all you need to do is take the RFID sensor out of a bottle that every resturant and health care facility pitches when they are empty. Further to save money and avoid availability issues you can refill these bottles for continued use: If you want to refill the empty 40 ounce bottle from any LTX 12 foaming dispenser just drill a 1/4 Inch hole in the top of the 40 ounce bottle, mix up the following solution , and add with a clean mustard like bottle. Clean and Tape over that 1/4 inch hole with black electrical tape so your home made solution below does not evaporate. All of the ingredients can be bought online. Purell bottles can be hard to fine in these Pandemic times. Don't waste your money on expensive refills and don't go without if you can't find them at reasoable prices. Formula:
12 Ounces of 100% Aloe Vera Gell
24 Ounces of Iso Rubbing Alcohol (70 or 90%)
1.5 Ounce of Cocamidopropyl Betane (Surfactant for Foaming)
1/2 Eye dropper of Lavender Essential Oil
Well, I mentioned in the intro that swiping a tag from an old bottle was an option. I also mentioned why I didn’t do that.
Also, this wasn’t for me, as I mentioned in the video, this was for a friend. They just wanted the dispensers to work. While I believe they felt the reprogramming was clever (never mind fast and cheap), how it was done was ultimately immaterial to them.
As far as effort, it was about as effortless as you could get while still accomplishing something useful. I’ve worked with these microcontrollers before, and the code was already written.
Refilling the bottles might be an option in some cases. In some it may actually be a waste of time.
More importantly though, I’m curious as to how you feel that a simple reprograming that took maybe 30-45 minutes for all 5 dispensers is more a waste of effort than rummaging through restaurant or hospital garbages for used soap bottles?
Once you get it setup, this process is really fast. Probably 90 seconds to disassemble the dispenser and 90 seconds to connect the leads to the board and program. I found that I didn't even have to unsolder the battery leads if I disassembled it carefully. While it is probably better to solder on the header pins, you don't have to do that either.
@@stephenkyu yeah, that's what I did. I used 90 degree leads and just soldered them in without disassembling the electromechanical unit. After figuring out the first one I cranked out a half dozen in 15 minutes.
I just got a ZEP auto unit , can i use it to put out Tequilla?
Whatever your heart desires…
@@AdamsLab how can i mod it to spit out a whole ounce shot . it only puts out a tiny bit now .
@@RednecksGoneWild - You'd probably want to edit the line "#define STROKES_PER_ACTIVATION 1" and change the 1 to however many "shots" you want per activation.
I hacked a number of soap dispensers and then ran into an interesting problem. I ran into a Gojo that is externally exactly the same and has the same mechanism and RFID reader but instead of ATtiny48 it has a PIC16F677. Has anyone else come across these?