owenduffy / tinydevicecapture

6 stars 0 forks source link

wrong tinySA screen size, rgb565 format should be default #1

Open Ho-Ro opened 1 month ago

Ho-Ro commented 1 month ago

Hi owenduffy, nice improvement!

I detected one minor issue - the tinySA screen format is not correct (line 67-69), it should be 320x240:

if devicename == 'tinysa':
    width = 480
    height = 320

The default format should be rgb565 b/c not all devices support rle - some ideas:

  1. Let the user decide (easiest solution).
  2. Chose the default format depending on the devices (Nano: rle, tiny: rgb565).
  3. Does not work :(

EDIT: deleted non-funtional idea #3

owenduffy commented 1 month ago

Hi Martin,

Thanks, I will fix the tinysa defect.

I have thought about smarter detection... not resolved yet. I mentioned scanning the help as a possibility elsewhere.

I understand what you say about defaults.

My use case is that there is a copy of the base script for each device type, and a double click in windows runs without arguments... so I set defaults for each as needed, if needed.

That is a bit moot for the Bluetooth connection as some arguments are needed... so a bat file (or shell script in *nix)... different horses for different courses!

A user can hack the script to change the default to suit themselves.

Perhaps in time, Erik will implement the same RLE in his tiny devices.

Thanks again for your work related to the tiny devices (including the script this one was derived from). Especially I value your periodic builds. though I would like that they were updated more regularly.

Owen

owenduffy commented 1 month ago

I detected one minor issue - the tinySA screen format is not correct (line 67-69), it should be 320x240:

Fixed 236d123e997140472ead01fceff8cf848d49cbab , thanks Martin.

Ho-Ro commented 1 month ago

I found a reliably working solution for the RLE capability detection, issue the command capture rle and check the few first bytes for a valid RLE header and decode accordingly. I implemented it into my toolbox as nanotiny_capture.py.

usage: nanotiny_capture.py [-h] [-b BAUDRATE] [-d DEVICE] [-n | --h4 | -t | -u | -p] [-i] [-o OUT]
                           [-s {1,2,3,4,5,6,7,8,9,10}] [-v]

Capture a screenshot from NanoVNA-H, NanoVNA-H4, tinySA, tinySA Ultra or tinyPFA.
Autodetect the device when connected to USB.
Use RLE compression if available, especially useful e.g. for slow serial connections.

options:
  -h, --help            show this help message and exit
  -b BAUDRATE, --baudrate BAUDRATE
                        set serial baudrate
  -d DEVICE, --device DEVICE
                        connect to serial device
  -n, --nanovna         use with NanoVNA-H (default)
  --h4, --nanovna-h4    use with NanoVNA-H4
  -t, --tinysa          use with tinySA
  -u, --ultra           use with tinySA Ultra
  -p, --tinypfa         use with tinyPFA
  -i, --invert          invert the colors, e.g. for printing
  -o OUT, --out OUT     write the data into file OUT
  -s {1,2,3,4,5,6,7,8,9,10}, --scale {1,2,3,4,5,6,7,8,9,10}
                        scale image
  -v, --verbose         verbose the communication progress

Especially I value your periodic builds. though I would like that they were updated more regularly.

I try to follow the development of DiSlord and Erik, but unfortunately they often release binaries without pushing the source code to GitHub (or at least the push is delayed). Also, I've been a lot on the road for my company during the last few months, without access to my personal gear.

owenduffy commented 1 month ago

I have taken up a suggestion by Martin, thanks, and pushed a revised script. It is pending, I hope, a CRC with the download packet.

Owen