ESP32-C3 Failing to Upload SIM800L Code

Hello. I'm trying to use a SIM800L GSM module with the TinyGSM library, using the Arduino IDE. I've taken the following example from a site online:

#define TINY_GSM_MODEM_SIM800
#define SerialMon Serial
#define SerialAT Serial1
#define TINY_GSM_DEBUG SerialMon
#define GSM_PIN ""

#define NTP_SERVER "132.163.96.5"

#include <TinyGsmClient.h>

const char apn[] = "internet";
const char gprsUser[] = "";
const char gprsPass[] = "";

#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm modem(debugger);
#else
TinyGsm modem(SerialAT);
#endif

TinyGsmClient client(modem);

// ESP32 and SIM800l pins
#define MODEM_TX 20     // mandatory pin
#define MODEM_RX 21     // mandatory pin
#define MODEM_RST 14    // optional 
#define MODEM_DTR 25    // optional
#define MODEM_RING 34   // optional


void setup() {
  SerialMon.begin(115200);
  delay(1000);
  pinMode(MODEM_RST, OUTPUT);
  digitalWrite(MODEM_RST, LOW);
  delay(100);                     // Keep low for 100ms
  digitalWrite(MODEM_RST, HIGH);  // Release reset pin
  delay(1000);                    // Wait for module to boot
  pinMode(MODEM_DTR, OUTPUT);
  digitalWrite(MODEM_DTR, HIGH);  // Keep modem awake
  pinMode(MODEM_RING, INPUT);     // Optional

  SerialMon.println("Wait ...");
  SerialAT.begin(115200, SERIAL_8N1, MODEM_TX, MODEM_RX);
  delay(3000);
  SerialMon.println("Initializing modem ...");
  modem.init();

  String modemInfo = modem.getModemInfo();
  SerialMon.print("Modem Info: ");
  SerialMon.println(modemInfo);

  if (GSM_PIN && modem.getSimStatus() != 3) {
    modem.simUnlock(GSM_PIN);
  }

  SerialMon.print("Waiting for network...");
  if (!modem.waitForNetwork()) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println(" success");

  if (modem.isNetworkConnected()) {
    DBG("Network connected");
  }
  // IMEI
  String imei = modem.getIMEI();
  SerialMon.print("IMEI: ");
  SerialMon.println(imei);

  // Get operator name
  String operatorName = modem.getOperator();
  SerialMon.print("Operator: ");
  SerialMon.println(operatorName);

  // Signal quality (0–31, 99 = not known)
  int signalQuality = modem.getSignalQuality();
  SerialMon.print("Signal Quality (0-31): ");
  SerialMon.println(signalQuality);

  SerialMon.print("Connecting to APN: ");
  SerialMon.print(apn);
  if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
    SerialMon.println(" fail");
    ESP.restart();
  }
  SerialMon.println(" OK");
  if (modem.isGprsConnected()) {
    SerialMon.println("GPRS connected");
  }
  // Local IP
  IPAddress  localIP = modem.localIP();
  SerialMon.print("Local IP: ");
  SerialMon.println(localIP);
}

void loop() {
  static unsigned long lastPrint = 0;
  if (millis() - lastPrint > 5000) { // every 5 seconds
    int signal = modem.getSignalQuality();
    SerialMon.print("Signal Quality (0-31): ");
    SerialMon.println(signal);

    // Optional: Check if still connected
    if (!modem.isNetworkConnected()) {
      SerialMon.println("Network disconnected!");
    } else {
      SerialMon.println("Network OK");
    }

    lastPrint = millis();
  }

  delay(100);
}

I'm using Arduino IDE and an ESP32-C3-DevKitC-02 showing as COM10 in my device manager (which corresponds with the IDE settings). When I try to upload the above code, it compiles, but I get the following error:

A fatal error occurred: Could not open COM10, the port is busy or doesn't exist.
(could not open port 'COM10': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2))

Hint: Check if the port is correct and ESP connected

Failed uploading: uploading error: exit status 2

I've done the following with no success:

