Skip to content

Releases: Carglglz/upydev

upydev 0.4.3

29 Sep 19:48
565123d
Compare
Choose a tag to compare

Fix

  • wss_repl.py dropped websocket_help dependency.
  • upyutils/develop/upynotify.py pwm bug, upytuils/ble/ble_uart_peripheral.py rxbuf bug.
  • wss WebSocketDevices now use ROOT CA-signed certificate
    (ROOT CA key/cert generated with $ upydev kg ssl CA)
  • allow_abrev bug for $ upydev kg ssl dev status -a option (--a for python3.8+).
  • fix fast get/dsync shasum animation for BleDevices.
  • improve certificate info issuer/subject.
  • fix dev_platform in net scan for esp8266
  • now serial repl works with screen too (using repl -sc) (in case picocom is not available)
  • fix ssl error on stream_test in WebSocketDevices using wss.
  • fix paste mode in serial repl missing to print first line output.
  • fix net scan bug for esp8266
  • fix dsync command help info.
  • fix uconfig (config in shell-repl) help info.
  • fix config add_param to allow custom root_path
  • update otatool.py, ota.py to use ROOT CA certificate as CA.

Added

  • Added ursyslogger.py to upyutils/develop to enable remote logging with rsyslog as endpoint.
  • Added test_dev.py to run parametric tests using yaml files.
  • Added benchmark integration with pytest-benchmark
  • Added network tests with iperf3:uiperf3.py
  • Added multiple tests and benchmarks using yaml files.
  • Added benchmarks from micropython/tests/perf_bench
  • play command to run custom tasks in ansible playbook style.
  • Added example playbooks
  • uptime and cycles utils/commands.
  • upylog file rotation, so file log size does not go over a limit size. (2KB default)
  • uptime.py and cycles.py to upyutils_dir (so it can be installed with update_upyutils cmd)
  • mv command to change file names.
  • kg ssl CA to generate a ROOT CA key/cert to be able to generate device's and host CA signed certificate.
  • kg ssl host to generate a HOST key/cert signed by ROOT CA.
  • kg ssl dev add/export to add or export a device certificate.
  • kg ssl CA add/export to add or export a ROOT CA key/cert pair.
  • kg ssl dev/host/CA status to check expiration date of certificates.
  • The new CA-host-dev certificate chain of trust model allows log in to wss WebSocketDevices from multiple locations/hosts (by exporting the ROOT CA key/cert pair to a new host and add them there to generate the proper key/cert for that host).
  • nwatchdog timer kwargs.
  • net scan results are sorted by RSSI value.
  • local path in shell-repl prompt is now aware of current git branch.

upydev 0.4.2

10 Jul 18:42
db41a0f
Compare
Choose a tag to compare

Fix

  • fix lcd ~ home user expand in shl & ssl key,cert gen for zerotier devices with custom port
  • fix test_custom_cmd.py reload script on exception
  • clarify extra free RAM in custom esp32 OTA SSL build
  • fix file not found error in put command if file is indicated with absolute path
  • fix datetime command missing
  • import os missing with put, get commands if -dir indicated

upydev 0.4.1

15 Mar 18:38
cea7f2c
Compare
Choose a tag to compare

Fix

  • optimized autocompletion of subcommands and options
  • upydev cli startup time

upydev 0.4.0

13 Mar 22:57
eefda65
Compare
Choose a tag to compare

Fix

  • hard reset -hr option for reset command
  • added missing commands touch, cd.
  • fix -h help for filesystem commands
  • autocomplete options

Added

  • autocomplete commands with multiple options as subcommands

upydev 0.3.9

12 Mar 17:37
fc62662
Compare
Choose a tag to compare

Fix

  • parse additional positional args in cli bug

upydev 0.3.8

04 Mar 21:53
9cf6c74
Compare
Choose a tag to compare

