555 timer not going to 0V question
The 555 circuit has BJTs driving the output pin. Every such circuit will have some minimum/maximum voltage that is not fully rail-to-rail.
One &quot;easy&quot; way to get to full rail/rail behavior is to re-buffer the circuit with a comparator that is defined as &quot;rail to rail&quot; in the datasheet (thus, using a different output topology than the 555.) A TLV370x is specified to allow up to 16V VCC and be &quot;rail to rail&quot; output. The data sheet suggests it uses CMOS push/pull for input/output, and because MOSFETs are resistive, at low currents, it will be approximately full swing.
Data sheet:
https://www.ti.com/lit/ds/slcs137d/slcs137d.pdf
It looks to also be available in DIP package in the x2 and x4 configurations, in case you're breadboarding this.
Note the 22 microsecond propagation time; if your frequency is very high then you will need a fancier part.
Also, your desire for &quot;voltage&quot; is somewhat under-specified, because voltage occurs when current flows through a resistance. You specify neither the output load (impedance) nor the current you intend to use.