Skip to content

Raspberry Pi 3 not connecting to Control+ Hub #191

@kilombo

Description

@kilombo

Hi, first point: Thank you to all the participants in this project for doing a great job.

I was using this library to connect my Raspberry Pi 3 to the Control+ Lego Hub without any issues. However, after a Raspberry update (I assume), it suddenly stopped working; the Raspberry Pi is no longer able to connect to the hub via Bluetooth.

Some points:

I did not change my code, so I assume it is an issue related to the Raspberry Pi and the Bluetooth connection—perhaps something related to the noble Bluetooth library?
My MacBook Pro can connect to the hub without any issues.
I checked for any pending firmware updates for the Lego Control+ Hub using the Lego App, and it appears to be up to date.

  • I've tried using bluetoothctl, and I can see [NEW] Device 90:84:2B:7A:F8:D6 Technic Hub

When trying to pair, I get:
[bluetooth]# pair 90:84:2B:7A:F8:D6 Attempting to pair with 90:84:2B:7A:F8:D6 [CHG] Device 90:84:2B:7A:F8:D6 Connected: yes Failed to pair: org.bluez.Error.AuthenticationFailed

`serialport/bindings loading LinuxBinding +0ms
serialport/stream .list +0ms
Scanning for Hubs...
hci setting filter to: 1600000020c10800000000400000 +0ms
hci onSocketError: EINVAL, Invalid argument +5ms
hci set event mask - writing: 01010c08fffffbff07f8bf3d +3ms
hci set le event mask - writing: 010120081f00000000000000 +1ms
hci read local version - writing: 01011000 +1ms
hci write LE host supported - writing: 016d0c020100 +1ms
hci read LE host supported - writing: 016c0c00 +1ms
hci le read buffer size - writing: 01022000 +2ms
hci read bd addr - writing: 01091000 +2ms
1740722201433 Available /dev/ttyACM0
serialport/stream opening path: /dev/ttyACM0 +0ms
serialport/binding-abstract open +0ms
1740722201564 Connected /dev/ttyACM0
serialport/stream _read queueing _read for after open +11ms
serialport/bindings/poller Creating poller +0ms
serialport/stream opened path: /dev/ttyACM0 +4ms
serialport/stream _read reading { start: 0, toRead: 256 } +1ms
serialport/binding-abstract read +24ms
serialport/bindings/unixRead Starting read +0ms
serialport/bindings/unixRead read error [Error: EAGAIN: resource temporarily unavailable, read] {
errno: -11,
code: 'EAGAIN',
syscall: 'read'
} +17ms
serialport/bindings/unixRead waiting for readable because of code: EAGAIN +8ms
serialport/bindings/poller Polling for "readable" +40ms
Música desactivada
Reproducción finalizada
serialport/bindings/poller received "readable" +4s
serialport/bindings/unixRead Starting read +4s
serialport/bindings/unixRead Finished read 9 bytes +1ms
serialport/stream binding.read finished { bytesRead: 9 } +4s
serialport/stream _read reading { start: 9, toRead: 247 } +5ms
serialport/binding-abstract read +4s
serialport/bindings/unixRead Starting read +7ms
serialport/bindings/unixRead Finished read 43 bytes +1ms
serialport/stream binding.read finished { bytesRead: 43 } +3ms
serialport/stream _write 3 bytes of data +4ms
serialport/binding-abstract write 3 bytes +8ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +0ms
serialport/stream _read reading { start: 52, toRead: 204 } +6ms
serialport/binding-abstract read +5ms
serialport/bindings/unixRead Starting read +12ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +4ms
serialport/bindings/unixWrite Finished writing 3 bytes +1ms
serialport/stream binding.write write finished +5ms
serialport/bindings/unixRead read error [Error: EAGAIN: resource temporarily unavailable, read] {
errno: -11,
code: 'EAGAIN',
syscall: 'read'
} +5ms
serialport/bindings/unixRead waiting for readable because of code: EAGAIN +2ms
serialport/bindings/poller Polling for "readable" +29ms
serialport/bindings/poller received "readable" +2ms
serialport/bindings/unixRead Starting read +3ms
serialport/bindings/unixRead Finished read 61 bytes +2ms
serialport/stream binding.read finished { bytesRead: 61 } +9ms
serialport/stream _read reading { start: 113, toRead: 143 } +1ms
serialport/binding-abstract read +15ms
serialport/bindings/unixRead Starting read +5ms
serialport/bindings/unixRead Finished read 24 bytes +1ms
serialport/stream binding.read finished { bytesRead: 24 } +5ms
serialport/stream _read discarding the read buffer pool because it is below kMinPoolSpace +1ms
serialport/stream _read reading { start: 0, toRead: 256 } +1ms
serialport/binding-abstract read +7ms
serialport/bindings/unixRead Starting read +5ms
serialport/bindings/unixRead Finished read 48 bytes +3ms
serialport/stream binding.read finished { bytesRead: 48 } +7ms
serialport/stream _read reading { start: 48, toRead: 208 } +1ms
serialport/binding-abstract read +8ms
serialport/bindings/unixRead Starting read +5ms
serialport/bindings/unixRead Finished read 24 bytes +2ms
serialport/stream binding.read finished { bytesRead: 24 } +5ms
serialport/stream _read reading { start: 72, toRead: 184 } +1ms
serialport/binding-abstract read +6ms
serialport/bindings/unixRead Starting read +3ms
serialport/bindings/unixRead Finished read 48 bytes +1ms
serialport/stream binding.read finished { bytesRead: 48 } +2ms
serialport/stream _read reading { start: 120, toRead: 136 } +1ms
serialport/binding-abstract read +3ms
serialport/bindings/unixRead Starting read +2ms
serialport/bindings/unixRead Finished read 24 bytes +1ms
serialport/stream binding.read finished { bytesRead: 24 } +3ms
serialport/stream _read discarding the read buffer pool because it is below kMinPoolSpace +1ms
serialport/stream _read reading { start: 0, toRead: 256 } +1ms
serialport/binding-abstract read +5ms
serialport/bindings/unixRead Starting read +5ms
serialport/bindings/unixRead Finished read 2 bytes +1ms
serialport/stream binding.read finished { bytesRead: 2 } +4ms
serialport/stream _write 3 bytes of data +10ms
serialport/binding-abstract write 3 bytes +13ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +57ms
serialport/stream _read reading { start: 2, toRead: 254 } +6ms
serialport/binding-abstract read +9ms
serialport/bindings/unixRead Starting read +21ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +9ms
serialport/bindings/unixWrite Finished writing 3 bytes +1ms
serialport/stream binding.write write finished +6ms
serialport/bindings/unixRead read error [Error: EAGAIN: resource temporarily unavailable, read] {
errno: -11,
code: 'EAGAIN',
syscall: 'read'
} +3ms
serialport/bindings/unixRead waiting for readable because of code: EAGAIN +2ms
serialport/bindings/poller Polling for "readable" +63ms
serialport/bindings/poller received "readable" +1ms
serialport/bindings/unixRead Starting read +4ms
serialport/bindings/unixRead Finished read 23 bytes +2ms
serialport/stream binding.read finished { bytesRead: 23 } +10ms
1740722205451 Repl Initialized

Board ready, let's add light
INFO: Default gamma behaviour is changing
0.9 - gamma=1.0 - consistent with pre-gamma values
0.10 - gamma=2.8 - default fix for WS2812 LEDs
serialport/stream _write 7 bytes of data +134ms
serialport/binding-abstract write 7 bytes +149ms
serialport/stream _read reading { start: 25, toRead: 231 } +8ms
serialport/binding-abstract read +7ms
serialport/bindings/unixWrite Starting write 7 bytes offset 0 bytesToWrite 7 +157ms
serialport/bindings/unixRead Starting read +150ms
serialport/bindings/unixWrite write returned: wrote 7 bytes +5ms
serialport/bindings/unixWrite Finished writing 7 bytes +1ms
serialport/stream binding.write write finished +12ms
serialport/bindings/unixRead read error [Error: EAGAIN: resource temporarily unavailable, read] {
errno: -11,
code: 'EAGAIN',
syscall: 'read'
} +6ms
serialport/bindings/unixRead waiting for readable because of code: EAGAIN +2ms
serialport/bindings/poller Polling for "readable" +164ms
Strip ready, let's go
serialport/stream _write 8 bytes of data +23ms
serialport/binding-abstract write 8 bytes +34ms
serialport/bindings/unixWrite Starting write 8 bytes offset 0 bytesToWrite 8 +34ms
serialport/bindings/unixWrite write returned: wrote 8 bytes +4ms
serialport/bindings/unixWrite Finished writing 8 bytes +0ms
serialport/stream binding.write write finished +15ms
serialport/stream _write 4 bytes of data +1ms
serialport/binding-abstract write 4 bytes +17ms
serialport/bindings/unixWrite Starting write 4 bytes offset 0 bytesToWrite 4 +6ms
serialport/bindings/unixWrite write returned: wrote 4 bytes +2ms
serialport/bindings/unixWrite Finished writing 4 bytes +1ms
serialport/stream binding.write write finished +7ms
serialport/stream _write 3 bytes of data +72ms
serialport/binding-abstract write 3 bytes +79ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +79ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +1ms
serialport/bindings/unixWrite Finished writing 3 bytes +1ms
serialport/stream binding.write write finished +9ms
serialport/stream _write 3 bytes of data +0ms
serialport/binding-abstract write 3 bytes +9ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +1ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +1ms
serialport/bindings/unixWrite Finished writing 3 bytes +1ms
serialport/stream binding.write write finished +3ms
serialport/stream _write 8 bytes of data +50ms
serialport/binding-abstract write 8 bytes +53ms
Ya hay un sonido en reproducción o soundActive está desactivado.
Firebase update false #00ffff 60000
serialport/bindings/unixWrite Starting write 8 bytes offset 0 bytesToWrite 8 +77ms
serialport/bindings/unixWrite write returned: wrote 8 bytes +3ms
serialport/bindings/unixWrite Finished writing 8 bytes +1ms
serialport/stream binding.write write finished +32ms
serialport/stream _writev 3 chunks of data +1ms
serialport/stream _write 16 bytes of data +1ms
serialport/binding-abstract write 16 bytes +34ms
serialport/bindings/unixWrite Starting write 16 bytes offset 0 bytesToWrite 16 +5ms
serialport/bindings/unixWrite write returned: wrote 16 bytes +3ms
serialport/bindings/unixWrite Finished writing 16 bytes +1ms
serialport/stream binding.write write finished +8ms
Moving Servo
serialport/stream _write 3 bytes of data +902ms
serialport/binding-abstract write 3 bytes +909ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +905ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +1ms
serialport/bindings/unixWrite Finished writing 3 bytes +0ms
serialport/stream binding.write write finished +3ms
Moving UP Servo
serialport/stream _write 3 bytes of data +496ms
serialport/binding-abstract write 3 bytes +499ms
serialport/bindings/unixWrite Starting write 3 bytes offset 0 bytesToWrite 3 +499ms
serialport/bindings/unixWrite write returned: wrote 3 bytes +1ms
serialport/bindings/unixWrite Finished writing 3 bytes +1ms
serialport/stream binding.write write finished +4ms
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions