Repository navigation
uPyLoader doesn't work.... #30
Description
Activity
You can revert to older version or wait for a day until all is tested and fixed (actually more because I don't have ESP with me, so I can't test things that require connection). The issue is due to changes in project structure so that it's easier to maintain, but unfortunately few things were not refactored correctly.
How can I revert to older version... I don't have any backup 👎
Git itself is tracking histories ;) Something like this should work
git checkout 43d0e05 ., although I'm not sure if I got the ID right. You need to get on this commit 43d0e05.Alternatively you could use built release (or source codes from release). Only missing feature would be updating timestamps, that were added later. Next time I will make dev branch so that main stays intact, sorry for inconvenience.
Success, many thanks.... works OK.
Could you try new commit if everything is alright? I have checked all functions that can be used without connection, but there might be some leftover issue. In case it crashes somewhere, just send traceback screenshot like you did last time. Thanks!
I'm at work now and don't have any 8266 board with... as soon as I am at home I will give you feedback.
The first message... git clone... OK, python3 main.py... OK... programme started, connect... OK, list of files on Remote... OK, File-Navigate... OK, file transfer to Remote... OK, file transfer to Local... OK, Compile does nothing... that is all for now... I do more tests later, I will give you feedback...
I will be back in two hours.
Please, explain to me the philosophy of (right mouse-click) commands 'Transfer' (does nothing)
and 'Set as destination' (does nothing)...... compile works... after correct Settings in Options...
It seems that all functions (which I am able to check) are working OK...
BUT I have some ideas which I want to share with you...
a/ I have been using esptool v2.1 (for NIX and WIN environment) for a long time and that's why the function 'File-Flash firmware' doesn't have sense anymore for me... and I guess also for others... IMHO would be better to call some batch files (X.sh for NIX or Y.bat for WIN) which the user can 'Pick' instead of 'Python2 path'... and these batch files could have only one variable 'Firmware file' ... do it the same way as in 'Option-Settings-Editor'
b/ It would be nice if uPyLoader remembered position and size of all windows from the last session... it is really annoying to manipulate the windows to my working position and size after every new start
c/ ... also to open the same 'Local directory' after the new start would be awesome :-)
d/ I open the files for editing with my favorite external editor... nice feature... would it be possible also for files from 'Remote'? .... and after editing to save back to 'Remote'?
e/ what about the function 'Synchronize'? ... the newest files would be copied between 'Local' and 'Remote'
f/ The current GUI is a bit confusing... e.g. 'MCU name' has too long field and 'PC path' too short... I allowed myself to make a small picture with IMHO a little clearer GUIPlease take my comments only as the inspiration and in no way as the criticism.
uPyLoader is very handy tool with a lot of assets, it is 'my right hand' when working with MP or CP.Hi, thanks for testing it for me. Well, the right-click context menu is currently just placeholder, the development is happening in dev-transfer branch so it won't break things again. They will be doing something eventually :)
Regarding the ideas:
a)I'm missing how is esptool 2.1 related to compilation being obsolete.Oh I completely misread there, my mind was in other places :) Still, I'm little confused - I'm also using esptool to flash firmware, the dialog is just a nice GUI interface to it. The problem is that esptool was only for python2 at the time of implementation. I checked their pages now and it seems python 3 is now supported too, so this may be obsolete. Is this what you are trying to tell me?
b)It does this. It's supposed to do this. First problem I noticed is that it's no longer able to create newconfig.jsonif not present. Probably something to do with patch for hidden config files. Second issue which you may be referring to is the ratio between size of Local and MCU column? There's problem that Qt doesn't save that info, so I will have to make a workaround. But with existing config file, position and size of window is saved and restored (just tested).
c) Also related to missing config file, seems like I'll have to fix it right away.
d) That's hard one, as IDE has no idea of remote filesystem. Idea: uPyLoader would have to make file in temp folder, open that in IDE and check for changes on that file every so often. Not very resource friendly (when to stop tracking file?) and the filename in IDE would be garbage (e.g.tmpxp8sd0x9.py) as to prevent conflicts. But maybe if it was just one file at a time, it might be doable.
e) Not implemented yet but considered in new design. @jdeltoft proposed to compute hashes and check if differs, which seems to be the best way for now. You still have to click button for transfer - not because I want to annoy you, but it would wear down ESP's flash too fast if every (even intermediary) change would cause transfer.
f) New design completely removes those 2 text fields and will probably move some of the buttons to context menu (right-click), e.g. Remove, Rename,.. The interface should then be a lot cleaner.Hi, it was a long day for me... but now I am back to the PC...
ad a/ yes, exactly, I wanted to say that esptool v2.1 is the newest version and AFAIK it is possible to install it in both Pythons (2.7 or 3.x)... works also for both esp8266 and esp32... a lot of parameters... this whole thema of flashing with optional batch files would solve the problem forever... the user will only pick the right .sh/bat for erasing, flashing and binary file (only one for esp8266)... it is more complicated for esp32 (more memory segments) but it is also simply solvable... field for binary file stays empty and the user will be responsible for including the right parameters into batch file.... there are a lot of others ways how to solve it.... but leave the output window to see the progress of activity erasing/flashing
ad b,c/ I'm glad you agree with my opinion... opening the new session should start there where the last session ended...
ad d/ I have been using also rshell which is really a very handy tool but only command line... look at that https://github.com/dhylands/rshell ... good inspiration and may help with your implementation
ad e/ rsync is also included to rshell... nice feature
ad f/ to tune the GUI always makes sense, it gets a user community... the easier the better... but it's work on all the time and we will have still time to discuss it...I am going to pull new version now and I will give you feedback
I did some tests and results are:
ad b,c/ the last directory for Local is remembered... good, the uPyLoader's main window is at the same position and size as during the last session... good, the columns Local and Remote don't start with the same width as were adjusted during the last session... bad, I can modify the width of columns Size, Type, Date_Modified but not the column Name... bad, the window of Terminal (View-Terminal) holds the position and size from the last session... goodNew info:
I did some tests with MP on esp32... from here https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo... board is connected, the terminal is working, the process of 'Init transfer files' failed... see picture

