Annex Toolkit multi platform beta version

All that relates to the Annex Toolkit Utility
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Annex Toolkit multi platform beta version

Post by cicciocb »

Hi All,
I spent some time recently trying to re-develop the AnnexToolKit so that it could work on different platforms, in particular Linux, Windows and Mac.

It is now based on JavaFX hence it is compatible with almost all the OS but the look and feel is very similar to the previous utility.
image.png
The package is common to all the versions but the installation procedure is different depending on the platform.
The package already contains the latest version of the firmwares.

The Mac version should work but the upload of data files is not yet supported as some utilities must be recompiled under that OS.

The package can be downloaded here
annextoolkit_release_0.5.tar.gz
The preliminary installation procedure can be found below.

Please let me know and report any snags here.

Thanks

cicciocb


Annex Toolkit multi platform preliminary installation instructions (update version 0.5)


Linux (tested with Ubuntu and MX Linux )

Extract the file annextoolkit_release_0.5.tar.gz into a dedicated folder

Download the JDK package from [External Link Removed for Guests]

Extract it in the previous folder using the default name zulu15.29.15-ca-fx-jre15.0.2-linux_x64

Open a terminal in the folder for typing the following commands

Install esptools with

Code: [Local Link Removed for Guests]

sudo apt-get update 
sudo apt-get install esptool

install the lib32 with

Code: [Local Link Removed for Guests]

sudo apt-get install lib32stdc++6

Test that all the utilities works properly:

Code: [Local Link Removed for Guests]

