Torch serial config

Hi all,

When connected via USB Serial, I get an error “CMD: not a valid cmd” when I press any key per the instructions “Press any key to open the configuration menu.”

CoolTerm:

MacOS Terminal screen:

I am guessing that my serial terminal is misconfigured and my outgoing character bytes are incorrectly formatted.

Are there some additional serial configuration parameters that folks know to work?

I’ve been configuring serial connections since at least the Apple ][ Super Serial Card, so I know there’s more to it than just 115200.

Thanks!
John

PS: Nevermind the LF-CR issues in the macOS Terminal screenshot. That’s not my question here.

You might need to enable “unsigned serial devices” (or similar) in the macOS

There are also probably 2 COM ports that appear, Configure with Serial - SparkFun RTK Everywhere Product Manual - maybe ensure one isn’t interfering/the wrong one selected

You can also use BT (or other methods) to configure if you’d like (see left side @ link)

Thanks for the reply Russell

The issue reproduces in YAT and PuTTY on Win10 (see screenshots below), so it’s not a macOS issue.

I’m using the correct COM port.

I could use BT or other connection methods, but I’d like to understand why the behavior of the RTK Torch does not match the documentation at Configure with Serial - SparkFun RTK Everywhere Product Manual which says it applies to the RTK Torch

Thoughts?

Thanks again,
John


Assuming at least one of my four serial connections is accurately sending what I type to the Torch across the USB Serial, my question becomes:

Since “press any key” is not what the Torch is expecting, what is the command to bring up the config menu on USB Serial on the current Torch firmware?

PS: I’m not a professional coder, but I downloaded the SparkFun_RTK_Everywhere_Firmware and searched for the error string “CMD: not a valid cmd” as well as its substrings, and couldn’t find any matches in the code that might help me make sense of what the current command format is. Where is that error text being generated from?

Is there anything wrong with Flashing the Firmware to the Torch?
It’s pretty easy using the GUI (Uploader Tool).
It couldn’t hurt ?

Thanks!

I’m just getting started with a pair of Torches for base-rover RTK in areas without cell service.

Having built and used F9P base-rover pairs previously, I’m mostly being persnickety about pursuing access the console through USB Serial, as a way of coming to understand the Torch internals.

I’ll fall back to Bluetooth soon enough, since that will ultimately be more convenient in the field.

I am getting the same issue when trying to use the serial terminal to access the torch when using tera term on windows. “Pressing any key” pops up with the same error and no way to access the menu. Did anyone find a work around? I can’t get SW maps to connect as a ntrip client with my torch so I’m trying to manually configure the torch to get corrections so I need to access the serial terminal instead of just using bluetooth.

OK Sparkfun, you seem to be shipping Torches with two different firmwares.

I have two Torches, purchased many months apart.

The newer second torch is the one that is giving me the “CMD: not a valid cmd” error in USB Serial.

So I decided to try the first older Torch, and guess what, it works as described in the documentation:

A further observation that leads me to think “two firmwares” is that the older torch enumerates as " Torch Rover-####" in SW Maps, while the newer torch enumerates as “LiteRTK_######”.

A third observation is that the newer Torch didn’t have the printed stickers with the serial numbers and PointPerfect IP trial code in the box.

So how do we get the issues with the newer Torch resolved?

PS: FWIW here is the newer Torch’s boot output on USB Serial

3
I (760) spiram: Found 1This chip is ESP32-D0WDR2-V60 size=04c08h ( 19464) load
I (319) esp_image: segment 2: paddr=000a0020 vaddr=400d0020 size=1270bch (1208508) map
I (760) spiram: SPI RAM mode: flash 80m sram 80m
I (765) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (773) cpu_start: Pro cpu up.
I (776) cpu_start: Starting app cpu, entry point is 0x40081684
I (0) cpu_start: App cpu up.
I (1024) spiram: SPI SRAM memory test OK
I (1047) cpu_start: Pro cpu start user code
I (1047) cpu_start: cpu freq: 240000000
I (1047) cpu_start: Application information:
I (1050) cpu_start: Project name:     LiteRTK
I (1055) cpu_start: App version:      1.1.0
I (1060) cpu_start: Compile time:     Jul 21 2024 11:36:56
I (1066) cpu_start: ELF file SHA256:  8748a1b501248c36...
I (1072) cpu_start: ESP-IDF:          v4.4.5-dirty
I (1078) cpu_start: Min chip rev:     v0.0
I (1083) cpu_start: Max chip rev:     v3.99 
I (1088) cpu_start: Chip rev:         v3.1
I (1093) heap_init: Initializing. RAM available for dynamic allocation:
I (1100) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (1106) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (1112) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (1118) heap_init: At 3FFCD6A0 len 00012960 (74 KiB): DRAM
I (1125) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (1131) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1137) heap_init: At 4009DDD4 len 0000222C (8 KiB): IRAM
I (1144) spiram: Adding pool of 1830K of external SPI memory to heap allocator
I (1153) spi_flash: detected chip: gd
I (1156) spi_flash: flash io: dio
I (1161) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler onLMS LiteRTK_V1.3.19
HW Ver=0.0.3
@Jul 21 2024-22:04:52
I (1321) DRVBT: load BT cfg sw[1]
I (1321) DRVWIFI: load WIFICFG CRC wifi[00000000], ap[00000000]
I (1321) DRVWIFI: load WIFI cfg ssid[LiteRTK], pwd[12345678]
I (1331) DRVWIFI: load WIFI AP cfg pwd[AC151891A665]
I (1341) MODWORK: load WorkMode cfg mode[1], upload[3], correction[1]
I (1341) MODWORK: load admin mode cfg sw[0]
I (1381) NS: usr SER is geo net
I (1381) NS: def cfg
E (1381) NS: usr cfg as def,not run
I (1381) NS: load NtripServer usr cfg addr[ntrip.geodnet.com], port[2201], mnt[AC151891A665], usrName[name]
I (1391) NS: load NtripServer def cfg addr[], port[0], mnt[], usrName[]
I (1411) NC: load def NtripCLI cfg addr[], port[0], mnt[], usrName[]
I (1421) NC: load usr NtripCLI cfg addr[192.168.1.100], port[2101], mnt[mnt], usrName[name]
I (1441) LORA: load lora cfg [915000]k,[915000]k,[10]level,[38400]bps
I (1441) USBC: PSRAM size: 2097152 bytes

