Flashing a Tbeam for Relay mode only - help

I’m struggling here, trying to flash a tbeam for relay mode only. Can someone help?

This is what I have done but it ain’t working, tbeam won’t boot up.
I open my terminal (linux) in the folder where the binary files are
from the command prompt I run
sudo chmod -R 777 /dev/ttyUSB0
./device-install.sh -f firmware-tbeam-EU865-1.1.48.bin
/device-install.sh -f firmware-lora-relay-v1-EU865-1.1.48.uf2

1 Like

Hi ohcdh

Not sure where it goes wrong, but the command sudo chmod -R 777 /dev/ttyUSB0 might not be de problem, does the flash run after that command? in terms of are you able to establish a serial connection and flash? , if not you might want to try command below where the USER bit needs to be replaced with your username you use to login on your Linux system, this way you set the serial port with the right permissions.
You do have to restart your Linux system or log out and back in again before the command below becomes effective so that your user profile on the Linux system gets reloaded en takes the new setting.

sudo usermod -a -G dialout $USER

Regards

Mark

1 Like

Thanks Mark, yes it does flash. But I’m winging the commands and have no idea what I’m doing, or what order or if the commands are correct.

I can’t establish a serial connection to the t-beam without sudo chmod -R 777 /dev/ttyUSB0, once I enter that and then the commands they flash ok.

If I just enter ./device-install.sh -f firmware-tbeam-EU865-1.1.48.bin then the tbeam reboots as normal with the normal radio mode. But the issue is how do I correctly enter the command to flash the t-beam with the uf2 binary?

Try to make serial port permission change 1st with sudo usermod -a -G dialout $USER
do a restart or logout and back in again, are you using the ESP Home Flasher?
With the sudo usermod -a -G dialout $USER your serial connection problem should be resolved and not having to use sudo chmod -R 777 /dev/ttyUSB0 anymore

Note: Be careful to install the correct firmware for your board. In particular, the popular T-BEAM radios from TTGO do not use the firmware-ttgo-lora32 files (they’re firmware-tbeam ). If you install the ‘TTGO-Lora’ build on a TBEAM it won’t work correctly.

Going through the list of files from firmware-1.1.48.zip

I am not sure if your board is supported as there are only folowing Relay binaries:
firmware-lora-relay-v1-ANZ-1.1.48.uf2
firmware-lora-relay-v1-CN-1.1.48.uf2
firmware-lora-relay-v1-EU433-1.1.48.uf2
firmware-lora-relay-v1-EU865-1.1.48.uf2
firmware-lora-relay-v1-JP-1.1.48.uf2
firmware-lora-relay-v1-KR-1.1.48.uf2
firmware-lora-relay-v1-US-1.1.48.uf2

Or try: ./device-install.sh -f firmware-tbeam-EU865-1.1.48.bin
Than: ./device-update.sh -f firmware-lora-relay-v1-EU865-1.1.48.uf2

Maybe somebody else can confirm which one is the right one for your board?

Regards

Mark

1 Like

I have fixed the need to do the sudo chmod -R 777 /dev/ttyUSB0 now and thanks. How do I flash a t-beam v1.1 to work in relay mode?

Glad your serial port issue is fixed now, on your question to get the relay mode going I can’t really help, sorry, I thinks it is a board issue but not sure,I was reading a bit about Nrf boards and those are the only supported ones, but again not sure, I am not using the Relay setup myself and also a newbie so hopefully some expert user can help you out on this one :slight_smile:

Thanks anyway appreciate your efforts

1 Like

This file is included in the device release, firmware-lora-relay-v1-EU865-1.1.48.uf2, which device is this file suitable for? If it is suitable for the t-beam v1.0, how do you flash this file?

Lora-relay is a nrf52s based board that was made by @bigcorvus. It isn’t being sold.

To tell any node that it should operate as a dedicated router use “meshtastic --set is_router true” then reboot the node.

