Flywoo Goku GM10 Nano failing with serial output

Hey, I have a GPS connected to an older Arduino Nano, but can’t get it to work properly. This is my code:

TinyGPS_new.ino.ino (2,1 KB)

This is the serial output:
��bb��b��b���bb��b��b���bb�R��j $GAGSV,2,1.06,10,44,200,3631,384 G16277,2009G274,,71,32,7G,70,12,44G,39,,8, ,6530,,3821G,07,,1$,0 G3400,4A �ba\□��w�a +7□□□����� ��du�□�□U<□�□□�□□9□□�����□□Q□□8� �□□□�□�□□\□�G1.40,010,92D1V4T0,3*$,44400,2817, A852,,010$A33,,586 G32,,,,4 A,,,,1G30,10,71,5G3,309983,, S,334,6P,2077,2,06V74,,662,6A,20,3,4G1,,,4117B,619,7,9707G,4556 S,N800.,1,Cbwa+������□��□□�□□□G1.8302,022D T6,9., G1,0N31,8..G,802,.86 S,1,,,,3$A4,,.911NA,,..10P350112717,6P,21,,23222P3,,444 S1,,,71,,,$,,,56,,2729A,20,19714A,0,0312G2,,50050,2*$,631,3Q,0$,0N.E105bwa7i d□□��□□□V□�R101392,62D G,,3D$A2140428..$A,,6,2,1 A33,,283 S,6,,01$,,,.914G,0050,,7,0* 30,3,9,0,,2DG33,,80G1,,24210A,12,,16,,, S0,8304,4A10203117B1689630,,9 S03,,1$V0 L14011., a�a+J�d=����X□�□��□□□G20860.,5.6,0G36,,82N3.3391,047,$A102,1.10N,,,,10.0GA,,,5,6 G3,,586 S1531,,,7726P221,612,12G,,3,,5*$16077,62,$,04,2768537$,7004,,4G,31,,104G22,30,,3801$V,76,4G1G,0N053A bwa+�d=□��□□O□g□/□$3.4600E7.0,7V5,40K G240,.,2,55G,22,,,.GA,1,,,1-$,4,,.911N,,,5864G100,,35,,2 S,38223,23,2P3123,4,4 V32,8,1G,021712,3, S,601630, 1,10,114B,21,075022 S2,655 S16G8600,1AC�� d��□□□��□□□#□□□G,.,0,30306,0N5T0N12N3.1302,04MM0G,326,,8, S,,0,596 G32,,,14 S,,,010G,0,6535,326G,,,21,,920, V1,26641P,22020, S,,021,,3,0 S,,0,6&� �b�Rj $V,,9,,80GV,5500,,841$,671,G1, L130135b□□�#�dr□��□�□�\□�R2,0N3,86,1NT.N21G201933187.G3291,5,, A,,0,.962G,2,,,,, S)��bbbr�Š��j $S,55112,1,28G2212,26998, ,1,16,1, V02,1,,,$,1,271253, S,,031,77 V,9,61, S,,520,6301 S,,6,1$,0 L19011.D�\□) d�=t�□��□□�� □�□e□V□$C1A1,06.5,,V$,1,,12G3.3N04,9.7, A,,,,,,11$A33,,5962G,2,,,1$,,,.010G1,50112,31$32,37,,920, V,,,,,95P,7201105S04027,2,,7 ,0,9,0714A,028,8, V,,820,3341$,0310G,6G3302,7Db□w�/ d���□��G □��V□�G1340N346.0,9T4,61K G280,.4197.G322,,,,, A3,,,99, S36,,,.GA,,9.22G,0)�b���bbb�b�bb�bbšªbR� $S,31202920, V1423,35G12202,0$2743,6,2267G27,,,630, S1328311$2552,85,,2G2,,70G1G40,3430D�b@,�w/�a +□□p�V� nV�Kdt�□�?□�□□�□□R□□□�����□□U□□□$� �□□□q�□V□�G134.,010,6, T,10,CN3.160.,19.7, S,,91,996 G31,,9464,4,,996 S3,,6,5 V11,,669801 V12,,921,32 G3123,,3G,,,41,0A110571622,7A,20,,0714G139061,7G1682,,,87,0G,42, V,4G330139�ba\□��w�a ,7□□□ʧ�� ��n~VPI�j�□�>□�□□�□□M□□□����□□□�□□□$� �□□□��□�□□□\@V/□□□□G,4,.,01,,2D3VT.N3G,440N36,.3,M0N,,28,2..$A3,,,586 S,6,21.G,,,2683G,5306128326P,2122,,22,6P,32,348, ,02,1,0A,125,36,,0 S,604,,57$,30,31,0 ,0,5,6308,, V,764G,, L0,13.�\wa��d����U��□□ □��\□�G203302,,2V ,,,0$,13901,.4,M A,,,,.66 G321,2..5G,4,,5686S,,,,15$,11,,�i�bbb�Šbbb�Rj $S,,272,,,,5P3,22,34,7P1,,42127G,8312,116, V022,011,,7 V0091,DG1210756301$25310G1G40,.61,9bX�□ d��e�-□□1□□/□$,.40,38346,0G3,0,9D$,440N38,6.,4NA391,,11G,33,,1,, A,,,586 G3,,5.0G3,,75,783,6P233,121,,25G31231,437P177,,,0$,0,,456372CG,53,,,,34,7A102,17B,214005,,4G2,,10G10G,0N3632b�wa□J�� 1��□□□□□□□R103400,,2D T,90K G440,3E13M55NA29,,586$S,20,..85N36,,1.0GA,,.68 G,0,1,,,8326G2332I��b�bbb�b�ʚ����j $G122333,5P,,241,, S,860011,,3 S,2,0,16,,9 G132117G255,,65,,2,G25310Q,0G149114, □wa+�d�?□□□□□�@□□□C4A.,06.40,G6T10, A440,.919..,GA,58,..6DS3,1,.424G,2,,,14$A,,..20P3007535,,5G,1,21,,28, S1,261,8, V0,,1600 ,006,22112, 287603,34.7G1,0,,0G2,,,,850207B245,$,04L369910Bb�□ ���□��□□□□@□/□�R308602E,2D TM16$,480,.91,9M G3321,69, S,1,,6,, S46,,11G,,,9462G,,5112,8726P,,1202,1,25G3123LSb��ʢbb�Rj $13,42105A103,,111,3 S2,6643,,717G,39,07B128,,85,,2$257,4G1G,0,064,5b��□�# d��?□□��□@□.□V□}M1013010,12D G8M89$26130Sb�b����b�r� 5 S,,96,6,1$A3,,,946 G,2,,6,4 A,,,1.P3,,703,718, S1,37989,325P,1236414 V0271,15A,03,,58171AS2685020,,3 V0444A,394G168208,07,7G,,26 G1N40N3920b□�□�Ɓ��□□��r□���□\□�N1.40,.316,G,,,63G3.37912.4,, S3391,611$A3,,,696 G32,,0.G,,,,,.5$V,51,66980G,,,21,,998,$S122,198,$,3271,05G,03,,5211, V,72220,,37S,357 ,0,,4V05,,,,3801 V0,6 S1G4702,4, �a,□/ ��I����□@□�□\□?N1,1,97.26V$,0N,5N3813012.4,, ��)��bš�bb²brb�br�"5 N,1,,11.G,,,,9,4$A,,,16 S,,501,,87,6P,23,,50,,31G,12,664,44G,,71,2,$300,,311,1 S,62720,,6A3,,9 S,094S1659336,08 S0,,G,, L1,0718b\w□�d□�z□□��□/□C4,.N3826,1NT0N83G3.3490,,4,M S8396,1.0GA,,,,11*$,4,,.427NA,,1.20G,00,5251,,1G,,2,,921,32 S1,266414$S,,7,,2*$393,,51217 V,,3,0600303S,,54A,39B,21208582,7B,42, S,6G429119D�ba\□x�w�a -7□□□���� ��dt�m�□�@□�□□�□□4□□□����a□□□u□□□@���□□□��.□�□□□\□□N1.40,3926,G,0,4D$A4 �bŠr�ʱ�����b����b���rb�j $G336,,,16, S321,...FS,2,2.7 G,,,,,5$,15,061,83,6G318,,08,,3,6G,,2,,,8G1,,01105A,0,3431,,6G3,8,3,,11, V0,44!TS,10, V03,07,384*$2425 S,4L1302,4, a��□���□ □□�3�\□%N2140,3,86,6VT..,4G20.,912.4.GA,696,1.0N,11,1.10GA,,,2,4$A,,,1.0G3,57535,,5$,283797721, S,,31231,,4 S106,2BG183,,5,371DG,622,,411, V0444A,0,4G121,005,,2B,425 S,4N3600E4A b��-'�d�A□□□r□�6□□□$C4,189203,6V G6M38,$,58602,14,M S3,6912170GA,0,..7DG,2,,,,4 A,,,,,BG100,,2717,G3,,32,8101 S,,31231,135V01,0, V0,60212,1,$,6223,0,,0BG139,45G1682650,07 S2,5G1, L1,9115, awa7K�j�□□□�S�□□□□\□u15,0N0842,$,,,7D$,5860.E,3M5 S110,61.1 G,1,,20, S,,,1..0GA,,14.0G,,,85,Iʺ�º���R5 G3,822,850,6P,201423,,,6P,4112BS184,,5837,7A212201094,7G1,0,,7G,,,20050,,1B25,,2S10$8000E4ADb�□����□□□��□□□�□\□&M1,3191.,6GT0N8G3411022.44M G31221,,1*$,20,.11G,4,,.419NA,,.41C,15,,6621,,4G2,86258,,91$V1322266411 ,01116G,,,2,5,3737A,,2,,11,4,A,02307B,2,,,05,,27G25314Q,0 L.19,1,4bl �d�B��□□□�\□□$C4,.,3226,N,.,KBG1,0N09,444, A120,,84, A,0,.01AG,2,,,14$,,,11.G,530669,8,$,2,37,,781, V12,,266,,, V,,116G,832431,,,7A,13,664,10GV00,4, S0,4005,,, G2461$,0 L.709207b�waE#�dB□�4□□□□□$,.,0,39536,0G3,0N62A480,.,10,, G,1226,,1$,21,,11$,4,,..10N,,,21CG1531,3717,6P,,,21,27,9$,2,1423,,8G1,,22BS0,600,0267$,87222,013, V,2350$2554085,22G24,$1, L16013.Dbwa□� d����□Z□,□/□G35,00.E0.0D3N9T.,,1A440N.82,,. A,,,,61..0N,,,,,10N,,,1.10G,,,735 ,15,061,8326P,212,681,9*$,,,14234334G,0,106G1,412,2,,0$V0,27,,0167$120,,0B,,,90,01,0 G,424G1G3600E1, �ba\□��w�a -7□□□T��/� ��dR���□5C□�□□�□□H□□□����9□□□T□□□d�Z□)□□ �,□�□□\□PM20360.,66,$,M4., G201902E,,,.$,12,,,11.G,21,,11$A4,,733 S3,,,,5$,15,,,,97,6G,21,,227,9G3,,12,,4,5 S,,22, V00,,011,6G,,627203,0$,20357B221,,8512,7G,425 ,0 L199018D�b@��w���CQ��□□[��5� ��dS�>�□�C□�□□�□□□□:□□□)□□□□□��9□□□��0□�□□□\@V/□□□□�$,5,.N900,,6, 3,0,0D$A4,6,.412.4, A3122,,..0GA20,11.G,,,,.213N,,,1.0P3,,8,378726G,3,,12,,,2CV1,,,261,,5$V,,602BS184121117, V,,,,,64310 ,,230G,553005,827B,,,5 V04L.,& �������b�j

