For now, I'm sending bytes from FPGA (verilog) to serial at 115200 bps.

I would like to send at higher speed and connect to a bluetooth module (RN42).

  • UART (SPP or HCI) and USB (HCI only) data connection interfaces.
  • Sustained SPP data rates - 240Kbps (slave), 300Kbps (master)
  • HCI data rates - 1.5Mbps sustained, 3.0Mbps burst in HCI mode

Then, now, I would like to implement a HCI UART in order to get max 3 Mbps.

I didn't find anything clear about how to implement this.

Could you help me? What does change? Should I just send my data at higher bps and it's done?

It's the first time I'm trying to implement another way to send data than serial.


3 Answers 3


HCI/SPP refer to the communication protocol. They both use a standard UART, just at different baud rates. However, the SPP mode and HCI mode are very different. HCI mode bypasses a large part of the Bluetooth software stack, so you would have to implement that yourself somewhere if you want to use HCI mode. To change the mode, you have to upload new firmware onto the bluetooth module. This is detailed in the datasheet.

  • \$\begingroup\$ Thank you for the reply, means I cannot send data in a faster baud rates easily. What is the name of the communication protocol of the basic UART ? (the one everybody is using ? SPP ?) What is the maximum baud rate I can use with the RN42 ? If I take SPP, it's 300Kbps but the standard is 230400 bps or 460800 bps. \$\endgroup\$
    – None
    Commented Mar 22, 2016 at 7:15

Each bluetooth SPP device have 3 speeds:

  • local speed over UART port,
  • ideal over-the-air speed,
  • real transmission speed (speed decreased by collisions, etc).

Both ends of bluetooth link can have different UART speeds. Both ends have FIFO buffers, some also flow control. Everything will works as long as as no overflow occurs.


You would need to use the API that works with the Microchip RN42 bluetooth module, if that capability is available on that module and there is an API. For example, Cypress SoC Bluetooth devices support adjustable baud rates up to 4 Mbps via the wiced_transport_init() API.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.