./esptool
esptool.py v2.6
usage: esptool [-h] [--chip {auto,esp8266,esp32}] [--port PORT] [--baud BAUD]
               [--before {default_reset,no_reset,no_reset_no_sync}]
               [--after {hard_reset,soft_reset,no_reset}] [--no-stub]
               [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
               ……..

Code: [Local Link Removed for Guests]

./gen_esp32part 
usage: gen_esp32part [-h] [--flash-size [{1MB,2MB,4MB,8MB,16MB}]]
                     [--disable-md5sum] [--no-verify] [--verify] [--quiet]
                     [--offset OFFSET] [--secure]
                     input [output]
gen_esp32part: error: the following arguments are required: input

Code: [Local Link Removed for Guests]

 ./mkfatfs
Missing required positional argument <fatfs image name>
Version cicciocb 03/2021
Usage: ./mkfatfs [-c <fatfs directory>] [-t <partition table>] [-l <partition label>] <fatfs image name>
Options:
	 -c <fatfs directory>	Set directory to build fatfs from to <fatfs directory>. Defaults to 'image'
	 -t <partition table>	Set file to read partition table from to <partition table>. Defaults to 'partition_table.bin'
	 -l <partition label>	Set label of partition from partition table to use to <partition label>. Defaults to 'ffat'

Code: [Local Link Removed for Guests]

 ./mkspiffs 
PARSE ERROR:  
             Required arguments missing: visualize, list, unpack, add, create, image_file

Brief USAGE: 
   ./mkspiffs  {-c <pack_dir>|-a <file_name>|-u <dest_dir>|-l|-i} [-m
               <full_name>] [-d <0-5>] [-b <number>] [-p <number>] [-s
               <number>] [--] [--version] [-h] <image_file>

For complete USAGE and HELP type: 
   ./mkspiffs --help
Once verified that all the utilities works, run the program with the command

Code: [Local Link Removed for Guests]

./linux.sh
If there are problems with the serial port access, please observe the following instructions :

Serial port access is limited to certain users and groups in Linux. To remedy this, open a terminal and enter the following commands. Don't worry if some of the commands fail. All of these groups may not exist on every Linux distro. (Note, this process must only be done once for each user):

Code: [Local Link Removed for Guests]

sudo usermod -a -G uucp username
sudo usermod -a -G dialout username
sudo usermod -a -G lock username
sudo usermod -a -G tty username
Replace the username parameter with your current username. (If you are not sure what your username is, type whoami and it will tell you.) If you are using SUSE 11.3 or higher, replace the '-a -G' flags with a single '-A' flag. Log out and you should have access to the serial port after logging back in.
More details here
[External Link Removed for Guests]



MacOS

Extract the AnnexToolKitJava zip into a dedicated folder

Download the JDK package from [External Link Removed for Guests]

Follow the same instructions as for Linux taking into account that the utilities mkfatfs and mkspiffs do not work actually on that OS.


Windows (tested with win7 and win10)


Extract the AnnexToolKitJava zip into a dedicated folder (let’s say /annex)

Download the JDK package from
[External Link Removed for Guests]

Extract it in the same folder using the default name zulu15.29.15-ca-fx-jre15.0.2-win_x64

Run the program double clicking on win.bat


IMPORTANT (for both linux and windows):
When the program starts, this warning message appears in the console :

Code: [Local Link Removed for Guests]

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.fxmisc.richtext.TextFlowExt (file:/home/ubuntu/AnnexToolKit/AnnexToolKit.jar) to method javafx.scene.text.TextFlow.getTextLayout()
WARNING: Please consider reporting this to the maintainers of org.fxmisc.richtext.TextFlowExt
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
This message can be simply ignored.


Known issues:


Some texts changes in size when other elements are selected
The toolkit must be installed in a folder without spaces in all the path
The OTA server requires elevation (root) under linux
The "greyed" TABS are simply not yet available
You do not have the required permissions to view the files attached to this post.
User avatar
Electroguard
Posts: 179
Joined: Mon Feb 08, 2021 6:22 pm
Has thanked: 40 times
Been thanked: 102 times

Re: Annex Toolkit multi platform beta version

Post by Electroguard »

Have used it on linux for a blue button read of esp8266 and esp32, then a new yellow button+full data install to esp8266, and a green button esp32 firmware-only update - all worked great... and is already such a useful asset that I've created a desktop launcher for it!
It needs the wired ethernet option adding to the UDP Console, and would be useful if the 'Message to send' and 'Message received' windows in the UDP Console could be widened to take advantage of the empty space on the right.
Excellent as usual CiccioCB, thank you for all your time and efforts.
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by cicciocb »

Thanks Robin for the feedback.

Maybe you could share the desktop launcher.

What do you mean for wired Ethernet option?
The possibility to choose from several local networks ?
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by cicciocb »

I forgot to say that I'm ready to accept any suggestions on how improve the tools, including the interface aspects.

In fact JavaFX programs can be styled using .css files ......
User avatar
PeterN
Posts: 97
Joined: Mon Feb 08, 2021 7:56 pm
Location: Krefeld, Germany
Has thanked: 41 times
Been thanked: 45 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by PeterN »

It is late and it may be my fault: I am a bit confused about the "Extract the AnnexToolKitJava zip into a dedicated folder"

I find the tar-archive within the gz-file and within this the file annextoolkit_release_0.5.tar

There I find indeed the file AnnexToolKit.jar wich can be started in the run time env.
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by cicciocb »

[Local Link Removed for Guests] wrote: [Local Link Removed for Guests]Mon Apr 19, 2021 8:10 pm It is late and it may be my fault: I am a bit confused about the "Extract the AnnexToolKitJava zip into a dedicated folder"

I find the tar-archive within the gz-file and within this the file annextoolkit_release_0.5.tar

There I find indeed the file AnnexToolKit.jar wich can be started in the run time env.
Yes you are right, I forgot to rename the file into the procedure (it was a .zip initially).

Simply extract the content of the file into any folder and include, in the same folder, the JRE package downloaded.

I included the compressed package into a .tar to maintains the file attributes for linux
User avatar
Electroguard
Posts: 179
Joined: Mon Feb 08, 2021 6:22 pm
Has thanked: 40 times
Been thanked: 102 times

Re: Annex Toolkit multi platform beta version

Post by Electroguard »

What do you mean for wired Ethernet option?
The possibility to choose from several local networks ?
Yes, the old version allows selecting an IP according to what networks interfaces are available, in my case I have wifi and rj45 wired ethernet.

To create a desktop launcher on MX Linux is just a matter of right-clicking the desktop and selecting 'Create Launcher', then browsing to the new Toolkit folder for selecting the filename and its folder name.
It is not essential to select an icon, but if an appropriate picture is available it can be used by clicking where it says 'No icon'.
It takes several seconds while MX scans all available icon files, then eventually a 'Select an Icon' window will pop up with a 'Select Icon from:' dropdown, selecting the dropdown arrow offers 'Image Files' at the bottom where you can drill to the appropriate picture.
That all sounds a bit long-winded, so I've uploaded a youtube video showing what to do... [External Link Removed for Guests]
User avatar
Electroguard
Posts: 179
Joined: Mon Feb 08, 2021 6:22 pm
Has thanked: 40 times
Been thanked: 102 times

Re: Annex Toolkit multi platform beta version

Post by Electroguard »

Several of the Toolkit tabs are greyed out and unavailable, including 'Change Log' - but nothing's mentioned about it in the 'Known Issues', so is there something I need to do to make them available ?

Update: I've just noticed they are greyed out in your screen dump also, so must obviously already be a known issue.

Screenshot.png
You do not have the required permissions to view the files attached to this post.
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by cicciocb »

Hi Robin,
I thought it was obvious but these TABS just haven't been developed yet.
This "preliminary" version aims to check if people are able to run it under linux / mac. As soon as I have enough feedback, I will continue development with the goal of replacing the current tool.


Thanks for your video procedure, very clear and simple.

cicciocb
cicciocb
Site Admin
Posts: 308
Joined: Mon Feb 03, 2020 1:15 pm
Location: Toulouse
Has thanked: 85 times
Been thanked: 197 times
Contact:

Re: Annex Toolkit multi platform beta version

Post by cicciocb »

[Local Link Removed for Guests] wrote: [Local Link Removed for Guests]Mon Apr 19, 2021 8:58 pm
What do you mean for wired Ethernet option?
The possibility to choose from several local networks ?
Yes, the old version allows selecting an IP according to what networks interfaces are available, in my case I have wifi and rj45 wired ethernet.
In the current tool, the network selection is in the OTA page and not in the UDP (this is the reason of my question).

The current tool should work differently as it should answer on all the local interfaces (even if the interface shows only the first local IP).
You should try and confirm if this is true for your configuration.

This means that the IP selection is not required anymore (eventually I could show all the local IPs)
Post Reply