Feature Request ADX "listen for silence" with invert data line option

Discuss anything TunerPro related.

Moderators: Mangus, robertisaar, dex

Post Reply
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

After getting past the hurdles of getting a cable to communicate with my ecu I have a new issue. My ecu initialization protocol involves holding the data line low for approx 100 milliseconds. I was hopeful that lowering the baud rate really low would allow me to send a byte to drive the line low for long enough. What I have found though is that lowering the baud rate lower than a few hundred baud doesn't work and I can only get a few ms driving the line low with this method. There is also a stop bit at the end that may cause issues, putting another nail in this method's coffin.

A command similar to the "listen for silence" command with the option to drive the data line low would be a life saver.
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

I had a "thinking in reverse" epiphany. I can't send a byte really slow to get the data line low for 100 ms but what if I raise the baud really high and send it a whole bunch of times. The stop bits will likely just be a bit of noise with the line appearing low over the duration. Fingers crossed this works.
Chatchai
Posts: 23
Joined: Sun Aug 25, 2019 3:54 am
Location: Bangkok,Thailand

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Chatchai »

I ran into the exact same challenge when working on an ADX file for a Honda motorcycle ECU using a non-standard K-Line protocol based on 10400 baud (manufacturer-specific protocol). I tried lowering the baud rate and sending 1byte 0x00 at 184 baud (fake break) on UART to pull the line low, combined with a "Listen for Silence" expecting 65~74ms low for the break condition in initial sequence — but no luck. I ran into the same limitation you did: UART just won’t hold the line low due to the stop bit.

I solved this by using an Arduino to directly control the signal lines via the Tx pins (bit banging/GPIO) connected to the LM339,393 or L9637 inside a KKL-VAG cable, and wrote custom initial sequence code to handle it.

Glad to see you figuring this out too! If you're building your own ADX project and experimenting with init timing, you're definitely on the right track.
Good luck and keep us updated!
Last edited by Chatchai on Sun Jan 18, 2026 10:33 pm, edited 14 times in total.
TunerPro RT | ADX files project creator
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

Thanks for the input. I've been trying my best to not have to program an Arduino to make this work. It seems awfully damned determined that's what it'll take. Are there any pitfalls you navigated that are worth noting?
Chatchai
Posts: 23
Joined: Sun Aug 25, 2019 3:54 am
Location: Bangkok,Thailand

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Chatchai »

Actually in my case, I didn’t run into any issues. Once I got the initial sequence done manually with the Arduino, everything worked perfectly. After that, I handed over control to the ADX file, which handled the data streaming just fine.

The transition between Arduino to ADX (via UART) was seamless - no glitches or timing problems. So if you're able to get through the initial cleanly, the rest should go smoothly too!
Last edited by Chatchai on Sun Jan 18, 2026 10:30 pm, edited 2 times in total.
TunerPro RT | ADX files project creator
Chatchai
Posts: 23
Joined: Sun Aug 25, 2019 3:54 am
Location: Bangkok,Thailand

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Chatchai »

I am currently learning to develop a plugin for TunerPro RT to handle specific fast initialization sequences by directly controlling the FTDI USB device through its driver, referencing examples from the TunerPro SDK.
The main purpose of this plugin is to perform the fast init sequence accurately and reliably by using Set Break Time control via the FTDI D2XX library (FTDI.dll), as standard UART communication through the ADX Editor or connection commands in an ADX file cannot properly generate the required Wake-up Pulse and line state timing.
Regarding the TunerPro SDK, I’m not sure whether it should be referred to as an API or a specification document for plugin development, as I’m still new to writing code in C++ and compiling projects with Visual Studio.
Last edited by Chatchai on Sun Jan 18, 2026 10:46 pm, edited 2 times in total.
TunerPro RT | ADX files project creator
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

That sounds like a great project that will benefit a lot of people. I'd offer to help but my C+ programming skills don't go much further than programming an Arduino. Assembler is more my speed. I'd be in as a beta tester.
lucassinner
Posts: 1
Joined: Wed Jul 16, 2025 12:44 am

Re: Feature Request ADX "listen for silence" with invert data line option

Post by lucassinner »

Hi Duckmang, when your ECU expects the data line to be held low for ~100ms, is this strictly a passive wait, or does it require the interface to actively drive the line low?
TunerPro RT / Standard. Slope Game
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

The ECU is expecting the line to be driven low for 100ms.

I've been trying to use an Arduino Mega2560 as a multiplexer between the ECU and PC. It's been kicking my ass. I finally got code written to send my 244 bytes of initialization sequence along with the special timings between certain bytes. Once I got it working the ECU was only sending error bytes and not my live values. Studying the logic analyzer, I noticed that the ECU is actually communicating in 8 bit serial asynchronous without parity or a stop bit. I never could get the logic analyzer to land on a setting that didn't have any parity or framing errors and I finally figured out that is why. It's looking like Imay just end up brute forcing the initialization doing manual manipulation of the tx pin instead of actual serial communication. :roll:
Chatchai
Posts: 23
Joined: Sun Aug 25, 2019 3:54 am
Location: Bangkok,Thailand

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Chatchai »

Hi How’s your project going these days?
I’ve recently built a small mini-tool for my motorcycle project. It’s a simple software utility written in C that controls the break signal directly, and so far the test results have been very promising.
I’d be happy to help if you’re still working on this. Would you be able to capture some logic analyzer screenshots and measure the timing while your scanner performs the initialization sequence with the ECU? That timing information would be really useful for comparing and refining the init process.
Let me know if you’re interested.
TunerPro RT | ADX files project creator
Duckmang
Posts: 31
Joined: Mon Jun 01, 2020 5:17 pm

Re: Feature Request ADX "listen for silence" with invert data line option

Post by Duckmang »

I back burnered it a few months back Spent so much mental energy on it that I had to take a break and havent been able to get into the right headspace to attack it again.

I had only managed to get a handful of bytes through the init sequence. I successully managed the wonky timings at the beginning of the sequence. What I eventually figured out is that the parity and stop bit formats change throughout the sequence and if its not 100% correct the handshake fails. I can see whats happening by watching the scan tool communicate, but its tricky switching between the different formats byte by byte and my software was bloating at a significant pace. I enlisted the help of a friend for a new coding perspective to maybe accomplish the task in a more efficient way but thats about when I had to step away. They are keen to get back to it, I just cant get me head back there yet.
Post Reply