Thanks Kevin, but I didn’t know how to do that. So I found this thread Howto easy create a relay/router node? - #6 by xhabit
I created a script called relay.sh in a text document
Copied in the following and modified the setowner and using GPS coordinates on Google Maps | Latitude Longitude Search, website found the longitude, latitude and altitude.

#/bin/sh
clear
echo “Set all Router Parameter”
meshtastic --setowner MeshRelay
meshtastic --settime
meshtastic --set is_low_power false
meshtastic --setchan tx_power 100
meshtastic --set is_router true
meshtastic --setlat 53.9 --setlon -6.8 --setalt 91
meshtastic --info

I ran the command sudo chmod -R 777 relay.sh to enable the script to be excuted as a progra m.
Then at the prompt entered, ./relay.sh
and this was the output

“Set all Router Parameter”
./relay.sh: line 4: meshtastic: command not found
./relay.sh: line 5: meshtastic: command not found
./relay.sh: line 6: meshtastic: command not found
./relay.sh: line 7: meshtastic: command not found
./relay.sh: line 8: meshtastic: command not found
./relay.sh: line 9: meshtastic: command not found
./relay.sh: line 10: meshtastic: command not found

Have I done something wrong?

@geeksville If I can get a handle on how to do this, I would love to pass on the help to others by typing a document, step by step explaining the process, and it can be added to the wiki page, this is not covered there presently and what each command in the script does.

2 Likes

That’s a great offer! You need to install the meshtastic command line app with “pip3 install meshtastic”

@geeksville That worked, simple when you know how. I know it’s worked because when I connect to the meshtastic app it, now displays the setname.

Just on the functions of the script, for example “meshtastic --setlat 53.9 --setlon -6.8 --setalt 91”, where a gps is fitted and operational, this overwrites “meshtastic --setlat 53.9 --setlon -6.8 --setalt 91”?

The bluetooth is still active, is there a parameter to switch it off as it wouldn’t be necessary?

I’ve written a wiki page, it needs some additions, specifically instructions for Windows and Mac OS, so anyone want to add specifics for your OS, please do so.

Thanks

5 Likes

Great job @ohcdh

This community is really coming together!

3 Likes

Nice ! and well done on the wiki page ,I think this is a great community with helpful people from experts in coding etc and newbies getting great support to get their kit going, also the opportunity to suggest additional add-ons etc is really great, all this is hard to find sometimes, well done to all of you and keep up the good work :smiley:

1 Like

One of the things “is_router” mode does is to leave bluetooth off almost all of the time. It only is on when the screen has been turned on by the user (due to a button press). This is part of why 99% of the time (unless very advanced users), users should at most set is_router. Setting a bunch of other parameters is a bad idea. I’ll add some edits/notes to your great wiki.

If anyone is curious here’s how default values are found (when they are unset - which should be the common case):

#define IF_ROUTER(routerVal, normalVal) (radioConfig.preferences.is_router ? (routerVal) : (normalVal))

PREF_GET(send_owner_interval, IF_ROUTER(2, 4))
PREF_GET(position_broadcast_secs, IF_ROUTER(12 * 60 * 60, 15 * 60))

// Each time we wake into the DARK state allow 1 minute to send and receive BLE packets to the phone
PREF_GET(wait_bluetooth_secs, IF_ROUTER(1, 60))

PREF_GET(screen_on_secs, 60)
PREF_GET(mesh_sds_timeout_secs, IF_ROUTER(DELAY_FOREVER, 2 * 60 * 60))
PREF_GET(phone_sds_timeout_sec, IF_ROUTER(DELAY_FOREVER, 2 * 60 * 60))
PREF_GET(sds_secs, 365 * 24 * 60 * 60)

// We default to sleeping (with bluetooth off for 5 minutes at a time).  This seems to be a good tradeoff between
// latency for the user sending messages and power savings because of not having to run (expensive) ESP32 bluetooth
PREF_GET(ls_secs, IF_ROUTER(24 * 60 * 60, 5 * 60))

PREF_GET(phone_timeout_secs, 15 * 60)
PREF_GET(min_wake_secs, 10)
1 Like