Bluetooth socket timeout, device pairing

Maksim Yevmenkin maksim.yevmenkin at gmail.com
Thu Dec 18 21:51:50 PST 2008


Oliver,

> My Bluetooth Python module basically works now.
> However, I've got one small problem with pairing ...
>
> I have entered an 8-character PIN code in hcsecd.conf.
> When I try to open a connection for the first time,
> the device (i.e. my Mindstorms NXT brick) asks me to
> enter the PIN code.  However, entering the code on
> the brick takes some time ...  I have to scroll
> through the alphabet and digits which is rather slow.
> I can enter at most 4 characters of the PIN code
> before the socket() call returns with ECONN
> ("Connection refused").
>
> For now I'm using a short 4-character PIN code, but
> I would really like to use a longer one.  Where is
> the timeout defined for that?

its so called "LMP (link manager protocol) response timeout". its
defined in link manager, i.e. part of the device's firmware. v1.1 spec
seems to be implying that LMP response timeout should be set to 30
sec.

> Python's socket module has no timeout by default.
> I've also searched the net.bluetooth sysctls and
> increased all of the timeout values (half a dozen),
> but none of them seemed to have an effect on this
> particular problem.  So I think this value must be
> hardcoded somewhere.  Where do I have to look?

i'm afraid that you can not change LMP response timeout. there isn't
any defined command that would do that. i'm not sure why do you care
much about pin length. pin is only used once to generate link key and
as soon as link key is generated both devices should use it instead of
pin.

thanks,
max


More information about the freebsd-bluetooth mailing list