ATmega328 with NEO-M8N GPS Module – Circuit Schematic Review

Hi everyone,
I'm working on a project where I want to use an ATmega328 microcontroller with a NEO-M8N GPS module. My goal is to receive GPS data and process it via the serial port.

I've created a circuit schematic, but before I proceed, I'd really appreciate it if you could take a look and let me know if there are any mistakes or things I should improve.
I'm especially looking for feedback on the connections, power supply voltages, and UART communication.

The schematic is attached.
Any suggestions or corrections are more than welcome. Thanks in advance!

Also, I won’t be using a passive antenna or the USB/SCL/SDA pins. Is this setup sufficient?

Your schematic is not complete, it doesn’t include an Arduino board and power supply.

Without it I see no point to discuss the connections.

It includes the Arduino board and power supply. I did not add those parts. There is no problem in those parts.

image
Rx and Tx connected the wrong way round ?

I connected the GPS module to random (e.g. 2-3) pins of the Arduino, and I defined the communication via software with the SoftwareSerial library.

Can you see now why it is important to include the whole project in the schematic ?

As an aside I would not name the Arduino pins like that as it is confusing

Are you sure you know where the problem? If so, why didn't you solved it by yourself?

You're absolutely right, including the entire project in the schematic definitely makes things clearer. Thanks for pointing that out. Regarding the Arduino pin naming — I appreciate the feedback. I'm curious, could you clarify what kind of naming you would recommend or find less confusing? I'd like to understand and improve for next time. Thanks again!

I’m still gaining experience with GPS modules, so I wasn’t entirely confident about how everything should be wired. My main goal was to check whether the GPS connections were correct. That’s why I asked — just to make sure I’m not missing anything obvious.

I see no point to discuss the connection in words. You could obtain more help if include a FULL schematic diagram.

1 Like

The difference in naming is subtle but can be important to avoid confusion. Unfortunately my reference to pin names did not help because they are not actually pin names. My bad

On your schematic what we see are net names and are, as such unambiguous and perfectly acceptable.

The problem comes if you use the same naming convention for pins in your sketch, which we have not seen, as from the perspective of the Arduino the Tx pin is transmitting to the Rx pin of the GPS and vice versa

Got it. I need to name the RXD pin in the GPS library GPS_TXD, because that's the pin the GPS transmits data to. Thanks, I'll fix that.

I am not sure what you are saying

In the code I would name the pins something like TX_GPS for the pin that transmits to the GPS and RX_GPS for the pin that receives data from the GPS. That reflects what the Arduino is doing and what the pins re used for

Of course, you could name them anything you like and it would still work if they are connected correctly

In the code, or on a schematic I would label pins what they actually are and not what they are to be connected to.

So in the GPS library the RX pin is the one that receiving data into the Arduino and the TX pin is the one thats transmitting data.

On the GPS schematic a pin labeled GPS_TXD most would assume is a pin that’s transmitting data ……………….