The B-L475E-IOT01AA Discovery board has a built-in ST-LINK/V2-1 that programs the actual STM32 using a uart (IE, USB->ST_LINK->UART->STM32), so I tried reducing the buffer size incrementally all the way down to 1. Same results, no joy - IE, rshell would not connect and pyboard.py could only send files with size of <=224 bytes. The same file size applies for different baud rates too, which definitely means there is something special about that number.
I am only now realizing that I have been overlooking the first part of the error message that I get when ^C-ing after
Code: Select all
Testing if ubinascii.unhexlify exists ...
The error is as follows
Code: Select all
Traceback (most recent call last):
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1307, in connect
ip_address = socket.gethostbyname(port)
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/SupremeOverlord/micropython/venv/bin/rshell", line 8, in <module>
sys.exit(main())
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/command_line.py", line 4, in main
rshell.main.main()
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 2966, in main
real_main()
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 2928, in real_main
connect(args.port, baud=args.baud, wait=args.wait, user=args.user, password=args.password)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1313, in connect
connect_serial(port, baud=baud, wait=wait)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1337, in connect_serial
dev = DeviceSerial(port, baud, wait)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1627, in __init__
Device.__init__(self, pyb)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1391, in __init__
unhexlify_exists = self.remote_eval(test_unhexlify)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1515, in remote_eval
return eval(self.remote(func, *args, **kwargs))
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/main.py", line 1495, in remote
output = self.pyb.exec_raw_no_follow(func_src)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/rshell/pyboard.py", line 248, in exec_raw_no_follow
data = self.serial.read(2)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/serial/serialposix.py", line 483, in read
ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left())
KeyboardInterrupt
Perhaps the part at the top is important? I am not sure why the device ip_address is important, but the B-L475E-IOT01A is certainly not connected to Wifi, nor has it been given a statically allocated IP address.
That is the error message that I get when interrupting while trying to connect using rshell, and the following is what I get when interrupting while trying to send files directly via pyboard.py:
Code: Select all
Traceback (most recent call last):
File "./pyboard.py", line 677, in <module>
main()
File "./pyboard.py", line 639, in main
filesystem_command(pyb, args.files)
File "./pyboard.py", line 505, in filesystem_command
op(src, dest2)
File "./pyboard.py", line 445, in fs_put
self.exec_("w(" + repr(data) + ")")
File "./pyboard.py", line 393, in exec_
ret, ret_err = self.exec_raw(command, data_consumer=data_consumer)
File "./pyboard.py", line 384, in exec_raw
self.exec_raw_no_follow(command)
File "./pyboard.py", line 379, in exec_raw_no_follow
data = self.serial.read(2)
File "/Users/SupremeOverlord/micropython/venv/lib/python3.7/site-packages/serial/serialposix.py", line 483, in read
ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left())
KeyboardInterrupt
perhaps these will provide further insight