virtualabs / btlejack

Bluetooth Low Energy Swiss-army knife
MIT License
1.88k stars 195 forks source link

Trying to figure out how to run btlejack with a nrf51 Dongle #36

Closed just-a-beginner closed 5 years ago

just-a-beginner commented 5 years ago

Hi there,

I want to do some research on BLE communication and just stumbled across btlejack. I'm more or less a total noob... just found a nRF51 dongle in our office and wanted to give it a try.

So far the installation on Raspbian was working properly and after mounting the dongle as a mass storage device it looks like btlejack -i copied / flashed the firmware as expected:

pi@raspberrypi:/media/MICROBIT $ btlejack -i
BtleJack version 1.3
[i] Flashing /media/MICROBIT ...
[i] Flashed 1 devices

Nevertheless I get an error after btlejack -s that no Micro:Bit device is found hence I tried to select the device directly with 'sudo btlejack -d /dev/sdb -s' which gave me the follwing error:

pi@raspberrypi:/media/MICROBIT $ sudo btlejack -d /dev/sdb/ -s
BtleJack version 1.3

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/serial/serialposix.py", line 265, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
NotADirectoryError: [Errno 20] Not a directory: '/dev/sdb/'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/btlejack", line 11, in <module>
    load_entry_point('btlejack==1.3.0', 'console_scripts', 'btlejack')()
  File "/usr/local/lib/python3.7/site-packages/btlejack/__init__.py", line 240, in main
    supervisor = CLIAccessAddressSniffer(verbose=args.verbose, devices=args.devices)
  File "/usr/local/lib/python3.7/site-packages/btlejack/ui.py", line 329, in __init__
    super().__init__(devices=devices)
  File "/usr/local/lib/python3.7/site-packages/btlejack/supervisors.py", line 88, in __init__
    self.interface = SingleSnifferInterface(devices[0], baudrate)
  File "/usr/local/lib/python3.7/site-packages/btlejack/jobs.py", line 24, in __init__
    self.link = Link(interface=device, baudrate=115200)
  File "/usr/local/lib/python3.7/site-packages/btlejack/link.py", line 57, in __init__
    self.interface = Serial(interface, baudrate, timeout=0)
  File "/usr/local/lib/python3.7/site-packages/serial/serialutil.py", line 240, in __init__
    self.open()
  File "/usr/local/lib/python3.7/site-packages/serial/serialposix.py", line 268, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 20] could not open port /dev/sdb/: [Errno 20] Not a directory: '/dev/sdb/'

Is the nRF51 dongle maybe not usable, is there any other problem or have I overlooked something? Btw. Raspbian was freshly installed, Python 3.7.2 afterwards and followed by btlejack.

Thanks in advance.

just-a-beginner commented 5 years ago

User issue... had to select the correct device.