Technic Hub Port AB doesnt work
ProfKingKong opened this issue · comments
Hello everyone,
the library is great but I have problems with my Technic Hub.
The BLE connection works without any problems, I can also control and use any motor.
But I have problems with the AB port. Unfortunately, I cannot use two ports (A and B) at the same time.
If the Demo.py goes to "movehub.motor_AB.timed(1.5, -0.2, 0.2)" an error occurs.
With Run Debug I found out that the AB port is set to None.
Can someone help me here.
The MoveHub class is designed specifically for Lego Boost hub type, where joint motors are reported by the hardware. I'm not sure which kind of Technic Hub do you mention. Probably, for that type of Hub you'd need to issue a special command to join the motors.
Also, your hardware might already provide combined motors, just the virtual port number differs. That information is contained in the log of python app when you run it.
Dear Prof. King Kong,
If you could post here the log output of the hub initialization process, that would help a lot to understand if the joined port option available automatically or not.
Ok here is the full debug log when i run the demo.py file:
24 DEBUG comms-gatt Starting DeviceManager...
294 INFO comms-gatt Discovering devices...
296 DEBUG comms-gatt Devices: dict_values([<gatt.gatt_linux.Device object at 0x7f0cf0fade40>, <gatt.gatt_linux.Device object at 0x7f0cf0fae740>])
297 DEBUG comms Checking device: Technic Hub, MAC: 90:84:2b:61:b3:41
297 INFO comms Found Technic Hub at 90:84:2b:61:b3:41
450 INFO comms-gatt Waiting for device connection...
450 DEBUG comms-gatt Sleeping...
1180 DEBUG comms-gatt Getting MoveHub services and characteristics...
1201 DEBUG comms-gatt [90:84:2b:61:b3:41] Resolved services
1201 DEBUG comms-gatt [90:84:2b:61:b3:41] Service [00001623-1212-efde-1623-785feabcd123]
1201 DEBUG comms-gatt [90:84:2b:61:b3:41] Characteristic [00001624-1212-efde-1623-785feabcd123]
1201 DEBUG comms-gatt MoveHub characteristic found
1201 DEBUG comms-gatt [90:84:2b:61:b3:41] Service [00001801-0000-1000-8000-00805f9b34fb]
1201 DEBUG comms-gatt [90:84:2b:61:b3:41] Characteristic [00002a05-0000-1000-8000-00805f9b34fb]
1451 DEBUG comms-gatt Enable Notifications...
1452 DEBUG hub Waiting for builtin devices to appear: (None, None, None, None, None, None, None)
1529 DEBUG comms-gatt Notification in GattDevice: b'0f000400012f000010000000100000'
1529 DEBUG hub Notification on 14: b'0f000400012f000010000000100000'
1529 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'2f000010000000100000', 'port': 0, 'event': 1})
1529 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'2f000010000000100000', 'port': 0, 'event': 1})
1530 INFO hub Attached peripheral: EncodedMotor on port 0x0
1531 DEBUG comms-gatt Notification in GattDevice: b'0f000401012f000010000000100000'
1531 DEBUG hub Notification on 14: b'0f000401012f000010000000100000'
1531 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'2f000010000000100000', 'port': 1, 'event': 1})
1531 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'2f000010000000100000', 'port': 1, 'event': 1})
1532 INFO hub Attached peripheral: EncodedMotor on port 0x1
1532 DEBUG comms-gatt Notification in GattDevice: b'0f000403012e000010000000100000'
1532 DEBUG hub Notification on 14: b'0f000403012e000010000000100000'
1532 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'2e000010000000100000', 'port': 3, 'event': 1})
1533 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'2e000010000000100000', 'port': 3, 'event': 1})
1533 INFO hub Attached peripheral: EncodedMotor on port 0x3
1534 DEBUG comms-gatt Notification in GattDevice: b'0f0004320117000000001000000010'
1534 DEBUG hub Notification on 14: b'0f0004320117000000001000000010'
1534 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'17000000001000000010', 'port': 50, 'event': 1})
1534 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'17000000001000000010', 'port': 50, 'event': 1})
1535 INFO hub Attached peripheral: LEDRGB on port 0x32
1535 DEBUG comms-gatt Notification in GattDevice: b'0f00043b0115000000001000000010'
1535 DEBUG hub Notification on 14: b'0f00043b0115000000001000000010'
1535 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'15000000001000000010', 'port': 59, 'event': 1})
1535 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'15000000001000000010', 'port': 59, 'event': 1})
1536 INFO hub Attached peripheral: Current on port 0x3b
1536 DEBUG comms-gatt Notification in GattDevice: b'0f00043c0114000000001000000010'
1536 DEBUG hub Notification on 14: b'0f00043c0114000000001000000010'
1536 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'14000000001000000010', 'port': 60, 'event': 1})
1537 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'14000000001000000010', 'port': 60, 'event': 1})
1537 INFO hub Attached peripheral: Voltage on port 0x3c
1552 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
1573 DEBUG comms-gatt Notification in GattDevice: b'0f00043d013c000000001000000010'
1573 DEBUG hub Notification on 14: b'0f00043d013c000000001000000010'
1573 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'3c000000001000000010', 'port': 61, 'event': 1})
1573 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'3c000000001000000010', 'port': 61, 'event': 1})
1573 WARNING hub Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x3d
1573 INFO hub Attached peripheral: Peripheral on port 0x3d
1574 DEBUG comms-gatt Notification in GattDevice: b'0f000460013c000100000001000000'
1574 DEBUG hub Notification on 14: b'0f000460013c000100000001000000'
1574 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'3c000100000001000000', 'port': 96, 'event': 1})
1574 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'3c000100000001000000', 'port': 96, 'event': 1})
1574 WARNING hub Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x60
1574 INFO hub Attached peripheral: Peripheral on port 0x60
1574 DEBUG comms-gatt Notification in GattDevice: b'0f0004610139000100000001000000'
1574 DEBUG hub Notification on 14: b'0f0004610139000100000001000000'
1574 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'39000100000001000000', 'port': 97, 'event': 1})
1574 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'39000100000001000000', 'port': 97, 'event': 1})
1574 WARNING hub Have no dedicated class for peripheral type 0x39 (TECHNIC_MEDIUM_HUB_ACCELEROMETER) on port 0x61
1574 INFO hub Attached peripheral: Peripheral on port 0x61
1574 DEBUG comms-gatt Notification in GattDevice: b'0f000462013a000100000001000000'
1574 DEBUG hub Notification on 14: b'0f000462013a000100000001000000'
1574 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'3a000100000001000000', 'port': 98, 'event': 1})
1574 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'3a000100000001000000', 'port': 98, 'event': 1})
1575 WARNING hub Have no dedicated class for peripheral type 0x3a (TECHNIC_MEDIUM_HUB_GYRO_SENSOR) on port 0x62
1575 INFO hub Attached peripheral: Peripheral on port 0x62
1575 DEBUG comms-gatt Notification in GattDevice: b'0f000463013b000100000001000000'
1575 DEBUG hub Notification on 14: b'0f000463013b000100000001000000'
1575 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'3b000100000001000000', 'port': 99, 'event': 1})
1575 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'3b000100000001000000', 'port': 99, 'event': 1})
1575 INFO hub Attached peripheral: TiltSensor on port 0x63
1576 DEBUG comms-gatt Notification in GattDevice: b'0f0004640136000100000001000000'
1576 DEBUG hub Notification on 14: b'0f0004640136000100000001000000'
1576 DEBUG hub Decoded message: MsgHubAttachedIO({'payload': b'36000100000001000000', 'port': 100, 'event': 1})
1576 DEBUG hub Handling msg with <bound method MoveHub._handle_device_change of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAttachedIO({'payload': b'36000100000001000000', 'port': 100, 'event': 1})
1576 WARNING hub Have no dedicated class for peripheral type 0x36 (TECHNIC_MEDIUM_HUB_GEST_SENSOR) on port 0x64
1576 INFO hub Attached peripheral: Peripheral on port 0x64
1652 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
1753 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
1853 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
1954 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2054 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2155 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2255 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2356 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2456 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2556 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2657 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2757 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2858 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
2958 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3058 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3159 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3259 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3360 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3460 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3561 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3661 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3761 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3862 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
3962 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4063 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4163 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4263 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4364 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4464 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4565 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4665 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4766 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4866 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
4967 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5067 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5168 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5268 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5369 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5469 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5570 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5670 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5770 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5871 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
5971 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6072 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6172 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6273 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6373 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6474 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6574 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6675 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6775 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6876 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
6976 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7076 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7177 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7277 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7378 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7478 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7579 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7679 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7780 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7880 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
7980 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8081 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8181 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8282 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8382 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8483 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8583 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8683 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8784 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8884 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
8985 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9085 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9185 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9286 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9386 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9487 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9587 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9688 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9788 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9889 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
9989 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10090 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10190 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10291 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10391 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10492 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10592 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10692 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10793 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10893 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
10994 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11094 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11195 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11295 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11395 DEBUG hub Waiting for builtin devices to appear: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11496 WARNING hub Got only these devices: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11496 DEBUG hub Send message: MsgHubProperties({'payload': b'', 'needs_reply': False, 'property': 1, 'operation': 5, 'parameters': b''})
11496 DEBUG hub Waiting for sync reply to MsgHubProperties({'payload': b'0105', 'needs_reply': True, 'property': 1, 'operation': 5, 'parameters': b''})...
11496 DEBUG comms-gatt Writing to handle: b'0500010105'
11609 DEBUG comms-gatt Notification in GattDevice: b'1000010106546563686e696320487562'
11609 DEBUG hub Notification on 14: b'1000010106546563686e696320487562'
11609 DEBUG hub Decoded message: MsgHubProperties({'payload': b'546563686e696320487562', 'needs_reply': False, 'property': 1, 'operation': 6, 'parameters': b'546563686e696320487562'})
11609 DEBUG hub Found matching upstream msg: MsgHubProperties({'payload': b'546563686e696320487562', 'needs_reply': False, 'property': 1, 'operation': 6, 'parameters': b'546563686e696320487562'})
11609 DEBUG hub Handling msg with <bound method Button._props_msg of Button on port 0x0>: MsgHubProperties({'payload': b'546563686e696320487562', 'needs_reply': False, 'property': 1, 'operation': 6, 'parameters': b'546563686e696320487562'})
11609 DEBUG hub Fetched sync reply: MsgHubProperties({'payload': b'546563686e696320487562', 'needs_reply': False, 'property': 1, 'operation': 6, 'parameters': b'546563686e696320487562'})
11609 DEBUG hub Send message: MsgHubProperties({'payload': b'', 'needs_reply': False, 'property': 13, 'operation': 5, 'parameters': b''})
11610 DEBUG hub Waiting for sync reply to MsgHubProperties({'payload': b'0d05', 'needs_reply': True, 'property': 13, 'operation': 5, 'parameters': b''})...
11610 DEBUG comms-gatt Writing to handle: b'0500010d05'
11698 DEBUG comms-gatt Notification in GattDevice: b'0b00010d0690842b61b341'
11699 DEBUG hub Notification on 14: b'0b00010d0690842b61b341'
11699 DEBUG hub Decoded message: MsgHubProperties({'payload': b'90842b61b341', 'needs_reply': False, 'property': 13, 'operation': 6, 'parameters': b'90842b61b341'})
11699 DEBUG hub Found matching upstream msg: MsgHubProperties({'payload': b'90842b61b341', 'needs_reply': False, 'property': 13, 'operation': 6, 'parameters': b'90842b61b341'})
11699 DEBUG hub Handling msg with <bound method Button._props_msg of Button on port 0x0>: MsgHubProperties({'payload': b'90842b61b341', 'needs_reply': False, 'property': 13, 'operation': 6, 'parameters': b'90842b61b341'})
11699 DEBUG hub Fetched sync reply: MsgHubProperties({'payload': b'90842b61b341', 'needs_reply': False, 'property': 13, 'operation': 6, 'parameters': b'90842b61b341'})
11699 INFO hub b'Technic Hub' on b'90842b61b341'
11699 DEBUG hub Send message: MsgHubProperties({'payload': b'', 'needs_reply': False, 'property': 6, 'operation': 5, 'parameters': b''})
11700 DEBUG hub Waiting for sync reply to MsgHubProperties({'payload': b'0605', 'needs_reply': True, 'property': 6, 'operation': 5, 'parameters': b''})...
11700 DEBUG comms-gatt Writing to handle: b'0500010605'
11788 DEBUG comms-gatt Notification in GattDevice: b'060001060664'
11789 DEBUG hub Notification on 14: b'060001060664'
11789 DEBUG hub Decoded message: MsgHubProperties({'payload': b'64', 'needs_reply': False, 'property': 6, 'operation': 6, 'parameters': b'64'})
11789 DEBUG hub Found matching upstream msg: MsgHubProperties({'payload': b'64', 'needs_reply': False, 'property': 6, 'operation': 6, 'parameters': b'64'})
11789 DEBUG hub Handling msg with <bound method Button._props_msg of Button on port 0x0>: MsgHubProperties({'payload': b'64', 'needs_reply': False, 'property': 6, 'operation': 6, 'parameters': b'64'})
11789 DEBUG hub Fetched sync reply: MsgHubProperties({'payload': b'64', 'needs_reply': False, 'property': 6, 'operation': 6, 'parameters': b'64'})
11789 INFO hub Voltage: 100%
11789 DEBUG hub Send message: MsgHubAlert({'payload': b'', 'needs_reply': False, 'atype': 1, 'operation': 3, 'status': None})
11790 DEBUG hub Waiting for sync reply to MsgHubAlert({'payload': b'0103', 'needs_reply': True, 'atype': 1, 'operation': 3, 'status': None})...
11790 DEBUG comms-gatt Writing to handle: b'0500030103'
11878 DEBUG comms-gatt Notification in GattDevice: b'060003010400'
11879 DEBUG hub Notification on 14: b'060003010400'
11879 DEBUG hub Decoded message: MsgHubAlert({'payload': b'', 'needs_reply': False, 'atype': 1, 'operation': 4, 'status': 0})
11879 DEBUG hub Found matching upstream msg: MsgHubAlert({'payload': b'', 'needs_reply': False, 'atype': 1, 'operation': 4, 'status': 0})
11879 DEBUG hub Fetched sync reply: MsgHubAlert({'payload': b'', 'needs_reply': False, 'atype': 1, 'operation': 4, 'status': 0})
11879 INFO demo Motors movement demo: timed
11879 INFO demo Speed level: 0.0%
11879 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80000647f03'})
11880 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80000647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80000647f03'})...
11880 DEBUG comms-gatt Writing to handle: b'0c0081001109c80000647f03'
11969 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
11969 DEBUG hub Notification on 14: b'0500820001'
11969 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
12148 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
12148 DEBUG hub Notification on 14: b'050082000a'
12149 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12149 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12149 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12149 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80000647f03'})
12149 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c80000647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80000647f03'})...
12149 DEBUG comms-gatt Writing to handle: b'0c0081011109c80000647f03'
12238 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
12238 DEBUG hub Notification on 14: b'0500820101'
12239 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
12418 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
12419 DEBUG hub Notification on 14: b'050082010a'
12419 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12419 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12419 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12419 INFO demo Speed level: 10.0%
12419 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8000a647f03'})
12419 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c8000a647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8000a647f03'})...
12420 DEBUG comms-gatt Writing to handle: b'0c0081001109c8000a647f03'
12509 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
12509 DEBUG hub Notification on 14: b'0500820001'
12509 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
12688 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
12688 DEBUG hub Notification on 14: b'050082000a'
12688 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12688 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12688 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
12688 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800f6647f03'})
12689 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800f6647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800f6647f03'})...
12689 DEBUG comms-gatt Writing to handle: b'0c0081011109c800f6647f03'
12778 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
12778 DEBUG hub Notification on 14: b'0500820101'
12778 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
12958 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
12958 DEBUG hub Notification on 14: b'050082010a'
12958 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12958 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12959 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
12959 INFO demo Speed level: 20.0%
12959 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80014647f03'})
12959 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80014647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80014647f03'})...
12959 DEBUG comms-gatt Writing to handle: b'0c0081001109c80014647f03'
13048 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
13049 DEBUG hub Notification on 14: b'0500820001'
13049 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
13228 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
13228 DEBUG hub Notification on 14: b'050082000a'
13228 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13229 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13229 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13229 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ec647f03'})
13229 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800ec647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ec647f03'})...
13229 DEBUG comms-gatt Writing to handle: b'0c0081011109c800ec647f03'
13318 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
13318 DEBUG hub Notification on 14: b'0500820101'
13318 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
13543 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
13543 DEBUG hub Notification on 14: b'050082010a'
13543 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
13543 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
13544 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
13544 INFO demo Speed level: 30.0%
13544 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8001e647f03'})
13544 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c8001e647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8001e647f03'})...
13544 DEBUG comms-gatt Writing to handle: b'0c0081001109c8001e647f03'
13633 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
13634 DEBUG hub Notification on 14: b'0500820001'
13634 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
13814 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
13814 DEBUG hub Notification on 14: b'050082000a'
13814 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13814 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13814 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
13814 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800e2647f03'})
13815 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800e2647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800e2647f03'})...
13815 DEBUG comms-gatt Writing to handle: b'0c0081011109c800e2647f03'
13904 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
13904 DEBUG hub Notification on 14: b'0500820101'
13904 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
14083 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
14083 DEBUG hub Notification on 14: b'050082010a'
14083 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14084 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14084 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14084 INFO demo Speed level: 40.0%
14084 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80028647f03'})
14084 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80028647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80028647f03'})...
14084 DEBUG comms-gatt Writing to handle: b'0c0081001109c80028647f03'
14218 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
14219 DEBUG hub Notification on 14: b'0500820001'
14219 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
14353 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
14354 DEBUG hub Notification on 14: b'050082000a'
14354 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14354 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14354 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14354 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800d8647f03'})
14354 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800d8647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800d8647f03'})...
14354 DEBUG comms-gatt Writing to handle: b'0c0081011109c800d8647f03'
14443 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
14443 DEBUG hub Notification on 14: b'0500820101'
14443 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
14624 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
14624 DEBUG hub Notification on 14: b'050082010a'
14624 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14624 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14624 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
14624 INFO demo Speed level: 50.0%
14624 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80032647f03'})
14625 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80032647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80032647f03'})...
14625 DEBUG comms-gatt Writing to handle: b'0c0081001109c80032647f03'
14713 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
14714 DEBUG hub Notification on 14: b'0500820001'
14714 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
14938 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
14939 DEBUG hub Notification on 14: b'050082000a'
14939 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14939 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14939 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
14939 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ce647f03'})
14939 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800ce647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ce647f03'})...
14939 DEBUG comms-gatt Writing to handle: b'0c0081011109c800ce647f03'
15028 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
15029 DEBUG hub Notification on 14: b'0500820101'
15029 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
15253 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
15254 DEBUG hub Notification on 14: b'050082010a'
15254 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15254 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15254 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15254 INFO demo Speed level: 60.0%
15254 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8003c647f03'})
15254 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c8003c647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8003c647f03'})...
15255 DEBUG comms-gatt Writing to handle: b'0c0081001109c8003c647f03'
15343 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
15343 DEBUG hub Notification on 14: b'0500820001'
15344 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
15568 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
15568 DEBUG hub Notification on 14: b'050082000a'
15568 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
15568 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
15569 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
15569 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800c4647f03'})
15569 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800c4647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800c4647f03'})...
15569 DEBUG comms-gatt Writing to handle: b'0c0081011109c800c4647f03'
15703 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
15704 DEBUG hub Notification on 14: b'0500820101'
15704 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
15883 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
15883 DEBUG hub Notification on 14: b'050082010a'
15884 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15884 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15884 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
15884 INFO demo Speed level: 70.0%
15884 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80046647f03'})
15884 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80046647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80046647f03'})...
15884 DEBUG comms-gatt Writing to handle: b'0c0081001109c80046647f03'
15973 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
15974 DEBUG hub Notification on 14: b'0500820001'
15974 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
16153 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
16154 DEBUG hub Notification on 14: b'050082000a'
16154 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16154 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16154 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16154 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ba647f03'})
16154 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800ba647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800ba647f03'})...
16155 DEBUG comms-gatt Writing to handle: b'0c0081011109c800ba647f03'
16288 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
16288 DEBUG hub Notification on 14: b'0500820101'
16289 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
16423 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
16423 DEBUG hub Notification on 14: b'050082010a'
16423 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16423 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16424 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16424 INFO demo Speed level: 80.0%
16424 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80050647f03'})
16424 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80050647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80050647f03'})...
16424 DEBUG comms-gatt Writing to handle: b'0c0081001109c80050647f03'
16513 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
16513 DEBUG hub Notification on 14: b'0500820001'
16514 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
16693 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
16693 DEBUG hub Notification on 14: b'050082000a'
16693 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16694 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16694 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
16694 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800b0647f03'})
16694 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800b0647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800b0647f03'})...
16695 DEBUG comms-gatt Writing to handle: b'0c0081011109c800b0647f03'
16783 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
16783 DEBUG hub Notification on 14: b'0500820101'
16784 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
16963 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
16963 DEBUG hub Notification on 14: b'050082010a'
16964 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16964 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16964 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
16964 INFO demo Speed level: 90.0%
16964 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8005a647f03'})
16964 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c8005a647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8005a647f03'})...
16964 DEBUG comms-gatt Writing to handle: b'0c0081001109c8005a647f03'
17053 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
17054 DEBUG hub Notification on 14: b'0500820001'
17054 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
17233 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
17233 DEBUG hub Notification on 14: b'050082000a'
17234 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17234 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17234 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17234 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800a6647f03'})
17234 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c800a6647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c800a6647f03'})...
17234 DEBUG comms-gatt Writing to handle: b'0c0081011109c800a6647f03'
17323 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
17323 DEBUG hub Notification on 14: b'0500820101'
17324 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
17504 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
17505 DEBUG hub Notification on 14: b'050082010a'
17505 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
17505 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
17505 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
17505 INFO demo Speed level: 100.0%
17506 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80064647f03'})
17506 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'001109c80064647f03', 'needs_reply': True, 'port': 0, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c80064647f03'})...
17506 DEBUG comms-gatt Writing to handle: b'0c0081001109c80064647f03'
17593 DEBUG comms-gatt Notification in GattDevice: b'0500820001'
17593 DEBUG hub Notification on 14: b'0500820001'
17594 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 1})
17773 DEBUG comms-gatt Notification in GattDevice: b'050082000a'
17774 DEBUG hub Notification on 14: b'050082000a'
17774 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17774 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17774 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 0, 'status': 10})
17774 DEBUG hub Send message: MsgPortOutput({'payload': b'', 'needs_reply': False, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8009c647f03'})
17774 DEBUG hub Waiting for sync reply to MsgPortOutput({'payload': b'011109c8009c647f03', 'needs_reply': True, 'port': 1, 'is_buffered': False, 'do_feedback': True, 'subcommand': 9, 'params': b'c8009c647f03'})...
17774 DEBUG comms-gatt Writing to handle: b'0c0081011109c8009c647f03'
17863 DEBUG comms-gatt Notification in GattDevice: b'0500820101'
17863 DEBUG hub Notification on 14: b'0500820101'
17863 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 1})
18043 DEBUG comms-gatt Notification in GattDevice: b'050082010a'
18043 DEBUG hub Notification on 14: b'050082010a'
18043 DEBUG hub Decoded message: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
18044 DEBUG hub Found matching upstream msg: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
18044 DEBUG hub Fetched sync reply: MsgPortOutputFeedback({'payload': b'', 'port': 1, 'status': 10})
18044 DEBUG hub Send message: MsgHubAction({'payload': b'', 'needs_reply': False, 'action': 2})
18044 DEBUG hub Waiting for sync reply to MsgHubAction({'payload': b'02', 'needs_reply': True, 'action': 2})...
18044 DEBUG comms-gatt Writing to handle: b'04000202'
18133 DEBUG comms-gatt Notification in GattDevice: b'04000231'
18134 DEBUG hub Notification on 14: b'04000231'
18134 DEBUG hub Decoded message: MsgHubAction({'payload': b'', 'needs_reply': False, 'action': 49})
18134 DEBUG hub Found matching upstream msg: MsgHubAction({'payload': b'', 'needs_reply': False, 'action': 49})
18134 DEBUG hub Handling msg with <bound method Hub._handle_action of <pylgbst.hub.MoveHub object at 0x7f0cf20ef940>>: MsgHubAction({'payload': b'', 'needs_reply': False, 'action': 49})
18134 DEBUG hub Fetched sync reply: MsgHubAction({'payload': b'', 'needs_reply': False, 'action': 49})
18134 WARNING hub Hub disconnects
Traceback (most recent call last):
File "/home/korbinian/Projects/pylgbst-master/examples/demo.py", line 278, in <module>
demo(hub)
File "/home/korbinian/Projects/pylgbst-master/examples/demo.py", line 188, in demo_all
demo_motors_timed(movehub)
File "/home/korbinian/Projects/pylgbst-master/examples/demo.py", line 46, in demo_motors_timed
movehub.motor_AB.timed(1.5, -0.2, 0.2)
AttributeError: 'NoneType' object has no attribute 'timed'
Great, it is now much more clarity. The next question is: how many motors have you attached to your hub?
I see three records of motor attached. If you have attached only two motors, the third message probably means joint motor.
If you have only two motors attached, try this line after hub initializes:
hub.motor_AB = hub.peripherals[0x03]
That's a hack-ish way of fixing it. The proper way would be to create a dedicated Hub subclass for device "Technic Hub 88012", so it would only expect specific set of devices to appear. And also create some peripheral classes for unhandled types of devices like temperature sensors.
Sorry for the late feedback.
The hub has 3 motors connected. I can control and move every single one.
The two motors for driving are on A and B. On D there is a motor that turns the whole thing.
How did you find out which port goes with what? Because I've looked at the data traffic from the Lego Handy APP and Hub and even with the BLE documentation I can't find out what is being sent. I find out the standard like Mac address etc. but not which commands are sent
There are messages like this in the log:
1530 INFO hub Attached peripheral: EncodedMotor on port 0x0
From it, you know that you can access that motor via hub.peripherals[0x0]
.
Regarding combining two motors, it looks like you need to do a "virtual port setup", as LEGO docs suggest here: https://lego.github.io/lego-ble-wireless-protocol-docs/index.html#virtual-port-setup
No guarantees that it would work (see REMARK in docs). But it's worth trying.
Here's how I'd try it:
import time
from pylgbst.hub import Hub
from pylgbst.messages import MsgVirtualPortSetup
hub = Hub() # no point in using MoveHub here, should be base or dedicated class
time.sleep(5) # might be needed for Hub to sync up first
cmd_type = MsgVirtualPortSetup.CMD_CONNECT
ports_to_combine = (0x01, 0x02)
msg_combine = MsgVirtualPortSetup(cmd_type, ports_to_combine)
hub.send(msg_combine)
time.sleep(1)
# at this time, the MsgHubAttachedIO should arrive with combined port number
combined_port = 0x0 # put here the value that comes for it
hub.peripherals[combined_port].angled(180) # should be used like this
This is a very interesting experiment, please keep on trying :)
I apologize for the late response.
I tried your code, added the Mac address, it establishes the connection and starts running for a moment. But only one motor is running and I get this message:
Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x3d
Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x60
Have no dedicated class for peripheral type 0x39 (TECHNIC_MEDIUM_HUB_ACCELEROMETER) on port 0x61
Have no dedicated class for peripheral type 0x3a (TECHNIC_MEDIUM_HUB_GYRO_SENSOR) on port 0x62
Have no dedicated class for peripheral type 0x36 (TECHNIC_MEDIUM_HUB_GEST_SENSOR) on port 0x64
Command error: Command 0x61 caused error 0x5: Command NOT recognized
with the command "combined_port", what do I have to add there?
It works, so half :)
After running your test code, the connection to the hub remains.
Then I ran the Demo.py to test it and it ran completely.
In other words, there was an error with the AB commands (the reason for this ticket) now it works.
But why is it now and on which port is now AB?
"Have no dedicated class for peripheral type" messages mean that the library does not have code to support certain onboard device types. This is harmless and there is a way to implement support for those. It's a separate story and requires running a "capability report" script like in #118. If you are willing to help, we can do that in a separate issue/PR.
Regarding port combining, I'm confused. The message "Command error: Command 0x61 caused error 0x5: Command NOT recognized" means the hub does not support combining the motors together. I couldn't understand from your message, which code did you run and was it working as expected or not.
I have now written my own little test. Everything works with this:
import time
from pylgbst import *
from pylgbst.hub import MoveHub
from pylgbst.messages import MsgVirtualPortSetup
from pylgbst import get_connection_gatt
def test(hub):
hub.port_D.timed(3, -1)
hub.port_D.timed(3, 1)
hub.motor_AB.timed(2, -1, 1)
hub.motor_AB.timed(2, 1, -1)
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO, format='%(relativeCreated)d\t%(levelname)s\t%(name)s\t%(message)s')
parameters = get_connection_gatt(hub_mac='00:00:00:00:00:00')
try:
hub = MoveHub(parameters)
cmd_type = MsgVirtualPortSetup.CMD_CONNECT
ports_to_combine = (0x00, 0x01)
msg_combine = MsgVirtualPortSetup(cmd_type, ports_to_combine)
hub.send(msg_combine)
time.sleep(1)
except ValueError as err:
parser.error(err.args[0])
try:
test(hub)
finally:
hub.disconnect()
The feedback is:
155 INFO comms-gatt Discovering devices...
159 INFO comms Found Technic Hub at 90:84:2b:61:b3:41
319 INFO comms-gatt Waiting for device connection...
1401 INFO hub Attached peripheral: EncodedMotor on port 0x0
1402 INFO hub Attached peripheral: EncodedMotor on port 0x1
1403 INFO hub Attached peripheral: EncodedMotor on port 0x3
1403 INFO hub Attached peripheral: LEDRGB on port 0x32
1444 INFO hub Attached peripheral: Current on port 0x3b
1444 INFO hub Attached peripheral: Voltage on port 0x3c
1445 WARNING hub Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x3d
1445 INFO hub Attached peripheral: Peripheral on port 0x3d
1445 WARNING hub Have no dedicated class for peripheral type 0x3c (TECHNIC_MEDIUM_HUB_TEMPERATURE_SENSOR) on port 0x60
1445 INFO hub Attached peripheral: Peripheral on port 0x60
1446 WARNING hub Have no dedicated class for peripheral type 0x39 (TECHNIC_MEDIUM_HUB_ACCELEROMETER) on port 0x61
1446 INFO hub Attached peripheral: Peripheral on port 0x61
1446 WARNING hub Have no dedicated class for peripheral type 0x3a (TECHNIC_MEDIUM_HUB_GYRO_SENSOR) on port 0x62
1446 INFO hub Attached peripheral: Peripheral on port 0x62
1489 INFO hub Attached peripheral: TiltSensor on port 0x63
1489 WARNING hub Have no dedicated class for peripheral type 0x36 (TECHNIC_MEDIUM_HUB_GEST_SENSOR) on port 0x64
1490 INFO hub Attached peripheral: Peripheral on port 0x64
11348 WARNING hub Got only these devices: (EncodedMotor on port 0x0, EncodedMotor on port 0x1, None, LEDRGB on port 0x32, None, Current on port 0x3b, Voltage on port 0x3c)
11525 INFO hub b'Technic Hub' on b'90842b61b341'
11615 INFO hub Voltage: 100%
11840 INFO hub Attached peripheral: EncodedMotor on port 0x10
23045 WARNING hub Hub disconnects
Here you can also see that the virtual port runs on 0x10.
I thank you for your help so far.
Alright, so the combine command now works. I wonder why it did not work before.
If we're strict, the port names are likely to be wrong, 'cause the kind of brick class is different. Still I'd create a dedicated subclass of Hub()
for this brick type. But that's a different story, if you want to make this world better :)
Now that it works, I'll try a few more things.
so it may well be that i write a subclass for this type of hub.
I'll let you know when the subclass is ready so you can see through it. :)