It would be nice if uPyLoader worked also with MP for esp32... Do you have any plans in this direction?Regarding the ESP32, someone made an unfortunate decision to throw error if something tries to communicate on the same UART as REPL. This makes any custom communication over the same channel impossible (you would have to connect another UART to USB device to ESP32 == new COM port). There is not really anything I can do - simple REPL is unreliable for data transfer and I can't use anything else. Shame on the developers. Your only option is to try WiFi communication which doesn't require scripts (but do require Websockets implementation, which when I last checked was still in progress)
43 remaining items
But what is wrong when you send only ASCII now? ... the short internal buffer on WIPY? ... at the beginning, it was the opposite, WIPY working and original MPY not... where is the problem? ... incompatibility of both pythons?
I'm not sure, there might be some different behavior. It can be as simple as function returning
strobject instead ofbytesand causing script to fail. I would need ESP32 with WiPy to debug, or at least remote session through TeamViewer or similar.Please, read the hotmail, I am ready to do it still today.... no traffic jam now 😄
FYI... esp32 -> MPYORG from Damien and version from LOBORIS are working like a charm 😃
Reacted by BetaRavenerA / uPyLoader version
I tested all versions and I sent overview table a while ago. So there are two versions (branches) and none of them works for all implementations. In this situation, I would rather concentrate on completion of version for esp8266 and esp32, which is based on MPYORG.
If you ever have strength, time and taste, you can work to unify them with PYCOM and Adafruit.B / Directories
I believe that we need the functions Create, Delete and Enter into the directory on both sides (Local and Remote).
I agree also with the flat structure of the directories. The user will be responsible for directory selection on Local and Remote
... allowed function between Local and Remote... ONLY a transfer of files (not directories)
... at Local to allow create, delete, copy, rename and edit files
... at Remote to allow Delete and Execute files onlyC / GUI... I would like to see the following:
- The user will enter into <Project_directory>=Root-local by way of function File-navigate
this will be the highest level in the directory structure for Local - It should be possible to climb up from a sub-directory upwards by means of the <'..'> symbol as we are used to using in some files managers
.. in Root-local and Root-remote we will see no <'..'>, it is the highest level ... this ensures "one workspace closed from top" - Usable functions... Synchronize and Backup
... the backup will create the directory BCKPYYYYMMDDHHMMSS in the Root-local directory there will be copied the complete structure of Remote
... synchronize will copy the entire directory structure from Local to Remote (backups not included) - The plan to preserve the size and position of the windows and the columns I have already defined sooner
D / Erase and Flash
Let we suppose that esptool is already installed on user's PC. This tool would be called by means of appropriate batch commands (XXX.SH and YYY.BAT) for Erase and Flash.... maintained and set in menu File -> Flash firmware. The user will only choose prepared XXX.SH or YYY.BAT batch commands.- The user will enter into <Project_directory>=Root-local by way of function File-navigate
Thanks, I have marked these down. I am really struggling with the time now, but will try to address some of them. At least Justin managed to get Mac version working today. All seems like good ideas to me, so I will just address the A).
It is possible that Adafruit and PYCOM have the same problem, so I might be able to debug it on my ESP8266. Could you send me link to the firmware so I can flash it? Once it's working, you could test if ESP32 PYCOM has been solved aswell.
Hi, here is the link to CircuitPython... adafruit-circuitpython-feather_huzzah-2.1.0.bin...
https://github.com/adafruit/circuitpython/releases
My offer for Lolin32 is still valid 😄I'm testing the circuitpython now, this is error I got
AttributeError: 'module' object has no attribute 'ticks_ms'. Which is strange, because https://github.com/adafruit/circuitpython/blob/master/docs/library/utime.rst liststicks_msas supported. Anyway, believing the firmware, time is pretty poor module on CP:>>> time. __name__ monotonic sleep struct_timeAfter commenting out the time functions, the scripts work. So I have added check if time module supports that function. Please, check if
dev-scriptsbranch is now working with your boards.Hi, I didn't see this comment... OK, I will look at it and let you know...
You are right... pretty poor... CP is more oriented "education friendly" and less "system friendly"... here is the link to actual documentation... https://circuitpython.readthedocs.io/en/latest/shared-bindings/time/__init__.html#time.monotonic ... YES, the dev-scripts branch is working with CP now... generally, I would say that this branch got faster in the transfer of files...
Cool. I wonder what's the problem with PYCOM, because I thought it will be the same as for CP. Guess I'll have to pick up that ESP32. Just have been really busy lately. Anyway, I'll merge in the changes for now and will be able to solve the last one later. I'll also release new binary once everything is included, because the last one is getting quite old.
Closing this due to inactivity and possibly no more progress to be done.



I did git pull now and I am without MY uPyLoader, which I am used to use every day!

... see picture... what to do?