1. Disconnected/reconnected the MCU.
2. Restarted the IDE.
3. Manually changed the COM port to COM 2 (Which was open and available in Windows).
4. Held the BOOT button on the MCU while trying to upload.
5. Attempted to upload the code with the GSM module completely disconnected.

I've also tried the same process with and ESP32-C6-DevKitC-1 with identical results. Other code examples upload fine, however this particular one won't. I've also tried several other examples using various SIM800L libraries to get the module working, and none want to upload, so I'm thinking it has to be something specifically to do with the code that's used for this peripheral. Can anybody help out?

Choose the board and port through IDE >> TOOLS

Do any of these notes apply to your project: GitHub - vshymanskyy/TinyGSM: A small Arduino library for GSM modules, that just works · GitHub

Nothing to do with the code. Make sure you do NOT have a serial window open somewhere. I use a Mac, so I have no idea how, but just in case, kill all Arduino processes and restart the IDE. Do nothing other than open the sketch and upload (assuming you have the COM port connected.

Yeah I did that. Still the same result.

So no other windows open, I even restarted the PC and only opened the sketch just to be sure. Still the same result. Also, if I upload any other known working sketch, it uploads fine. Super weird.

I just noticed, you need to post the full verbose upload log. Place it in code tags.

What is the result?

Does Windows' Device Manager show COM10 in use under LPT&COM?

I assume this is to hide personal information, like usernam = "" and password = ""

You can compile and upload sketches without devices connected. My thinking is the SIM800L is loading the system, not allowing the ESP? to be able to communicate and receive a sketch upload.

Here's the full log:

FQBN: esp32:esp32:esp32c3
Using board 'esp32c3' from platform in folder: C:\Users\blake\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.11
Using core 'esp32' from platform in folder: C:\Users\blake\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.11

cmd /c if exist "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\tools\\partitions\\default.csv" COPY /y "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\tools\\partitions\\default.csv" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\partitions.csv"
        1 file(s) copied.
cmd /c if exist "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\variants\\esp32c3\\partitions.csv" COPY /y "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\variants\\esp32c3\\partitions.csv" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\partitions.csv"
cmd /c if exist "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\partitions.csv" COPY /y "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\partitions.csv" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\partitions.csv"
cmd /c IF EXIST "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\bootloader.bin" ( COPY /y "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\bootloader.bin" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\SIM800L.ino.bootloader.bin" ) ELSE ( IF EXIST "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\variants\\esp32c3\\bootloader.bin" ( COPY "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\variants\\esp32c3\\bootloader.bin" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\SIM800L.ino.bootloader.bin" ) ELSE ( "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\5.3.1\\esptool.exe" --chip esp32c3 elf2image --flash-mode dio --flash-freq 80m --flash-size 4MB -o "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\SIM800L.ino.bootloader.bin" "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11\\bin\\bootloader_qio_80m.elf" ) )
esptool v5.3.1
Creating ESP32-C3 image...
Merged 2 ELF sections.
Successfully created ESP32-C3 image.
cmd /c if exist "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\build_opt.h" COPY /y "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L\\build_opt.h" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\build_opt.h"
cmd /c if not exist "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\build_opt.h" type nul > "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\build_opt.h"
cmd /c type nul > "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/file_opts"
cmd /c COPY /y "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11\\sdkconfig" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\sdkconfig"
        1 file(s) copied.
Detecting libraries used...
Using cached library dependencies for file: C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98\sketch\SIM800L.ino.cpp.merged
Alternatives for TinyGsmClient.h: [TinyGSM@0.12.0]
ResolveLibrary(TinyGsmClient.h)
  -> candidates: [TinyGSM@0.12.0]
