Do I now own a brick?

I have 4 Heltec LoRa 32 V2.1 units with 3000mah Lipo’s. Have been playing with them for a while. Last night while changing some parameters with Meshtastic Flasher the oled on one went blank and nothing responded. When I unplug the Heltec from the USB port the display returns with the boot screen. If I plug it back in to the USB everything is still fine…until, I actually try to access the USB port, like answer yes to does the device already have Meshtastic? or just declare the device and read the settings.
If I do the screen goes blank and only unplugging will return the screen. Even trying to connect using Putty, the moment I try to connect the screen goes blank.
I have reflashed several times and still get the same results. The device seems to work just fine if your happy with default.
What have I done and can it be saved?

Thank you
Todd

Try a different cable and/or computer

Only have the one computer. Changed ports and cable.
Have since Loaded an Arduino sketch(Heltec’s ID reader for License).
Works fine. Reflashed manually thru esptool(command com) with 1.2.60.ab959de.
Same problem.
When the screen went blank I closed Meshtastic flasher DID NOT unplug the USB, fired up Arduino’s Serial Monitor set to 1000000 baud and pushed reset.
Got this:
/\ E S H T /\ S T / C

??:??:?? 0 booted, wake cause 0 (boot count 1), reset_reason=reset
??:??:?? 0 Filesystem files:
??:??:?? 0 /static/View_Code.svg.gz
??:??:?? 0 /static/manifest.webmanifest.gz
??:??:?? 0 /static/index.61bf857c.js.gz
??:??:?? 0 /static/index.bedff635.css.gz
??:??:?? 0 /static/sw.js.gz
??:??:?? 0 /static/workbox-4ee7f24a.js.gz
??:??:?? 0 /static/site.webmanifest.gz
??:??:?? 0 /static/Logo_White.svg.gz
??:??:?? 0 /static/.gitkeep
??:??:?? 0 /static/safari-tab.svg.gz
??:??:?? 0 /static/index.html.gz
??:??:?? 0 /static/Logo_Black.svg.gz
??:??:?? 0 /static/robots.txt.gz
??:??:?? 0 /prefs/db.proto
??:??:?? 0 /prefs/radio.proto
??:??:?? 0 /prefs/channels.proto
??:??:?? 0 /static/icon.svg.gz
??:??:?? 0 /static/Files_Dark.svg.gz
??:??:?? 0 /static/View_Code_Dark.svg.gz
??:??:?? 0 /static/Files.svg.gz
??:??:?? 0 I2C device found at address 0x3c
??:??:?? 0 ssd1306 display found
??:??:?? 0 done
??:??:?? 0 Meshtastic hwvendor=10, swver=1.2.60.ab959de, hwver=1.0
??:??:?? 0 Setting random seed 1113264392
??:??:?? 0 Total heap: 248376
??:??:?? 0 Free heap: 214508
??:??:?? 0 Total PSRAM: 0
??:??:?? 0 Free PSRAM: 0
??:??:?? 0 NVS: UsedEntries 81, FreeEntries 549, AllEntries 630, NameSpaces 4
??:??:?? 0 Setup Preferences in Flash Storage
??:??:?? 0 Number of Device Reboots: 3
??:??:?? 0 Initial packet id 475184452, numPacketId 4294967295
??:??:?? 0 Setting default channel and radio preferences!
??:??:?? 0 Expanding short PSK #1
??:??:?? 0 Wanted region 0, using Unset
??:??:?? 0 Loading /prefs/db.proto
??:??:?? 0 Loaded saved preferences version 11
??:??:?? 0 Loading /prefs/radio.proto
??:??:?? 0 Loading /prefs/channels.proto
??:??:?? 0 Number of Device Reboots: 3
??:??:?? 0 Expanding short PSK #1
??:??:?? 0 Wanted region 0, using Unset
??:??:?? 0 region=0, NODENUM=0x7eff29d0, dbsize=1
??:??:?? 0 Using analog input 37 for battery level
??:??:?? 0 Read RTC time as 0 (cur millis 213) quality=0
??:??:?? 0 Using MSL altitude model
??:??:?? 0 WANT GPS=1
??:??:?? 0 Setting GPS power=1
??:??:?? 2 ERROR: No UBLOX GPS found
??:??:?? 2 Hoping that NMEA might work
??:??:?? 2 WANT GPS=1
??:??:?? 2 GxGSA NOT available
??:??:?? 2 External Notification Plugin Disabled
??:??:?? 2 Turning on screen
??:??:?? 2 Plugin wants a UI Frame
??:??:?? 2 Starting meshradio init…
??:??:?? 2 (bw=125, sf=12, cr=4/8) packet symLen=32 ms, payloadSize=16, time 2269 ms
??:??:?? 2 Set radio: name=LongSlow, config=3, ch=0, power=0
??:??:?? 2 Radio myRegion->freq: 903.080017
??:??:?? 2 Radio myRegion->spacing: 2.160000
??:??:?? 2 Radio myRegion->numChannels: 13
??:??:?? 2 Radio channel_num: 0
??:??:?? 2 Radio frequency: 903.080017
??:??:?? 2 Short packet time: 2269 msec
??:??:?? 2 Set radio: final power level=17
??:??:?? 2 Current limit set to 100.000000
??:??:?? 2 Current limit set result 0
??:??:?? 2 RF95 init result -19
??:??:?? 2 Current limit set to 100.000000
??:??:?? 2 Current limit set result 0
??:??:?? 2 RF95 Radio init succeeded, using RF95 radio
??:??:?? 2 Not using WIFI
??:??:?? 2 (bw=125, sf=12, cr=4/8) packet symLen=32 ms, payloadSize=237, time 13869 ms
??:??:?? 2 myNodeInfo.bitrate = 17.088470 bytes / sec
??:??:?? 2 PowerFSM init, USB power=1
??:??:?? 2 Enter state: BOOT
[D][esp32-hal-cpu.c:189] setCpuFrequencyMhz(): PLL: 320 / 4 = 80 Mhz, APB: 80000000 Hz
??:??:?? 2 [Power] Battery: usbPower=0, isCharging=0, batMv=0, batPct=0
??:??:?? 2 [Screen] Screen: Started…
??:??:?? 2 [GPS] publishing pos@0:2, hasVal=0, GPSlock=0
??:??:?? 2 [GPS] No GPS lock
??:??:?? 2 [GPS] onGPSChanged() pos@0:4, time=0, lat=0, bat=0
??:??:?? 2 [GPS] updatePosition LOCAL pos@0:5, time=0, latI=0, lonI=0
??:??:?? 2 [GPS] Node status update: 1 online, 1 total
??:??:?? 2 [SerialPlugin] Serial Plugin Disabled
??:??:?? 2 [StoreForwardPlugin] Store & Forward Plugin - Disabled
??:??:?? 2 [RangeTestPlugin] Range Test Plugin - Disabled
??:??:?? 2 [GPS] NMEA GPS time 55
00:00:02 2 [GPS] Upgrading time to RTC 1651334275 secs (quality 3)
15:57:55 2 [GPS] Read RTC time as 1651334275 (cur millis 2785) quality=3
15:57:55 2 [GPS] publishing pos@0:2, hasVal=0, GPSlock=0
15:57:55 2 [GPS] onGPSChanged() pos@0:4, time=1651334275, lat=0, bat=0
15:57:55 2 [GPS] updatePosition LOCAL pos@0:5, time=1651334275, latI=0, lonI=0
15:57:55 2 [GPS] Node status update: 1 online, 1 total
15:57:55 2 [GPS] hasValidLocation RISING EDGE
15:57:55 2 [GPS] WANT GPS=0
15:57:55 2 [GPS] publishing pos@xx6d5c83:2, hasVal=1, GPSlock=1
15:57:55 2 [GPS] New GPS pos@xx6d5c83:3 lat=xx.253763, lon=-xx.534962, alt=234, pdop=2.39, track=0.00, sats=6
15:57:55 2 [GPS] onGPSChanged() pos@xx6d5c83:4, time=1651334275, lat=xx2537626, bat=0
15:57:55 2 [GPS] updatePosition LOCAL pos@xx6d5c83:5, time=1651334275, latI=xx2537626, lonI=-xx5349623
15:57:55 2 [GPS] Node status update: 1 online, 1 total
15:57:57 5 [PowerFSM] Enter state: POWER
15:57:57 5 [PowerFSM] Setting bluetooth enable=1
Pre BT: 200788 heap size
15:57:57 5 [PowerFSM] Starting bluetooth
15:57:57 5 [Screen] Done with boot screen…
15:57:57 5 [Screen] Screen: Powered…
15:57:57 5 [Screen] showing standard frames
15:57:57 5 [Screen] Showing 0 plugin frames
15:57:57 5 [Screen] Total frame count: 35
15:57:57 5 [Screen] Added plugins. numframes: 0
15:57:57 5 [Screen] Finished building frames. numframes: 2
15:57:57 5 [Screen] Setting fast framerate
[D][esp32-hal-cpu.c:189] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
15:57:58 5 [Screen] BLE task running
15:57:58 5 [Screen] registered service 0x1800 with handle=1
15:57:58 5 [Screen] registered service 0x1801 with handle=6
15:57:58 5 [Screen] registered service 6ba1b218-15a8-461f-9fa8-5dcae273eafd with handle=10
15:57:58 5 [Screen] registered service cb0b9a0b-a84c-4c0d-bdbb-442e3144ee30 with handle=18
15:57:58 5 [Screen] BLE advertisting type=0, Private=0, Device Address: 91:94:b9:7e:ff:29

