Meshtastic?! More like Meshtragic :-)

Miscellaneous In-House Builds and Projects.
Post Reply
admin
Site Admin
Posts: 181
Joined: 26 Dec 2023 13:05

Meshtastic?! More like Meshtragic :-)

Post by admin »

Meshtastic?! More like Meshtragic!

The idea of Meshtastic:

Metastatic is an open source community mesh communications system. The idea is to provide communications without traditional infrastructure such as phone lines or mobile phone companies.

The Beginnings of my Meshtastic Journey:

My original intent was to purchase a small and very portable Cyberdeck sort of device. I already have a Valve SteamDeck, which can function as a very fast, capable and portable Linux PC. I was looking for something much smaller, and primarily for exploring my RF surroundings. I had certainly heard of the Flipper Zero, but wasn't particularly interested in a tamagotchi with little boards sticking out of the top (and still not having a keyboard).

To this end, I learned of the LillyGo T-LoRa Pager. Here was a device with at least somewhat of a keyboard, a potentially very useful scroll wheel (rotary encoder), a TFT widescreen display, and IO so that I can still have boards sticking out of the top for "various RF purposes".

However, it wasn't lost on me that the intended purposes of the LillyGo T-LoRa Pager, is (Duh) LoRa communications, and since multiple firmwares can be installed simultaneously, I planned to explore Meshtastic.

My first mistake was to place my order from LillyGo on the very first day of Lunar New Year. OK, my bad, no problem... I'll wait.

...But I couldn't wait... The Mesh was calling me. Overnight shipping from "a certain large retailer" and I was in possession of a HelTec V4 --- a postage stamp sized module with a OLED display, and "More Powwwaaaar!" (28 dbm or RF output power). I was sure that I would be dominating the Nationwide Mesh by the next evening.

My HelTec V4 sits by the window during testing.  It will eventually live 30ft up a pine tree.
My HelTec V4 sits by the window during testing. It will eventually live 30ft up a pine tree.
20260305_ed_pub_sm.jpg (149.88 KiB) Viewed 48 times


It hasn't quite worked out that way. What will follow will be more that just a little bit of a rant about the pile of dung that I have been playing in for several weeks now. However -- Dung Beetle that I am however, I'm happy I've rolled Meshtastic home -- and in every pile of dung, if one looks hard enough, one may find a few bits of value.

My intent here is not to criticize an Open Source project. My intent is to provide helpful hints for users trying or considering Meshtastic, and to document things that need to be improved in both Meshtastic compatible Hardware, and in the Meshtastic code base. I've contributed code and fixes to other Open Source projects in the past, but at this point, jumping to something as large and complex as the entire Mestastic code base is probably not going to happen. This, with a little humour and sarcasm, is my contribution.

I do encourage those interested to try Meshtastic. Despite some frustrations, Meshtastic is a great idea -- for both community communications, or in the event of an actual emergency, or significant infrastructure failure. Meshtastic is Cool, Fun, an excellent was to get into modern communications electronics, network communication, HAM radio, etc.

I want to see Meshtastic thrive.


Installation:

Wanting to stay reasonably close to an Open-Source purist, my intent was to avoid the Google Chrome "web serial" interface. As we will see, I did end up installing Chrome later. However, I was successful at going the purely Ubuntu way of installing ESP32 firmware. This method doesn't seem to be described any place else, but if you are comfortable with the command line, it is straight forward, safe, and quick.

I already had the official Espressif esptool installed from the Ubuntu App Store.

NOTE: Excepting Physical or Electrical Damage, it is impossible (or at least difficult) to "Brick" an ESP32 device. You should always be able to return the device to DFU mode and replace corrupted firmware using the steps below. Experiment away.

To install Meshtastic on the HelTec V4, I did the following:

NOTE: USB "Drivers" are not required on Linux. You may have to grant permissions to use your PC's USB ports in serial mode. This is well covered elsewhere. I am assuming you have a normal USB "A" to "C" cable connected to an available port on your PC.
  • Download firmware-esp32s3-2.7.15.567b8ea.zip (Current Released version as of this writing) from https://github.com/meshtastic/firmware/releases/
  • Find the correct binary firmware from the zip file for the Heltec V4. In this case it was: firmware-heltec-v4-2.7.15.567b8ea.bin
  • Starting with the unit unconnected (un-powered), Hold the Boot button (not Reset) while plugging in the USB cable. (NOTE: Especially the higher-powered Heltec V4 can be permanently degraded or destroyed from high SWR if operated without a proper load connected to the LoRa Antenna Terminal at all times.)
    Do the Following:

