Serial (RS232) Interface
The Bluetooth interface is designed around the commonly available Microchip Roving Networks RN41/42 chipset. The RN41/42 must be pre-programmed with custom setting for e.g. the none standard baud rate of 8192. Communication with the ALDL interface is via the transmit and receive ports. The RN41/42 are pin for pin plug-in compatible devices however the RN41 has a 100m range as opposed to 20m with the RN42.
Unlike direct (serial or USB) interfaces, which source their power from the host computer, a Bluetooth connection is dependent on the car's battery. When the battery voltage dips during engine starter motor activity, there is a risk that the Bluetooth interface power supply can drop out thereby and losing the Bluetooth connection. A Bluetooth connection takes a significant time to become re-established and may need to be initiated manually. To this end, the power supply is derived from the nominal +12V battery voltage available on the ALDL interface and is suitably sub-regulated with a robust reservoir to guarantee the Bluetooth connection is maintained.
To avoid the risk of battery drain when the car is not in use, the ALDL line is monitored by the sub-regulated power supply circuit and the Bluetooth interface is only powered up when the car's ECU is active, otherwise the current drain is negligible (microamps).
To maintain the Bluetooth link when the engine is switched off, the interface remains active once a Bluetooth connection has been established and does not drop out until the Bluetooth connection is stopped or drops out e.g. controlling device goes outside of the operating range.
The Bluetooth interface has been manufactured with a custom designed single-sided printed circuit board (pcb) and this, together with the ALDL plug, is housed in a plastic case. The interface can be discretely plugged into the car's ALDL port and left in-situ if required.
The RN41/42 chipset has many additional input/output ports. One of these is configured as an output and may be used to command the Service Mode line to become active to aid setting up the engine Base Timing. Another port is configured as an input to monitor the state of the Service Mode line to be able to confirm that the car is in service mode.
To aid development and to perform a functional check on the above interfaces without having to connect to a car, an ECU emulator was built. It is USB based utilising an FTDI USB to serial converter, contains a switched +5V to +12V DC to DC converter and is terminated in a female 10 pin socket to provide full compatibility.
- The ALDL communications are provided by the standard serial interface input and output.
- The +12V power is switched by the Request To Send (RTS) output.
- The ALDL Service Mode line is monitored with the Clear To Send (CTS) input.
A LabVIEW program has been developed which allows control of the +12V line, monitoring of the Service Mode line and communication on the ALDL line at a baud rate of 8192. On startup, the program allows a previously saved ElanScan (.ecu) file to be loaded. The program listens to the ALDL line and when an F45601B5 sequence is detected, it replies with the next 70 bytes of the ElanScan file, thereby providing a real time simulation of the operation of an ECU. LabVIEW allows a Windows executable to be generated for distribution (with the LabVIEW runtime engine) to other developers. Various modifications have been added to allow debugging: For example, the return of fixed bytes in the ALDL data stream or individual control of selected bytes.