15:57:58 5 [Screen] Setting idle framerate
[D][esp32-hal-cpu.c:189] setCpuFrequencyMhz(): PLL: 320 / 4 = 80 Mhz, APB: 80000000 Hz
15:58:14 22 [Power] Battery: usbPower=1, isCharging=1, batMv=4445, batPct=0
15:58:24 32 [NodeInfoPlugin] Sending our nodeinfo to mesh (wantReplies=1)
15:58:24 32 [NodeInfoPlugin] sending owner !7eff29d0/Unknown 29d0/?D0
15:58:24 32 [NodeInfoPlugin] Update DB node 0x7eff29d0, rx_time=1651334304
15:58:24 32 [NodeInfoPlugin] handleReceived(LOCAL) (id=0x1c52bd47 Fr0xd0 To0xff, WantAck0, HopLim3 Ch0x0 Portnum=4 WANTRESP rxtime=1651334304 priority=10)
15:58:24 32 [NodeInfoPlugin] No plugins interested in portnum=4, src=LOCAL
15:58:24 32 [NodeInfoPlugin] Add packet record (id=0x1c52bd47 Fr0xd0 To0xff, WantAck0, HopLim3 Ch0x0 Portnum=4 WANTRESP rxtime=1651334304 priority=10)
15:58:24 32 [NodeInfoPlugin] Should encrypt MQTT?: 1
15:58:24 32 [NodeInfoPlugin] Expanding short PSK #1
15:58:24 32 [NodeInfoPlugin] Installing AES128 key!
15:58:24 32 [NodeInfoPlugin] enqueuing for send (id=0x1c52bd47 Fr0xd0 To0xff, WantAck0, HopLim3 Ch0xb1 encrypted rxtime=1651334304 priority=10)
15:58:24 32 [NodeInfoPlugin] txGood=0,rxGood=0,rxBad=0
15:58:26 34 [RadioIf] Starting low level send (id=0x1c52bd47 Fr0xd0 To0xff, WantAck0, HopLim3 Ch0xb1 encrypted rxtime=1651334304 priority=10)
15:58:26 34 [RadioIf] (bw=125, sf=12, cr=4/8) packet symLen=32 ms, payloadSize=62, time 4694 ms
15:58:26 34 [RadioIf] AirTime - Packet transmitted : 4694ms
15:58:34 41 [RadioIf] Completed sending (id=0x1c52bd47 Fr0xd0 To0xff, WantAck0, HopLim3 Ch0xb1 encrypted rxtime=1651334304 priority=10)
15:58:34 42 [Power] Battery: usbPower=1, isCharging=1, batMv=4420, batPct=0