followed by the last line with the output of the TinyGPS library:

Sat: 0, HDOP: 0.00, Lat: INVALID, Lon: INVALID, Alt: 0.00 m, Speed: 0.00 km/h, Course: 0.00°, Cards: ---, Time: INVALID, Date: INVALID, Chars: 18791, Failed: 233, Age: 4294967295

Could it be, that the Nano can’t handle the serial connection with 115200 Baud?

Thank you for your support!

As you are using SoftwareSerial that is almost certainly the problem

Please post a link to the GPS module that you are using.

here was already the link:

Thank you for the fast answer! Can you explain that with SoftwareSerial further?

The AVR chip on the Nano board has one serial interface implemented in hardware. Because it is in hardware it can run at a baud rate of 115200 (and higher) independently of the main processor that is running your code. This serial interface is used to upload code and by the Serial monitor

To connect to the GPS unit you need a second serial interface. Your sketch implements this is in software using the SoftwareSerial library. This software needs to run in cooperation with the code of the sketch and is therefore limited as to how fast it can run. 115200 baud is too fast for it to keep up with the processing, hence the problem

So, what can you do ?

The best solution is to reduce the baud rate of the GPS unit. The specification says

Support rate: 4800 bps to 921600 bps, standard 115200 bps

I presume, therefore, that you can change it. There is a u-blox app named u-center that can probably do that but I have no experience of your GPS unit so cannot be sure

