The jCOM.CAN.BTS is a CAN Bus and OBD-II scanner device with Bluetooth connection. It scans user-defined CAN message frames and transmits them per Bluetooth to a PC or Android phone or tablet.
The input power (7 VDC to 36 VDC to suit a great range of applications, including vehicles) and the CAN Bus / OBD-II connections are provided per DSUB-9 connector according to CiA recommendations. An additional RS232 port is used for setting up the scanner, e.g. CAN Bus baud rate, message ID length, and up to 100 message filters.
The jCOM.CAN.BTS can be connected and adjusted to any CAN Bus network. The device setup allows the setting of CAN baud rates (CiA recommendations) and the message ID length (11/29-bit or both). The CAN message frames are translated into an ASCII string and then transmitted per Bluetooth.
The device setup also supports the setup of up to 100 CAN message ID filters in order to reduce the data stream transmitted per Bluetooth. Per default, the device will pass all message IDs. Message filtering is strongly recommended because:
- We are using an industrial-strength Bluetooth transmitter that provides a transmission range of up to 300 feet (100 m), which cannot be accomplished by other commercial solutions. However, the serial baud rate is limited to 115,200 baud, which may cause problems at high CAN baud rates in combination with a high busload.
- Focussing on CAN messages that matter will improve the performance of the application, especially when operated using an Android hardware.
All settings, once they have been set up, are stored permanently on the onboard SD card.
Data Conversion Protocol
The Data Conversion Protocol describes the translation of CAN message frames into serial data as transmitted by the Bluetooth port. We chose the ASCII protocol for ease-of-use on the Bluetooth receiving side (e.g. an Android tablet/phone).
- 115,200 baud
- No Parity
- 8 Data Bits
- 1 Stop Bit
Data Frame Architecture
The received CAN data frame is converted into a simple ASCII String (of constant length) as follows:
@ Message frame start
8 characters Message ID (hex)
1 character S=Standard 11-bit message ID; X=Extended 29-bit message ID
1 character CAN data length (0…8)
16 characters CAN data (hex)
2 characters Checksum
- Message ID: Regardless of the message ID length (11 or 29 bits), the message ID has a constant length of 4 bytes (8 ASCII characters). In case of a standard message (11-bit message ID) the leading four bytes will be zero.
- CAN data: The CAN data field has a constant length of 8 bytes. The field is filled with data according to the transmitted data length; all remaining data bytes are set to zero.
- Checksum: The checksum is a 2’s complement checksum that is applied to all ASCII characters starting after the frame start character and ending before the first checksum character.
What is a 2’s Complement Checksum?
A checksum is a technique to check data for transmission errors or tampering. If the last few bytes are the sum of all the preceding bytes, then any errors are likely to be detected.
In this case, the checksum is the sum of all ASCII characters starting after the frame start character and ending before the first checksum character, ignoring any carry, meaning the checksum (hex) is always 8 bits long (0 to 255).
A one’s complement is just a complement: ~x
A two’s complement is a complement and increment, ignoring carry: (~x)+1
Bluetooth Data Display Per Terminal Program
After connecting and pairing the Bluetooth port to a Windows PC (See also the information at Device Setup), you can start a terminal program with the above documented baud rate settings (115200, N, 8, 1) and select the COM port associated with the Bluetooth connection.
When connected to a running CAN Bus network, you should see a data stream similar to the one displayed here. Please be aware that you need to synchronize thee CAN Bus baud rate setting between our gateway and the CAN network. For further information see Device Setup.
Details of the RS232 and CAN ports are described here.
The RS232 interface (DB9 Female connector) is used for the device setup per PC (terminal program) and for on-site firmware upload. We are working in enhancements of the firmware functionality and we will post updates of the firmware on this wiki page.
RTS and CTS are not connected. CTS is always held in the ready state.
The CAN port (DB9 Male connector) has an on-board 120Ω (0.5W) termination resistor. This termination resistor can be connected or disconnected via an on-board slide switch.
The pin assignment above is directly compatible with our OBD2 16Pin to DB9 Serial Port Adapter Cable.
CAN Bus Termination Resistor
The jCOM.CAN.BTS device comes per default with a 120 Ohm termination resistor activated. To deactivate the resistor, open the enclosure and locate the DIP switch as indicated in the following image.