BCD996P2 Internal GPS Mod
The following article demonstrates a "quick-n-dirty" approach to adding an internal GPS receiver to a BCD996P2. This was a small project I completed in a single evening when my OEM Uniden GPS "puck" bit the dust. I had a few NEO-6M GPS modules from eBay lying around from some other projects, so I figured it would be relatively trivial to throw one inside the 996 case. There's a lot of room in there.
- NEO-6M/7M/8M GPS Module from eBay, AliExpress, or similar "reputable" online sellers. Important bits to consider are that it can be powered by 3.3V and all logic inputs/outputs are 3.3V. You could probably use many other GPS modules. As long as they output standard NMEA data at TTL levels, they'll be usable in this application. Don't forget, you'll want to get one with an external antenna connector (typically u.Fl) so you can route the antenna out of the case.
- SMA Bulkhead Jumper, again sourced from your favorite online seller. This is how I added the external GPS input to the rear panel of the 996. You can do this however you see fit, I just driller out the rear M4 screw hole to install the bulkhead.
- Suitable Wire for connecting everything up. You need three wires, about six inches each.
- Mounting Tape/Glue to secure the bodge wires and the module. You don't want these things just rattling around inside the case. Well, maybe you do, but us normal folks like peace and quiet when driving around town.
- (optional) Pin Header & Socket for allowing the GPS module to be removed for programming/debugging. My modules came with headers, but the socket I had lying in a parts drawer.
Here we see the GPS module installed, with cables routed around to the underside of the main board. The antenna cable is routed through the back of the 996 via a hole drilled where the rear M4 mounting hole used to be.
The wire connections were found through a little multimeter probing, some scope signal observations, and the datasheet for the RS232 isolator IC that the 996 uses. V_CPU will provide you with a nice clean 3.3V, any ground tab will work for ground, and the RS232_RX test point is where you want to solder the TX signal from the GPS module. The 996 doesn't transmit any data to the GPS module, so we can leave RS232_TX disconnected. That JTAG interface up top is intriguing - might have to play around with that later, too.
SMA Connector Mounting
Detail on the mounting of the SMA connector. As previously stated, the rear M4 mounting hole (not sure what it's supposed to be used for) was drilled out to 1/4" for installation of the SMA bulkhead.
And here we see the fruits of our labors. The only thing that needs to be done inside the scanner menus is to set the proper baudrate for your GPS module. Important to note - most NEO-xM modules are configured for 9600 baud NMEA data by default, but this is not guaranteed. I highly recommend testing out your module of choice with a USB-UART adapter and a terminal like PuTTY to make sure the module is outputting the data rate you expect.
Final Comments and Gotchas
- You risk breaking your scanner by performing this mod. Don't mess up, it's not my fault if you do.
- There's a chance that the 1PPS LED on the GPS module could introduce some bouncing into the power rail that you're powering it from. This probably won't be an issue, but it's something to keep in mind.
- A couple of the cheapo GPS modules in my collection appeared to be broken, outputting strange baudrates like 3100bd, etc. These won't work, as most scanners only support standard baudrates like 4800, 9600, etc.