it continues on…
Is there any internal memory that is gimped?? and needs cleared?(GPS msb’s xx’ed)
Maybe a deep flash? a “Men In Black” flashy pen?

What I thought was garbage at the beginning of the terminal opening was actually text at 115200 baud(not 921600) as follows:

ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x1 (DOWNLOAD_BOOT(UART0/UART1/SDIO_FEI_REO_V2))
waiting for download

after the reset button I get the previous post.

That’s all looking good, nothing special on first glance.

ok at the beginning of the reset before the “normal” xmission at 921600 b there is a burst of 115200 b as follows:

E (627) spiram: SPI RAM enabled but initialization failed. Bailing out.
⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮c⸮⸮⸮⸮⸮⸮⸮⸮

the garbage continues at 921600 b.
Is that normal or…

Are you using windows? Serial can reset sometime on windows depending on the serial client being used. Also if you have any 3D printer software like Cura close it.

Been thru reboot and Flasher first thing. Cura has been closed since reboot. Currently trying to get Meshtastic Flasher on an old laptop. Afraid to plug in any of my other units for fear it’s a disease. You know… computer cooties.
Has to be something miss-written to the device and stuck as it all occurred with a parameter change in Flasher.

What settings did you save to the device.

Pretty unlikely that you have bricked a heltec device or that the flasher did anything to it. I would do a factory reset or re-flash the firmware. Are you on windows?

