The BlueSMiRF HID is essentially the same board as the BlueSMiRF Silver but the populated RN-42 comes loaded with the HID firmware. HID, or "Human Interface Device," is the communication protocol used for computer peripherals such as keyboards, mice and joysticks. This makes the RN-42-HID a simple and powerful tool for creating wireless peripheral devices which can be universally recognized and used without the installation of special drivers. The manual included in the documentation below goes into more detail about the Bluetooth HID profile.
The remote unit can be powered from 3.3V up to 6V for easy battery attachment. All signal pins on the remote unit are 3V-6V tolerant. No level shifting is required. Do not attach this device directly to a serial port. You will need an RS232 to TTL converter circuit if you need to attach this to a computer.
Note: This is a single unit only. We recommend the purchase a USB dongle to interface to a computer if you do not already have access to a computer with Bluetooth connectivity.
Specifications:
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 1 ratings:
This bluetooth modem is great! I was able to connect it to my Arduino project without any trouble at all!
If you are looking for a replacement of a Bluetooth HID, v6.15 firmware on the Bluetooth Mate Gold https://www.sparkfun.com/products/12580, BlueSMiRF Gold https://www.sparkfun.com/products/12582, Bluetooth Mate Silver https://www.sparkfun.com/products/12577, and BlueSMiRF Silver https://www.sparkfun.com/products/12576 will have the ability to use the HID protocol. You just need to change the configuration settings of the bluetooth to use HID. We also have the that has lower range. Just look on page 60 of the product manual that is posted on the product pages of those bluetooths.
This device will become the transmitter of a transport for a digital audio workstation. Record, undo, play, return-to-zero. Transmit all keyboard shortcuts and macros with hardware buttons. Record guitar and vocals in acoustically good rooms of the house, away from computer noise. Longer range than a wireless keyboard. This is a good product, just read all the stuff. I hope this conceptual framework gives somebody a start.
Thank you for this insight, without connecting cts to rts, I could not connect via ftdi (I assumed it was my uart dyslexia) now the module is quickly blinking and talking like it should :)
Is there any way to switch this from HID profile to SPP profile. I am inexperienced with Bluetooth. I bought the HID version by accident, since I am a bit short of cash for DIY projects, I don't want to buy another. Thanks for any help you can give!
Yeah, just enter command mode and switch the profiles. Enter these commands in order:
$$$
S~,0
R,1
The first line enters command mode, second line does the profile switching (profile 0 is SSP), and the third line reboots the modem.
To do this, since you can't connect it to a COM port on your computer, you can connect the RX/TX of the modem to to your Arduino and send the commands using the serial monitor. Working code is here: https://learn.sparkfun.com/tutorials/using-the-bluesmirf?_ga=1.223890459.1261477851.1417756977#example-code-using-command-mode
I tried doing this but I cannot get the bluetooth module to respond with CMD. The red indicator LED is blinking at 1 second intervals so its "Discoverable/Inquiring/Idle". What mode was your bluetooth in?
Where are the arduino examples?
Any chance you guys could show an example on how to interface this to an Arduino?
This device is just plain dumb. People who are looking for a serial cable replacement : DONT BUY THIS. It comes with the HID option set as factory default and your bluetooth will recognize this always as a keyboard and would not install a Serial Port for this. So you wont have any COM port set up to talk to the module, which you need to do to change it from HID to SPP. I was lucky enough to have a RS232 - TTL converter in my lab which I connected from my PC directly to the module and set it to SPP. Another possible way to configure correctly would be to wire the TX of your microcontroller to the RX of this module and send the text below at 115200 baud rate
$$$ S~,0 R,1
though I have not tested this!! I got this module as it somehow looked 20bucks cheaper than other alternatives but it cost me 1 week of my time.
You want the BlueSMiRF Silver or BlueSMiRF Gold -- those are setup to be SPP bluetooth devices. This is the /only/ device on SFE that supports HID profiles, so there is a point to this.
Personally, I've used this to make a bluetooth SNES controller for games and it works perfectly for that. So nyah. :-p
Can I get the project somewhere? I want to try something similar!
I bought one to make a bluetooth NES controller. Hope my project goes as well as yours did!
Can I get the project somewhere? I want to try something similar!
Check out an Instructables example on this here.
That doesn't help me. I built a custom controller and want to interface it to android.
You'd have better luck searching for projects then using Android/bluetooth interfaces then for your particular hardware set up, instead of looking at an NES controller project. Again, Instructables has a lot of great tutorials, or you can check out general bluetooth basics here.
The manual says you can send $$$ commands using a terminal to this chip via virtual com port for the bluetooth device, within 60 seconds of power up - pretty scary if you ask me.
I posted a RN42-HID python console that can be used with the FT232 break-out boards for easy prototyping and configuration. The console allows you to enter/exit command mode, set HID configuration mode, and send raw HID packets. I would not recommend this product for new development though as Microchip provides no support whatsoever and HID-gamepad functionality is crippled. Look into the Bluegiga WT-12 module for this application.
You can find the link here: https://github.com/shraken/rn42-hid-console
Hello. I am trying to get this into SSP as I bought the wrong one ( I didn't want HID). I can't get it into command mode, and I read in the datasheet that I can factory reset to restore the profile to SSP from HID. I have tried to tie the PIO4 high three times, as in the datasheet requirements, and have been unable to get a factory reset. Anyone else try a factory reset?
Hi, I tested the factory reset just the other day. It works well if you add a button between GPIO4 and VCC. That will allow easy button presses to do the reset command. GPIO is internally pulled low. So we need to have it pulled high on power up to initiate the reset sequence.
The command goes like this 1) GPIO must be pulled high on power up. (Red LED will blink 2-3 times) 2) GPIO LOW 3) GPIO HIGH 4) GPIO LOW 5) GPIO HIGH (Red LED blinks 3 times)
Is it possible I have a damaged modem? It responds to some commands, but to others it returns ERR. The Get commands work, as do the standard E, D, O, and X (they display a list of various settings). Example (copy/paste from serial monitor):
The order of commands doesn't matter, the commands that don't work just don't work no matter what I do. Any ideas?
Hi,
I just received by BlueSmirf HID today, and the keyboard mode (default) works fine, but how do i change it to mouse mode?
I cant enter command mode, as when i turn it on, the red stat light blinks at 1 second interval indicating the config timer has run out! I'm not sure, why that is! The literature says it should be blinking at a rate of 2 flashes per second for the first 60 seconds, but that is not the case.
Why is this so?
Does anyone know if it is possible to send 3DOF information using any of the HID profiles included?
The joystick profile seems to send X1, Y1, X2 and Y2, is there any Z or do I use X2 in its place????
Hi I am just wondering will this be able to create a bluetooth keyboard that can work on a PC or anything that supports a bluetooth HID profile? Thanks.
Hi Sparkfun, why this model is not available anymore? I have an old one that went bad (cannot factory reset the device or communicate using TTL), and I want to replace it. Is seems the my only alternatives are your newer models, all come without the breakout board or without HID, or buying Adafruit's Blufruit EZ-key for prototyping. Can you please enlighten me - did I miss something? Or did you simply stop providing HID prototyping solution?
With the latest firmware (6.11 and up), the basic RN-42 Breakout is a good alternative, because it can be set to either SPP or HID mode (check out section 3.5 in the command guide). The multifunctional ability of that module has made this one redundant, so we're retiring it.
Thank you very much! I ordered 2 of the new ones. Also, this model seems to become miraculously available in stock... ;)
Really pleased with these! I just got 4, and they all work out of the box, no questions asked. Super easy to configure, very stable connection, no problems when pairing. I have 4 of them connected to my mac tower now, as keyboards, been stable for hours now!
hey everyone I am kind of new to this so I have a question. I would like to buy and build a Bluetooth device that can receive and output data. what is the parts that I would need? I know I need the Bluetooth Modem - BlueSMiRF HID and the a breakout board, but I know I need more then that so can someone show me a list of things I would need. So again I'm very new to all of this and if there is a good starter kit I would like to see it, if anybody knows of one.
Hello, is there a way to check whether a device is connected to my BlueSMiRF HID? I'm trying to realize a Bluetooth Presence Detection. I want to trigger events when a smartphone automatically connects to the BlueSMiRF HID. Using the HID profile was the only possibility to enable the automatically connection of an iPhone. Now I just need to check if a device is connected to the module. Unfortunately the module is switching from command mode to data mode when my smartphone is connected. Is there any way to send a status string over the serial port to my Arduino when the connection state is changing? Many thanks in advance for your help.
Is there any way to get this working as a MIDI HID? Or are there any other products that could assist with plug-and-play MIDI over bluetooth?
Got the device to connect with a pc as a keyboard but no keystrokes get to an app i.e. notepad. Using HID raw reports. but no keystrokes at PC end. Any ideas about what might be happening.
hii sir i have bluesmirf silver bluetooth and i configured in arduino uno board but after changes in command it wont b discoverable it cant b seen in my bluetooth devices the red light is on but it cant connect or shown in my bluetooth scan list so how can i do waiting for ur reply
Anyone know what could be wrong with my configuration if I'm getting an interrupted signal every five seconds? Everything else is functioning properly and it immediately re-pairs. Here's how I configured the BlueSMiRF: S~,6 (HID profile) SH,0220 (Mouse) SU,38 (correct baud rate for program 38400) SA,4 (authentication mode, all seem to work fine) SM,6 (Pair)
Also can't seem to make the F,1 command work (fast data mode). I have a feeling this might be my problem, but I'm stuck.
Hi, I purchased this module (firmware 6.15 if I'm not mistaken) and was unable to keep a steady link to my Mac, having it setup as Mouse (SH,0220), it would start communicating correctly, but at around 7 seconds would stop communicating, as if the link went down, but it showed as it was still up.
I tried a couple of different settings and ended up setting the timer to 0 with ST,0 and Trigger Mode with SM,2 . Well, this didn't work either, but now I was unable to change the settings as the timer was set to 0. But at the time I din't worry because I could always use PIO4 to make a factory reset.
Well, this is where I'm stuck right now, seems like PIO4 isn't working for me, I tried starting PIO4 High and then low-high several times. Once I power it, it blinks really fast, but I can't be sure if it is 2 or 3 times, seems like 3 times. According to the manual this should trigger the Factory Reset and now I would only need to go low-high-low-high and it would Factory Reset the module and I would just need to power-down and use it again with the default settings and start-over. But this isn't working.
I was wondering if someone could help me out on this.
Thanks for the time.
SM,6 is what worked for me, but I get a signal drop (it then reacquires), every 5 seconds. Did you see this about a factory reset? https://www.youtube.com/watch?v=PU4TMeQSvWw
I'm probably going to need to do this too since I've now locked myself in Even Parity and can't get back to CMD mode. I'd be curious if you solved your issue.
Trying to get a serial msr to transmit to pc, got it to send something, "FFFFF", have read manual over but cant figure out what i'm missing, hardware or settings...
Can't make sense of toggling the virtual keyboard in the Users Manual. Does anyone have some code they could share? Looking to build a bluetooth barcode reader with an Arduino so I need to be able to toggle the keyboard. I can currently scan barcodes into the iPhone via HID but I can't get the keyboard to toggle for the life of me!
I will say that I bought two of these a year ago and they now collect dust after many failed attempts to get them working. I would not expect to be able to create your own hid device with these. The manuals roving networks supplies are like reading hieroglyphics. They don't give any examples anywhere on how to setup custom descriptors. You won't find any tutorials on using them unless you want to use the factory setting of "wireless keyboard". I think Sparkfun should supply tutorials for products like these if they are going to sell them. But from what I've seen of the USB hid stuff is, people just expect you to copy and past other people's vague interpretations of HID tables. So unless you are going to become a HID/USB guru over the course of years, find something else. these boards offer very little in simplifying anything. It's a shame.
Can the D+/D- of a USB device send data through the TX/RX pins of this device? I ask because the RN-42 has dedicated USB D+/D- pins that are not broken out. My project is to make a USB game controller into a wireless Bluetooth game controller.
For you that have problems with this module, I wrote a arduino library for the communication between this module and a arduino leonardo.. Try it out here: https://github.com/baselsw/BPLib
//Basel
What is pin 7 connected to and why do you bring it low? (in the lib object creation). How do you load the program while using Serial port for the modem output? Also How does this lib compile when it uses Serial1.write but the SoftwareSerial object is not declared? (Unless it is a mega)
Hi,
Good module but it seems to disconnect and never keep the connexion to my computer, I saw a few settings in the manual I'd like to activate but I can't get to the config mode. ( also oddly I don't have any PIN code on my unit )
I tried what @ElectronicsNerd suggested to get to the config of the bluetooth module I've been using my lilypad FTDI to try to configure it but it won't communicate as the FTDI is detected but using goSerial on Mac OS X doesn't output anything. Also I've tried uploading a sketch to an arduino Uno in the hope of having the sketch configure the bluetooth module but for some reason I think that using Serial.print() doesn't quite work to get to the config mode. And, I'm speculatingm but I thing that when I turn on the serial monitor the code from the sketch prints out instead of going to the bluetooth module.
Has anyone been able to configure this module via a sketch or FTDI recently?
PS : to upload sketches I have to take the bluetooth module offline otherwise I get upload errors.
hey i am new to this stuff how does this have only 6 contacts while the RN-42 has 32 how does it work? is it capable of everything the bluetooth module itself is?
The 6 (7, really) most important pins for most common use are broken out to pads on this board. This does mean some pins are not broken out, though if you wanted to you could solder to them directly.
The pins broken out are VDD (VCC through voltage regulator), GND* (4 pins total, broken out to 1 pin), UART* (4 pins total) and PIO4 (factory reset, broken out further in on the board). So that's 10 pins already, leaving another 22.
Since it's using UART for comms, the SPI* (4 pins), PCM* (4 pins) and USB* (2 pins) are not broken out. Another 10 down, 12 to go.
PIO2 and PIO5 are the connection state/status LEDs.
RESET is generally not needed - if you do, you should probably fix your power supply instead.
PIO6 is to set as BT master - this runs the HID firmware, so not needed.
PIO3 is the auto-discovery state - always discoverable, I'd imagine, so not needed.
PIO7 allows you to override the baud rate to 9600 - again, not needed here.
6 more pins down, 6 mysterious ones to go.
PIO8, PIO9, PIO10 and PIO11 are general purpose I/O, but as far as I can understand from the disparate PDF documents some of them toggle behavior under certain circumstances, while all of them could be set as output that you could then control through a data sequence. Not too useful for the HID purpose, and given the UART option probably superfluous.
4 down, leaves the last 2, the most mysterious of all...
AIO0 and AIO1 - optional analog inputs, according to the datasheet. And that's that. No further mention of them made is in the datasheet, the advanced user's guide, the product brief, or a quick googling about. If you really want to know what they do, try contacting Roving Networks directly. Suffice to say that it looks like you wouldn't really be using them.
So, for the most part those 32 pins turn into 7 because a they're really the same, offer the same functionality through a different standard, are generally not needed, are not needed within the context of a HID device, or are used on the board itself (e.g. the status LEDs).
thank you very much that was very helpful I suppose the rest of the circuit is for making the range of power supply possible as it says that normally the RN-42 only takes 3,3 to 3,6 V
Yep - one voltage regulator for the TN-42's power supply requirements, and two MOSFETs used in basic level-shifting circuits.. well, and the LEDs of course :)
ok after reading the datasheets another 3 times i think only ground vcc and uart ports are connected can i do everything over uart?
Possibly not everything, but within HID context, you should be fine :)
I'm having trouble using the BlueSMiRF HID as a mouse. I've been able to enter command mode and switch the flag to the Mouse HID profile and have successfully paired with a computer as a mouse. However, I cannot find any documentation on how to send reports for mouse operation. The HID user's manual only describes keyboard operation.
I have attempted to use 0xFD, 0x5, 0x2, 0x1, 0x0, 0x0 to press the primary button and 0xFD, 0x5, 0x2, 0x0, 0x0, 0x0 to release.
Has anyone been able to figure this out?
Figured it out
0xFD, 0x05, 0x02, 0x01, 0x00, 0x00, 0x00 = left mouse button press
0xFD, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00 = left mouse button release
Also FYI, if you want it to repair automatically, go into command mode and enter SM,6
Just a heads up. I recently got the 'HID611' version of this board, and it needs some changes.
From p3 of the manual it says: "In firmware version 6.10 and higher, the SPP profile is enabled by default" (http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/Bluetooth/RN-HID-User%20Guide-1.1r.pdf) Which is a bummer since people buy this module specifically to use the firmware as a keyboard, not a serial port.
So you can either set it back to HID mode two ways: 1) using serial '$$$' and entering CMD mode, and send some further commands to change to HID and reboot. This needs to be done each powerup, and is tricky as it'll only enter CMD mode within a minute of the bluesmirf being powered up. I.e. if you use an arduino, which gets reset, the bluesmirf ignores config requests, and send those strings to your keyboard instead, which is either messy or disastrous depending on your application. 2) Wire from GPIO11 to high. This forced HID on startup, and you don't need to do any software stuff. Downside is that the board has no breakout for it and you need to solder the tiny wire: http://imgur.com/wLfY7T7
Hope this helps, Gav.
You configure the module by putting it into command mode and sending ASCII commands over a serial port or the Bluetooth link. Once you change the configuration parameters, "they persist until changed or you perform a factory reset". You enter command mode by opening a terminal emulator and sending the string $$$ to the module. You can connect to the module remotely over Bluetooth or via a computer. When you send $$$ the module returns CMD, indicating that it is in command mode.
Once put into keyboard hid mode I thought that was it. - PC host recognizes modem as keyboard. (My problem no key strokes get though to apps)
I also got the 'HID611', when you set hid mode via commands it is persisted between powerups. You dont need to wire anything.
The RN-42 HID comes setup as a keyboard by factory default. Is it possible to change the HID mode of the BlueSMiRF HID module to a mouse? I know there's somethings in their manual you can't do with this breakout board setup and other things can't be done outside their factory.
Sure it is. You'll need to get into command mode and then send the "SH" command. Bits 7-4 of that command's value set the HID descriptor, so send something like "SH,0020" to turn it into a mouse. Check out page 6 of the user's guide for more info.
Hi, I have been trying to use this module and I want to save power when I am not transmitting. Here is the user manual - http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf
Now My requirements are these 1. keep the module connected to my pc 2. transmit "Hello" to pc when a button pin 12 goes high on the arduino, this will happen by button press
So when I am not transmitting, I want to be able to keep the device in sleep mode. The command for that is SW,8000 However my module is still consuming 25 miliamps when not transmitting. Has anyone tried this?
"Using Sparkfun’s Bluetooth Modem – BlueSMiRF HID to interface between an arduino Pro Mini and a desktop Computer as an Human Interface Device (HID)."
http://www.kobakant.at/DIY/?p=3310
I hate to be that guy, but "We recommend the purchase a USB dongle to..." should be "We recommend the purchase of a USB dongle to..." and "Hardy frequency hopping scheme..." should be "Hearty frequency hopping scheme..."
Perfect chip! Check out howto on https://github.com/Nepherhotep/doomsday-button . It might be helpful for initial configuration. Also it includes sample codes for working with ATTiny2313
Has anyone else been unable to pair this with a PC? I've tried numerous configurations (authentication en/dis, all modes, etc.) and this thing will not pair with 2 popular BT modules I've tried. It never asks me to enter a pass code, it just fails and there's no place for me to disable asking for one or pre-enter one in the software for either of my adapters.
Can I use this Bluetooth Modem to connect to a PS3 controller? I know a PS3 controller is an HID device.
Thanks!
Hello. Did you ever connect the PS3 with any Bluesmirf module? Please respond - hope you can help!
As a previous poster noted, it's worth emphasizing that Sparkfun's "Bluetooth Modem - BlueSMiRF" products have a different pinout from the "Bluetooth Mate" products, even though they look similar and have the same number of pins. I got caught out by that one...
Would this work as the BT modem for my custom android game pad? Using arduino to make the game pad and wanting to interface it with my phone as a Keyboard.
Did the header pinout for this device change? The pinout picture here matches the BlueSMiRF header on the Arduino Protoshield, but the actual device (shipped 2-10-2012) has a different pinout.
Scratch this one. I think I found my answer. Looks like a package labeling error. FYI: The BlueSMiRF and Mate modems have different header pinouts.
Here is the update manual, its much more useful. Also read the Advanced Guide
http://www.rovingnetworks.com/files/resources/RN-HID-User-Guide-v1.0r.pdf
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf
They moved the new manual, I found it after some searching:p http://www.rovingnetworks.com/resources/download/120/HID_User_Manual
Thanks! We updated the Roving Networks HID Users Manual link in the description.
This site appears to have all the documentation for the module shown in the picture.
I don't get why this is ~$5 more for a firmware difference? Unless there is more than just a firmware difference? I'm looking at making a bluetooth controller to use with my Android phone, altho If I get bored of that I'd probably like to reuse it for other things that I'd have to communicate over bluetooth.. So what would people suggest? This or the Bluetooth Mate Silver?
Can the non HID version of silver be turned into HID or used as HID through a firmware change/update?
Info about firmware here: http://www.rovingnetworks.com/Current_Firmware
Roving network says firmware cannot be flashed after factory.
This HID profile firmware can switch between SPP and HID, while the other firmware doesn't have the HID profile firmware, and So you're getting more feature for this firmware.
If you want to make HID devices, this would be the one.
I've noticed there are a number of iPhone apps for controlling Arduino based devices for movement (cars, bots, etc.) Will this work with any of them?
can we flash this back to non -HID I bought this and found out that the HID is not what I needed for arduino to receive serial commands from computer. This is more of a arduino sends serial commands to computer. That is what I have read so far. As far as receiving cmds I have tried everything except a small sacrifice to get it to work both ways.
Section 1.6 of the HID Users Manual (above) shows how to switch between HID and SPP.
Can anybody tell me how to get spp back on this thing on xp or windows 7. It connects to my pc as a keyboard and I cannot associate a COM port with it, so I cannot send any commands. I am working with a PIC16f690, have +5V power supply for the module and my PC with inbuilt bluetooth running win 7
What's with the users manual pdf? It is all full of black bars where text should be when using OS X "Preview" program as a pdf viewer. Totally useless.
Can this unit be set up for "force feedback" HID applications?
am also interested to know if there is a protocol for sending TO the bluetooth modem as an HID device? is this possible?
Is it able to pair with iOS devices?
The manual references some iOS specific functionality regarding hiding and showing the virtual keyboard, so I think it's safe to assume that yes, it would.