Comments (12)
Anyone successfully connected to a peripheral from MacOS 10.8 or 10.9? I've tried everything at this point. Maybe it's something about the connection window being to short? Can it be configured?
Best regards,
Fredrik
from arduino-bleperipheral.
@freber I've got it working with 10.9 using LightBlue. Sometimes it does take a few attempts to connect, I'm not sure if it's a connection interval thing or just the way OS X behaves.
Connection interval could be configure if nRF Go Studio exposes it, we would need to figure out which bytes in the setup message control it.
from arduino-bleperipheral.
Interesting, I couldn't get it to connect in LightBlue, I can only see it advertise.
I will try to diff the service.h file with a change in the connection interval to see where that goes in the configuration.
Also, I couldn't strip down the working profile more than 11 config messages. I can see that you managed to get it down to 7.
Best regards,
Fredrik
from arduino-bleperipheral.
I manged to diff the service.h files from a few different configurations now.
It looks like the connection interval is set at 2 places.
baseSetupMsgs[8] and baseSetupMsgs[last]
diff services_min1000ms_max4000ms.h services_min10ms_max30ms.h
----- start -------------------------------------------------------------------
77,78c77,78
< #define GAP_PPCP_MAX_CONN_INT 0xc80 /**< Maximum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific value requested */
< #define GAP_PPCP_MIN_CONN_INT 0x320 /**< Minimum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific value requested */
---
> #define GAP_PPCP_MAX_CONN_INT 0x18 /**< Maximum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific value requested */
> #define GAP_PPCP_MIN_CONN_INT 0x8 /**< Minimum connection interval as a multiple of 1.25 msec , 0xFFFF means no specific value requested */
133c133
<0x04,0x01,0x20,0x03,0x80,0x0c,0x00,0x00,0xff,0xff,0x04,0x04,\
---
>0x04,0x01,0x08,0x00,0x18,0x00,0x00,0x00,0xff,0xff,0x04,0x04,\
267c267
<0x06,0x06,0xf0,0x00,0x03,0xe5,0xf0,\
---
>0x06,0x06,0xf0,0x00,0x03,0xe7,0x42,\
----- end --------------------------------------------------------------------
I wonder why it's set in 2 different places. Also, I actually wonder what are reasonable values for these two configuration parameters together with the Connection supervision timeout ;)
Regards,
Fredrik
from arduino-bleperipheral.
I've updated the syntax markdown now..
from arduino-bleperipheral.
Just curious which nRF8001 device and Arduino are you using?
from arduino-bleperipheral.
I'm using a Arduino Pro Mini (3.3v) and a Bluefruit LE (http://www.adafruit.com/products/1697)
from arduino-bleperipheral.
One more thing to try out is to clear the CoreBluetooth/blued cache, I wonder if it's expecting the extra characteristics nRFgo studio uses (which I removed). See: http://stackoverflow.com/questions/23549859/clearing-corebluetooth-gatt-cache-without-removing-bond
from arduino-bleperipheral.
Sorry for late reply.
I've tried to clear the cache. Still no progress. I've pulled from the git repo today and is trying the starter.ino together with LightBlue. I've mailed Punch Through Design (makers of LightBlue) and asked what intervals they are using.
They use 20 milliseconds for connection interval and 5.9 seconds for supervision.
Best regards,
Fredrik
from arduino-bleperipheral.
@freber do you have another Arduino like the Uno or Leonardo to test with? I don't have a Arduino Pro Mini (3.3v) to try out the lib with ...
You could also try manually modifying the setup messages (with the diffs from) earlier in nRF800.cpp
from arduino-bleperipheral.
@freber debug output would also be useful, uncomment: https://github.com/sandeepmistry/arduino-BLEPeripheral/blob/master/nRF8001.cpp#L13
Also, Apple's Hardware IO tools has a BLE packet inspector, the trace from that would be useful as well ... http://iosdevblog.com/tag/hardware-io-tools-for-xcode/
from arduino-bleperipheral.
@freber closing this for now, please re-open with the request debug info ...
from arduino-bleperipheral.
Related Issues (20)
- Can't detect remote devices
- NRF5: CCCDs aren't persisted for bonded peers
- How to set service name ? HOT 1
- ANCS Implementation canWrite is false
- Speed / baudrate of the BLE connection?
- Numpad key codes, anyone?
- How to send more than 20bytes in each transaction with bleSerial.write()?
- Olimexino-nano + Olimexino-nano-ble freezes after begin()
- Why is my BLE Service not appearing after a successful flash? HOT 2
- [Question] Sending long string BLECharacteristic
- Abandoned project?
- nrf52840 HOT 4
- Freeze on blePeripheral.begin(); HOT 7
- BLE Scan
- softdevice_sys_evt_handler_set()
- RFDuino using BLEPerfipheralObserver to scan for iBeacons - Issue HOT 2
- Update iBeacon broadcast packet after starting
- Setting chip to idle state in between measurements
- nRF52832 Supported?
- UART Rx hangs after a few seconds when BLEPeripheral.begin(); is called on nRF51802
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduino-bleperipheral.