I did some digging, and here’s what I’ve found. On the problem Proxmark3 easy cards, it doesn’t appear as though the light comes on when a field is applied, and from what I’ve been able to determine, some versions of the card don’t have the hardware required to do simulation. When the simulation starts, light “A” is turned on, and when the pm3 enters the RF field, light “D” comes on. The hardware just doesn’t seem to be there. I chased the signal back to the analog switch, but there’s nothing going to the ADC when in LF sim mode, and light “D” doesn’t come on when the proxmark3 is brought close to the reader. I looked at the input to the ADC during simulation, and I saw no signal when the reader was close to the Proxmark3.
The loop that generates the signal also controls led D. The light should turn on as the reader enters the field. The light should glow brighter as the field intensifies.
Maybe someone with a schematic could trace the signal from the coil to ADC_IN during simulation.
There’s light control code in the simulation loop. If the ledcontrol flag is set, it turns the D led on, then waits until GPIO_SSC_CLK goes high, at which point it shuts the light off. Then (essentially ) it waits untll GPIO_SSC_CLK goes low before going through the loop again. If GPIO_SSC_CLK isn’t getting toggled and remains high, light D won’t turn on.
LED A is turned on when the simulation starts, and then is shut off when the simulation ends.
If GPIO_SSC_CLK is stuck low, it’s possible for LED D to get stuck on, however if it’s out and glows as the field is applied, that means that the clock detect mechanism is working. No light D with a field being applied suggests something is wrong.
So the light D should glow as the clock becomes available (the proxmark3 is close to the reader) and go out as the field is too weak. The simulation needs the clock, as it only uses open_coil and short_coil after a state transtion of GPIO_SSC_CLK, otherwise it is stuck in a busy loop, only resetting the watchdog and waiting for the button or data input to bail out.
The problem on my board is that R23 (right by the button on my board) was open and possibly the wrong value. Put a 100k 0603 resistor there, and the simulation works after doing that. Sniff and read still work. Full discussion is on Iceman’s discord #125khz.