It’s been a while!

The last post I made here was July 2018… quite a lot has happened between then and now. Not only did Buttons sadly get involved in a car accident and need to have a leg amputated (don’t worry he’s fine and still himself!), but I also moved house and had a child.

Also there was a global pandemic.

Anyway enough of all that rubbish, the most important thing is that I’ve been working a little on Version 2 of CatTrack.

My requirements for version 2 were:

  1. Fewer components to solder
    • Soldering all of the matching components for the CC1125 took a while, not to mention the annoyance of a ground paddle on the CC1125.
  2. Ideally an integrated antenna
    • Again, my time to play around at home with hardware is now a lot more limited, so avoiding having to spend time matching into a chip antenna would be a bonus.
  3. Better battery life
    • As it stands, the battery life is around 4 months. I’m convinced this is much better than any GPS cat tracker product you can buy, but longer would be even better!
  4. An integrated buzzer
    • Several times when looking for the lost collar I found that I had an incredibly strong signal strength on the receiver, but could not see the collar anywhere. On one occasion it had been buried in the ground somehow!
    • Apple’s solution to this in their new AirTags is to use UWB to give you a fancy arrow to point to the device when you are close. My simpler solution is to include a buzzer such that you can easily use your ears (rather than an arrow!) to find it quickly when you are close.

I have already got the PCBs back and soldered the first iteration of version 2. There are a couple of little problems with it so I’m going to do another revision of the PCB to mop them up.

I’m now using the following components:

  • An Anaren A1101R08A RF module.
    • This module is fundamentally a TI CC1101 (similar to the CC1125 used on version 1), with all the matching components already soldered, plus an antenna integrated.
    • The sensitivity of the CC1101 is not as good as the CC1125 I used previously, but I am hopeful that the range will work out to be similar. The sensitivity is -112 dBm at 1200 baud, with a 14 dBm transmit power. I will do a test to confirm the actual radiated power from the integrated antenna.
  • A u-blox CAM-M8Q GPS module
    • This has the advantage that is supports multiple GNSS systems: GPS, GLONASS, BeiDou and Galileo. In reality I expect it to only work with GPS and GLONASS in my location, but that’s better than GPS alone anyway.
    • The GPS antenna is integrated into the GPS module as before, only this time it’s a chip antenna rather than a patch. This means that it requires nowhere near the height that the patch antenna of the previous module required, so things will fit in the enclosure a little more comfortably.
  • A Murata piezo sounder
    • This will allow me to locate the device when I’m close by. I’ve connected it to the PWM pin on the PIC, so I can play tunes on the piezo…. like the Peppa Pig theme!

There’s also a PIC Microcontroller, of course.

It was a bit of a minefield to satisfy the various antenna ground plane and keep-out requirements, but I think I’ve managed it. I’ve kept the size of version 2 to exactly the same as version 1. The size is a good compromise between satisfying the Anaren and u-blox antenna requirements, whilst still being fairly small.

I’ve redesigned everything from the ground up to favour battery life (again!), and I am confident that I will be able to get the standby current consumption down to under 1.0 μA. Depending on how often I wake the device to check for incoming transmissions, I reckon I’ll be able to get a battery life of around 7 months.

As is always the way, I did make a couple of mistakes on this first revision of the version 2 PCB:

  1. I had planned to drive the GPS module directly from the PIC GPIO, but the startup current required for the TCXO on the GPS module causes the voltage to sag and get stuck in an infinite loop, so I’ll control the power to the GPS module with a P-type FET instead. I was really trying to cut back the number of components I had to solder, but went a step too far here!
  2. I forgot to include battery voltage sense circuitry (more complex than you might imagine as I can’t afford to waste power in the resistors required for the sense circuitry potential divider). It’s really handy being able to remotely work out the battery life remaining, so I’ll definitely need to fix this.