Generating function prototypes...
Using cached sketch with function prototypes.
Compiling sketch...
Using previously compiled file: C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98\sketch\SIM800L.ino.cpp.o
Compiling libraries...
Compiling library "TinyGSM"
Compiling core...
cmd /c echo -DARDUINO_CORE_BUILD > "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/file_opts"
Using precompiled core: C:\Users\blake\AppData\Local\arduino\cores\bbfaa8b627667492b2f41904d6b72d8e\core.a
cmd /c type nul > "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/file_opts"
Linking everything together...
"C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-rv32\\2601/bin/riscv32-esp-elf-g++" "-Wl,--Map=C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.map" "-LC:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/lib" "-LC:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/ld" "-LC:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/qio_qspi" -Wl,--wrap=esp_panic_handler -Wl,--wrap=esp_bt_mem_release -Wl,--wrap=esp_bt_controller_mem_release "@C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/flags/ld_flags" "@C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/flags/ld_scripts" -Wl,--start-group "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\sketch\\SIM800L.ino.cpp.o" "C:\\Users\\blake\\AppData\\Local\\arduino\\cores\\bbfaa8b627667492b2f41904d6b72d8e\\core.a" "@C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11/flags/ld_libs" -Wl,--end-group -Wl,-EL -o "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.elf"
"C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\5.3.1/esptool.exe" --chip esp32c3 elf2image --flash-mode dio --flash-freq 80m --flash-size 4MB --elf-sha256-offset 0xb0 -o "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.bin" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.elf"
esptool v5.3.1
Creating ESP32-C3 image...
Merged 3 ELF sections.
Successfully created ESP32-C3 image.
"C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\tools\\gen_esp32part.exe" -q "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/partitions.csv" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.partitions.bin"
cmd /c if exist "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\libraries\\Insights" "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\tools\\gen_insights_package.exe" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98" SIM800L.ino "C:\\Users\\blake\\OneDrive\\Workspaces\\Arduino\\SIM800L"
cmd /c if exist "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\libraries\\ESP_SR" if exist "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11\\esp_sr\\srmodels.bin" COPY /y "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32c3-libs\\3.3.11\\esp_sr\\srmodels.bin" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\srmodels.bin"
"C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\5.3.1/esptool.exe" --chip esp32c3 merge-bin -o "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.merged.bin" --pad-to-size 4MB --flash-mode keep --flash-freq keep --flash-size keep 0x0 "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.bootloader.bin" 0x8000 "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.partitions.bin" 0xe000 "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11/tools/partitions/boot_app0.bin" 0x10000 "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.bin"
esptool v5.3.1
Wrote 0x400000 bytes to file 'C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.merged.bin', ready to flash to offset 0x0.
cmd /c echo --flash-mode dio --flash-freq 80m --flash-size 4MB > "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\flash_args" && echo 0x0 SIM800L.ino.bootloader.bin >> "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\flash_args" && echo 0x8000 SIM800L.ino.partitions.bin >> "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\flash_args" && echo 0xe000 boot_app0.bin >> "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\flash_args" && echo 0x10000 SIM800L.ino.bin >> "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\flash_args"
cmd /c copy /y "C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.3.11\\tools\\partitions\\boot_app0.bin" "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98\\boot_app0.bin"
        1 file(s) copied.
Using library TinyGSM at version 0.12.0 in folder: C:\Users\blake\OneDrive\Workspaces\Arduino\libraries\TinyGSM 
"C:\\Users\\blake\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-rv32\\2601/bin/riscv32-esp-elf-size" -A "C:\\Users\\blake\\AppData\\Local\\arduino\\sketches\\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.elf"
Sketch uses 320648 bytes (24%) of program storage space. Maximum is 1310720 bytes.
Global variables use 14556 bytes (4%) of dynamic memory, leaving 313124 bytes for local variables. Maximum is 327680 bytes.
"C:\Users\blake\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.11\tools\flasher.exe" --esptool "C:\Users\blake\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\5.3.1/esptool.exe" --build-dir "C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98" --chip esp32c3 --port "COM10" --baud 921600  --before default-reset --after hard-reset write-flash  -z --flash-mode keep --flash-freq keep --flash-size keep 0x0 "C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.bootloader.bin" 0x8000 "C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.partitions.bin" 0xe000 "C:\Users\blake\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.11/tools/partitions/boot_app0.bin" 0x10000 "C:\Users\blake\AppData\Local\arduino\sketches\774863A9D5A66AE8B20CBE1BFD24FA98/SIM800L.ino.bin" 
esptool v5.3.1
Serial port COM10:

