Bluetooth to 1-Wire® Communication Using the DS9097U
IntroductionThis article guides you through selecting the proper Bluetooth adapter, provides setup instructions, and presents sample code to enable communication with the Maxim 1-Wire adapter. The sample code provided is not intended as a complete solution, but rather as a starting point. The example code can be used to write a program for either a Windows® PC or a Windows Mobile® device. This example uses a Windows Mobile device.
OverviewBluetooth is a short-range wireless technology originally intended as a cable replacement. It can send various types of information such as music, video, and data to other Bluetooth-capable devices located within 10 meters. Bluetooth has many protocols which handle the various types of data transfers.
This application note explains how to use the Bluetooth serial port protocol (SPP) to enable communication with Maxim's DS9097U 1-Wire COM Port Adapter. The DS9097U is a RS-232 to 1-Wire adapter that receives commands from a serial port and generates the appropriate signals required to communicate with 1-Wire devices. This document outlines the procedure to properly setup a third-party Bluetooth serial-port adapter. Example code is then provided for reading DS1920 temperature data from a Windows Mobile device using the Visual Basic 2008 Compact .NET programming platform and the serial-port control interface.
- DS9097U COM Port Adapter
- Bluetooth serial adapter (i.e., BlueSnap Standard)
- Visual Basic 2008 Compact .NET
- USB Bluetooth adapter for PC
- Windows Mobile 6.1 (or 5.0)
- Custom serial interface cable
Selecting a Bluetooth AdapterTwo factors are involved in selecting a Bluetooth adapter that will be compatible with the DS9097U. First, consider the available current coming from the Bluetooth's DTR and RTS lines which powers the DS9097U (see Figure 1). Most RS-232 chips inside Bluetooth adapters should be able to supply the required current to power the DS9097U. If the adapter's specification does not have current parameters listed, then determine what RS-232 chip is used and verify its current-sourcing capabilities. Our application uses a BlueSnap Standard Bluetooth adapter from Serialio.com.
Figure 1. DS9097U schematic, DB-9 version.
Second, determine whether you can program the logic level of the RTS and DTR lines. The BlueSnap adapter did not allow this and required creating an additional cable to provide power from the 9V battery to both the RTS and DTR lines. This limitation prevented the use of 1-Wire standard libraries (OneWireLinkLayer.dll) which toggle these lines to reset the device.
Note: the Bluetooth's onboard firmware automatically toggles the RTS and DTR lines if handshaking is used. While usually convenient, it is detrimental in this application since these lines are the power pins for the 1-Wire adapter. If the Bluetooth adapter supports RTS and DTR control, the OneWireLinkLayer.dll can speed the programming development time.
Setup ProcedureThe following procedure outlines the required steps for hardware configuring.
Windows XP® SP3 Setup Procedure
- Insert a USB-to-Bluetooth adapter into the USB port of a PC and configure that adapter. Note: this is not the BlueSnap device, but rather a USB-to-Bluetooth device which will configure the BlueSnap adapter.
- Right click on My Computer and select Properties from the popup menu.
- Select the Hardware tab and click on Device Manager.
- Find the virtual ports (COM & LPT) created and expand the tree (circled items in figure below).
- Verify that you have at least one Bluetooth communication port and close all windows.
- Double click the My Bluetooth Places desktop icon.
- Click on Add a Bluetooth Device from the left menu.
- Click Next on the Bluetooth Setup dialog box.
- A Bluetooth Device Selection dialog box appears and begins scanning for devices.
- Ensure that the BlueSnap dipswitches 1 through 3 are in the OFF position and dipswitch 4 is ON. Switch 4 defaults the baud rate to 9600. Connect a 9V battery to the BlueSnap adapter, which causes the LED on the adapter to flash rapidly for 60 seconds. A connection must be made during this time or the adapter will timeout and the battery will have to be disconnected and reconnected. Depress the Search Again button in the dialog box to begin the search.
- The device shows up as BlueSnap.
- Double click the BlueSnap icon to begin the pairing process.
- Press Skip on the Bluetooth Security Setup dialog box.
- Check the SPP on the Bluetooth Service Selection dialog box.
- Press the Configure button to select the Bluetooth COM port that you will be using on the PC.
- Uncheck the Secure Connection check box, select a Bluetooth COM port (from step 5), and press OK.
- Press the Next button on the Bluetooth Service Selection dialog (step 14).
- If prompted with the following, simply press OK.
- On the Bluetooth Setup Wizard Completion Page (step 8), the default name for this connection can be modified if desired. Press the Finish button to establish the Bluetooth connection.
- The green LED on the adapter should be a solid green.
- If the connection is lost, return to My Bluetooth Places (step 6) and double click the BlueSnap icon created in step 19.
- If prompted for a security code, try entering 0000 or 1234. See the BlueSnap instruction manual for the adapter's default password.
- After establishing the connection, the BlueSnap icon in My Bluetooth Places can be double clicked to view the adapter's status.
- Launch the preinstalled Windows HyperTerminal from: Start Programs Accessories Communications.
- Enter a name for the connection in the New Connection dialog box and press OK.
- From the Connect To dialog, select the COM port configured in step 16 and press OK.
- From the COM# Properties dialog select the following options and press OK.
- HyperTerminal may show as connected even when the adapter connection has not been established. If the adapter's green light is flashing slowly, disconnect and reconnect the battery. Reestablish the Bluetooth connection by double clicking the BlueSnap icon in My Bluetooth Places (step 6). Once the connection has been established, disconnect and reconnect using the phone icons in the HyperTerminal tool bar.
- From the HyperTerminal File menu, select BlueSnap Properties.
- From the properties dialog, click the ASCII Setup...button.
- Make the following ASCII setup selections.
- Close all dialog boxes by clicking OK.
- In the HyperTerminal window type $$$; the device will respond with CMD. The CMD confirms that you are now in command mode. The BlueSnap LED changes from a solid green to flashing quickly.
- In the terminal type ST,255. This changes the timeout for discovery from 60 seconds to infinity. The adapter responds with <AOK>.
- To launch, the newly created HyperTerminal connection can be found at: Start Programs Accessories Communications HyperTerminal BlueSnap.ht.
- The device is now configured to stay in discovery mode once power is applied without any timeout.
Windows Mobile Pairing Procedure
- Use the Connection Wizard to search for the BlueSnap Bluetooth adapter.
- Select the BlueSnap device.
- Select the SPP service.
- Enter the device pin number (0000 or 1234) and press the green checkmark.
- When prompted to register a Bluetooth serial port, select Yes.
- Select Bluetooth serial-port name BTS from the Name dropdown box. Input an index number of zero. The index is similar to a COM port. Press the green check to accept changes. If an index number other than zero is used, the example code will need this portion of code modified in order to open the appropriate port.
- The Bluetooth Manager confirms that the port successfully registered.
- The available COM ports are listed in the manager.
- The BlueSnap adapter has successfully paired. Upon opening the BTS0 port, a connection between the mobile device and the BlueSnap device is established.
Windows ApplicationBecause the BlueSnap adapter cannot toggle the RTS and DTR lines, the OneWireLinkLayer.dll is not used in this example. Instead, the DS9097U 1-Wire COM Port Adapter (see Figure 1) is accessed directly with serial commands.
Download (ZIP) the sample project. Figure 2 shows the application running on a Windows Mobile device. The project contains a simple class with calls to commonly-used functions (including Search ROM).
Figure 2. Application running on Windows Mobile.