Part 3 in the dramatic serial adventures in mesh!
Flashing (not the rude kind) for the halibut...
MeshCore, Meshtastic, & other mesh-related projects we'll skip over for now, all have web-based "flashing" sites that allow you to take one of the pieces of hardware you selected from the prior entry & put that project's specific software on it so you can then communicate with others on that specific mesh.
** PLEASE NOTE #1: the various meshes ALL use their OWN, specific protocols and are, at the time of this writing, incompatible. There are some outside projects working to make them (some what?) interoperable, but that's beyond the scope of this piece.
As we've been talking MeshCore and companions, let us stick to those for now & set aside repeaters, room servers, etc. for a later series. I'll point you to <https://meshcore.io/flasher> to begin our work in this section.
** PLEASE NOTE #2: while Firefox has within the past month or so release a version which can use the "WebAPIs" system (that includes "WebUSB" for accessing hardware connected to your computer), it is still advisable to use a (Google) Chrome-based browser (e.g. Chrome, Chromium, MS Edge, etc.) for the following steps.
** PLEASE NOTE #3: I am a Linux user for the past 27+ years and have done my best to minimize my exposure to Windows. I will do my best to keep things general, but there may be specific Windows issues I am simply unaware of, so I will defer to others for those cases.
The process is as follows:
1. From the list on the page above, select your chosen hardware (we'll use a Heltec v3 for the following example)
2. Select the role you would like this hardware to play in the MeshCore ecosystem
a. For this we're doing a "Companion", however, there are (2) options here: USB & Bluetooth
b. I have not previously tried a USB version, as I have an iOS device & they do not currently allow for that option, so I always go with Bluetooth; however, I am to understand USB may be an option if you have an Android phone...YMMV
c. Worth a shot if you have one; otherwise, should it not work, you can just restart this process & opt for Bluetooth
3. Plug your device into your computer via USB -- this is the only way it can be flashed, the prior option for Bluetooth is for how you would communicate with the device via the application -- and you should see an indication that a device has been detected
a. If you do NOT see something like that OR the process fails for some reason, you may want to retry after doing the following:
i. On your ESP32 device, press & hold the "USER" (sometimes also called the "BOOT" or "PROGRAM" button), then press and release the "RESET" button, and finally release the "USER" button
ii. This should put your device into "DFU mode", which allows the device's existing firmware to be replaced
iii. This may also change how the name of the device is presented: for example, on my Linux machine a device NOT in DFU mode may show up as "Heltec v3", but one in DFU mode may show up as "Semtech UART bridge"
iv. For nRF52*-based devices, see #4c below
4. The current page should show you the firmware version to be applied, an "erase device" checkbox, and "FLASH!" button (and there may be other options depending on your chosen hardware; see below)
a. The flasher defaults to whatever the latest stable version of the firmware is (currently v1.16.0)
b. I recommend checking the "Erase device" box so that nothing which may still be on the device interferes
c. SIDE NOTE: if you were using an nRF52*-based device there may also be an option to "Set DFU mode", which prevents you from needing to do that during the next step (see #3a above)
6. When you click "Flash!" a pop-up box will ask you to select your device from the list of detected ports/devices on the computer
a. If not, see #3a above
7. If the stars are aligned properly, the page will indicate that it is prepping, then flashing your device, with a progress indication; this will take a minute or two to complete
8. SUCCESS! (or failure.)
a. If successful: great, you now have a shiny new MeshCore Bluetooth companion which you can link to your phone/tablet/computer & join the local mesh (or create your own, etc.)
b. If unsuccessful: review the specific error(s) given & see if you can correct them, then try again; it's not hard, but sometimes the hardware is not always as reliable as we would like and it's not unheard of for some to take a couple of tries
Let's take a moment & a breath, assume you were successful, and take a drink of your preferred beverage.
Now you're ready for Part 4: A New Beginning...
Obediently yours,
Andrew KR4FIA
73