Added

  • added command history file to shell-repls
  • added tests and example tests to run with devices
  • added shell support for command concatenation (&&)
  • added shell basic support for pipe device output to a local file (>, >>, |)
  • register command to register a device name or group as a callable shell function
  • ota command to do OTA Firmware updates (esp32). This needs ota.py for network (LAN/WiFi) or otable.py for BLE. (upyutils directory) and firmware.bin file in build-GENERIC_OTA or from micropython esp32-ota downloads.
  • ota with -sec option to do OTA over TLS. (This needs kg ssl first).
  • rsa sign, rsa verify commands to sign file or verify signatures made with device RSA key
  • kg rsa host, to generate a host RSA key pair and send public key to device.
  • rsa sign host [FILE] to sign a file with host RSA key.
  • rsa verify host [FILE] to verify in the device a file signature made with host RSA key
  • rsa lib in upyutils to support RSA key load, sign, verify, encrypt, decrypt,
    generation and export in PEM format
  • kg rsa added option -rkey to remove RSA private key from the host, so in combination with -tfkey option, the RSA private key will be stored only in the device.
  • rsa auth to authenticate a device with a RSA encrypted challenge.
  • shasum.py lib in upyutils to support hash SHA-256 check
  • shasum and shasum_c to compute hash SHA-256 of files and check shasum files.
  • ls command to improve ls from upysh, with multiple dirs and pattern matching
  • cat command that accepts multiple files and pattern matching
  • refactored help
  • dropped wlan utils
  • dropped prototype commands (this will be a stand alone cli or add-on for upydev)

Fix

  • mpyx command with multiple files
  • kg wr now use RSA public key for password derivation and send encrypted password
    that is decrypted and stored in device.
  • Load time in MacOS caused by upydevice->BleDevice->bleak->corebluetooth
  • Save in ecdsa key/cert directly in DER, no need for openssl in PATH.
  • Allow mdns name in ssl certificate.
  • Improved file io operations (put, get, dsync ...), more flexibility indicating files / dirs / pattern matching etc. Improved overall performance, specially for WebSocketDevices.
  • fix ping, probe for zerotier devices (this needs updated config, see how-to section in docs.)
  • fix update_upyutils if dir lib does not exists.
  • refactored shells-repls, now shl, or rpl commands only

upydev 0.3.7

16 Dec 21:19
a5b228d
Compare
Choose a tag to compare

Added

  • rssi command in shell repls to get RSSI value (Wifi or Ble)
  • make_sgroup / mksg command to create a subgroup of an existing group of devices.
  • set_hostname command to set hostname of the device for dhcp service (needs wpa_supplicant.py)
  • set_localname command to set localname of the device for ble gap/advertising name (needs ble_uart_peripheral.py)
  • Now -@ option accepts multiple devices, names with * wildcard or global group gg or other group names, e.g. upydev check -i -@ esp\* dev{1..4} mytestgroup
    will expand to all devices that start with esp , dev1 dev2 dev3 dev4 and devices configured in mytestgroup

Fix

  • firmwaretools.get_fw_versions update after micropython.org\all not working anymore.
  • fix device name instead of None in put, get, fget, dsync in sslweb_repl with -nem mode enabled.
  • fix fget disconnection error.

upydev 0.3.6

24 Oct 21:54
6f852e1
Compare
Choose a tag to compare

Added

  • zerotier compatibility through raspberry pi bridge (port forwarding + ufw route rules) and -zt [HOST IP/BRIDGE IP] option to indicate host zerotier ip and raspberry pi bridge local ip for ssl
    shell-repl mode. Also -zt option with config command compatibility.
  • mDNS .local/dhcp_hostname compatibility, so device configuration works across networks, e.g, -t argument now can accept -t mydev.local and resolve to device ip.
  • added -zt [IP] in keygen ssl for zerotier wss-sslwebrepl mode
  • wpa_supplicant.py utility in upyutils
  • New buzzer effects in buzzertools.py: error, warning_call, phone_call, door_bell.
  • Added docs for zerotier bridge configuration in HOWTO