SoftwareSerial is just what it sounds like. A serial port made in software (code) not hardware like the Nano's only hardware port which is used to connect the the PC over USB.

Because of that, it can't easily cope with faster baud rates, especially if the rest of the code is not particularly efficient.

Suggest you switch to using a Pro Micro. These have a second hardware serial port which you could use to connect to the GPS.

Okay, thanks for the good explanation. Could I change the GPS Pins to RX and TX of the Arduino Nano and let it run with 115200 Baud? Then I could use a SoftwareSerial for Serial prints with lower Baud Rate? That would be the easiest solution for me.

No, you cannot change the internal wiring on the Nano board, so that won't work.

By the way, we are assuming you mean a classic Nano V3 (atmega328). But there are many other Arduino boards called "Nano" these days, and if you have one of those, our answers might be different.

No, I meant the following: I don’t need serial Inputs from the PC to the Nano so I could wire the GPS TX to the Arduino RX0? TX1 of the Nano would be not connected and could be used for serial outputs from the Nano to the PC.

Yes, the Nano V3.3 with Old Bootloader.

You could use the hardware Rx and Tx pins of the Nano to communicate with the GPS but would have to disconnect them in order to upload code to the board

However, you cannot use SoftwareSerial to drive the Serial monitor and as you are using the Serial interface you can't use that for the Serial monitor. There are ways round this but it involves extra hardware. How complicated do you want to make this

