What is it
This is my new tutorial to make a GPS logger based on ESP32.
Why ? Because ESP32 can run a web server so I was able to make a simple web access to the files.
You now just need a web browser to download your file to your device (PC, Mac, Android phone, iPhone,…).
Code is written in Arduino langage, html, javascript and css.

What you need to go with this project
Same as the previous DIY GPS.
You do not need to know programing, but you need to be interested in more than making a cheap GPS logger because you will probably need do do some debugging, it is rare that everything is working at first.
You will also have to do some soldering and for that you need:
- a soldering iron
- some rosin welding wire
- some rosin flux, this is NEEDED to make good soldering point without burning the boards (experience...)
- a soldring iron cleaner, sponge or better one with the curly brass thing
- some cliping thing to maintain the parts while soldering
You will need a 3D printer for the box.
A computer for uploading the software.

The inside parts
- The main board is an ESP32-MINI-32-V1.3 by LilyGO. Cheap with a lot of connectors http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1258 , I bought here https://fr.aliexpress.com/item/33005055273.html
- The GPS chip is a Beitian BN-220 (chinese copy of a uBlox M8N). You can buy any chip that is uBlox based it will work, for example the Drotek DP0106 that I am using for my "big" GPS logger is working too. You might have to change the box shape if you do not take the same card as me (see the wiring picture).
- A battery, the size matters if you want to get it into the box I've made. You can get any brand but be carefull to have the matching connector ! Also always check the cabling, the one I got were inverted on the connector to match the main board, it’s esay to change.
https://fr.aliexpress.com/item/32830976044.html?spm=a2g0s.9042311.0.0.27426c376JuK3V
- a led, I choose Adafruit LED Sequin https://www.adafruit.com/product/1758 because it has the integrated resistor, it is easy to solder and the polarity is written on it.

The software
First you will have to install https://platformio.org/ . It’s an IDE that will replace the usual Arduino IDE.
Why ? Because it will include all the libraries in the project forlder or download them if needed. Also for this prject there are file to put in the memory of the borad for the web server and it’s easier with it.
Don’t worry for you it will just be some clicks.
When PlatformIO is installed create a New Project with whatever name and whatever board, this will create the Projects folder.
When it’s done just close PlateformIO (Visual Studio Code).
Get the files from Github : https://github.com/AntoineLaporte/GPS-LOGGER-Mini-T7-v1.3
Unzip my file package and copy everything to the PlatformIO Project folder, you can now delete the one you’ve created.
Open PlateformIO (Visual Studio Code) and do Open Project, go in Projects, select the folder and do Open « GPS blabla ».
Next step is to go to Devices, then connect the board and check the new device in the list, note its COM number.
Open the PlateformIO.ini of the project and put the right COM number in it.
Now you can upload the web server files on the board. In « PlateformIO click on « Uplaod File System image » and wait until it is SUCCES, or not. If it’s not successful try again, if it’s still not working try to unplug and plug again the board at different timing until it works, because it will.
Finally it’s time to uplaod the code, go in Explorer → GPS blabla → src → main.cpp, down on the bottom blue bar click on the arrow (PlateformIO : Upload).
It’s ready !

Wiring
It is exactly what is drawn here:

Picture are at the bottom of the page.

The box
You can download the files from Thingiverse (do not start to look into other things, there is too much things you might want to print !)
https://www.thingiverse.com/thing:4077387

Debugging
If the program starts to not working anymore the simplest way to get back to normal is to reload the files.
On the web page I put a button called OTA Update, that means On The Air Update.
The board can connect itself to any wifi you want it to and you can upload the code through it.
Click on the button, the bord will seach for a known wifi, if it doesn’t find one it will put itself in a standalone server. Connect yourself on it if do the wifi setup that is asked, validate it and now the board will connect itself to the wifi you’ve just set. Change the PlateformIO.ini to the following and now you can update your board without connecting it.

How it works
You turn it on.
A not flashing green light is coming.
At some point the led should blink red and green (when the GPS is sending good data), recording has started.
The software will record the file on the accessible memory if you jump (more than 2m/s vertical speed) and it will do it 10 secondss after landing (less than 1m/s vertical speed for 10 seconds), red/green light will stop.
If you want to record without jumping you will have to connect the logger to some USB before shutting it down, I don't know why it works but it is.
Max data you can record is around 1 hour, inside memory is max 2Mb. Do not forgot to empty the memmory when you can.

License
It is totally free and open source, but please do not make money with it.
You can tip me here or when you see me somewhere:
paypal.me/AntoineLaporte