Fix

  • fget error on connection, and unintended verbose output on close.
  • check -i, info commands in -apmd, if connected to AP of the device.
  • fix ssl cert authentication in wss mode if using .local/dhcp_hostname target.

upydev 0.3.5

09 Sep 20:24
a6ae51c
Compare
Choose a tag to compare

Fix

  • set_ntptime with WebSocket Devices
  • blerepl paste command
  • paste command in sslweb_repl -nem mode

Added

  • get rssi value in blerepl

upydev 0.3.4

14 Aug 14:02
Compare
Choose a tag to compare

Fix

  • Fix autocomplete on tab in REPL while import or from X import in SERIAL REPL

  • Command names change:

    • filesize --> du,
    • filesys_info --> df
    • fw --> fwr
    • d_sync --> dsync
    • sync --> fget
  • Catching passwords too short for AP configuration

  • Refactor help info organisation for easy reading.

  • Refactor device management actions (configuration, groups...)

  • Refactor firmware actions, -i option to check firmware and platform match. (from firmware file name)

  • tree command in upysh2.py unix/linux like.

  • drop mpy-cross dependency, better to build from source.

Added

  • Autocomplete shr@ , ssl@, wssl@ and ble@ commands with saved devices in UPY_G global group
  • pytest and pytest-setup command in SHELL-REPLS
  • pytest and pytest-setup command mode in CLI.
  • commands that start with % or not registered in SHELL-REPLS commands are forwarded to local shell (works with alias too)
  • Ble SHELL-REPL ble@[device]
  • set command to set current device configuration of a device saved in global group
  • check command to see device configuration (-i to see more info if device available)
  • dm command to see help about DEVICE MANAGEMENT
  • gc command to see help about GENERAL COMMANDS
  • wu command to see help about WLAN UTILS COMMANDS
  • sd command to see help about SD UTILS COMMANDS
  • pro command to see help about PROTOTYPE COMMANDS
  • gg to see global group
  • -gg flag to set -G flag to global group (-gg == -G UPY_G)
  • -ggp flag to set -GP flag to global group (-ggp == -GP UPY_G)
  • % before any command e.g. %config display help info about that command.
  • probe command to test if a device/group is reachable
  • scan command to look for devices (serial [-sr], network [-nt] or ble [-bl])
  • shl / shell, and rpl / repl commands works with @ or -@ and will detect device type, redirecting to the proper SHELL-REPL / REPL type.
  • put, get, install, fget, dsync, file operations now support indicating file/files/cwd/expression as a second argument, e.g, upydev put this_file.py, upydev put demo_*.py, upydev put fileone.py filetwo.py, upydev put cwd -dir lib ...
  • Alias and positional args for keygen/firmware/flash actions upydev kg/keygen rsa/wr/ssl, upydev fwr get/list latest, upydev flash esp32-idf4-20200122-v1.12-76-gdccace6f3.bin,upydev flash pybv11-20200114-v1.12-63-g1c849d63a.dfu ...
  • Alias and positional args for make_group, mg_group actions mkgroup/mkg, mggroup/mgg, and see. e.g upydev see MY_GROUP, upydev mkg MY_GROUP -devs mydevtest 192.168.1.40 mypasswd, upydev mgg MY_GROUP -add sdev2 /dev/tty.SLAB_USBtoUART 115200
  • Alias and positional args for SD actions upydev sd enable/init/deinit/auto
  • upydev pypi version checking on h/ help command.
  • -gf flag to indicate a group file operation (files are upload/download to/from a directory with the name of the device in the current working directory). It uses local group configuration file if available (unless -gg flag is indicated), otherwise it falls back to global group configuration
  • -rf flag for dsync mode, to remove files or directories deleted in local dir.
  • -to [devname] flag now can be used with -tfkey to transfer keys by USB/Serial
  • -d flag for dsync to sync from device to host.
  • backup command == dsync . -d to make a backup of the device filesystem
  • rsync command == dsync [DIR] -rf -wdl to recursively sync (deleting files too)