Arduino Nano Programmer

Is there an Arduino Bootloader Programmer that can program a chip through USB/serial port, instead of connecting it to the programmer pins. And is there a way to connect those traces to the USB/serial port to program it and to burn a bootloader onto it? Is there any reason this isn't the norm? Could I design a board that functions like this?

Not that I'm aware of. In order for serial to work you first need a bootloader, at that point a USB-Serial connection works.

Alright, thanks for the quick and clear answer :slight_smile:

I moved your topic to an appropriate forum category @geissler123.

In the future, when creating a topic please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

This isn't something an external programmer would be used for. The purpose of a programmer is to act as an interface between the computer and the target microcontroller. But if you are communicating through the microcontroller's UART then you already have that interface and so a programmer would be superfluous.

So in this case, the requirement is that the microcontroller has the ability to write the data received via the UART to flash memory. With the AVR chips that are used on the classic Arduino boards, the microcontroller doesn't have an inherent capability to do that, so it is necessary to write a bootloader to flash, which then in turn is used to write the uploaded sketch program to flash.

However, other microcontrollers do have that inherent capability, built into the chip's ROM. A common example is the ESP32 microcontrollers. You can make a connection between your PC and one of these microcontrollers fresh from the factory and you are all set to upload without any need to install a bootloader.

As I explained above, if you used a microcontroller that has the capability built into the ROM on your board then you are all set.

If you used a microcontroller that doesn't have that capability, you could accomplish it by putting a built-in programmer on the board. An example of a board that uses this approach is the Nano Every. That board's USB interface chip acts as a UPDI programmer which receives the upload data from the PC and then flashes it to the primary ATmega4809 microcontroller.


This sort of feels like an "XY problem" to me. Are you asking this only out of curiosity, or is there something specific you are trying to accomplish (the "Y")?

I'm trying to make a PCB using Arudino Nano. I know you can buy ATmega4809 microcontrollers with the softeware pre installed on them. But, I'm trying to make a Sparkfun Battery Babysitter with an ATmega4809 microcontroller, charge a battery, and program it, all through the same USB Type C Port, if at all possible.

Are you asking about the Nano (328P) or Nano Every (4809)?

Is there a difference between them that would affect the ability to burn the bootloader onto one of them? I'm sorry but I don't know the difference between the two.

Which one are you asking about? You keep editing your replies so often I can't follow.

Sorry about that. I don't know what to use. I trying to find out which one I would need. I don't know differences between the two. I just want to use whichever one would allow me to put a bootloader onto it through a USB Type C most easily. If that is not possible to do with a 328p then I would want to use a 4809. Should I just follow the schematic of the Nano Every and the Schematic of the Battery Babysitter and put them on one PCB together that I would design in KiCad?

If the 4809 would allow me to accomplish this goal then I would want to use the 4809 (that I have just learned about) and not the 328p.

There is no need to do that. The Arduino boards are programmable via their USB socket out of the box. Just buy the board, connect it to a USB cable, and you're all set to upload.

You only need to worry about burning a bootloader if you are using a bare microcontroller chip on your board. Since you aren't doing that, you can forget all about these speculations and get to progressing with your project.

I would like to use a bare microcontroller for a PCB that I would design myself. I would like it to have the functionality of an Arduino Nano. I would like to be able to burn a bootloader via a USB Type C Port. I want to be able to; burn on a bootloader, program the board, and charge a battery, all through the same USB Type C port.

It is an interesting subject from an intellectual standpoint. However, from a practical standpoint it is foolish. Just use an ISP programmer to burn the bootloader. There is a reason why everyone does that.

If for some reason you don't want to use an ISP programmer, then just purchase a chip that has the bootloader pre-installed. For example:

Please provide a detailed description of why you are so opposed to using an ISP programmer.

Sure. Buy a 328P preprogammed with a bootloader, or use a 4809, which doesn't need one with a bit of automatic UPDI/serial circuitry. And my apologies, but that's as much of this mysteriously vague topic as I can handle. Good luck with your project.

Ah. I see.

For the original Arduino Nano (atmega328p microcontroller), using a bootloader IS the "norm." The bootloader works over a serial port, and connects to USB via a separate USB/Serial converter chip.

For the Nano Every (ATmega4809), there is a "smarter" chip in the USB path, and it programs the 4809 via the UPDI pin, as a "programmer."

However, there is no reason that the 4809 couldn't use a serial bootloader instead. This is suppored by MCUDude's MegaCoreX Arduino core

Wow thanks! This is the answer I was looking for. So just to be clear, that means I wouldn't have to burn a bootloader onto the chip through an external programmer, I could burn it on through the USB port, which would go through the "smarter chip" and then the arduino software would be on the chip? And after burning on the bootloader I would be able to upload my code from the arduino IDE?

I'm trying to make my own ardino board that I can easily program without an external programmer. So I'm going to get the board manufactured and the microchip on the board will be blank. It'll need a bootloader put on it

I found I'm going to make one of these. This is the solution I was looking for. Thanks for all the help and pointing me in the right directions.


Pogo Pins Crown Head (10 pack) [P75-H2] : ID 2429 : Adafruit Industries, Unique & fun DIY electronics and kits

Now it is even more confusing.
So which one of three boards in the photo do you want to make.