Code: Select all

espressif-esptool.esptool erase-flash
...
espressif-esptool.esptool --chip ESP32S3 write-flash 0x0 'Downloads/firmware-esp32s3-2.7.15.567b8ea/firmware-heltec-v4-2.7.15.567b8ea.bin' 
...
(responses not shown)

This took a total of about 45 seconds, and I was greeted with the Mestastic //\ logo upon hitting reset.

NOTE for LillyGo T-LoRa Pager: If you want to use your LillyGo T-LoRa Pager for Meshtastic only, the Firmware can be installed in the same manner. I suggest using a newer "Alpha" firmware since there are several new upgrades for functionality and battery life for the T-LoRa Pager. I am running 2.7.19 (alpha). If you want to install Launcher (Suggested), obtain the Launcher firmware from https://github.com/bmorcelli/Launcher as shown above, and then copy the appropriate Meshtastic Firmware to the SD card, and install Mesthastic from within Launcher.

As this thread continues, I will add sections for other categories of hints and work-arounds, as well as other issues, bugs, and suggestions.
admin
Site Admin
Posts: 181
Joined: 26 Dec 2023 13:05

Re: Meshtastic?! More like Meshtragic :-)

Post by admin »

User Interface and Configuration:

So once I got the correct release firmware installed on my HelTec V4, I needed to configure it.

I would have thought that it would provide an SSID providing DHCP and a Webserver. Just connect, supply my WiFi information, reconnect, and navigate to the web interface -- Like -- You know -- almost every piece of networking equipment made! Even my NODE MCU Clock works this way, and it runs on a far less powerful ESP8266.

Image
The Web Interface for my NODE MCU Clock provides a simple web interface for configuration -- all running on it's internal ESP8266. The fact that Meshtastic does not work the same way has been the biggest disappointment of my whole Mestastic journey.

Sadly, Meshtastic *is* running a Web server, it's just not usable directly from a browser as shown above. I understand that the ESP32-S3, while night-and-day more powerful than an ESP8266, still has limited resources. But by keeping the web interface simple, and with a few clever compression techniques, I would think that it is still very doable. I'll also point out the functional and cool-looking web interface in ESP32 Launcher.

At this point, I could still have avoided proprietary software from Mountain View, California, but I decided to capitulate. I installed Google Chrome so that I could use the same USB connection to connect to my HelTec's Meshtastic Serial Port.


Another General UI Rant:

Before I get into specifics, and some workarounds, I have one more general complaint:

There is no consistency between the various user interfaces. This refers to appearance and type of widget for as specific function, nomenclature of a specific function, or allowable input parameters for a specific function. Since the functions are inconsistent among the Web Client, the Android Client App (I cannot check the MacOS Client App), and the device firmware, the Web documentation can't possibly match all of them. In fact, the documentation often matches none of them. As can be seen in the Hardware Section, I had a totally unnecessary struggle with setting the battery voltage adjustment constant on the HelTec V4.

The Web Client calls the relative setting "ADC Multiplier Override ratio". The documentation calls it "ADC Multiplier Override" (without the un-capitalized "ratio"), and the Android Client calls it "ADC multiplier override" for a switch that is not present in the documentation, nor present in the Web Client), followed by "ADC multiplier override ratio" (In this case, no caps, except the Acronym) for the actual setting. Yes, the capitalization is a nit, and it's mostly consistent, but here's where it gets worse: I attempted to use the "ADC Calculator" in the documentation, but got values that produced useless results for the HelTec V4. Other users on Reddit and elsewhere also reported useless values when using the ADC Calculator. AI (Gemini) actual got the right answer -- Values close to 4.9, but the Web Client would not allow any value near 4. Also, the Web Client arbitrarily invalidates valid values. For example 1.1 or 1.11 is allowed, but 1.10 is not. Validating input is good, but let's at least follow elementary mathematics, and not invalidate the correct multiplier ratio factor parameter setting value thingy number.

