a Schematic of a typical hole charge stability diagram with both possible regions of readout indicated in blue and red. The typical manipulation (M) and readout (R) points are indicated in green. b Two-hole energy diagram, with the five lowest lying energy states around the (1,1)-S(2,0) anticrossing. c Colour map of the normalised sensor response (normalisation in Methods) as a function of the applied gate voltages VU and Vϵ. In the large panel, we linearly sweep Vϵ and step VU, as indicated in the inset above the figure. The smaller panels on the right show the same effect for the (1,1)-(0,2) anticrossing (top, red box in a), and the (1,1)-(2,0) anticrossing (bottom, blue box in a), now using a two-level voltage pulse (details in Methods). d Similar colour map as in c, but with a reversed sweeping direction from (1,1) to the (0,2) region. The triangular spin blockade window is indicated by the dashed white line. The smaller panels on the right again demonstrate the same effect for both the (1,1)-(0,2) (top) as well as the (1,1)-(2,0) (bottom) anti-crossings, by first loading a random spin in one of the dots (details in Methods). e Schematic illustration of the three-level pulses used in f–h, indicating the detuning voltage ΔVϵ in blue and red, and the RF-pulses in orange. f The averaged charge sensor response as a function of measurement time τ at R for \(\left|\uparrow \uparrow \right\rangle\) initialisation (red) and \(\left|\downarrow \uparrow \right\rangle\) initialisation (blue). The grey-shaded area indicates the integration window for the threshold detection. g A sample of 100 single-shot traces (top), averaged for 3 μs per data point, with τ = 0 the start of the readout phase. The bottom panel shows two single traces, where the purple (yellow) trace corresponds to the readout of a blocked (not blocked) spin state. Dashed lines correspond to the sensor signal for the different charge states. h Histogram of 5000 single-shot traces, integrating the signal for 5.5 μs as indicated in f. The blue (red) histogram corresponds to an initialisation in the \(\left|\downarrow \uparrow \right\rangle\) (\(\left|\uparrow \uparrow \right\rangle\)) state. The dashed line corresponds to the optimised threshold for readout.