Bluetooth master and slave, via SPI or I2C, maybe with HC-05?

Hi All...

I'm looking for a way to equip an Arduino Uno (or any Arduino I guess) with Bluetooth Master or Slave capability. The idea is to be able to pair with one or more devices and push data to them, so I think the serial port profile is what I want. Typically, I'll want to make an Arduino feed data to an iPad, and iPhone, an iPod Touch or a variety of Android tablets and phones.

As near as I can tell, there is no module that would combine BLE with earlier versions. Since I want to send frequent data updates in large(ish) packets BLE is probably not appropriate anyhow.

I found a shield that is essentially an HC-05 mounted on a proto board, but here is the trick. I would prefer to talk to it using I2C or SPI, as my UART is already in use and I really dislike SoftwareSerial.

The HC-05 has an SPI port, but I took a look at the data sheet and it was not clear to me if the SPI port is exclusively for flashing firmare into the module or if I could actually command the module using SPI? If I can command the module using SPI I can wire up my own proto shield and have at it. Does anyone know?

If I can not command the HC-05 via SPI, what would you all suggest? I suppose I could:

  • Find another hardware solution, does anyone know of one?

  • Build the circuit to convert either I2C or SPI to TTL serial. It seems to me that there should be a single chip solution for this, anyone know of one? If there is, then building a shield that does BT master or slave with the HC-05 should be easy enough.


After poking around, I can not find a chip to convert I2C or SPI to TTL. Of course it could be done with a uC and a little code, so perhaps I'll take that route.