Even worse is "Shutdown on power loss" !? (from the app) What does not shutdown on power loss? Apparently, this same setting is called "Shutdown on battery delay" "Automatically shutdown node after this long when on battery, 0 for indefinite", on the Web Client. This reads totally differently, but at least makes some sense. The documentation has the following heading and first line: "Shutdown after losing power" "Automatically shut down a device after a defined time period if power is lost." -- Again, it does not have any reference to a battery, or clarify internal or external power.

So I can figuratively hear the maintainers and developers saying "OK, Sure... We'll rewrite all of those tonight. Is 09:00 tomorrow OK to have this all fixed?" I'm not asking for that -- Instead, in a reasonable fashion, check the other UI's when related code is touched. Don't make it worse. If you are working on the menus in the firmwares, Look :shock: at the relevant settings in Meshtastic-Andriod, and try to be consistent. If you think the other party is wrong, write an Issue. You are building a communications system. Maybe communicate some - Huh?

I also get that the firmwares are attempting to support many types of hardware -- some with extremely minimal user interface hardware. However, at least in the case of the LillyGo T-LoRa Pager, the on-board UI is unusable.

More UI and Client Issues -- No Particular Order.

LillyGo T-LoRa Pager with Firmware 2.7.19 (alpha) or 2.7.17 (release): Pressing any keyboard button wakes the unit from sleep. This means that this pocket-pager-sized unit cannot be put in a pocket or purse without significant likelihood of sending random messages. Today, I sent the letter "w" to the LongFast public chat. The other day, while attempting to get the encoder wheel working, I sent "Yes" from the Canned Messages -- Embarrassing, and it could have been worse depending on what other messages were in the chat at the time. Ironically, one of the few buttons on the T-LoRa Pager that does *not* wake the unit from sleep is the power button. I really think that the Dev's must have never seen or used a mobile phone.

To this end -- and exemplary of the nonsensical locations of functions within the Android Client -- Why does enabling and using the encoder wheel require that Canned Messages to be turned on? Granted, there are some devices that have an encoder wheel (or can have an encoder attached), but have no QWERTY keyboard, in this case, it's obvious that the encoder wheel is used for the Canned Reply. However, especially in light of one -- at least relatively popular commercial device with both an encoder wheel and a QWERTY keyboard, the firmware should not arbitrarily connect the 2 features.

Why are the Rotary Encoder settings dependent on the Canned Message feature.
Why are the Rotary Encoder settings dependent on the Canned Message feature.
Screenshot_20260305_2_sm_ed_pub.png (41.5 KiB) Viewed 22 times

NOTE: See Hardware section for more about the Rotary Encoder, and a workaround that allows the the encoder wheel to be at least partially usable.

Firmware Menus (on device) will close even while you are interacting with them. Some seem to time out on their own, but they will also (at least sometimes) close if you have the display set to "Carousel", and the display advances. As I type this, I have made several attempts to turn on Bluetooth from the device itself. Between the flaky encoder wheel, and the menus changing or disappearing, it has taken me several minutes to turn on Bluetooth.


Web Client fails to connect, or is extremely slow over WiFi: Ref Web-Client Issue #1015. Tried with both Firefox and Chrome. The following seems to help: Browse to https://(nodes local IP address)/ in a separate browser tab, and then go back to https://client.meshtastic.org/, and attempt to connect again.

Web Client: Saving settings fails or is very slow for certain settings. Same settings/same device and network address will update normally from the Android Client.


Coming Soon: Settings to improve battery life on both the HelTec V4 (without decreasing output power) and the LillyGo T-LoRa Pager.
admin
Site Admin
Posts: 181
Joined: 26 Dec 2023 13:05

Re: Meshtastic?! More like Meshtragic :-)

Post by admin »

Hardware:

My first (of many) Hardware disappointments:

HelTec V4: So as mentioned, the HelTec V4 was purchased so that I could learn Meshtastic in the weeks before my LillyGo T-LoRa Pager arrived, and to act as an outdoor repeater or "range extender" for the Pager, which was rumored to have rather poor antennas (more on this later.)

