Hi Mark et al.
Progress... I've been busy in between Christmas festivities and the project starts to show some lift off. Ready? Here we go:
1. I call the electronics and software I'm working on "The ATC", short for "The Alternative Train Controller" (you need to call it something).
2. Exchanged the ESP32 Lolin32 dev.controller board for an Atom Lite ESP32. This makes the footprint of the ATC 100x 70 mm.
All pins of the Atom Lite are used but spared two pins for an I2C interface (for future expansion).
3. Finished, build and tested the Feedback electronics.
4. Included Bitstuffing
In a previous post I showed a Feedback circuit that worked but was component critical and potentially could absorb a lot of power. Like kiwiAlan mentioned I also thought of a solution with a transformer. After some designing and simulating I came up with the following solution:

According to the simulator it should give the following result:

The green trace is one side of the +/- 18V track signal. The blue trace is the signal on the collector of Q1. Please note that for visualisation purposes I decreased the 18V to 5V and pause time for a 1-bit feedback from 6.4ms to approx.0.5ms.
Mind you the 28uH coil still gives an high inductive resistance for the frequencies used in a MFX signal (period times 50us, 100us and 19us). But that's something to solve/improve upon later.
After building the circuit I included an interrupt function in the ATC software capable of capturing the 52.63kHz signal from a decoder when respoding on a 1-bit feedback. On an oscilloscope (In Real Life) it looks like this:

In the top window you see a 'Decoder Search command with 1-bit feedback' frame. The signals are the trigger signals (Purple) showing the start of certain events within a 'Decoder Search command with 1-bit feedback' on broadcast address 0. Yellow, signal on the track. Blue the output of my circuit. Bottom window, a zoomed in view of the beginning of the pause period.
When giving a Decoder Search command my software responds with:
Write frame in array bitArray to track: 10 0000000 111010 000000 00000000.00000000.00000000.00000000 01110010
1-bit response confirmed. Number of pulses counted: 337
10 0000000: 7 bit format address 0
111010: Decoder Search command
000000: counter
00000000.00000000.00000000.00000000: 32-bit decoder address 0
01110010: CRC
The number of 19us pulses I expect within the 6.4ms response windows is 336. The software counts 337. Good enough for me to deside for a positive 1-bit response.
The Bitstuffing, include a zero after transmitting eight ones, looks like this:

Next stop finding out the decoder address (UID).
Greetings,
Roland