Scantool.net's OBDLink MX, which is based on the STN1110
interface chip, not the well-known ELM327 they used in earlier
products.

Screenshot of a Windows 7 VM running on VMWare on top of Ubuntu
that is reflashing the OBDLink MX's firmware (click for larger
version). In order to connect, I had to click on the tiny blue
Bluetooth hardware device icons circled on the lower right corner,
which caused Windows to query whether I wanted to install Bluetooth
drivers. Before the drivers were installed, Windows showed the icons
with red X's through them. There appeared to be no other way to
install the drivers, not through the "network center" or "wireless
device" control panel settings. Once the drivers were installed, the
larger and familiar Bluetooth connectivity icon appeared to the upper
left of the Bluetooth hardware icons.

For initial tests, I used a Debian or Ubuntu laptop with the minicom program to
capture output from the Bluetooth-paired OBDLink MX scantool, which
Linux offers as /dev/rfcomm0, a regular soft tty. (On Ubuntu 10.10,
bluetooth-agent failed to handle random password, while
blueman-assistant worked on the first try.) nOBDy'sgenericbod2
provider plugin will log data from the OBDLink MX with no problem,
but, at the moment, the underlying libobd communication library only
supports the OBDII (15765-4) protocol. The OBDLink MX is a bit
expensive compared to many scantools, but most don't populate pins 3
and 11 or read MS-CAN communications (see below).

Identification of pins on Mazda 3's
Data Link Connector

Mazda 3's CAN protocols

The 2005 Mazda 3 standard-transmission hatchback (VIN
JM1BK3437XXXXXXXX) supports 3 communication protocols over the OBDII
Data Link Connector as identified using a Scantool.net OBDLink MX
scantool and a minicom connection. [Note that Data Link Connector and
CAN's Data Length Code are both interpretations of "DLC" in this
context, just as "CAN" might refer to a variety of protocols.] The
standard protocol numbering scheme is documented in a download
available from scantool.net.

Compare HS-CAN and
MS-CAN data from madox.net. A quick comparison shows that a lot
of the same IDs appear in my MS-CAN (protocol 51) data stream (201,
265, 401, 433) and HS-CAN (protocol 31) data stream (200, 20F, 231,
433, 4B0) although it's not obvious that the behavior matches that of
madox's 2006 Mazda 3. For example, in my vehicle, 20F PID appears to
be a monotonically increasing counter in least-signicant byte, while
madox identifies bytes 2 and 3 as speed. Pinning down an
interpretation of many of the parameters is clearly possible but will
require investment of some time.

OBDII-related info from Mazda 3 shop manual

About "Drive Modes" from p. 59:

080-11 DRIVE MODE[LF, L3]
- Using the OBD-II drive mode, the monitoring item requested by OBD-II
regulations can be easily diagnosed.
- Performing the Drive Mode inspects the OBD-II system for proper
operation and must be performed to ensure that no additional DTCs are
present.
- The OBD-II drive mode is divided into the specific drive mode and single drive mode.
- For the specific drive mode, specified drive modes have been set for
each individual monitoring item requested by OBD-II regulations, and
they can be diagnosed individually. For the single drive mode, the
entire monitoring item requested by OBD-II regulations can be diagnosed.
- The following modes are in the specific drive mode. The applicable
system is diagnosed by driVing in the following drive modes.
PCM (Powertrain Control Module): Adaptive Memory Produce Drive Mode
EGR (Exhaust Gas Recirculation): System Repair Verification Drive Mode
H02S heater, H02S, and TWC Repair: Verification Drive Mode
EVAP System Repair: Verification Drive Mode
- The following systems are diagnosed with the single drive mode.
EGR system
Oxygen sensor (H02S)
Oxygen sensor heater
Catalytic converter (TWC)
Fuel, misfire and evaporative (EVAP) system
PCM Adaptive Memory Production Drive Mode
1. Start the engine and warm it up completely.
2. Verify the following conditions and correct if necessary:
- All accessory loads (AlC, headlights, blower fan, rear window defroster) are off.
3. Perform no load racing at the engine speed shown in the graph,
then idle the engine for more than 60 s after the cooling fan has
stopped. If possible, monitor RPM PID for engine speed during this
procedure.

DIAGNOSTIC MONITORING TEST RESULTS[LF, L3]
The purpose of this test mode is to confirm the result of OBD-II
monitor diagnostic test results. The result values stored when
particular monitor is completed are displayed. If the monitor is not
completed, initial value is displayed.

How to clear DTC-indicated problems

Info continues to p. 609. Tire-pressure monitoring, anti-lock
brakes, and dynamic stability control all can be watched through
OBDII, but I don't have them installed.Power steering can be read out, p 2125