Watch this space….!


  1. Hey Andy,
    just found your page. Your projects looks very interesting!
    I am just looking for some lorawan tracker as small as possible for my dog and the twi cats. As i am on the road through europe, i would like to integrate the trackers into my Home Assistant installed in the motorhome.
    Is there a chance you sell me some board?
    Best regards

    1. Gabriel,

      Thanks for your interest!

      Unfortunately I’m simply too busy to be able to make these devices for people, regardless of cost. The project sadly doesn’t really lend itself to that sort of thing, as there is a fair bit of setup and tuning etc to do.

      Sorry I can’t be more helpful.


    2. Gabriel, AcSip a manufacturer from Taiwan makes these S76G chips that includes lora, sony gps and a cortex m-0 microcontroller in one package. I haven’t seen anything out there that uses this except a watch called LilyGo. They have the programming boards Chinese websites but I don’t know much about them, you might want to check it out:

  2. Andy, good to hear you are working on the second version. Sorry to hear button’s accident, I’m sure he is fine but still it hurts to hear that. May I suggest adding a couple of leds to empty spots on the pcb and use a semitransparent box, this way at night time you could flash the leds. I have an Apple Airtag so it beeps (I don’t have UWB since it’s not available on iPhone 7) and I find it hard to pinpoint at night time.

    1. Good idea on the LEDs!

      At the moment development has stalled a little as I try to find the time to work on it. Every now and then I’ll do a massive burst of development but that simply hasn’t happened over the last few months sadly.

      Thanks for your input – really appreciated – and I hope to get back cracking with it again soon!

  3. Hi Andy!
    My name is Joseph and I’m working on a GPS tracker and have been trying to find information on the ORIGIN1411 PM04 you used in your previous cat tracker version. I noticed that in your blog post on the topic, that the GPS in the schematic is listed as working on I2C however, the CTS and RTS layout looks more like the UART configuration defined in the datasheet. I was wondering if I am misinterpreting something there or if perhaps your schematic was mislabeled in that regard? Also, I noticed that the new datasheet from Origin has included a logic level shifter to bump up the 1.8V logic from the GPS into the uC however there doesn’t seem to be any sort of step down shifter from the uC to the GPS. I was wondering if you think this would damage the GPS if it were using 3.3V logic. I recall you switched to TTL logic to deal with the situation. Thank you so much in advance for any guidance you can provide me. I’m sorry to be commenting somewhat off topic from this blog post, but your project is just about the only one I’ve come across so far that has actually used the PM04 successfully and so I really wanted to pick your brain! I hope your new tracker version is going well!

    1. Hi Joseph, good to hear from you.

      I think you might be confusing the reference designator ‘IC2’ with ‘I2C’! I do indeed use the UART configuration as you’ve identified.

      I’ve not seen the new Origin datasheet with the level shifter on the UART TX, do you have a link to it?

      Looking at section 17.4.1 of the datasheet, it tells us that the UART TX uses 1V8 logic, but crucially also that the RX line tolerates inputs up to 3.6V.

      So, yes! You can safely connect a 3V3 logic signal into the UART RX pin of the ORG1411.

      1. Thank you so much for your response! I completely missed that statement about the permissible UART RX level in 17.4.1. Here’s that link to the datasheet I was referencing:

        The level shifter schematic shows up on page 26. Also interesting to note is that the level shifter configuration that the GPS datasheet is using isn’t one recommended from the Texas Instruments datasheet. I worked through the internal logic, and it behaves the same as a non-inverting buffer already given in the TI datasheet, but requires 2 more gates to change state. Nothing technically wrong with it, but just kinda an odd choice lol.

        If I could ask you one more question, I’m starting to move into the PCB design section of things, and I noticed that you mentioned having to do a 4 layer board because of the RF complexity. Was this just because of the shear number of wires to be managed or was it to handle some PCB layout requirement of the RF or GPS module? My apologies if the answer is very obvious, I really am a rookie in PCB layouts! (I’m hoping I’ll be able to glean enough from the layout recommendations pdf from Origin to get me sorted). Thank you so much again! – Joseph

        1. Joseph – sorry for the huge delay!

          I expect you’ve already laid out the PCB now, but to answer your question, the 4 layer board is for a couple of reasons:
          1. To meet the various layout requirements of the GPS and RF modules. The antennas need a large ground plane as uninterrupted as possible on the top layer.
          2. To get the right characteristic impedance for the RF tracks you ideally need a small height between the top layer and the ground reference layer. On a 4 layer board, the distance between layers 1 and 2 (the ground reference) will be much, much less than the distance between the top and bottom layers of a 2 layer board. If you do the maths for a 50 ohm impedance line for a 1.6mm height (i.e. 2 layer board) you’ll get a really thick track requirement which is entirely impractical to lay out.

          Hope this helps!

Leave a Reply

Your email address will not be published. Required fields are marked *