I (1621) USBC: 1.esp_get_free_internal_heap_size = 184015

I (1621) USBC: before gpio
I (1621) BUTTON: drv_key inited
I (1631) USBC: before led
E (1631) DRVBT: bt name:LiteRTK_AA7EEE
I (2251) DRVBT: ESP_SPP_INIT_EVT
I (2251) DRVBT: gatts_profile_event_handler 409

I (2251) DRVBT: gatts_profile_event_handler 428

I (2281) DRVBT: The number handle =6

I (2281) DRVBT: event: 10
I (2281) DRVBT: ESP_SPP_START_EVT
I (2281) DRVBT: event: 10
E (2291) DRVBT: ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT

I (2841) DR: ins cfg h2=1.800000
I (2841) DR: imu_ctx.inited
E (2841) DRVUART: UM980
I (2841) USBC: 2.esp_get_free_internal_heap_size = 84195

E (2841) MODGNSS: begin mod_gnss main
I (2851) NS: def geo
I (2861) NS: usr SER is geo net
I (2861) NS: load NtripServer usr cfg addr[ntrip.geodnet.com], port[2201], mnt[AC151891A665], usrName[name]
I (2871) NS: load NtripServer def cfg addr[ntrip.geodnet.com], port[2201], mnt[LiteRTK_AA7EEE], usrName[noneed]
I (2881) NC: load def NtripCLI cfg addr[rtk.geodnet.com], port[2101], mnt[AUTO], usrName[LiteRTK_AA7EEE]
I (2891) NC: load usr NtripCLI cfg addr[192.168.1.100], port[2101], mnt[mnt], usrName[name]
I (2901) USBC: 3.esp_get_free_internal_heap_size = 61119

E (3841) DR: imu_main run
I (3841) DR: imu_fd_reopen
I (4911) FENC: rd_len 14:Version: 1.0.0
I (4921) FENC: rd_len 22:ContentType: geo-fence
I (4921) FENC: rd_len 21:ContentLength: 146916
I (4931) FENC: rd_len 13:LatStep: 0.05
I (4931) FENC: rd_len 11:LatNum: 938
I (4941) FENC: rd_len 13:LonStep: 0.05
I (4941) FENC: rd_len 12:LonNum: 1253
I (4941) FENC: rd_len 22:LeftBottom: (7.4,73.3)
I (4951) FENC: LAST LINE
I (4951) FENC: last_sz=22
I (4961) FENC: cnt_line=8
I (4961) USBC: 4.esp_get_free_internal_heap_size = 51303

I (4971) DRVWIFI: Update WIFI ssid[LiteRTK], pwd[12345678]
I (4981) DRVWIFI: drv_wifi_init finished.
I (4981) USBC: 5.esp_get_free_internal_heap_size = 13035