A fatal error occurred: Could not open COM10, the port is busy or doesn't exist.
(could not open port 'COM10': PermissionError(13, 'Access is denied.', None, 5))

Hint: Check if the port is not used by another task

Failed uploading: uploading error: exit status 2

The Same error message detailed in the initial post.

Yes the Device Manager shows 'Silicon Labs CP210x USB to UART Bridge (COM10)'

I would imagine so, but the sketch is a cut and paste example I found online so I can't say for sure. In the video that came with the code, there was no mention of having to populate those arrays with anything.

When I first attempted to upload the code (at the time of original post of this thread), it wouldn't upload even with the device disconnected. I just tried it again, and disconnected it will upload, but when I reconnect it after, I get the following error in the Serial Monitor:

Port monitor error: command 'open' failed: Serial port busy. Could not connect to COM10 serial port.

That is the message you get when another process is using the Serial monitor.

With no other instances of Arduino IDE running do you have any idea what could be causing it? Could it be the pins being used on the MCU? The Tx pin on the module is going to GPIO20 (U0RXD) on the ESP32 and the Rx pin on the module is going to GPIO21 (U0TXD) on the ESP32.

I would not expect it. However, your observation is interesting:

As @sonofcy wrote in post #3, it is very unlikely that the code you are uploading would be a factor in the upload failure.

However, it is possible there is another factor correlated with the "SIM800L code fails to upload, other code uploads fine" observation. You likely have the SIM800L module connected to the pins on the ESP32-C3-DevKitC-02 board when you attempt to upload SIM800L code. Likewise, you may not have the SIM800L connected when you are uploading code that doesn't use that module.

So I do think it is worth a quick experiment:

  1. Attempt to upload the problematic sketch to the board with the SIM800L module connected.
    From your previous experiences, we will expect this upload to fail. This result serves as the baseline for the experiment.
  2. Disconnect the USB cable from the ESP32-C3-DevKitC-02 board, and any other power sources.
  3. Disconnect the SIM800L module and all other external circuitry, modules, shields, wiring, etc. from the board.
  4. Connect the board to your computer with the USB cable.
  5. Attempt to upload the problematic sketch to the board once again.

If the first upload attempt fails but the second upload attempt succeeds, then this result would support your hypothesis that the upload failure is caused by the external circuitry. If both uploads fail, then this result will disprove your hypothesis.

It does not have to be another instance of the IDE (it seldom is) it can be the only IDE but the Serial monitor is connected. Try clicking the X on the left.

Screenshot 2026-08-20 at 05.43.28

Yes, as expected it continues to do what it was doing at the time of the initial post.

The sketch uploads successfully. If I then attempt to connect the SIM800L module and open the Serial Monitor, I get the following error:

Port monitor error: command 'open' failed: Serial port busy. Could not connect to COM10 serial port.

Sorry, click that at which point? If were talking about uploading the code while the SIM800L module is still connected, the Serial Monitor isn't even open yet at the point of failure, so I would have no opportunity to close it with the X. If you're referring to uploading the sketch with no module connected, and then trying to open the SM, it will close, but I'll get the same error if I try to open it again.

What I am referring to is that we see many cases where someone has forgotten they had the Serial monitor open in another window or process, etc. The way to be sure is to reboot and start a single copy of the IDE. If your problem still happens, it was not caused by a second Serial copy.

I will leave you with that, and if you follow post 14 verbatim, you should at least get more data. Good luck.

Ok I got it uploading, and it's really dumb on my part. I re-checked all my wiring, and somehow I had Tx(Module) connected to Tx(MCU), and Rx(Module) connected to Rx(MCU) vs Tx to Rx and vice versa I'm not sure how I made that slip, but I did. With that said, that got it uploading, but it still wouldn't connect to the GSM network. So for the benefit of anybody who comes across the same problem, in addition to the original issue, I had to switch it from UART0 to UART1, which got it working right away. Thanks everybody for all your help, this forum is really awesome for knowledge and willingness to help.