Reflashed a dozen times. As for “factory reset” what exactly are you referring to?
Was just setting Long Name, Short Name , Group, Turning on the network, … right down thru.
Saving each page on the way…somewhere in there the display went blank and all has been downhill from since…

Well the other Heltec devices work just fine so it IS the module… just what?
Oh…yea second computer…same thing.

Ok, still desperate does this help?
From the CLI.

D:\Arduino\Meshtastic>meshtastic --ch-shortfast
Traceback (most recent call last):
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\runpy.py”, line 196, in run_module_as_main
return run_code(code, main_globals, None,
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\runpy.py”, line 86, in run_code
exec(code, run_globals)
File "C:\Users\tcole\AppData\Local\Programs\Python\Python310\Scripts\meshtastic.exe_main
.py", line 7, in
File "C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic_main
.py", line 933, in main
common()
File "C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic_main
.py", line 709, in common
client = meshtastic.serial_interface.SerialInterface(args.port, debugOut=logfile, noProto=args.noproto)
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic\serial_interface.py”, line 57, in init
StreamInterface.init(self, debugOut=debugOut, noProto=noProto, connectNow=connectNow)
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic\stream_interface.py”, line 50, in init
self.connect()
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic\stream_interface.py”, line 74, in connect
self._waitConnected()
File “C:\Users\tcole\AppData\Local\Programs\Python\Python310\lib\site-packages\meshtastic\mesh_interface.py”, line 402, in _waitConnected
raise Exception(“Timed out waiting for connection completion”)
Exception: Timed out waiting for connection completion

@mc-hamster This looks like a bug to me, but I don’t know enough about the serial console to know if the project is using two different configs or if one is the device and later we change it.

The data @ 115200 comes from the CPU prior to our software loading. One of the first things we do is switch to 921600.

Hey Todd,

Sorry you are having such issues. I’m far from an expert, more of a Jack of many trades kind of guy. A few things come to mind.

  1. On some devices the screen basically shares a pin with something else. I wish I could be more specific but that is all I remember. Maybe you manage to flip a pin related bit.

  2. Quality control. Solder issues have been discovered by various users. Your device could have a ‘cold joint’ connection that is easily affected by changes in temperature, voltage, or current draw. These are usually very difficult to visually identify unless you have a lot of soldering experience, and even then you may not notice just by looking. You could also have a solder short, a very close inspection of the components, pins, and traces could reveal such.

  3. Power management chip issues. Many of these devices have a power management system for charging, low battery protection, and usb power passthrough. Some of these chips can be programed in various ways. The different behaviors of usb vs battery power make me wonder.

  4. USB subsystem. There are various USB chipsets out there. Maybe there is an issue in this area.

These devices are really a collection of other devices wired up on and though the board itself. Then you have the collection of more basic components like capacitors and resistors that allow these things to work together.

All that said, the reasonable thing to do may be move on and consider the device too quirky to use. When issues are consistent across multiple devices that previously had ‘know good’ configurations software is often the issue and very much worth looking it to. But hardware issues, unless you are into that stuff for work or a hobby it may be best to poke at things a bit then give up.

Unfornatuly these are the easy things. As for the charge system have that figured out for a mod that gives 700ma charge. Want to do a write up on it but don’t know how yet. The USB cable is looking more like DTR/DSR , RTS/CTS type of thing. The Arduino Serial Monitor wont throw it into fits but Putty and Meshtastic CLI and Flasher… the moment you acess the chip…
The display uses I2C so a number of things can use those lines like the environmental module.
This problem seems to put the chip into a …“reset”, rather than display drive problem.
I have found that once the software is cleared the RESET in the Heltec will finally reset the chip without unplugging the USB…
Yea … ordered two more boards…kinda addictive ain’t it?

If it responds with a -info - then it’s obviously the display. Don’t have these boards - if you soldered the display on yourself (or even if you didn’t), I suspect a cold solder joint. Resolder the display, both the display side, and the heltec board side

The Heltec are “factory” installed and thermal bonded(so it looks). But the only way(* see disclaimer in the fine print) the display would blank is 1) by command which means connections are fine. 2) loss of power at the display, reset wont fix that. 3) The display reset is active…
Just saw an interesting tidbit at the end on a flashing readout. It said it was hard resetting with the RTS… that is a RS232 function thus over the USB and would account for the loss of display and the reboot. just restarting the processor with a soft reset(or processor lock-up) won’t blank an I2C display device but a hard reset line would. I use a version of this display in many other Arduino and Teensy projects.

… Update
Just verified that comm access is pulling the reset line low. Has to be the CP2102 RTS line which goes to the Reset/Button 0 logic and ESP reset. Hummm now what to do…