MicroPython-Firmware schmirgeln (150er) [1] ist schon recht lang geworden, deswegen gehts hier frisch weiter.
Vielen Dank an @clemens an dieser Stelle – wie immer ganz nah an der Usability und unermüdlich in der Berichterstattung.
MicroPython-Firmware schmirgeln (150er) [1] ist schon recht lang geworden, deswegen gehts hier frisch weiter.
Vielen Dank an @clemens an dieser Stelle – wie immer ganz nah an der Usability und unermüdlich in der Berichterstattung.
Gestern wollte ich mit make install
das neueste framework der hiveeyes-MicroPython-Firmware auf einen FiPy spielen, auf dem bereits älterer code lief, der einen deep sleep aktiviert hatte.
Es war nicht möglich die neueste Version hochzuladen, der Prozess brach immer wieder replizierbar ab, manchmal nur so:
.venv3/bin/rshell --port /dev/ttyS16 --buffer-size 2048 --timing mkdir /flash/dist-packages
Using buffer-size of 2048
Connecting to /dev/ttyS16 (buffer-size 2048)...
Trying to connect to REPL ....... connected
Testing if ubinascii.unhexlify exists ... b'\n>>> \r\n>>> \r\n>>> \r\n>>> \r\n>>> \r\n>>> \r\n>>> \r\n>>> \r\n>>> '
Traceback (most recent call last):
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1255, in connect
ip_address = socket.gethostbyname(port)
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".venv3/bin/rshell", line 10, in <module>
sys.exit(main())
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/command_line.py", line 4, in main
rshell.main.main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2843, in main
real_main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2805, in real_main
connect(args.port, baud=args.baud, wait=args.wait, user=args.user, password=args.password)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1261, in connect
connect_serial(port, baud=baud, wait=wait)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1285, in connect_serial
dev = DeviceSerial(port, baud, wait)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1565, in __init__
Device.__init__(self, pyb)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1339, in __init__
unhexlify_exists = self.remote_eval(test_unhexlify)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1459, in remote_eval
return eval(self.remote(func, *args, **kwargs))
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1437, in remote
self.pyb.enter_raw_repl()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/pyboard.py", line 187, in enter_raw_repl
raise PyboardError('could not enter raw repl')
rshell.pyboard.PyboardError: could not enter raw repl
Makefile:133: recipe for target 'install-requirements' failed
make: *** [install-requirements] Error 1
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware#
… und manchmal auch mit einem Guru Meditation Error (bei Windows würde man blue screen sagen):
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install
.venv3/bin/rshell --port /dev/ttyS16 --buffer-size 2048 --timing mkdir /flash/dist-packages
Using buffer-size of 2048
Connecting to /dev/ttyS16 (buffer-size 2048)...
Trying to connect to REPL .... connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Jun 28, 2019 14:39:02
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Unable to create /flash/dist-packages
took 0.304 seconds
.venv3/bin/rshell --port /dev/ttyS16 --buffer-size 2048 --timing rsync dist-packages /flash/dist-packages
Using buffer-size of 2048
Connecting to /dev/ttyS16 (buffer-size 2048)...
Trying to connect to REPL connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Jun 28, 2019 14:39:04
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
b'Guru Meditation Error: Core 1 panic\'ed (LoadProhibited). Exception was unhandled.\r\nCore 1 register dump:\r\nPC : 0x40098967 PS : 0x00060033 A0 : 0x800969b5 A1 : 0x3ffc1370 \r\nA2 : 0x3ffdc514 A3 : 0x00060023 A4 : 0x3ffc5ad4 A5 : 0x00000001 \r\nA6 : 0x000000fe A7 : 0x3f40e23c A8 : 0x00000000 A9 : 0x3ffdc514 \r\nA10 : 0x3ffdc514 A11 : 0x00000000 A12 : 0x800f91d6 A13 : 0x3ffe2e40 \r\nA14 : 0x00000000 A15 : 0x3ffe2f20 SAR : 0x00000003 EXCCAUSE: 0x0000001c \r\nEXCVADDR: 0x00000004 LBEG : 0x4009dc28 LEND : 0x4009dc33 LCOUNT : 0x00000000 \r\nCore 1 was running in ISR context:\r\nEPC1 : 0x40098967 EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x4008b78e\r\n\r\nBacktrace: 0x40098967:0x3ffc1370 0x400969b2:0x3ffc1390 0x400953a1:0x3ffc13b0 0x4008cff5:0x3ffc13d0 0x40083b01:0x3ffc1410 0x400f22ff:0x3ffe2dd0 0x400f252d:0x3ffe2df0 0x400fe713:0x3ffe2e10 0x401018a7:0x3ffe2e40 0x400f91d3:0x3ffe2f20 0x40104139:0x3ffe2f60 0x400fc160:0x3ffe3000 0x400f8879:0x3ffe3070 0x40103df3:0x3ffe3090 0x400fc160:0x3ffe3130 0x400f8879:0x3ffe31a0 0x400f88a6:0x3ffe31c0 0x400df252:0x3ffe31e0 0x400df4c5:0x3ffe3280 0x400de0ba:0x3ffe32a0\r\n\r\n================= CORE DUMP START =================\r\nlC8AAA8AAABsAQAA\r\nLNH7P1A1+z9wN/s/\r\nUDX7PxA3+z+hKQAAmFf8P5hX/D8s0fs/kFf8PxMAAAB/YujcQknoYSzR+z8AAAAA\r\nBgAAAHQn+z9Mb1JhABItci4bAZlgnncAAQAAAHA3+z8AAAAAIQAGAAYAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAo0f0/kNH9P/jR/T8AAAAAAAAAAAEAAAAAAAAA
[...]
/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\nAAAAAA==\r\n================= CORE DUMP END =================\r\nE (14860) esp_core_dump: Skipped 1 tasks with bad TCB!\r\nE (14865) esp_core_dump: Crashed task has been skipped!\r\nRebooting...\r\nets Jun 8 2016 00:22:57\r\n\r\nrst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)\r\nconfigsip: 0, SPIWP:0xee\r\nclk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00\r\nmode:DIO, clock div:1\r\nload:0x3fff8028,len:8\r\nload:0x3fff8030,len:2156\r\nho 0 tail 12 room 4\r\nload:0x4009fa00,len:19208\r\nentry 0x400a05f4\r\nInitializing filesystem as LittleFS!\r\n[boot.py] INFO: Python module search path is: [\'\', \'/flash\', \'/flash/lib\', \'dist-packages\']\r\n\r\n 7.9761 [terkin.configuration ] INFO : Configuration settings:\r\n 8.0060 [terkin.configuration ] INFO : Section "telemetry": {"targets": [{"enabled": true, "topology": "mqttkit", "endpoint": "mqtt://swarm.hiveeyes.org", "address": {"network": "testdrive", "gateway": "area-005", "node": "fipy-cg-01", "realm": "hiveeyes"}}, {"enabled": true, "topology": "beep-bob", "endpoint": "https://bee-observer.org/api/sensors", "data": {"key": "BwEWJXBWUX3tzkBR"}}, {"enabled": false, "endpoint": "https://daq.example.org/api", "address": {"network": "testdrive", "gateway": "area-42", "node": "node-01-http-json", "realm": "workbench"}}, {"encode": "base64", "format": "lpp", "address": {"network": "testdrive", "gateway": "area-42", "node": "node-01-mqtt-lpp", "realm": "workbench"}, "enabled": false, "endpoint": "mqtt://daq.example.org"}]}\r\n 8.0860 [terkin.configuration ] INFO : Section "networking": {"wifi": {"stations": [{"ssid": "Frau Doktor", "password": "## redacted ##"}], "timeout": 15000}, "lora": {"otaa": {"application_eui": "<REGISTRATION NEEDED>", "datarate": 0, "frequency": 868100000, "region": "LoRa.EU868", "application_key": "## redacted ##", "device_eui": "<GENERATED_FROM_LORA_MAC>"}, "antenna_attached": false}}\r\n 8.1370 [terkin.configuration ] INFO : Section "sensors": {"system": {"vcc": {"resistor_sum": 12, "resistor_pin": 2}}, "busses": [{"number": 0, "family": "i2c", "pin_sda": "P9", "enabled": true, "pin_scl": "P10"}, {"enabled": true, "pin_data": "P11", "number": 0, "family": "onewire"}], "registry": {"bme280": {"bus": "i2c:0", "address": 119}, "ds18x20": {"bus": "onewire:0"}, "hx711": {"offset": -136903.0, "pin_dout": "P22", "pin_pdsck": "P21", "address": 0, "scale": -22385.0}}}\r\n 8.1856 [terkin.configuration ] INFO : Section "main": {"interval": 60.0, "deepsleep": true}\r\n 8.2063 [terkin.configuration ] INFO : Section "sensor_telemetry_map": {"temperature.28ff641d8fd833ac.onewire:0": "t_i_3", "pressure.0x77.i2c:0": "p", "weight.0": "weight", "_version": "1.0.0", "temperature.28ff641d8fd4d5d5.onewire:0": "t_i_2", "system.temperature": "t_i_5", "temperature.28ff641d8fd922ab.onewire:0": "t_i_5", "temperature.0x77.i2c:0": "t", "temperature.28ff641d8fd18ab0.onewire:0": "t_i_1", "humidity.0x77.i2c:0": "h", "temperature.28ff641d8fd8778b.onewire:0": "t_i_4"}\r\n 8.2938 [terkin.datalogger ] INFO : Starting BOB MicroPython Datalogger 0.4.0\r\n 8.3043 [terkin.device ] INFO : Reset cause and wakeup reason: {\'reset_cause\': {\'code\': 0, \'message\': \'PWRON\'}, \'wakeup_reason\': {\'code\': 0, \'message\': \'PWRON\'}}\r\n---------------------------------------------\r\nSystem memory info (in bytes)\r\n---------------------------------------------\r\nMPTask stack water mark: 3908\r\nServersTask stack water mark: 3684\r\nLoRaTask stack water mark: 3436\r\nSigfoxTask stack water mark: 2932\r\nTimerTask stack water mark: 2160\r\nIdleTask stack water mark: 600\r\nSystem free heap: 349552\r\n---------------------------------------------\r\n 8.3960 [terkin.device ] INFO : \r\n\r\n================================\r\nBOB MicroPython Datalogger 0.4.0\r\n================================\r\nCPU freq 160.0 MHz\r\nDevice id 807d3ac337b0\r\n\r\n\r\nPython : 3.4.0\r\nlorawan : 1.0.2\r\nmachine : FiPy with ESP32\r\nnodename: FiPy\r\nrelease : 1.20.0.rc11\r\nsigfox : 1.0.1\r\nsysname : FiPy\r\nversion : v1.9.4-0a38f88 on 2019-05-14\r\n\r\n\r\n\r\n 8.4277 [terkin.device ] INFO : Starting networking\r\n 8.5537 [terkin.radio ] INFO : WiFi STA: Networks configured: [\'Frau Doktor\']\r\n 8.5657 [terkin.radio ] INFO : WiFi STA: Starting interface\r\n 8.5759 [terkin.radio ] INFO : WiFi STA: Scanning for networks\r\n 11.0901 [terkin.radio ] INFO : WiFi STA: Networks available: [\'Frau Doktor\', \'Frau Doktor Gastzugang\']\r\n 11.1012 [terkin.radio ] INFO : WiFi STA: Network candidates: [\'Frau Doktor\']\r\n 11.1149 [terkin.radio ] INFO : WiFi STA: Attempting to connect to network "Frau Doktor"\r\n 11.1302 [terkin.radio ] INFO : WiFi STA: Starting connection to "Frau Doktor" with timeout of 15.0 seconds\r\n 11.1469 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 12.1615 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 13.1780 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 14.1922 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 15.2072 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 16.2212 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 17.2352 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 18.2486 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 19.2625 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 20.2754 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 21.2885 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 22.3014 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 23.3146 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 24.3273 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 25.3405 [terkin.radio ] INFO : WiFi STA: Waiting for network "Frau Doktor".\r\n 26.3588 [terkin.radio ] ERROR : WiFi STA: Connecting to "Frau Doktor" failed\r\nTraceback (most recent call last):\r\n File "/flash/lib/terkin/radio.py", line 120, in start_wifi\r\n File "/flash/lib/terkin/radio.py", line 190, in wifi_connect_station\r\nTimeoutError: Connection to AP Timeout!\r\n\r\n 26.3904 [terkin.radio ] ERROR : WiFi STA: Connecting to any network candidate failed. Please check your WiFi configuration for one of the 1 station candidates in your neighbourhood.\r\n 26.4056 [terkin.radio ] WARNING: Todo: We might want to switch to AP mode here or alternatively buffer telemetry data to flash to be scheduled for transmission later.\r\n 26.4220 [terkin.device ] ERROR : Network connectivity not available, WiFi failed\r\n 26.4409 [terkin.device ] INFO : [LoRa] Disabling LoRa interface as no antenna has been attached. ATTENTION: Running LoRa without antenna will wreck your device.\r\n 26.4615 [terkin.sensor.core ] INFO : Starting all busses [{\'pin_scl\': \'P10\', \'number\': 0, \'enabled\': True, \'family\': \'i2c\', \'pin_sda\': \'P9\'}, {\'enabled\': True, \'pin_data\': \'P11\', \'number\': 0, \'family\': \'onewire\'}]\r\n 26.5083 [terkin.sensor.core ] INFO : Found 0 I2C devices: [].\r\n 26.5207 [terkin.sensor.core ] INFO : Registering bus "i2c:0"\r\n 27.8944 [terkin.sensor.core ] INFO : Found 0 OneWire (DS18x20) devices: [].\r\n 27.9070 [terkin.sensor.core ] INFO : Registering bus "onewire:0"\r\n 27.9173 [terkin.datalogger ] INFO : Registering Terkin sensors\r\n 27.9434 [hiveeyes.datalogger ] INFO : Registering Hiveeyes sensors\r\n 28.5092 [hiveeyes.sensor_hx711 ] INFO : Selected HX711 hardware driver "heisenberg"\r\n 28.5278 [hiveeyes.sensor_hx711 ] INFO : Initializing HX711 sensor with pin_dout=P22, pin_pdsck=P21, gain=128, scale=-22385.0, offset=-136903.0\r\n 28.5477 [terkin.sensor.core ] INFO : Trying to find bus by name "onewire:0"\r\n 28.5585 [terkin.sensor.core ] INFO : Found bus by name "onewire:0": <OneWireBus object at 3f993fa0>\r\n 28.5787 [terkin.sensor.core ] INFO : Trying to find bus by name "i2c:0"\r\n 28.5892 [terkin.sensor.core ] INFO : Found bus by name "i2c:0": <I2CBus object at 3f993ab0>\r\n 28.6068 [hiveeyes.sensor_bme280 ] ERROR : BME280 hardware driver failed\r\nTraceback (most recent call last):\r\n File "/flash/lib/hiveeyes/sensor_bme280.py", line 38, in start\r\n File "dist-packages/bme280.py", line 74, in __init__\r\nOSError: I2C bus error\r\n\r\n 28.6288 [terkin.datalogger ] INFO : --- loop ---\r\n 28.6395 [terkin.datalogger ] INFO : Reading 8 sensor ports\r\n 28.7605 [terkin.sensor.system ] DEBUG : Reading battery level with voltage divider 12/2\r\n 28.8589 [terkin.sensor.system ] DEBUG : SystemBatteryLevel: Mean of ADC readings (0-4095) = 4095.0002670288086\r\n 28.8718 [terkin.sensor.system ] DEBUG : SystemBatteryLevel: Mean of ADC voltage readings (0-1866mV) = 1866.0000801086426\r\n 28.8848 [terkin.sensor.system ] DEBUG : SystemBatteryLevel: Variance of ADC readings = 0.0000000000000\r\n 28.8977 [terkin.sensor.system ] DEBUG : SystemBatteryLevel: 10**6*Variance/(Mean**2) of ADC readings = 0.0000000000000\r\n 28.9119 [terkin.sensor.system ] DEBUG : Battery level: 11.196\r\n 28.9277 [hx711 ] INFO : HX711 power up\r\n 28.9379 [hx711 ] INFO : Initialization started\r\n 29.4686 [terkin.datalogger ] ERROR : Reading sensor "HX711Sensor" failed\r\nTraceback (most recent call last):\r\n File "/flash/lib/terkin/datalogger.py", line 170, in read_sensors\r\n File "/flash/lib/hiveeyes/sensor_hx711.py", line 80, in read\r\n File "/flash/lib/hx711_heisenberg.py", line 95, in get_reading\r\n File "/flash/lib/hx711_heisenberg.py", line 76, in read_median\r\n File "/flash/lib/hx711.py", line 123, in read_average\r\n File "/flash/lib/hx711.py", line 97, in read\r\n File "/flash/lib/hx711.py", line 59, in initialize\r\n File "/flash/lib/hx711.py", line 72, in wait_ready\r\nDeviceNotFound: HX711 not ready\r\n\r\n 29.5276 [hiveeyes.sensor_ds18x20 ] WARNING: No data from any DS18X20 devices on bus onewire:0\r\n 29.5409 [terkin.datalogger ] INFO : Sensor data: {\'system.runtime\': 22, \'system.time\': 31, \'system.uptime\': 47.08, \'system.memfree\': 2246880, \'system.temperature\': 47.04349, \'system.wifi.country\': \'CN\', \'system.wifi.bandwidth\': 2, \'system.wifi.max_tx_power\': 78, \'system.wifi.channel\': 0, \'system.voltage\': 11.196}\r\n 29.5707 [terkin.datalogger ] WARNING: Telemetry disabled\r\n 29.6946 [terkin.sensor.system ] INFO : Turning off ADC\r\n 29.7050 [hiveeyes.sensor_hx711 ] INFO : Turning off HX711\r\n 29.7152 [hx711 ] INFO : HX711 power down\r\n 29.7306 [terkin.sensor.core ] INFO : Turning off I2C bus i2c:0\r\n 29.7414 [terkin.radio ] INFO : Turning off WiFi\r\n 29.7629 [terkin.radio ] INFO : Turning off LTE modem on boot\r\n 29.7742 [terkin.device ] INFO : Preparing deep sleep\r\n 29.7874 [terkin.device ] INFO : Entering deep sleep for 60.0 seconds\r\n'
Traceback (most recent call last):
File ".venv3/bin/rshell", line 10, in <module>
sys.exit(main())
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/command_line.py", line 4, in main
rshell.main.main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2843, in main
real_main()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2826, in real_main
shell.cmdloop(cmd_line)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1689, in cmdloop
stop = self.onecmd(line)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1722, in onecmd
self.onecmd_exec("".join(group))
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1728, in onecmd_exec
result = cmd.Cmd.onecmd(self, line)
File "/usr/lib/python3.5/cmd.py", line 217, in onecmd
return func(arg)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 2609, in do_rsync
print_func=pf, recursed=False, sync_hidden=args.all)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 906, in rsync
print_func=print_func, recursed=True, sync_hidden=sync_hidden)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 858, in rsync
dst_files = auto(listdir_stat, dst_dir, show_hidden=sync_hidden)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 586, in auto
return dev.remote_eval(func, dev_filename, *args, **kwargs)
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1459, in remote_eval
return eval(self.remote(func, *args, **kwargs))
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/main.py", line 1437, in remote
self.pyb.enter_raw_repl()
File "/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/.venv3/lib/python3.5/site-packages/rshell/pyboard.py", line 199, in enter_raw_repl
raise PyboardError('could not enter raw repl')
rshell.pyboard.PyboardError: could not enter raw repl
Makefile:133: recipe for target 'install-requirements' failed
make: *** [install-requirements] Error 1
This. This.
Grund war also der deep sleep, der während make install
einfach dafür sorgt, dass der Hahn zugedreht wird und nichts mehr geht!
Mögliche Gegenmaßnahmen:
make install
löschen, z.B. mit make format-flash
oder als Option beim flashen der Firmware “erase during update” oder per FTPDu solltest auch mit Ctrl - c den Code vorher anhalten können. Das macht die Übertragung sowieso einiges stabiler.
Wo muss ich dafür sein? In der REPL oder rshell?
Gute Frage weiß jetzt gar nicht wie ich in der WSL Sandbox mit der repl ins aktuelle logging hin komme, es sei denn ich habe gerade frisch aufgespielt.
make connect
Vielleicht.
In Atom einfach auf das aktive logging und dann strg c.
Benutze aktuell Atom und die Sandbox zusammen (proggen in Atom aufspielen in WSL). Klappt prima, werde heute Abend Mal eine Anleitung dazu schreiben.
Vielen Dank für die Meldung, wir konnten das Verhalten bei uns ebenfalls schon erleben. Wir haben uns kurzzeitig beholfen, indem wir entweder a) die Firmware per CTRL+C aus der REPL-Shell heraus angehalten haben, wie @MKO vorschlägt oder b) die Schlafdauer hochgestellt oder deep sleep kurzzeitig ganz abgestellt haben.
Wir versuchen, uns bei der nächsten Softwareiteration um eine komfortablere Lösung des Problems zu kümmern.
Das funktioniert im Linux-System unter Windows (WSL) nicht:
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make install-pycom-firmware
wget --no-clobber --unlink --output-document=./dist-firmwares/FiPy-1.20.0.rc11.tar.gz https://software.pycom.io/downloads/FiPy-1.20.0.rc11.tar.gz | true
--2019-07-19 11:57:29-- https://software.pycom.io/downloads/FiPy-1.20.0.rc11.tar.gz
Resolving software.pycom.io (software.pycom.io)... 18.195.202.40
Connecting to software.pycom.io (software.pycom.io)|18.195.202.40|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1171395 (1.1M) [application/octet-stream]
Saving to: ‘./dist-firmwares/FiPy-1.20.0.rc11.tar.gz’
./dist-firmwares/FiPy-1.20.0. 100%[=================================================>] 1.12M 1.93MB/s in 0.6s
2019-07-19 11:57:30 (1.93 MB/s) - ‘./dist-firmwares/FiPy-1.20.0.rc11.tar.gz’ saved [1171395/1171395]
Install Pycom firmware "FiPy-1.20.0.rc11.tar.gz" on the device connected to "/dev/ttyS16" [y/n]?
Installing firmware FiPy-1.20.0.rc11.tar.gz
/bin/sh: 5: --verbose: not found
tools/pycom.mk:48: recipe for target 'install-pycom-firmware' failed
make: *** [install-pycom-firmware] Error 127
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# cd tools
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware/tools# ls
clean.rshell micropython.mk reset.rshell upload-all.lftprc upload-sketch.rshell
core.mk pycom.mk setup.mk upload-framework.rshell upload-terkin.rshell
help.mk release.mk terkin.py upload-ratrack.rshell
Merci Clemens.
Er findet vermutlich wie erwartet die pycom-fwtool-cli.exe
nicht. Das kann drei Gründe haben, die sich nicht ausschließen.
$(eval pycom_fwtool_cli_windows := c:\\Program\ Files\ (x86)\\Pycom\\Pycom\ Firmware\ Update\\pycom-fwtool-cli.exe)
[1] https://github.com/hiveeyes/hiveeyes-micropython-firmware/blob/master/tools/pycom.mk#L5
Es wäre spitze wenn Du das überprüfen könntest, zumindest 1. und 2., ggf. auch 3. Hier ist in der näheren Umgebung leider kein Windows zu sehen.
Pfad an sich scheint zu passen, bei mir gibt es
C:\Program Files (x86)\Pycom\Pycom Firmware Update\pycom-fwtool.exe
und dort auch
C:\Program Files (x86)\Pycom\Pycom Firmware Update\pycom-fwtool-cli.exe
Dann vielleicht anders/mehr/besser escapen, evtl. weiß die Suchemaschine was. Vielleicht kann @MKO auch mal drauf sehen. Ansonsten ist es nicht super tragisch, da es dafür ja auch Alternativen gibt, wie das Programm interaktiv zu bedienen. Von dem Makefile
Gedöns wird sich eh viel in Luft auflösen, also nicht zu viel Liebesmüh reinstecken – unter Python bekommt man das besser automatisiert.
Wenn Du willst, leg doch ne kleine tools/pycom-fwtool-cli.bat
dazu und kapsle darin den Aufruf zum Stiefkind. Das wird meistens im Internet empfohlen, wenn es um solche Dinge geht. Das wäre sinnvoll und vermutlich schneller zu machen, als sich mit der Frage zu beschäftigen, wie man Windows Pfad-Escaping innerhalb eines Makefile
s richtig machen kann. Richtig wäre vermutlich am besten: Gar nicht.
Ich schau mir das heute Abend an.
Hab noch einen Recht interessanten Link über Updates direkt via GitHub direkt auf dem Node gefunden, so in der Art können wir uns später bestimmt den ganzen Rattenschwanz sparen, den wir uns jetzt aus der “Not” heraus anhängen.
Gruß Michael
$(eval pycom_fwtool_cli_windows := /mnt/c/Program\ Files\ \(x86\)/Pycom/Pycom\ Firmware\ Update/pycom-fwtool-cli.exe)
sollte richtig sein.
Leider funktioniert es immer noch nicht.
Der Com Port meckert.
user@Werkstatt:/mnt/c/test/hiveeyes-micropython-firmware$ make install-pycom-firmware
wget --no-clobber --unlink --output-document=./dist-firmwares/FiPy-1.20.0.rc11.tar.gz
https://software.pycom.io/downloads/FiPy-1.20.0.rc11.tar.gz | true
File ‘./dist-firmwares/FiPy-1.20.0.rc11.tar.gz’ already there; not retrieving.
Install Pycom firmware "FiPy-1.20.0.rc11.tar.gz" on the device connected to "/dev/ttyS8" [y/n]?
Installing firmware FiPy-1.20.0.rc11.tar.gz
Invalid serial port /dev/ttyS8! Use list command to show valid ports.
tippe mal da die pycom-fwtool-cli.exe
ein Windows-Tool ist will sie den echten COM-Port und nicht den gemappten, wie er für die WSL passt.
kenne mich jetzt leider nicht mit .mk
Files aus wie man dort Strings bearbeiten kann. Man müßte jetzt bei Windows alle Zeichen bis auf die zahlen aus /dev/ttyS8
entfernen und COM
davor schreiben.
wenn ich von vorne rein
export MCU_SERIAL_PORT=COM8
mache geht es übrigens nicht. Denke mal der Porttyp wird dann nicht erkannt
Hab es denke ich hin bekommen. Einfacher als gedacht.
pycom_firmware_port :=$(subst /dev/ttyS, COM, $(mcu_port))
Pull request ist raus.
Hi Michael,
danke dass Du da Zeit reinstecken konntest um die Probleme bei der hemdsärmligen Basisimplementierung zu erkennen und dass Du den ausgezeichneten Patch bei Make "make install-pycom-firmware" work on Windows by MKO1640 · Pull Request #15 · hiveeyes/terkin-datalogger · GitHub zur Verfügung gestellt hast, um die entsprechenden Stellen aufzumöbeln.
Note to self: Wir sind hier wie gewünscht im Kontext des WSL unterwegs und müssen dabei natürlich beim Zusammenstecken der Einzelteile berücksichtigen, dass es jenseits der Grenze des gelobten Landes gerade bei der Adressierung von Betriebssystemressourcen anders zugeht - Andere Länder — andere Sitten. Das hatten wir bei der Basisimplementierung gar nicht entsprechend berücksichtigt.
So true. Thanks.
Thanks for spotting this!
pycom_firmware_port :=$(subst /dev/ttyS, COM, $(mcu_port))
berechnet nun die richtige serielle Schnittstelle für die entsprechende Adressierung des Geräts aus der Perspektive des nativen Windows-Subsystems und die Variable $(pycom_firmware_port)
leitet diese Information nun überall dorthin weiter, wo $(pycom_fwtool_cli)
tatsächlich verwendet wird. Daher wird nun vermutlich auch "make chip_id"
, "make format-flash"
sowie "make erase-fs"
ebenso unter Windows funktionieren. Perfekt.
Vielen Dank fürs richtig rum aufs Pony setzen, Michael.
Herzliche Grüße,
Andreas.
Wie muss denn der COM-Port jetzt angegeben werden?? Alte Methode funktioniert nicht (meht):
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# export MCU_PORT=/dev/ttyS16
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make list-boards
Device port: usb => /dev/ttyS16
failed to access /dev/ttyS16
tools/micropython.mk:15: recipe for target 'list-boards' failed
make: *** [list-boards] Error 1
Neue auch nicht, die wird COM16 als IP interpretiert:
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# export MCU_PORT=COM16
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make list-boards
Device port: ip => COM16
failed to access COM16
tools/micropython.mk:15: recipe for target 'list-boards' failed
make: *** [list-boards] Error 1
Das signalisiert, dass das Sandbox-Tooling denkt, es wäre ein IP-basierter Port. Das könnte hier die Ursache sein und man müsste die Erkennung entsprechend nachziehen. Es muss allerdings nicht so sein: Vielleicht ist das in Wahrheit kein Problem und der Fehler liegt woanders.
git pull
und make setup
habe ich vorher gemacht