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/
Slack community: Come join us here!
Alright, let's get into the build.
Update Sept 18, FindMyCat was featured on Product Hunt!
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
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.
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
- 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
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.
- 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
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
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.
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.