Introduction: FindMyCat - the Open Source Pet Tracker
Most existing pet tracking options I came across were like asking for a gourmet meal and getting a frozen half-cooked microwaved burrito – all for the price of a five-star restaurant.
After being disappointed by them and seeing a lack of a comprehensive open source solution, I embarked on the journey to create one.
FindMyCat is the ultimate pet tracking solution. With a battery that can last up-to 6 months, works indoors and outdoors it outperforms 90% of the commercial options. With no monthly subscription fees and a fully open-source solution, it just might be the only pet tracker you'll ever need.
I have launched an official website for FindMyCat along with an official documentation page. I’m constantly improving this project, which means that some of the documentation/instructions will evolve over time. Please find the latest and extensively detailed documentation on the official site.
Official Website: https://www.findmycat.io/
Documentation: https://www.findmycat.io/docs
Github: https://github.com/FindMyCat/
Slack community: Come join us here!
Alright, let's get into the build.
Update Sept 18, FindMyCat was featured on Product Hunt!
Supplies
Things you will need access to to build this project:
- Resin 3D Printer.
- PCB Soldering Oven.
- PCB Microscope.
- Basic soldering tools
- Basic electronics tools.
- More detailed PCB BOMs are linked further in the steps with appropriate instructions.
Please don't stop yourself from building just because you do not have access to some or all of these equipment, the maker community has expanded so much and there are many external services offering these services like 3D printing and PCB assembly for reasonable prices.
I listed these as "needed" tools, but you can proxy it with a service which I will suggest some as we get to it :)
Step 1: Video
Hope you enjoy the video. Pumpkin is starring as the main character ;)
Step 2: Meaowstermind Innovation
Let's look at why you should choose FindMyCat.
1.Real GPS for outdoors
For your pets outdoor adventures, there is real GPS tracking powered by Nordic NRF9160, it operates over future proof LTE network so as long as there is a cellular network available, you will have visibility of your pets location.
2. Precise Find
Powered by Apple Nearby Interaction Framework, Bluetooth Low Energy and modern Ultrawideband technology, we have a precise find mode for when your pet decides it’s hide-and-seek time. Whether indoors or outdoors, you can use precise find to locate your pet to an accuracy of 10cm!
3. Smart Tether
For exceptional battery life and a very reliable geo-fence, we have the Smart Tether. When your pet is at home, a tether is created between the FindMyCat Tracker Device and the FindMyCat HomeStation (think of it as a virtual leash).
This does two things, the Smart Tether instructs the GPS and LTE functionality to go to deep sleep, and send the location updates over your home wifi instead. When your pet leaves the home radius, the outdoor tracking peripherals are enabled, providing seamless transitions between indoors/outdoor location visibility and also a very reliable geo fencing solution.
4. Flexible tracking modes
- Ping mode: When you want to know where they are, just hit “Ping” on the iOS app, and you’ll know their location within 40 seconds.
- Active Mode: If you care to record the history of where they have been, you can put the tracker in active mode. By default the device will report every 7 minutes until commanded to stop.
- Lost Mode: Hopefully you never have to use it, but when your pet seems lost, you can put the device in Lost mode and it will broadcast it’s location every 30 seconds until you have found your friend.
Step 3: Let's Understand the Overview
We have 4 big system level "things" in play.
- The Embedded Hardware
- The Embedded Software
- The Cloud software.
- The iOS Application.
I will go into a little more detail for each in the next
Step 4: Hardware Overview
The Hardware is built around NRF-9160 and DWM3001C. These two SOCs provide the location services for outdoors and indoors using the combination of GPS, LTE, Bluetooth Low Energy and Ultra-WideBand.
The power delivery to the sub-systems and charging of the lithium-ion battery is managed by ADP-5360 PMIC.
The HomeStation PCB [under development] is being built around NRF52833 and NRF7002. These are the BLE and Wifi SOCs that make the Smart Tether possible.
Step 5: Embedded Software Overview
There are three parts to the embedded software.
- Outdoor Location Engine
- Indoor Location Engine
- Home-Station
These three firmwares are designed to play harmoniously together to optimize location accuracy and battery life.
The following figure demonstrates the overview of how they work together.
There are two ways the FindMyCat device responds (reports location), one internally from the Tracker PCB (Responder) and externally from the HomeStation. The goal is to use these two responders in a way that minimizes the usage of the device's valuable resource, the Tracker Battery, while still ensuring visibility of the device's location.
Both HomeStation and Tracker PCB advertises BLE advertisement packets and scan for packets at different intervals to communicate visibility to each other.
The HomeStation advertises BLE ADV packets every second which the IndoorLocationEngine scans for every 30s. While the packets are visible the IndoorLocationEngine puts the NRF-9160 in deep sleep and HomeStation reports the location via WiFi.
The IndoorLocationEngine activates the OutdoorLocationEngine along with its periodic reporting or goes to ping mode depending on which is selected as default, when it doesn't see the HomeStation nearby.
Step 6: FindMyCat Cloud
The software's cloud segment consists of two primary components:
- Traccar GPS Server
- EMQX MQTT Broker
The embedded software establishes communication via MQTT-SN with the MQTT-SN Gateway within EMQX MQTT broker. Each time a device transmits a message to the MQTT-SN gateway (over MQTT-SN protocol), a predefined rule is activated. This rule extracts pertinent device information like location coordinates, battery percentage, GPS accuracy etc and subsequently relays the message to the Traccar REST server utilizing the HTTP protocol.
Please use these instructions to setup the FindMyCat cloud: https://www.findmycat.io/docs/CloudSetup
Step 7: FindMyCat IOS App
The FindMyCat iOS application is used to manage all your devices and track their realtime location etc. Once you successfully build and install it on your device, you will be able to connect to the FindMyCat Cloud and receive location updates, use the precise find feature among other features.
Please use these instructions to build and configure your FindMyCat iOS app: https://www.findmycat.io/docs/iOSApplication
Step 8: Build the PCB
The PCB is the heart of FindMyCat. It is a 4 layer board with a couple BGAs and Impedance controlled traces for Antennas with components placed on both sides of the PCB.
PCB Manufacturing notes
Following are important considerations when manufacturing the PCB.
- LTE and GPS Traces must be impedance controlled at 50Ω impedance.
- All VIAs must be filled and capped. (VIA in Pad)
- Prefer the ENIG surface finish since BGA components are involved.
Downloads
Please find the Gerber files, BOM and Schematic for the PCB below:
I can't seem to upload the Gerber Zip so please use this link here: https://www.findmycat.io/docs/CircuitBoard#downloads
Step 9: 3D Printing
Don't worry if you do not own or have access to a 3D resin printer, there are some external services that offer printing for really cheap.
There are three parts to print for the Tracker.
- Top Cover
- Chassis
- Bottom Cover
I recommend printing using a 3D resin printer, the press-fit parts and tolerances needed for this project might be difficult with a traditional FDM printer. At-least in my experience.
Please find the latest 3D print files here: https://www.findmycat.io/docs/Chassis#print-files
Printer Settings
I used two different resin colors for the chassis, the top and bottom cases are printed with white resin, and the middle chassis is printed with yellow resin to which I added some resin dye to get a darker shade or orange-yellow.
Following are the settings that worked well for me for Elegoo Saturn 2 8K printer.
I used the free version of Chitubox.
3rd party printing services
These are some 3D printing services that seems to have pretty good pricing, seems like a worthy try if you do not have access to a resin printer. (not sponsored)
Step 10: Program the PCB
There are three targets to flash firmwares onto.
FindMyCat PCB:
- NRF 9160: Runs the OutdoorLocationEngine firmware.
- NRF 52833: Runs the IndoorLocationEngine firmware.
HomeStation PCB (NRF7002 DK):
- NRF 52833 + NRF 7002: Runs the HomeStation application.
You can use any J-Link based SWD programmer to program the firmwares using the SWD programming headers on the FindMyCat PCB. I used the NRF7002 DK that I then flashed the HomeStation firmware onto.
Setup Development Environments
https://www.findmycat.io/docs/Embedded/Programming#setup-development-environments
Download embedded-software repository
The embedded-software is a mono-repository that has all the code for three of the firmwares. Please download them from here: https://github.com/FindMyCat/embedded-software
Build the targets and flash using the SWD ports.
Step 11: Final Assembly
Avengers, assemble!
Step 12: Technical Whitepapers
I've delved too deep into IOT and Low power designs while designing this project, I will be publishing some whitepapers around these subjects, if it interests you, you will find them under this page soon.
https://www.findmycat.io/docs/TechnicalWhitePapers
Also feel free to join the FindMyCat slack community if you want to share your knowledge on the subject and contribute to it.
Step 13: What's Internet Without Cat Pictures :)
Enjoy some pictures of my goofball.
23 Comments
1 day ago
I’m a bit sad to say we no longer have cats. We have grandkids now and like to visit as often as possible. Local cat sitters have become increasingly rare. Grumpa engages me in a daily game of WheresMy … I may make a bunch of these brilliant contraptions for non-feline applications.
3 days ago
That's creative, I would like to have one.
13 days ago
Is it/can it be linked to the cats microchip? I ask as it seems an easy job + in London all cats need to be chipped by next June (2024)
Reply 13 days ago
Interesting idea!! I didn't think of that. I will try to think of ways to encorporate that into the device.
Reply 12 days ago
Wonderful, thank you!
Am also thinking that it would help the device to differentiate my cat from everyone elses cats. I have a lot of neighbours who have cats too
15 days ago
Amazing! As has been noted, one purrfect instructable!
That one can do this sort of tracking with such a tiny device w/o a license yet!
Hunters would likely be interested in tracking their dog(s).
Police tracking drug shipments.
Jealous spouse's.
The possibilities seem endless - thought the bandwidth has limits, no?
Reply 14 days ago
Hi charlessenf-gm!
No limits on Bandwidth, it's on a pay as you go plan, so the first 1MB of data is free and 0.08USD per MB. A Megabyte is a lot of data for a small device like this, for context, 500 pages of text to equal one megabyte.
14 days ago
Great Project!!!
You should sell it!
I want to ask if there is any Android version of the FindMyCat app?
Reply 14 days ago
Hi Davin!
Re: Android, a future possibility. It would be a significant undertaking, like you know.
I'm definetly open to it being a community contribuition if someone gets to it before me!
Thank you for supporting!
Sahas
14 days ago
As somebody who does IoT development for hire I truly appreciate the effort you have done!
Wishing you great success.
Reply 14 days ago
Thank you :) I appreciate the support!
Question 15 days ago
10/10!!!!! This is the perfect project to inspire learning new skills. I learned to code HTML to create charity websites at the dawn of the interweb. (before GUI and for free) It was important to me and I channeled that desire into something productive. Is there any interest in an Android version? No offense. Not trying to trigger a tribal rebellion.
Answer 15 days ago
Thank you Michael!
Re: android, I am tracking that here: https://github.com/FindMyCat/ios-app/issues/3
It is a future possibility but I'd definitely welcome it as a community contribution as well if someone gets to it before me, like you know it will be a significant undertaking :)
15 days ago
Even the expression on the cat's face (up at the top) is amazing!
None too excited about being found...
Absolutely awesome work!
Here for the cat comments too...
Reply 15 days ago
xD Pumpkin says Hi hahah.
Thank you!
15 days ago
This is probably the best written and documented projects I’ve run across in quite awhile. You’ve done a fantastic job. I especially appreciate that you’ve done some really impressive engineering and are keeping it open sourced. I also see other uses for the work you’ve done. Great job!
Reply 15 days ago
Thank you Johnny! I appreciate it :)
Question 15 days ago
Would this work in the U.K hope so it's an awesome project nice one
Answer 15 days ago
Yes, @Dave it should, Hologram has a International Sim coverage.
Reply 15 days ago
Thanks