LilyGo T3S3 V1.0 ESP32-S3 LoRa SX1276 2.4G Board
LilyGo T3S3 V1.0 ESP32-S3 LoRa SX1276 2.4G Development Board.
The board is
ESP32-S3 * SX1276 LoRa module * TF Card slot (microSD) * 0.96 inch OLED display SSD1306 * bluetooth * WiFi * reset (RST) pushbutton * boot pushbutton * on / off switch
back to microcontrollers page.
Links
LilyGo Github repository LilyGo-LoRa-Series, Meshtastic,
Github Meshtastic clients Meshtastic-Android, python, web,
enclosures, firmware,
local links
c2,
History
2023-07-30: c2 - see nodes
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --nodes Connected to radio ╒═════╤═════════════════╤═══════╤═══════════╤════════════╤═════════════╤════════════╤═══════════╤═════════════════╤════════════════╤═══════╤═════════════════════╤══════════╕ │ N │ User │ AKA │ ID │ Latitude │ Longitude │ Altitude │ Battery │ Channel util. │ Tx air util. │ SNR │ LastHeard │ Since │ ╞═════╪═════════════════╪═══════╪═══════════╪════════════╪═════════════╪════════════╪═══════════╪═════════════════╪════════════════╪═══════╪═════════════════════╪══════════╡ │ 1 │ Meshtastic e95c │ e95c │ !75d5e95c │ N/A │ N/A │ N/A │ 101% │ N/A │ 0.16% │ N/A │ 2023-07-30 21:01:25 │ just now │ ╘═════╧═════════════════╧═══════╧═══════════╧════════════╧═════════════╧════════════╧═══════════╧═════════════════╧════════════════╧═══════╧═════════════════════╧══════════╛
metadata
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --device-metadata Connected to radio INFO file:node.py getMetadata line:585 Requesting device metadata firmware_version: 2.1.11.5ec624d device_state_version: 20
2023-07-30: c2 - set LoRa region
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --set lora.region EU_868 Connected to radio Set lora.region to EU_868 Writing modified preferences to device
and check the info again
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --info Connected to radio Owner: Meshtastic e95c (e95c) My info: { "myNodeNum": 1976953180, "maxChannels": 8, "firmwareVersion": "2.1.11.5ec624d", "rebootCount": 8, "bitrate": 77.526985, "messageTimeoutMsec": 300000, "minAppVersion": 20300, "hasWifi": true, "channelUtilization": 2.9533334, "airUtilTx": 0.04922222 } Nodes in mesh: {"!75d5e95c": {"num": 1976953180, "user": {"longName": "Meshtastic e95c", "shortName": "e95c", "macaddr": "dc:54:75:d5:e9:5c", "hwModel": "TLORA_T3_S3"}, "position": {}, "deviceMetrics": {"batteryLevel": 101, "voltage": 4.392, "channelUtilization": 1.695, "airUtilTx": 0.02825}}} Preferences: { "device": { "serialEnabled": true, "nodeInfoBroadcastSecs": 10800 }, "position": { "positionBroadcastSecs": 900, "positionBroadcastSmartEnabled": true, "gpsEnabled": true, "gpsUpdateInterval": 120, "gpsAttemptTime": 900, "positionFlags": 3, "rxGpio": 34, "txGpio": 12, "broadcastSmartMinimumDistance": 100, "broadcastSmartMinimumIntervalSecs": 30 }, "power": { "waitBluetoothSecs": 60, "meshSdsTimeoutSecs": 7200, "sdsSecs": 4294967295, "lsSecs": 300, "minWakeSecs": 10 }, "network": { "ntpServer": "0.pool.ntp.org" }, "display": { "screenOnSecs": 600 }, "lora": { "usePreset": true, "region": "EU_868", "hopLimit": 3, "txEnabled": true, "txPower": 27 }, "bluetooth": { "enabled": true, "fixedPin": 123456 } } Module preferences: { "mqtt": { "address": "mqtt.meshtastic.org", "username": "meshdev", "password": "large4cats" }, "serial": {}, "externalNotification": {}, "rangeTest": {}, "telemetry": { "deviceUpdateInterval": 900, "environmentUpdateInterval": 900, "airQualityInterval": 900 }, "cannedMessage": {}, "audio": {}, "remoteHardware": {} } Channels: PRIMARY psk=default { "psk": "AQ==" } Primary channel URL: https://meshtastic.org/e/#CgMSAQESCggBOANAA0gBUBs
more info
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --get lora.region Connected to radio lora.region: 3 Completed getting preferences
bandwidth
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --get lora.bandwidth ERROR file:stream_interface.py __reader line:175 Error while handling message from radio Value out of range: -1 Traceback (most recent call last): File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/stream_interface.py", line 173, in __reader self._handleFromRadio(self._rxBuf[HEADER_LEN:]) File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/mesh_interface.py", line 735, in _handleFromRadio self._handleConfigComplete() File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/mesh_interface.py", line 661, in _handleConfigComplete self.localNode.requestChannels() File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/node.py", line 81, in requestChannels self._requestChannel(0) File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/node.py", line 741, in _requestChannel return self._sendAdmin( File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/node.py", line 766, in _sendAdmin return self.iface.sendData( File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/mesh_interface.py", line 328, in sendData p = self._sendPacket(meshPacket, destinationId, wantAck=wantAck) File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/mesh_interface.py", line 449, in _sendPacket meshPacket.to = nodeNum File "/home/tingo/.local/lib/python3.9/site-packages/google/protobuf/internal/python_message.py", line 702, in field_setter new_value = type_checker.CheckValue(new_value) File "/home/tingo/.local/lib/python3.9/site-packages/google/protobuf/internal/type_checkers.py", line 170, in CheckValue raise ValueError('Value out of range: %d' % proposed_value) ValueError: Value out of range: -1 Traceback (most recent call last): File "/home/tingo/.local/bin/meshtastic", line 8, in <module> sys.exit(main()) File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/__main__.py", line 1335, in main common() File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/__main__.py", line 945, in common client = meshtastic.serial_interface.SerialInterface( File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/serial_interface.py", line 61, in __init__ StreamInterface.__init__( File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/stream_interface.py", line 50, in __init__ self.connect() File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/stream_interface.py", line 74, in connect self._waitConnected() File "/home/tingo/.local/lib/python3.9/site-packages/meshtastic/mesh_interface.py", line 524, in _waitConnected raise Exception("Timed out waiting for connection completion") Exception: Timed out waiting for connection completion
re-try
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --get lora.bandwidth Connected to radio lora.bandwidth: 0 Completed getting preferences
more
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --get lora.spread_factor --get lora.coding_rate --get lora.frequency_offset Connected to radio lora.spread_factor: 0 lora.coding_rate: 0 lora.frequency_offset: 0.0 Completed getting preferences
even more
tingo@kg-core2:~ $ meshtastic --port /dev/cuaU0 --get lora.hop_limit --get lora.tx_power --get lora.tx_enabled Connected to radio lora.hop_limit: 3 lora.tx_power: 27 lora.tx_enabled: True Completed getting preferences
2023-07-30: c2 - check out the node
tingo@kg-core2:~ $ meshtastic --info Warning: No Meshtastic devices detected.
tingo@kg-core2:~ $ meshtastic --info --port /dev/cuaU0 Connected to radio Owner: Meshtastic e95c (e95c) My info: { "myNodeNum": 1976953180, "maxChannels": 8, "firmwareVersion": "2.1.11.5ec624d", "rebootCount": 7, "bitrate": 77.526985, "messageTimeoutMsec": 300000, "minAppVersion": 20300, "hasWifi": true } Nodes in mesh: {"!75d5e95c": {"num": 1976953180, "user": {"longName": "Meshtastic e95c", "shortName": "e95c", "macaddr": "dc:54:75:d5:e9:5c", "hwModel": "TLORA_T3_S3"}, "position": {}, "deviceMetrics": {"batteryLevel": 101, "voltage": 4.399}}} Preferences: { "device": { "serialEnabled": true, "nodeInfoBroadcastSecs": 10800 }, "position": { "positionBroadcastSecs": 900, "positionBroadcastSmartEnabled": true, "gpsEnabled": true, "gpsUpdateInterval": 120, "gpsAttemptTime": 900, "positionFlags": 3, "rxGpio": 34, "txGpio": 12, "broadcastSmartMinimumDistance": 100, "broadcastSmartMinimumIntervalSecs": 30 }, "power": { "waitBluetoothSecs": 60, "meshSdsTimeoutSecs": 7200, "sdsSecs": 4294967295, "lsSecs": 300, "minWakeSecs": 10 }, "network": { "ntpServer": "0.pool.ntp.org" }, "display": { "screenOnSecs": 600 }, "lora": { "usePreset": true, "hopLimit": 3, "txEnabled": true, "txPower": 30 }, "bluetooth": { "enabled": true, "fixedPin": 123456 } } Module preferences: { "mqtt": { "address": "mqtt.meshtastic.org", "username": "meshdev", "password": "large4cats" }, "serial": {}, "externalNotification": {}, "rangeTest": {}, "telemetry": { "deviceUpdateInterval": 900, "environmentUpdateInterval": 900, "airQualityInterval": 900 }, "cannedMessage": {}, "audio": {}, "remoteHardware": {} } Channels: PRIMARY psk=default { "psk": "AQ==" } Primary channel URL: https://meshtastic.org/e/#CgMSAQESCAgBQANIAVAe
2023-07-30: c2 - try the meshtastic client
tingo@kg-core2:~ $ which meshtastic /home/tingo/.local/bin/meshtastic tingo@kg-core2:~ $ meshtastic --help usage: meshtastic [-h] [--configure CONFIGURE] [--export-config] [--port PORT] [--host HOST] [--seriallog SERIALLOG] [--info] [--get-canned-message] [--get-ringtone] [--nodes] [--qr] [--get GET] [--set SET SET] [--seturl SETURL] [--ch-index CH_INDEX] [--ch-add CH_ADD] [--ch-del] [--ch-enable] [--ch-disable] [--ch-set CH_SET CH_SET] [--ch-vlongslow] [--ch-longslow] [--ch-longfast] [--ch-medslow] [--ch-medfast] [--ch-shortslow] [--ch-shortfast] [--set-owner SET_OWNER] [--set-canned-message SET_CANNED_MESSAGE] [--set-ringtone SET_RINGTONE] [--set-owner-short SET_OWNER_SHORT] [--set-ham SET_HAM] [--dest DEST] [--sendtext SENDTEXT] [--sendping] [--traceroute TRACEROUTE] [--ack] [--reboot] [--reboot-ota] [--shutdown] [--device-metadata] [--begin-edit] [--commit-edit] [--factory-reset] [--reset-nodedb] [--reply] [--gpio-wrb GPIO_WRB GPIO_WRB] [--gpio-rd GPIO_RD] [--gpio-watch GPIO_WATCH] [--no-time] [--setalt SETALT] [--setlat SETLAT] [--setlon SETLON] [--pos-fields [POS_FIELDS ...]] [--debug] [--test] [--ble BLE] [--noproto] [--version] [--support] optional arguments: -h, --help show this help message and exit --configure CONFIGURE Specify a path to a yaml(.yml) file containing the desired settings for the connected device. --export-config Export the configuration in yaml(.yml) format. --port PORT The port the Meshtastic device is connected to, i.e. /dev/ttyUSB0. If unspecified, we'll try to find it. --host HOST The hostname/ipaddr of the device to connect to (over TCP) --seriallog SERIALLOG Log device serial output to either 'stdout', 'none' or a filename to append to. --info Read and display the radio config information --get-canned-message Show the canned message plugin message --get-ringtone Show the stored ringtone --nodes Print Node List in a pretty formatted table --qr Display the QR code that corresponds to the current channel --get GET Get a preferences field. Use an invalid field such as '0' to get a list of all fields. Can use either snake_case or camelCase format. (ex: 'ls_secs' or 'lsSecs') --set SET SET Set a preferences field. Can use either snake_case or camelCase format. (ex: 'ls_secs' or 'lsSecs') --seturl SETURL Set a channel URL --ch-index CH_INDEX Set the specified channel index. Channels start at 0 (0 is the PRIMARY channel). --ch-add CH_ADD Add a secondary channel, you must specify a channel name --ch-del Delete the ch-index channel --ch-enable Enable the specified channel --ch-disable Disable the specified channel --ch-set CH_SET CH_SET Set a channel parameter. To see channel settings available:'--ch-set all all --ch-index 0'. Can set the 'psk' using this command. To disable encryption on primary channel:'--ch-set psk none --ch-index 0'. To set encryption with a new random key on second channel:'--ch-set psk random --ch-index 1'. To set encryption back to the default:'--ch-set psk default --ch-index 0'. To set encryption with your own key: ' --ch-set psk 0x1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b1a1a1a1a2b2b2b2b --ch-index 0'. --ch-vlongslow Change to the very long-range and slow channel --ch-longslow Change to the long-range and slow channel --ch-longfast Change to the long-range and fast channel --ch-medslow Change to the med-range and slow channel --ch-medfast Change to the med-range and fast channel --ch-shortslow Change to the short-range and slow channel --ch-shortfast Change to the short-range and fast channel --set-owner SET_OWNER Set device owner name --set-canned-message SET_CANNED_MESSAGE Set the canned messages plugin message (up to 200 characters). --set-ringtone SET_RINGTONE Set the Notification Ringtone (up to 230 characters). --set-owner-short SET_OWNER_SHORT Set device owner short name --set-ham SET_HAM Set licensed Ham ID and turn off encryption --dest DEST The destination node id for any sent commands, if not set '^all' or '^local' is assumed as appropriate --sendtext SENDTEXT Send a text message. Can specify a destination '--dest' and/or channel index '--ch-index'. --sendping Send a ping message (which requests a reply) --traceroute TRACEROUTE Traceroute from connected node to a destination. You need pass the destination ID as argument, like this: '--traceroute !ba4bf9d0' Only nodes that have the encryption key can be traced. --ack Use in combination with --sendtext to wait for an acknowledgment. --reboot Tell the destination node to reboot --reboot-ota Tell the destination node to reboot into factory firmware --shutdown Tell the destination node to shutdown --device-metadata Get the device metadata from the node --begin-edit Tell the node to open a transaction to edit settings --commit-edit Tell the node to commit open settings transaction --factory-reset Tell the destination node to install the default config --reset-nodedb Tell the destination node clear its list of nodes --reply Reply to received messages --gpio-wrb GPIO_WRB GPIO_WRB Set a particular GPIO # to 1 or 0 --gpio-rd GPIO_RD Read from a GPIO mask (ex: '0x10') --gpio-watch GPIO_WATCH Start watching a GPIO mask for changes (ex: '0x10') --no-time Suppress sending the current time to the mesh --setalt SETALT Set device altitude (allows use without GPS) --setlat SETLAT Set device latitude (allows use without GPS) --setlon SETLON Set device longitude (allows use without GPS) --pos-fields [POS_FIELDS ...] Specify fields to send when sending a position. Use no argument for a list of valid values. Can pass multiple values as a space separated list like this: '--pos-fields POS_ALTITUDE POS_ALT_MSL' --debug Show API library debug log messages --test Run stress test against all connected Meshtastic devices --ble BLE BLE mac address to connect to (BLE is not yet supported for this tool) --noproto Don't start the API, just function as a dumb serial terminal. --version show program's version number and exit --support Show support info (useful when troubleshooting an issue)
very comprehensive. Check version
tingo@kg-core2:~ $ meshtastic --version 2.1.11
2023-07-30: c2 - install python meshtastic client
tingo@kg-core2:~ $ pip --version pip 23.1.2 from /usr/local/lib/python3.9/site-packages/pip (python 3.9) tingo@kg-core2:~ $ pip install --upgrade meshtastic Defaulting to user installation because normal site-packages is not writeable Collecting meshtastic Downloading meshtastic-2.1.11-py3-none-any.whl (90 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.0/90.0 kB 6.8 MB/s eta 0:00:00 Requirement already satisfied: pyserial>=3.4 in ./.local/lib/python3.9/site-packages (from meshtastic) (3.5) Requirement already satisfied: protobuf>=3.13.0 in ./.local/lib/python3.9/site-packages (from meshtastic) (3.20.3) Requirement already satisfied: requests>=2.25.0 in ./.local/lib/python3.9/site-packages (from meshtastic) (2.28.1) Collecting pypubsub>=4.0.3 (from meshtastic) Downloading Pypubsub-4.0.3-py3-none-any.whl (61 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.4/61.4 kB 23.6 MB/s eta 0:00:00 Collecting dotmap>=1.3.14 (from meshtastic) Downloading dotmap-1.3.30-py3-none-any.whl (11 kB) Collecting pexpect>=4.6.0 (from meshtastic) Using cached pexpect-4.8.0-py2.py3-none-any.whl (59 kB) Collecting pyqrcode>=1.2.1 (from meshtastic) Downloading PyQRCode-1.2.1.zip (41 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.9/41.9 kB 13.6 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: tabulate>=0.8.9 in ./.local/lib/python3.9/site-packages (from meshtastic) (0.8.10) Collecting timeago>=1.0.15 (from meshtastic) Downloading timeago-1.0.16-py3-none-any.whl (29 kB) Requirement already satisfied: pyyaml in ./.local/lib/python3.9/site-packages (from meshtastic) (6.0) Collecting ptyprocess>=0.5 (from pexpect>=4.6.0->meshtastic) Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB) Requirement already satisfied: charset-normalizer<3,>=2 in ./.local/lib/python3.9/site-packages (from requests>=2.25.0->meshtastic) (2.1.1) Requirement already satisfied: idna<4,>=2.5 in ./.local/lib/python3.9/site-packages (from requests>=2.25.0->meshtastic) (3.4) Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.local/lib/python3.9/site-packages (from requests>=2.25.0->meshtastic) (1.26.12) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/site-packages (from requests>=2.25.0->meshtastic) (2023.5.7) Building wheels for collected packages: pyqrcode Building wheel for pyqrcode (pyproject.toml) ... done Created wheel for pyqrcode: filename=PyQRCode-1.2.1-py3-none-any.whl size=36226 sha256=bd4ac5187d3232a9b6ecc70477337eb49f0f33aa132d66e347f4e8779094bf82 Stored in directory: /usr/home/tingo/.cache/pip/wheels/da/75/c0/38c7f82750de2725429b6b8571dca254249d73f6c882c5d9b1 Successfully built pyqrcode Installing collected packages: timeago, pyqrcode, ptyprocess, dotmap, pypubsub, pexpect, meshtastic Successfully installed dotmap-1.3.30 meshtastic-2.1.11 pexpect-4.8.0 ptyprocess-0.7.0 pypubsub-4.0.3 pyqrcode-1.2.1 timeago-1.0.16
2023-07-30: c2 - testing the board with esptool esptool version
tingo@kg-core2:~ $ esptool.py version esptool.py v3.3.1 3.3.1
try to detect the board
tingo@kg-core2:~ $ esptool.py chip_id esptool.py v3.3.1 Found 2 serial ports Serial port /dev/cuau0 Connecting...................................... /dev/cuau0 failed to connect: Failed to connect to Espressif device: No serial data received. For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html Serial port /dev/cuaU0 Connecting........ /dev/cuaU0 failed to connect: Could not configure port: (6, 'Device not configured') A fatal error occurred: Could not connect to an Espressif device on any of the 2 available serial ports.
re-try
tingo@kg-core2:~ $ esptool.py chip_id esptool.py v3.3.1 Found 2 serial ports Serial port /dev/cuau0 Connecting...................................... /dev/cuau0 failed to connect: Failed to connect to Espressif device: No serial data received. For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html Serial port /dev/cuaU0 Connecting..... Detecting chip type... ESP32-S3 Chip is ESP32-S3 Features: WiFi, BLE Crystal is 40MHz MAC: dc:54:75:d5:e9:5c Uploading stub... Running stub... Stub running... Warning: ESP32-S3 has no Chip ID. Reading MAC instead. MAC: dc:54:75:d5:e9:5c Hard resetting via RTS pin...
yes - the display turns off, and usbconfig now reports
root@kg-core2:~ # usbconfig -d ugen1.7 ugen1.7: <Espressif USB JTAG/serial debug unit> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
pressing the reset button on the board restores it to normal.
2023-07-30: firmware - looks like 2.1.19 is the newest stable firmware.
2023-07-30: c2 - and it looks like there is firmware running on it, because the display shows info about Meshtastic version 2.1.1. Lets see which port it uses
root@kg-core2:~ # sysctl dev.umodem.0.ttyname dev.umodem.0.ttyname: U0
so U0
root@kg-core2:~ # ll /dev/cuaU0 /dev/ttyU0 crw-rw---- 1 uucp dialer 0x1fd Jul 30 18:48 /dev/cuaU0 crw------- 1 root wheel 0x1fa Jul 30 18:48 /dev/ttyU0
2023-07-30: c2 - plugging it into my FreeBSD workstation, I get this in /var/log/messages
Jul 30 18:11:25 kg-core2 kernel: ugen1.7: <Espressif Systems LilyGo TLora-T3S3-V1> at usbus1 Jul 30 18:11:25 kg-core2 kernel: umodem0 on uhub5 Jul 30 18:11:25 kg-core2 kernel: umodem0: <TinyUSB CDC> on usbus1 Jul 30 18:11:25 kg-core2 kernel: umodem0: data interface 1, has no CM over data, has no break
usbconfig says
root@kg-core2:~ # usbconfig -d ugen1.7 ugen1.7: <Espressif Systems LilyGo TLora-T3S3-V1> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
device description
root@kg-core2:~ # usbconfig -d ugen1.7 dump_device_desc ugen1.7: <Espressif Systems LilyGo TLora-T3S3-V1> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x00ef <Miscellaneous device> bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0040 idVendor = 0x303a idProduct = 0x1001 bcdDevice = 0x0100 iManufacturer = 0x0001 <Espressif Systems> iProduct = 0x0002 <LilyGo TLora-T3S3-V1> iSerialNumber = 0x0003 <DC5475D5E95C> bNumConfigurations = 0x0001
current config description
root@kg-core2:~ # usbconfig -d ugen1.7 dump_curr_config_desc ugen1.7: <Espressif Systems LilyGo TLora-T3S3-V1> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA) Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x004b bNumInterfaces = 0x0002 bConfigurationValue = 0x0001 iConfiguration = 0x0005 <TinyUSB Device> bmAttributes = 0x00c0 bMaxPower = 0x00fa Additional Descriptor bLength = 0x08 bDescriptorType = 0x0b bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x08, 0x0b, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0002 <Communication device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0004 <TinyUSB CDC> Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x05, 0x24, 0x00, 0x20, 0x01 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x05, 0x24, 0x01, 0x00, 0x01 Additional Descriptor bLength = 0x04 bDescriptorType = 0x24 bDescriptorSubType = 0x02 RAW dump: 0x00 | 0x04, 0x24, 0x02, 0x02 Additional Descriptor bLength = 0x05 bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0085 <IN> bmAttributes = 0x0003 <INTERRUPT> wMaxPacketSize = 0x0040 bInterval = 0x0010 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x000a <CDC-data> bInterfaceSubClass = 0x0000 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0003 <OUT> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0084 <IN> bmAttributes = 0x0002 <BULK> wMaxPacketSize = 0x0040 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000
2023-07-24: the package arrived, straight into my mailbox. Package contents
1 X T3S3 V1.0 2 X 2.54mm Male PIN headers (1 row x 13) 1 X Battery Cable 1 X LoRa Antenna
2023-07-12: the order was shipped.
2023-07-10: From AliExpress, I ordered 1 x LILYGO® T3S3 V1.0 ESP32-S3 LoRa SX1280 2.4G Development Board WiFi Bluetooth Wireless Module 0.96 Inch OLED Display Type-C, SX1276 868 MHz from LilyGo official store. The price was USD 21.82, shipping USD 2.35, tax USD 5.55 , a total of USD 27.72.