Wireless Deer Notification System

I’ve been deer hunting with my dad since I was about 18 years old. At first, it was only every few years that I would go out with him, but in recent years, my interest has grown more and more and now I find myself taking the entire opening week of hunting season off from work to go hang out in the woods.

Over the past two years, I’ve seen lots of deer while sitting in the woods and have been able to harvest two deer—one in each year. Last year, I missed the chance to get a shot off at a few deer because I didn’t have enough time to draw my weapon before the deer was swiftly out of sight.

While sitting there waiting for activity to present itself, it leaves a lot of time to think about lots of things. Last season, after missing the chance at an 8-pointer, I found myself thinking about ways in which I could be notified of nearby deer activity. A simple wireless transmitter that could send messages to a receiving unit in my deer blind was the initial thought.

After doing some research on wireless communications, I found that, in order to achieve longer range, a lower carrier frequency is desirable. And after looking into the frequencies available to the public, I found the LoRa technology which operates in the 915MHz range for the US. Based on my initial research, I found the specs of LoRa allowed for up to 20km range with line-of-sight. In my deer blind, the longest range I would need was about 300 yards, but with a few trees in between.

After finding out that the range I was seeking was definitely possible with free-to-the-public frequencies, I started deciding on design criteria for the receiver unit that would handle the messages coming from the transmitter devices. Here is the list of features I wanted:

  • 4 LED indicators to show where messages were coming from
  • Audible bird chirp to discretely alert of nearby activity
  • Volume control
  • Audio enable switch
  • USB-C charger
  • Remote LEDs for spatial awareness of where activity is coming from
  • SMA antenna connector
  • On/Off switch

I started researching different LoRa boards to get started with testing. At first, I purchased a pair of the Sparkfun Pro RF boards which appeared to be a good choice given its built-in lithium ion charger, sleep modes, on-board uFL connector, and decent number of I/O pins.

After making some small modifications to the example codes provided by Sparkfun, I had a transmitter to transmit messages with an incrementing counter and a receiver to received the messages. I quickly volunteered my girlfriend to help me test out the range at a nearby park. With the transmitter stationary, I took the receiver hooked up to my tablet and started walking while carefully monitoring the received messages to make sure none were missed. I made it out to about 300 yards before I got my first missed message. I had been walking with the receiver in front of me, so I stopped and faced the transmitter. The intermittent messages appeared to stop. I then continued to walk further, making sure to keep the antenna up above my head. At about 430 yards, I was well into the woods and with a pretty decent elevation variation between me and the transmitter. The transmitter was lower in elevation, however there was about a 50 foot tall hill in between the transmitter and receiver. It was at this point that I was receiving about 50% of the messages being transmitted, so I concluded the testing there. Definitely much further than I needed for my application.

At that point, I started figuring out what size and how many batteries I would need to ensure the transmitter would last an entire hunting season. The transmitter would need to operate for about about 1 month in freezing temperatures without needing to be recharged. The current draw of the board was about 60mA while idle. There was a substantial increase in current when transmitting messages, about 120mA, but only for about 100ms. This seemed excessive, given the datasheet stated an idle current of a few hundred µA. I tested out the sleep modes offered by the MPU on the board and was able to get it down to about 30mA, but this was still orders of magnitude larger than expected. At this point I was stumped. After reading more about the board, I found a note from the manufacturer that there was a mistake on this revision of the board where VDD was tied to GND. After finding this, I was able to cut this trace on the board and get the sleep mode current down to about 115µA. Success! In idle mode, this could theoretically run on a single 3500mAh lithium ion cell for about 4 years—much longer than I needed. Granted, the average current draw would be higher than the sleep mode current due to the current spikes when transmitting messages, but even at 1mA, this battery could power the board for nearly 5 months.

The next step was to open up a game camera I’ve used before and had good luck with. I figured using an off-the-shelf game camera would serve two main purposes. The first being I knew I could get reliable triggers of deer with minimal false triggering when no deer were present. The second upside was that I could have more pictures of deer to admire later. The camera I used was a Meidase P60 trail camera. Upon opening up the camera, I noticed there were 2 PIR sensors to detect motion.

By checking the output pins from these chips, I thought at first I could simply use these as my trigger source. However, after further testing it was evident that there was some pre-processing of these signals going on before the camera would actually take an image. This made sense because there are sensitivity settings on the camera that can be adjusted. After looking over the other ICs on the board, I found a CMOS flash memory chip.

After probing for a bit and reviewing the datasheet for the IC, I found out there was a chip select (CS) pin on the IC that was only active when acquiring an image and when changing settings on the camera’s menu. Since I would not be changing settings on the cameras while in my deer blind, I decided this would work well enough for a trigger signal. An added benefit of using the CS pin for a trigger signal is that it was already 3.3V which works well for most microcontrollers. After connecting the CS pin to one of the Pro RF’s I/O pins, I was quickly able to verify that this was able to give me a reliable trigger signal to transmit messages.

I soldered two wires to the GND and CS pins of the CMOS flash memory IC back to an M8 bulkhead connector. I used this connector style because I’ve become quite familiar with them working in the industrial automation space and they are very robust, but more importantly, waterproof.

At this point, the proof of concept was completed, so I started to source components. After realizing the new revision Pro RF boards had been on backorder for a while, I decided to find a new board to work with which offered similar specs. I landed on the Adafruit Feather M0 which was about the same price and was smaller in footprint than the Sparkfun Pro RF.

After deciding on a board, I started to laying out the circuit schematic and then built a prototype of the receiver and transmitter.

After building the receiver prototype, I quickly realized that I did not want to use perf board to make all these units. The amount of time it took me to solder up everything for one board was about 8 hours. At that point, I knew I wanted professionally made PCBs that I could use SMD and thru hole components on. I had never done this before, but have worked on my share of circuit boards, so I already had a good idea of how they are typically laid out. I had seen some ads for JLCPCB on a YouTube channel I watch, so I figured I’d start there. From there, I found a software called EasyEDA which allows for circuit schematic layout and PCB layout. I downloaded the software and started layout out my schematic.

After layout out the circuit schematic, I then started layout out the traces for the PCB.

Some really nice features to the EasyEDA were that it has built-in libraries of parts and also has parts that have been added by the community. On top of that, it also allows you to see a 3D rendering of the PCB with all the components on it which I found to be really helpful to understand potential spacing constraint issues..

I ended up designing another PCB for the LED indicators too.

After receiving the PCBs about a week later, I was then able to solder up all the components and put it into a waterproof enclosure.

The next step was to design the remote LEDs. I wanted to use the same M8 4-pin bulkhead connectors, so I knew I needed to get the number of pins down to 4. Having 4 remote LED indicators, I decided to use the I2C protocol to remotely control 4 I2C GPIO expanders. Using I2C would also allow me to expand the number of transmitters beyond 4 if I ever wanted to in the future.

For the transmitter units, I decided to utilize the same PCB as the receiver to reduce cost.