Hello everyone,
I am working on a autopilot project the last 2 years and today i came across a very strange problem.
The gps module i was working with, a BN-880 stopped communicating with my esp8266 Wemos D1 mini board.
At first i thought it was my code so i reverted the changes i made. But still no connection.
Then i tried another gps module i had, a Neo 6M, and it worked correctly. So i thought the problem was the BN-880. But here comes the strange part.
I connected BN-880 to another esp8266 board and it worked fine. I connect it back to Wemos D1 mini and it wasn't working. I also connected it to u-center and it worked fine.
I cannot understand what is wrong. The board works fine. The GPS works fine. But the two together does not work.
Note: i am using the hardware serial pins of the board.
Here is what i tried to do to fix the problem:
Checked the wiring of the module.
Erased the whole flash of the Wemos D1 mini
Reverted my code to previous known working commits.
Checked the voltage of the rx and tx pins as well as the vcc and gnd with a multimeter. Everything was ok.
I am leaving this info for anyone that struggles with the same problem. As it turns out the Wemos D1 mini i am using is v3. In this version they removed the inline resistor that previous versions had and were connecting the CH340 TX to ESP8266 RX line, causing any Serial device to stop sending data.
I found the above info in 2 different projects that had the same issue with me, except their issue was not with a GPS but with other devices that were communicating over Serial.
Now, anyone have an idea how can i solve this problem? I mean, sure, i can use the swap function and map rx and tx to other pins but how could i make it work without swap?
Also why the Neo 6M gps works without a problem?