My suggestion would be to try the u-blox app and change the GPS unit baud rate. It is also possible that the manufacturers have an app or that there are simple serial commands that you can use to do it. Maybe do some research on the subject and/or ask your favourite AI for help

If found in my research AltSoftSerial on Pins 8/9 as a possible solution, what do yout think about that? Or would it be the most robust, to use Pins 0/1 and disconnect the GPS to upload Code?
We have also a SIM800C Module using SoftwareSerial (with 9600 Baud), so two SoftwareSerials could be bad?

Forget any ideas that you have about using 2 instances of SoftwareSerial whatever the baud rate

I will repeat my advice. Change the baud rate of the GPS unit

In addition to the advice others have given, you could consider changing from the classic Nano to a board with 2 spare hardware serial ports. E.G. Arduino Mega.

@herrcules - why do you need to run the GPS at 115200?

Just curious. I've never needed anything more than 9600.

a7

you could consider changing from the classic Nano to a board with 2 spare hardware serial ports. E.G. Arduino Mega.

The Nano Every will fit the same footprint at the Nano V3 and can have 3 hardware serial ports as well as the usb.

I agree with others that switching the board from the classic Nano to some other platform which supports additional hardware serial ports is the best way to go.

Just soldering the GPS to the Nano Rx worked for me good – I understand the advantages from the other solutions, but for my use case this was ideal.

Thanks for the help!