Someone had given me some waterproof equipment boxes, and I found a very old, but still somewhat health 3800mah LiPo battery in one of my bins. I was also able to add a small Solar Panel to my order so that it would arrive the same day as the HelTec V4.

As shown in Post #1, I hobbled everything together in the box, and set it out on the sun to charge -- so far - so good.

When I brought it in, the HelTec was quite hot, and wasn't cooling off. Within a very short time, it shut down. I found that the LiPo battery had very quickly discharged to about 2 volts -- dangerously and damagingly low for a LiPo.

I found out several things: First -- the HelTec V4 has no real battery management. It contains a CN3165 charger (charge only) controller, which is a linear (not switch mode) device. The result is that it runs quite hot during charging. There is no mention of under voltage protection in the CN3165 documentation.

Battery level is separately monitored using one of the ESP32's GPIO Lines (see User Interface and Configuration section for my difficulties in setting the "ADC Multiplier Override". and for my values to get reasonable readings on my HelTec V4). Battery meter performance is "close enough" without altering settings on the LillyGo T-LoRa Pager.


LillyGo T-LoRa Pager, Firmware 2.7.19 (alpha) Encoder Wheel issues (Again, see User Interface and Configuration section) Note: What is here was tried with both the release 2.7.17 release version, and the latest 2.7.19 alpha. I'll start off with the fact I am a fan of scroll wheels. You can find me mentioning a well executed Scroll Wheel on the (now ancient) Pepper Pad 3. While usable and well positioned, the narrow encoder wheel on the T-LoRa Pager does not feel nearly as nice. It works acceptably in both Launcher, and in the Bruce firmware, but is not functional by default in even the latest 2.7.19 (alpha) firmware.

To partially enable scroll wheel functionality: Go to Settings --> Device --> GPIO, and set Button GPIO to 40. This will allow one way scrolling for the icons strip at the bottom, and in menus. It will not falsely send Canned Messages from the message screen without other interaction. Scrolling either way will advance Right or Down. It's very awkward, and takes some getting used to, but it makes the unit overall more usable than having no encoder wheel at all.


LillyGo T-LoRa Pager antennas and range performance: Articles and video reviews have complained about poor performance (range) with the included flip up antennas. Another post stated that the Left antenna (WiFi) was fake -- i.e. there is no antenna element or anything connected inside the left antenna (as viewing the unit from the front.) Note that for most of my initial testing, the HelTec V4 has been nearby, however, I have taken the T-LoRa Pager out with me, and found that it still shows many active nodes, include some of which have connected directly. I will post back after I have more time with the T-LoRa Pager. I will also note that many devices (such as most mobile phones) have adequate WiFi performance without external WiFi antennas.

NOTE: US Region, LR1121 version of the LillyGo T-LoRa Pager.

Bruce Firmware on the LillyGo T-LoRa Pager (not related to Meshtastic): I feel I should also mention that almost nothing works out of the box with Bruce on the LillyGo T-LoRa Pager. Note: LR1121 version of the LillyGo T-LoRa Pager.

WiFi -- Not Supported. LR1121 is not currently supported. Note that I have purchased the LillyGo nRF24L01-PA board. nRF24L01 is supported by Bruce, but I have not tried it yet.

433 MHz -- Not supported on LR1121 version. CC1101 433M Module (Supported) is on hand, but I need to build a small "hat" or "shield" for convenient installation on top of the T-LoRa Pager.

NFC -- Not Supported. ST25R3916 Not Currently Supported in Bruce. Response to Bruce Firmware Issue #1855 states: (referring to ST25R3916 "We hope to add support soon." If a PN532 "Hat" or "Shield" were to be constructed, it should be supported. I will also note that in the Factory LillyGo T-LoRa Pager pager software, the unit would buzz when an NFC room key was presented, but it would not read the key. The same key is easily read (and written) with an NFC app on my Android Phone.

IRDA -- Not Present/Not Supported. I will build either a separate hat with IRDA transmitter and receiver, as part of the CC1101 hat or separately.

GNSS (GPS and others) -- Is supported, but Bruce has only Wardriving and one other GNSS function. Bruce will not simply show Lat/Lon, Direction/Speed, etc.

Display -- Well Supported and looks good.

Encider Wheel and Button -- Supported.

Keyboard -- Supported.
Post Reply