uPyLoader - simple file transfer and communication
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
THANK YOU THANK YOU THANK YOU THANK YOU !!! This is sooooooo much better than ampy !! I can't thank you enough.
I haven't tried the bytecode setup yet, will do that next.
Few minor comments:
- would be nice to remember my com port, every time I disconnect it goes back to com3 and if I try to connect there instead of the real com it hangs
- would be nice if the "MCU name" filled in automatically if you select just one file. Then you could use the "transfer" button instead of opening the file to start the transfer. (Hmmm, now it started doing it, so not sure why it didn't before?? Anyway, ignore this one)
I haven't tried the bytecode setup yet, will do that next.
Few minor comments:
- would be nice to remember my com port, every time I disconnect it goes back to com3 and if I try to connect there instead of the real com it hangs
- would be nice if the "MCU name" filled in automatically if you select just one file. Then you could use the "transfer" button instead of opening the file to start the transfer. (Hmmm, now it started doing it, so not sure why it didn't before?? Anyway, ignore this one)
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
Interesting, so I grabbed the mpy-cross.exe from @Roberthh (Thanks Robert!!!!) and it worked great (after I grabed the pycom version, which I'm not familiar with but I guess my nodeMCU is running the pycom version?). But, I learned that you can't use it for main.py. So is the best way to just put a dummy main.py on the board that imports main_secondary.py and runs it?
Sorta like the sketch from Spinal Tap where they were the "originals" until they found out another band was the "originals", and then they were the "new originals"
UPDATE: Ok, duh. Just have one line in main.py: "import main_too" and put my old main.py into main_too.py (and compile to main_too.mpy)
Sorta like the sketch from Spinal Tap where they were the "originals" until they found out another band was the "originals", and then they were the "new originals"
UPDATE: Ok, duh. Just have one line in main.py: "import main_too" and put my old main.py into main_too.py (and compile to main_too.mpy)
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: uPyLoader - simple file transfer and communication
That is generally the best way to work (whether or not you cross-compile). You debug your module at the REPL and then amend the one-line main.py when you want it to auto-run. If you need to disable auto-run just comment out the single line.eradicatore wrote:...Just have one line in main.py: "import main_too" and put my old main.py into main_too.py (and compile to main_too.mpy)
Peter Hinch
Index to my micropython libraries.
Index to my micropython libraries.
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
I have been doing it a slightly different way. I get to the REPL by checking a gpio input to break out of my main loop. But this is a good idea you have here too. And sounds like rshell is something I should check out ASAP. Thanks!pythoncoder wrote:That is generally the best way to work (whether or not you cross-compile). You debug your module at the REPL and then amend the one-line main.py when you want it to auto-run. If you need to disable auto-run just comment out the single line.eradicatore wrote:...Just have one line in main.py: "import main_too" and put my old main.py into main_too.py (and compile to main_too.mpy)
- pythoncoder
- Posts: 5956
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: uPyLoader - simple file transfer and communication
Dave Hylands' rshell is so good I've long believed it should be recommended in the official documentation. The proliferation of utilities of varying quality is potentially confusing. I use rshell exclusively on ESP8266 and Pyboards.
Peter Hinch
Index to my micropython libraries.
Index to my micropython libraries.
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
Fair enough. I lived with the frustration that is Ampy (from adafruit) for a month before I totally stumbled upon uPyLoader yesterday out of trying to debug why Ampy all of the sudden just wasn't working. I had looked several times for better tools, but didn't like ESPloader or the others I found recommendations for. So yes, I agree something should be updated to help people find these newer tools of rshell and uPyLoader.pythoncoder wrote:Dave Hylands' rshell is so good I've long believed it should be recommended in the official documentation. The proliferation of utilities of varying quality is potentially confusing. I use rshell exclusively on ESP8266 and Pyboards.
Re: uPyLoader - simple file transfer and communication
hi,
i launch the script by:
python3 main.py
but I have this message error:
Traceback (most recent call last):
File "main.py", line 12, in <module>
from src.code_edit_dialog import CodeEditDialog
File "/home/carmine/Scaricati/uPyLoader-master/src/code_edit_dialog.py", line 11, in <module>
from src.setting import Settings
File "/home/carmine/Scaricati/uPyLoader-master/src/setting.py", line 1, in <module>
from json import JSONDecodeError
ImportError: cannot import name 'JSONDecodeError'
why ?
i launch the script by:
python3 main.py
but I have this message error:
Traceback (most recent call last):
File "main.py", line 12, in <module>
from src.code_edit_dialog import CodeEditDialog
File "/home/carmine/Scaricati/uPyLoader-master/src/code_edit_dialog.py", line 11, in <module>
from src.setting import Settings
File "/home/carmine/Scaricati/uPyLoader-master/src/setting.py", line 1, in <module>
from json import JSONDecodeError
ImportError: cannot import name 'JSONDecodeError'
why ?
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
I'm not sure why you can't import that module. You might want to just start up a python REPL prompt (just type "python3" or "python") and then when you get the >>> prompt try typing:
from json import JSONDecodeError
That's the line that's breaking for you. Maybe also try "import json" at the python command line? I don't think you have to install json specially. I tried "pip install json" and it gave an error.
Note, the author (Ivan) of uPyLoader has created a downloadable exe which should avoid having to install any dependencies like you're running into issues with here. Go here:
https://github.com/BetaRavener/uPyLoade ... tag/v0.1.1
There are a lot of new updates I helped with, so I definitely recommend getting this latest version.
from json import JSONDecodeError
That's the line that's breaking for you. Maybe also try "import json" at the python command line? I don't think you have to install json specially. I tried "pip install json" and it gave an error.
Note, the author (Ivan) of uPyLoader has created a downloadable exe which should avoid having to install any dependencies like you're running into issues with here. Go here:
https://github.com/BetaRavener/uPyLoade ... tag/v0.1.1
There are a lot of new updates I helped with, so I definitely recommend getting this latest version.
Re: uPyLoader - simple file transfer and communication
Hi,
thank you for reply.
I work in Ubuntu 14.04 (not windows system). I tried so:
a) In python Repl:
from json import JSONDecodeError
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'JSONDecodeError'
b) import json
and is all ok.
c) I tried also "sudo pip install json" but I have:
The directory '/home/carmine/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/carmine/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting json
Downloading json-99.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-pb87v7h0/json/setup.py", line 2, in <module>
raise RuntimeError("Package 'json' must not be downloaded from pypi")
RuntimeError: Package 'json' must not be downloaded from pypi
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-pb87v7h0/json/
thank you for reply.
I work in Ubuntu 14.04 (not windows system). I tried so:
a) In python Repl:
from json import JSONDecodeError
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'JSONDecodeError'
b) import json
and is all ok.
c) I tried also "sudo pip install json" but I have:
The directory '/home/carmine/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/carmine/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting json
Downloading json-99.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-pb87v7h0/json/setup.py", line 2, in <module>
raise RuntimeError("Package 'json' must not be downloaded from pypi")
RuntimeError: Package 'json' must not be downloaded from pypi
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-pb87v7h0/json/
-
- Posts: 52
- Joined: Thu Apr 20, 2017 9:19 pm
Re: uPyLoader - simple file transfer and communication
Well I'm remote on my phone so can't test but if you want try to do this:
sudo pip install simplejson
And then change that import to simplejson:
from simplejson import JSONDecodeError
sudo pip install simplejson
And then change that import to simplejson:
from simplejson import JSONDecodeError