Why would you need a floating signal on a board?

Floating signals are usually not a good thing, but can be acceptable in some cases. In all those cases, the value of the signal does not matter.

Not every signal is relevant all the time. A common example is the MISO line of a SPI bus. This is only actively driven when a slave device is selected (enabled). It's value is only relevant for a short time around one of the SCK clock edges. At all other times, the signal can be any state without affect on the system since the system ignores it.

So what happens to MISO when no slave is selected, as is the case whenever the SPI bus is not in use? The answer is you don't care. It doesn't matter what its value is since nobody is looking at it. Since MISO is driven only by the single selected slave, all unselected slaves and anything else on that line must be high impedance. That means when no slave is selected, the line is left floating as described in the passage you quoted above. This causes no bad data, since again, the system is ignoring the line at that time.

While a floating line is OK logically when nothing is looking at its value, it can be a problem electrically. Many logic inputs are intended for the voltage to be either solidly low or solidly high. In-between values can cause higher than specified currents in the input circuit, and in some cases can even cause this circuit to oscillate.

For this reason, there is often a weak pulldown or pullup resistor on lines that could float. I usually use a 100 kΩ pulldown on MISO, for example. When a slave is selected, it drives the line regardless of the small extra current it takes to hold it in the high state. However, when nothing is driving the line, it will go low, preventing the unwanted extra current and oscillations in anything receiving the signal.

There are also types of digital inputs that can handle any voltage within the valid range without undesirable characteristics, like extra current or oscillations. Schmitt triggers are one example. These have hysteresis so that after flipping one way, it takes a different voltage to flip the other way. A floating line may cause the digital signal to be interpreted randomly as its voltage floats around, but the digital input is designed to handle that. Of course the rest of the system still needs to be designed to not care what the value of that digital signal is during the time its floating.

In general, truly floating signals are bad, but can be easily addressed with a weak pulldown or pullup resistor.


You can have a lot of floating lines on your board during start-up of a microcontroller.

Usually most of the pins of a microcontroller are initialized as input or even analog input, because the controller can't know how to configure its pins for the board it's placed upon.

In this scenario most of the later outputs are floating at first, typically only a few milliseconds until the software initializes the pins accordingly. Still enough time to cause some trouble, which is why on critical lines (write protect on an EEPROM for example) we use pull-up or pull-down resistors to have a safe startup sequence.

I've encountered some chips where the logic was not as robust as Olins answer suggests, so I like to have my signals fixed.

An antenna might be seen as a floating line which is wanted - sort of...


One example comes to my mind: bus lines which are used by several ports at different times may be floating when there aren't any ports currently using them.

I think the book made clear that you do not need them but they might just happen.

The least thing that should be done in systems that have lines that may float (e.g. a data and address bus in a microprocessor system) is to ensure that no device uses the signal of those lines as input as long as they are floating (e.g. by setting the enable input of memory, peripheral etc. components to inactive).