Page 1 of 1

[NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Fri Jun 14, 2019 10:49 am
by lukesky333
Hi,

I'm trying to copy the uasyncio library to my NUCLEO-F446RE board (MB1136 C-03). I tried to copy the whole folder, I tried to copy single files -everytime I get the error message:

Code: Select all

$ rshell -b 115200 -p /dev/ttyACM0 cp -r lib /flash
Using buffer-size of 32
Connecting to /dev/ttyACM0 (buffer-size 32)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Jun 14, 2019 12:45:44
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
timed out or error in transfer to remote
It seems that all files are only partialy copied:

Code: Select all

$ rshell -b 115200 -p /dev/ttyACM0 ls -l /flash/lib/uasyncio
Using buffer-size of 32
Connecting to /dev/ttyACM0 (buffer-size 32)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Jun 14, 2019 12:41:50
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 2000
   675 Jun 14 12:09 __init__.py
   912 Jun 14 12:39 core.py
   915 Jun 14 12:17 queues.py
   846 Jun 14 11:45 synchro.py
Any idea what I can do?

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Fri Jun 14, 2019 4:50 pm
by dhylands
I ran into this on the F401 as well (when transferring over UART), and I haven't spent the time to figure out what the underlying problem is.

I suspect that characters are being dropped on the UART connection. I'll see if I can look into this next week. This used to work, but it might have something to do with interference between the UART and writing the files to flash.

On the F401 I wound up making the files be frozen files.

Something to try in the meantime would be to write a script which takes the file to be copied and generates another python program which prints the output to a file. Then you could use pyboard.py to copy the file. This should work for files which can fit in the available RAM.

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Mon Jun 17, 2019 11:57 am
by lukesky333
dhylands wrote:
Fri Jun 14, 2019 4:50 pm
I ran into this on the F401 as well (when transferring over UART), and I haven't spent the time to figure out what the underlying problem is.

I suspect that characters are being dropped on the UART connection. I'll see if I can look into this next week. This used to work, but it might have something to do with interference between the UART and writing the files to flash.
Thanks a lot for having a look into this issue.
dhylands wrote:
Fri Jun 14, 2019 4:50 pm
On the F401 I wound up making the files be frozen files.

Something to try in the meantime would be to write a script which takes the file to be copied and generates another python program which prints the output to a file. Then you could use pyboard.py to copy the file. This should work for files which can fit in the available RAM.
I don't understand, what you mean with this?

In between I'll try the Micropython-Editor. I've compiled the editor as module in Micropython and it seems to work...

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Mon Jun 17, 2019 12:24 pm
by jimmo
lukesky333 wrote:
Mon Jun 17, 2019 11:57 am
I don't understand, what you mean with this?
"On the F401 I wound up making the files be frozen files." --> I assume this means put uasyncio.py etc into the firmware image (by putting it into ports/stm32/modules or ports/stm32/boards/BOARD/modules depending on your config). This way you don't have to worry about syncing it to your filesystem.

"Something to try in the meantime would be to write a script which takes the file to be copied and generates another python program which prints the output to a file. Then you could use pyboard.py to copy the file. This should work for files which can fit in the available RAM." --> pyboard.py never writes to flash, it just copies your code text into RAM and executes it. So dhyland's suggestion would result in the copying of the file over UART not happening at the same time as writing the flash. (i.e. the program would be copied to ram, then it would run and write out

So the script would generate something like this for a file named 'filename.py'

Code: Select all

code = """
actual contents of filename.py, some escaping left as exercise to the reader
"""
with open('filename.py', 'w'):
  f.write(code)
In a sense, using MicroPython-Editor would achieve the same thing as it holds the file in RAM then separately writes to flash.

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Mon Jun 17, 2019 1:48 pm
by lukesky333
jimmo wrote:
Mon Jun 17, 2019 12:24 pm
...
"On the F401 I wound up making the files be frozen files." --> I assume this means put uasyncio.py etc into the firmware image (by putting it into ports/stm32/modules or ports/stm32/boards/BOARD/modules depending on your config). This way you don't have to worry about syncing it to your filesystem.
That's it I've done - uasyncio as module is allready working...
jimmo wrote:
Mon Jun 17, 2019 12:24 pm
...

Code: Select all

code = """
actual contents of filename.py, some escaping left as exercise to the reader
"""
with open('filename.py', 'w'):
  f.write(code)
In a sense, using MicroPython-Editor would achieve the same thing as it holds the file in RAM then separately writes to flash.
Ahh OK - I understand. ...thanks a lot!!!

FYI: the "as f" was missing...

Code: Select all

...
with open('filename.py', 'w') as f:
...

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Wed Jun 19, 2019 4:12 am
by dhylands
It looks like the problem was interference between writing to flash and the UART. If I commented out the file writes then the file would be transferred successfully (but not writeen to flash.

So I added a call to os.sync and that seems to allow things to work properly. I was able to copy a 17K file to my NUCLEO_F446RE board. So please try upgrading to rshell 0.0.26

Re: [NUCLEO-F446RE] rshell --> timed out or error in transfer to remote

Posted: Tue Jun 25, 2019 12:16 pm
by lukesky333
dhylands wrote:
Wed Jun 19, 2019 4:12 am
...
So I added a call to os.sync and that seems to allow things to work properly. I was able to copy a 17K file to my NUCLEO_F446RE board. So please try upgrading to rshell 0.0.26
Yes, with rshell 0.0.26 the problem is fixed. THANKS!!!