Can a Bluetooth 2.1+EDR module wake a Bluetooth 4.0 Low Energy+Dual Mode (BLE+EDR) module up, if that is in sleeping mode, if it tries to connect to the BLE+EDR? And can the 2.1+EDR module see the name of BLE+EDR in sleep mode at all?
BLE works together with an other BLE device only, but a BLE+EDR Dual Mode works with Classic BT (2.1+EDR) too. My question would be: Could a Classic BT wake up a BLE+EDR Dual Mode device if it is in sleeping mode by trying to connect to it?
Related
I am having a BT dual mode EVK which can operate in BT 4.2 LE and Classic as well.
I want to check if this module would connect/ be compatible with my BT access point which is of BT 2.1+EDR.
Thank you in advance.
Yes, assuming that you are after a normal connection then you dual mode Bluetooth 4.2 device should connect to a BT2.1 +EDR device. Most Android phones nowadays support dual mode Bluetooth 4.X (where X is 0, 1, or 2) and they can connect to BT 2.1 +EDR devices without an issue.
I am working on Arduino demo application, try to connect Lego EV3 main brain brick to a dual-mode bluetooth BT12.
On EV3 brick, the operations (searching and pairing) are going well, but after I click "connect", it shows "connected" and my bluetooth module is keeping flashing its red LED light, which means not connected well.
I tried to use another bluetooth module HC-05 which is a bluetooth 2.0 module. The code is working fine.
I am not sure if it's because of the dual modes of bluetooth.
The default channel for DX-BT12 is 3, not 1 which has been set in RN-42 or HC-06. You can get access to BT12 by typing :
sudo rfcomm bind 0 XX:XX:XX:XX:XX:XX 3
and
cat /dev/rfcomm0
I have a task where i need to implement L2 Suspend state in Link Power Management. I use a development board where it has DWC3 usb controller interfaced with PHY. Basically our board uses Linux usb DWC3 driver and connected to Host.
My understanding is USB controller generates SUSPEND signal after bus inactivity of 3.125 msec.
Can anyone tell me how can i configure this controller to implement L2 suspend state?
In your current setup, your board is in device/gadget mode and you are connected to host.
Remember that USB device can not drive suspend signalling. It is supposed to be started by Host.
The process of suspend for USB 2.0 device -
1 - USB host has no data to send and currently its sending SOF frames
2 - Host SW suspends the device by setting suspend/U3 in EHCI/XHCI controller
3 - Now the USB device sees idle state in the bus where there is no SOF
4 - After approx 3 ms, the device hardware starts to suspend itself by removing its termination to the ground and connecting the internal pull up register
5 - Then the device again poll the lines to see whether the host has removed its termination or not.
6 - Since host has removed the termination, the device will go to suspend
Process of suspend for USB 3.0 device -
1 - USB host has no data to send
2 - Host SW suspends the device by setting U3 in XHCI controller
3 - Host starts sending LGO_U3 link commands to initiate the suspend signalling
4 - After device receives LGO_U3 command, it will acknowledge and start suspend
So in conclusion, from USB device you can not start the suspend signalling. You can only set the internal state of the device stack.
EDIT 1 - This process of suspend is for USB 2.0 / High speed devices. If your board is a super speed/ USB 3.0 device connected via SS port to the host, then the process is a little different in link level, but from user point of view there is no difference.
EDIT 2 - I have now updated the answer with suspend process for USB 2.0 and USb 3.0 devices
Bluefruit EZ-link is described as programmer. It means it supports RTS/DTR:
The EZ-Link has another impressive feature: the DTR/RTS/DSR flow
control pins are automatically synced to the computer serial port.
What this means is that if the computer sets the hardware flow control
DTR or RTS pins high or low the pins on the bluetooth module will
follow.
So Arduino IDE performs reset to initiate flashing (as Arduino's Bootloader wait for few seconds after reset for upload commands from Arduino IDE). For USB reset works by switching DTR to 1 and 0 and special schematics on Arduino board monitors it and performs reset. After reset is done Arduino IDE runs avrdude and start flashing.
The question is "How does it works over Bluetooth module by Adafruit?" There is no RTS/DTR line for Bluetooth..
PS. I believe virtual COM-port drivers for this Bluetooth device should send special AT+ commands and Bluetooth device should handle them and perform setting 1 or 0 to special pin wired with MCUs reset. But this requires Bluefruit bluetooth driver to be used. But i can't see it requires special BT drivers at computer.
RFCOMM do support flow control.
RFCOMM is based on GSM TS 07.10. Bluefruit extract info on RFCOMM and map it to flow control lines.
I understand that there are two types of devices in Bluetooth 4.0: dual(SmartReady) and single (Smart).
For one of the use cases, I need to use dual mode device.
When a bluetooth is ON in a dual mode device, does it mean that both bluetooth classic and LE are ON? Is there a possibility of Bluetooth LE "on" and bluetooth classic "off" configuration in a dual mode device?
If dual mode device is ON and is in idle state, does it achieve the power savings as that of single mode device ( ie only Bluetooth LE ON)?
I don't think you can configure what part to be on or off. At least not from the application level.
This site claims that
Dual-mode devices will rarely gain in power saving because they need
to support both technology implementations; the power savings will
only be achieved with the single-mode option.
But it doesn't specify the state in which the device is in.