end app_main
I (5841) PWR: AC_IN
I (6481) PWR: ==>PD SUPP 5v 9v[0] 12v[0] 15v[0] 18v[0] 20v[0] 

I (6481) PWR: SRC pd_vol=0 pd_cur=500
I (6481) PWR: PWR_STATE_CHARGE_CFG
I (6491) PWR: PWR CFG PD MODE
I (6841) DR: begin init
I (6841) DR: begin init auto ins
E (6851) DR: full dr queue
E (7251) DR: full dr queue
I (7491) DR: end init
I (7501) PWR: bat_percent=85,chg_cur:500,input_cur:1443,bat_vol=8200
E (7601) DR: full dr queue
E (8621) DR: full dr queue
I (9191) DRVWIFI: connect to the AP fail
E (9541) DR: read imu cmd resp[] timeout
I (9541) DR: ins==> FINIT status
I (9551) DR: cmd_rsp:
OK

I (9551) DR: cmd_rsp:
Version:IM19_H2_B2.2_A7.5_57b6bcd715ee0069a0bdc

E (9951) MODGNSS: detect unicore gnss com3 bps:115200
I (12521) DR: ins==> FINIT status
I (12521) DR: ins==> IMU_GNSS_RTK status
I (13411) DRVWIFI: connect to the AP fail
I (14951) MODWORK: start imu auto
E (14951) DR: imu_start
I (14951) MODWORK: trans rtcm from phone or ntrip
I (15061) NC: load def NtripCLI cfg addr[rtk.geodnet.com], port[2101], mnt[AUTO], usrName[LiteRTK_AA7EEE]
I (15061) NC: load usr NtripCLI cfg addr[192.168.1.100], port[2101], mnt[mnt], usrName[name]
I (15071) NC: ntrip client running
E (15071) NC: [0] start [0] ntrip task ok
I (17081) NC: wait gps
I (18081) MEM: ------Free heap memory: 1792911 bytes------

I (18081) MEM: esp_get_free_internal_heap_size = 17459

I (18091) MEM: esp_get_free_heap_size = 1792911

I (19081) NC: wait gps
I (21081) NC: wait gps
I (21291) DRVWIFI: connect to the AP fail
I (23081) NC: wait gps
I (25081) NC: wait gps
I (25511) DRVWIFI: connect to the AP fail
I (27081) NC: wait gps
I (29081) NC: wait gps
I (29731) DRVWIFI: connect to the AP fail
I (31081) NC: wait gps
I (33081) NC: wait gps
I (33941) DRVWIFI: connect to the AP fail
I (35081) NC: wait gps
I (37081) NC: wait gps
I (38161) DRVWIFI: connect to the AP fail
I (39081) NC: wait gps
I (41081) NC: wait gps
I (42381) DRVWIFI: connect to the AP fail
I (43081) NC: wait gps
I (45081) NC: wait gps
I (45081) NC: ntirpc win tm
E (45091) NC: win timer wait gps or wifi
I (46591) DRVWIFI: connect to the AP fail
I (47081) NC: wait gps
I (48091) MEM: ------Free heap memory: 1792911 bytes------

I (48091) MEM: esp_get_free_internal_heap_size = 17459

I (48101) MEM: esp_get_free_heap_size = 1792911

I (49081) NC: wait gps
I (50811) DRVWIFI: connect to the AP fail
I (51081) NC: wait gps
I (53081) NC: wait gps
I (55031) DRVWIFI: connect to the AP fail
I (55081) NC: wait gps
I (57081) NC: wait gps
I (57501) PWR: bat_percent=85,chg_cur:500,input_cur:1487,bat_vol=8187
I (59081) NC: wait gps
I (59241) DRVWIFI: connect to the AP fail
I (61081) NC: wait gps
I (63081) NC: wait gps
I (63461) DRVWIFI: connect to the AP fail
I (63461) DRVWIFI: Failed to connect to SSID:LiteRTK password:12345678
I (65081) NC: wait gps
I (67081) NC: wait gps

I tried flashing the RTK_Everywhere_Firmware_v2_1.bin firmware to the Torch using RTKUploader GUI app as rftop suggested but the Torch continues to boot to the same LiteRTK firmware.

Here is the RTKUploader output as I “uploaded” the firmware to every USB serial port, hoping something would stick.

Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

MacOS detected. Limiting baud to 460800

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Reset complete...
Resetting ESP32

Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093
Connecting.....
Chip is ESP32-D0WDR2-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:15:18:91:a6:64
Uploading stub...

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091
Connecting......................................

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091

Reset complete...
Resetting ESP32

Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete

Reset complete...
Erasing flash


