I don't understand why I can't flash devices through the Arduino Tx/Rx

Hello, how are you?

I know that there are usb/ttl converters to flash units in case of bugs, or updates.

But I still don't understand why with a serial converter I can flash a SIM900/SIM900A MINI module, but via Tx/Rx I can't do it with Arduino Uno R3.

I have connected the I have connected the PIN reset to its GND pin and I can't connect to flash the SIM900/SIM900A MINI module.

Is there anything special you need to know?


From here I never manage to advance with arduino one, only with the usb/ttl converter.

sim900


This one works for flashing perfectly.

Did You disconnect the USB cable before trying?
Else there's a collision between Your ode and the USB using/connected to the same Tx/Rx.

What/which reset pin?

Make schematics showing the setup.

  • Did You disconnect the USB cable before trying?

    • Yes
  • What/which reset pin?

    • RESET to GND the blue cable, in the same arduino uno.

TX and RX to TX and RX of the module

There are 2 green wires, one is connected to the Arduino, the other is for resetting the GSM module.

Clearly I changed the TX/RX cables just in case and still nothing.

I've been trying for several days now and nothing.

Is it possible to flash firmware through the Arduino?

That sounds like a too common mistake. Don't connect a Tx to talk into another transmitter, Tx. Tx to Rx and Rx to Tx is the way to do it.

Please save the photographing and use schematics! A criminal detective having no clues might take on those pictures. You spend the time needed, not we.

Of course, TX to RX, and RX to TX is the basics, so with that crossover I was able to flash with the usb/serial converter.

I did not make schematics because it is the typical configuration that exists but, this is the one I am using.

This is the config, but the only thing that changes is that I use the Arduino Uno R3 for "USB to TTL converter device"

And external power supply of "4.9v"

Sorry but no use of that picture as I have no SIM900A at hand.

You just don't get it.

Here's the basic advice/rules used in this forum: How to get the best out of this forum - Using Arduino / Installation & Troubleshooting - Arduino Forum

Anyway I repeat my question, is it possible to upload firmware to other units through the Arduino without usb/ttl converter ? is it possible ?

I don't think it is necessary to know a whole schematic, when what is really necessary is to know where the TX, RX and GND pins of the unit to be flashed are.


A good scheme I have seen is this one.

It's just the board I have.

The bootloader requires a timed reset that is usually provided by the DTR pin on the USB-serial converter. Yours doesn't have one.

@aarg Do you know of a way to solve that?

An FTDI interface board has all the signals you need. It's often used to upload to boards that have no USB interface, like the Pro Mini.

That is, assuming that your Arduino has a normal bootloader installed. If not, you would have to use the ICSP pins with a USBASP or another Arduino running the bootloader install software.

Mmm interesting, I have the same factory Bootloader.

Does it mean that if I modify the bootloader, I can make my arduino behave as a FTDI interface ?

I can flash ESP01s with Arduino, I remember.

Confused. You said you were using the Arduino as a USB-serial converter. On most of them, the USB-serial is connected to the AVR RX/TX pins, so to use the Arduino as a pure USB-serial, you would tie the reset line down, to disable the processor. Otherwise, the processor will utilize those pins and conflict with the serial device that you are talking to (i.e. SIM900).

Also see:

If you only want to use the Arduino as a passive serial device, i.e. as an USB-serial interface, all you need to do is disable the processor by grounding the reset input.

If you only want to use the Arduino as a passive serial device, i.e. as an USB-serial interface, all you need to do is disable the processor by grounding the reset input.

It is exactly what I need, I have the PIN reset of the arduino to GND, as I had indicated, the problem is that it does not work.

I have also removed the atmega chip and nothing.

Then test it with a loopback. Connect RX to TX and type. :slight_smile:

it does not work

What happened/ didn't happen exactly? What Arduino are you using? The one in the photos?

ok, i'm try this https://support.arduino.cc/hc/en-us/articles/360020366520-How-to-do-a-loopback-test

I`m using Arduino uno R3, i think is a clone.

yes from the photo.

Yes, that is the right configuration. If you want to use it to talk to the SIM900, remember to use the right baud rate.

I can talk with the SIM900, I have no problem.

The problem is when loading the firmware to the sim900.

Consult the SIM900 documentation on flashing.

Ok I'll try, I've been looking for a while and nothing.

With the ftdi if I manage to load the firmware, and it is not complicated at all.


Loopback test

Does Simcom recognize the serial port? Please post a complete, detailed report of your flash attempt.