Here is my version of a GPS. I am trying for a simple design. No buttons if I can help it, no connectors if I can help it, just an Arduino module and two bluetooth modules. The battery charging and protection circuits are on their way from China at the moment, but I am hoping that I can create a PCB to join all this together, but otherwise stick to using simple modules.
In reality I will need some sort of charging pins, possibly USB connections, and at least one sort of button. I am trying to simplify the design so that I can simplify the waterproofing requirements. I am thinking I can have 4 or 5 pins coming through the box for charging, USB, and some sort of control.
What I am trying to do is get it to log the output from the ublox m8n onto SD card, as well as send it out via one or both bluetooth modules. The intent is that the data is logged on the SD card but also exported to GPS Logit or similar. The tracks can be exported over bluetooth if required to avoid needing to remove the SD card. I think all the smarts and display can be done externally to keep the complexity down.
The second bluetooth module is there to use for some sort of external control, or sending the data to another device if required. They are easy to add, so why not. These things have so many UARTs that you could add a few more GPS modules as well if you really wanted to.

The Arduino is a Teensy 3.6, so its a little bit like fishing with dynamite, but they are cheap and come with built in SD socket. So far I have the GPS spitting out data to both bluetooth modules, and a separate sketch logging data to the SD card. All I need to do is make the time to combine the two to log the GPS data to the SD card.
It will be interesting to see how much processing power all this chews up. I suspect that when I am done most of it will be doing nothing. These things run at 180Mhz and use 80mA. If you slow them down you can cut that down to around 20 or 30mA.