Short answer
Two limits can apply to a single DMX run, whichever limit you hit first applies.
Channels
One DMX universe carries 512 channels. The number of fixtures that fit depends on how many channels each fixture uses in its current mode.
Electrical load
The DMX512 standard allows up to 32 devices on one line. Devices can be DMX Controlled lighting fixtures, Dmx Controlled devices, Dimmer Racks, Relay Packs, or anything else that physically plugs into a DMX data line. You can have up to 32 devices maximum on that single run.
In practice, the channel limit usually decides how many fixtures share a universe. A splitter or repeater is how you go beyond the device limit.
Limit 1: channels per universe
Each fixture occupies a block of consecutive channels, called its footprint. The footprint depends on the personality or mode the fixture is set to. A fixture in a basic mode may use a handful of channels. The same fixture in an extended mode may use several dozen.
To work out how many fixtures fit in one universe:
Find the channel count for the mode each fixture is set to.
Divide 512 by that number and round down. This is the most fixtures of that type one universe can hold.
If you mix fixture types, add up the footprints of all fixtures. The total must not exceed 512.
For example, fixtures that each use 16 channels fill a universe at 32 fixtures (32 × 16 = 512). Fixtures that each use 4 channels fill it at 128 fixtures.
Fixtures cannot straddle two universes. A fixture's channels must all fall within one universe, so unused channels at the end of a universe are normal.
Limit 2: electrical load on the line
DMX512 uses RS-485 signaling. A single line from one controller output is rated for up to 32 individual devices. Each receiving device presents a defined load on the line, and most fixtures are designed to count as one.
If a run has more than 32 devices, or the fixtures present more than one unit load each, the signal can degrade. Symptoms are covered below.
Use an opto-isolated DMX splitter or repeater to start a new electrical segment. Each output of a splitter is its own line with its own 32-unit-load allowance. All outputs carry the same universe.
Cable length and cable type
Use cable made for DMX or other RS-485 data, with a characteristic impedance of 120 ohms. Standard audio microphone cable has a different impedance and can cause errors, particularly on longer runs.
Long runs are more sensitive to cable quality, termination, and the number of devices. Treat any quoted maximum length as a guideline, not a guarantee, and use a repeater when in doubt.
Wiring rules that affect how many fixtures work reliably
Daisy-chain the fixtures. Connect the controller's output to the first fixture's input, that fixture's output to the next fixture's input, and so on.
Do not split the line with passive Y-cables. A passive split produces reflections and unreliable data. Use an active splitter instead.
Terminate the last fixture. Fit a 120-ohm termination plug in the output of the last fixture on each line, or use the fixture's built-in termination switch if it has one.
Keep the chain unbroken. One faulty cable or connector can affect every fixture after it.
Setting addresses
Set each fixture to the mode you intend to use before assigning addresses, because changing the mode changes the footprint.
Assign each fixture a start address so its channel block does not overlap the next fixture's block.
Fixtures of the same type that should behave identically can share a start address. They will then receive the same data and respond together.
Check that the last fixture's start address plus its footprint, minus one, does not exceed 512.
Signs the run is overloaded or has a signal problem
Fixtures flicker, twitch, or move or dim without being commanded.
Fixtures at the end of the chain behave unpredictably.