______________________________________________________________________
ESP32 Flash Erase

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--before', 'default_reset', 'erase_flash']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091
Connecting......................................

Flash erase complete...
Erasing flash


______________________________________________________________________
ESP32 Flash Erase

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', 'erase_flash']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Flash erase complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Reset complete...
Resetting ESP32

Could not open serial port

Resetting ESP32

Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091
Connecting......................................

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091
Connecting......................................

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012091', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012091

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093
Connecting....
Chip is ESP32-D0WDR2-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:15:18:91:a6:64
Uploading stub...

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/cu.usbmodem588A0012093', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/cu.usbmodem588A0012093

Reset complete...
Detecting flash size


______________________________________________________________________
ESP32 Flash Size Detection

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012093', '--before', 'default_reset', '--after', 'no_reset', 'flash_id']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012093

Flash detection complete. Uploading firmware...
Flash size not detected! Defaulting to 16MB

RTK Everywhere Firmware detected. Using RTK_Everywhere.ino.bootloader.bin

Uploading firmware

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012093', '--baud', '460800', '--before', 'default_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '80m', '--flash_size', 'detect', '0x1000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Everywhere.ino.bootloader.bin', '0x8000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/RTK_Surveyor_Partitions_16MB.bin', '0xe000', '/Applications/RTKUploader.app/Contents/Frameworks/resource/boot_app0.bin', '0x10000', '/Users/johnpilgrim/Downloads/RTK_Everywhere_Firmware_v2_1.bin']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012093

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________
ESP32 Reset

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012093', '--before', 'default_reset', 'run']

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012093
Connecting....
Chip is ESP32-D0WDR2-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:15:18:91:a6:64
Uploading stub...

Reset complete...
Resetting ESP32

Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete
Waiting for reset to complete

Reset complete...

But again, the RTK_Everywhere_Firmware_v2_1 “upload” failed to change what was running on the device.

Hi @JohnPilgrim ,

I’m really sorry. We learned recently that a small number of Torches have been shipped out with the default manufacturer’s test software on them, instead of the SparkFun RTK Everywhere Firmware. You have one of those. The clues are the “LiteRTK_######” BT identity and the “NC” and “CMD” messages in the serial console.

The solution is indeed to upload the RTK Everywhere Firmware onto the ESP32.

You’ve tried to the upload the firmware but it has failed. When it is successful, you should see the “Writing at” percentage increase in ~1% steps:

The upload can fail if another program is accessing the serial port. Please make sure that you have disconnected all instances of CoolTerm, serial consoles / terminals etc. so that the Uploader can gain access to the serial port.

If you’re sure that the Uploader is the only code accessing the serial port, then the next thing to check is that you have the correct / latest CH342 drivers installed.

The Uploader GUI, or running esptool directly at the command line are your only options. All the other upgrade options rely on the RTK Everywhere Firmware already being installed.

Please give it another try and let us know how it goes.

Apologies again for the hassle,
Paul

Adding a cross-link to this post - another customer who had the same issue:

Thanks @PaulZC

(1.) Rebooting Mac to free up serial ports and attempting upload again with RTKUploader >>> FAILED as before

(2.) Installing CH341SER_MAC.ZIP serial drivers and attempting upload again with RTKUploader >>> FAILED as before

(3.) Running esptool.py from the macOS command line >>> lots of FAIL = missing dependencies and other errors I pursued for a while until I got bored and decided I wasn’t interested in troubleshooting anymore (even as someone comfortable on the command line and coding python)

(4.) Running RTKUploader.exe on a Windows 10 box >>> SUCCESS, finally!!

YES!! This is more like it:

.
.

IMHO, Sparkfun needs to revise the RTKUploader so it doesn’t appear to report that it has “completed” an upload when in reality the upload failed. I didn’t understand that RTKUploader was failing until PaulZC posted the screenshot of what a successful upload looked like. This output from a failure is really deceptive:

______________________________________________________________________
ESP32 Firmware Upload

Command:	['--chip', 'esp32', '--port', '/dev/tty.usbmodem588A0012091', '--baud', '460800', /snip/

esptool.py v4.8.1
Serial port /dev/tty.usbmodem588A0012091
Connecting......................................

Firmware upload complete. Resetting ESP32...
Resetting ESP32

______________________________________________________________________

I get that maybe RTKUploader is probably just piping the output from esptool.py to the screen, but surely there’s some way to test the success --or lack thereof-- and post a message to the RTKUploader screen.

.
.

And can I please get my missing sticker/credentials for the 1 month of corrections via PointPerfect IP that wasn’t included in my second Torch purchase?

Thanks again to PaulZC