Thanks woj, I should have put some more info. Below is the relevant excerpt from the arduino code I'm using plus some images from the scope and logic analyser.
bool OBD9141::init(){
use_kwp_ = false;
// this function performs the ISO9141 5-baud 'slow' init.
this->set_port(false); // disable the port.
this->kline(true);
delay(OBD9141_INIT_IDLE_BUS_BEFORE); // no traffic on bus for 3 seconds.
OBD9141println("Before magic 5 baud.");
this->kline(false); delay(200); // start bit 0
this->kline(true); delay(200); // first bit 1
this->kline(false); delay(1400); // next 7 bits 0000000
this->kline(true); delay(200); // stop bit
// done, from now on in the bus can be treated ad a 10400 baud serial port.
Scope results from proprietary scanner
Scope results from my Arduino device
Logic results from proprietary scanner
Logic results from my Arduino device