💾 Archived View for thatit.be › 2024-07-07-10-40-08.gmi captured on 2024-08-31 at 12:05:56. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-08-18)

-=-=-=-=-=-=-

tinkering with the meshtastic build stuff

These are my (mostly) raw notes taken while figuring out how to flash, for a more digestible version, see the writeup.

writeup

notes

In order to build, I needed something called platformio.

nix-shell -p platformio

Next, I had to edit the platformio.ini file so that it would target my board.

I just put the default_envs under [platformio] to t-deck based on the .json files I saw in the boards sub-directory.

So now the top of my platformio.ini looks like this:

[platformio]
default_envs = t-deck
;default_envs = tbeam
...

Then I was able to kick things off:

platformio run

The much abbreviated output will look something like this:

[stephen@sasahi:~/firmware]$ platformio run
Processing t-deck (board: t-deck; platform: platformio/espressi
f32@6.7.0; framework: arduino)
---------------------------------------------------------------
Tool Manager: Installing espressif/toolchain-xtensa-esp32s3 @ 8
.4.0+2021r2-patch5
Downloading  [#####-------------------------------]   16%  00:0

<snip snip>

Wrote 0x1e66c0 bytes to file /home/stephen/firmware/.pio/build/t-deck/f
irmware.factory.bin, ready to flash to offset 0x0
==================== [SUCCESS] Took 192.52 seconds ====================

Environment    Status    Duration
-------------  --------  ------------
t-deck         SUCCESS   00:03:12.524
===================== 1 succeeded in 00:03:12.524 =====================

So it looks like it compiled into a single file:

/home/stephen/firmware/.pio/build/t-deck/firmware.bin

Next, I wanted to upload it.

Just a bunch of guessing from staring at platformio help I saw, device was a command.

So I listed the devices:

platformio device --list

[stephen@sasahi:~/firmware]$ platformio device
Usage: platformio device [OPTIONS] COMMAND [ARGS]...

Options:
  -h, --help  Show this message and exit.

Commands:
  list     List devices
  monitor  Monitor device (Serial/Socket)

[stephen@sasahi:~/firmware]$ platformio device monitor -h
Usage: platformio device monitor [OPTIONS]

Options:
  -p, --port TEXT              Port, a number or a device name
  -b, --baud INTEGER           Set baud/speed [default=9600]
  --parity [N|E|O|S|M]         Enable parity checking [default=N]
  --rtscts                     Enable RTS/CTS flow control
  --xonxoff                    Enable software flow control
  --rts INTEGER RANGE          Set initial RTS line state  [0<=x<=1]
  --dtr INTEGER RANGE          Set initial DTR line state  [0<=x<=1]
  --echo                       Enable local echo
  --encoding TEXT              Set the encoding for the serial port
                               (e.g. hexlify, Latin1, UTF-8)
                               [default=UTF-8]
  -f, --filter TEXT            Apply filters/text transformations
  --eol [CR|LF|CRLF]           End of line mode [default=CRLF]
  --raw                        Disable encodings/transformations of
                               device output
  --exit-char INTEGER          ASCII code of special character that is
                               used to exit the application [default=3
                               (Ctrl+C)]  [default: 3]
  --menu-char INTEGER          ASCII code of special character that is
                               used to control terminal (menu)
                               [default=20 (DEC)]
  --quiet                      Diagnostics: suppress non-error messages
  --no-reconnect               Disable automatic reconnection if the
                               established connection fails
  -d, --project-dir DIRECTORY
  -e, --environment TEXT       Load configuration from `platformio.ini`
                               and the specified environment
  -h, --help                   Show this message and exit.


[stephen@sasahi:~/firmware]$ platformio device monitor -p /dev/ttyACM0 

Please build project in debug configuration to get more details about an 
exception.
See https://docs.platformio.org/page/projectconf/build_configurations.htm
l


--- Terminal on /dev/ttyACM0 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default,
 direct, esp32_c3_exception_decoder, esp32_exception_decoder, hexlify, lo
g2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H





--- File to upload: .pio/build/t-deck/firmware.bin
--- Sending file .pio/build/t-deck/firmware.bin ---

^@....................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
.....................................................................Disconnected ((5,
 'Input/output error'))
Reconnecting to /dev/ttyACM0 
Please build project in debug configuration to get more details about an exception.
See https://docs.platformio.org/page/projectconf/build_configurations.html


         Connected!
��@INFO  | ??:??:?? 0 

//\ E S H T /\ S T / C

INFO  | ??:??:?? 0 Booted, wake cause 0 (boot count 1), reset_reason=reset
DEBUG | ??:??:?? 1 Filesystem files (499712/1048576 Bytes):
DEBUG | ??:??:?? 1  /prefs/channels.proto (94 Bytes)
DEBUG | ??:??:?? 1  /prefs/config.proto (97 Bytes)
DEBUG | ??:??:?? 1  /prefs/db.proto (553 Bytes)
DEBUG | ??:??:?? 1  /prefs/module.proto (111 Bytes)
DEBUG | ??:??:?? 1  /static/.gitkeep (0 Bytes)
DEBUG | ??:??:?? 1  /static/Logo_Black.svg.gz (602 Bytes)
DEBUG | ??:??:?? 1  /static/Logo_White.svg.gz (610 Bytes)
DEBUG | ??:??:?? 1  /static/apple-touch-icon.png.gz (3164 Bytes)

<snip> <snip>

After issues with the flashing…

There’s a convenient script for doing the flashing. Make sure it’s in flash mode, then:

./bin/device-install.sh -p /dev/ttyACM0 -f .pio/build/t-deck/firmware.bin

The output will look a lot like the web flasher output.

Looks like I’m missing some bin files it wants to push.

There’s a convenient script for doing the flashing. Make sure it’s in flash mode, then:

./bin/device-install.sh -p /dev/ttyACM0 -f .pio/build/t-deck/firmware.bin

The output will look a lot like the web flasher output.

The script looks for files that are not built by this project.

I tried to use the firmware-ota repo, but despite making a venv, it was trying to pip install deps to the operating system instead of my venv.

On the discord I spotted a note about the buildfs target for platformio, which built the littlefs.bin that’s sort of referenced by the script. I had to rename it so it would fit the file pattern :-/

After a whole bunch more fighting…. I realized I missed something important in the output.

Wrote 0x1e66c0 bytes to file /home/stephen/firmware/.pio/build/t-deck/f
irmware.factory.bin, ready to flash to offset 0x0

So I’ve been trying to flash the wrong image.

But through all the running around, at least I’ve found the tool for the flashing – esptool. And a bunch of additional dependencies.

Note:

nix-shell -p platformio esptool python3Packages.pip pkg-config python3Packages.protobuf python3Packages.grpcio python3Packages.grpcio-tools

flashing command:

esptool.py write_flash 0x00 .pio/build/t-deck/firmware.factory.bin 

Tags

#raw

#cli

#meshtastic

Navigation

index

tags

Backlinks

2024-07-07 - building meshtastic from git at the cli

updated: 2024-07-07 10:44:35

generated: 2024-08-16