Uncle Magic's Liquid Turntable: User Guide#
A motorized platter that turns in time with your music and glows in any colour you choose. Tell it the tempo (from your show software, or by tapping a button), and the platter turns at a speed that matches the beat while a ring of LEDs lights it. Everything can be driven from the knobs on the panel, from a phone or laptop, or from show-control software.
Document status. Written from the design and the firmware built on 2026-10-03. The controls and numbers below are what the firmware is built to do. They have not yet been checked on a fully assembled unit, so expect to adjust a few details (for example, how the platter feels when it starts and stops) once one is running. For how the unit is built, see the Hardware Overview.
1. Quick start#
- Check the connections, with the power off. The motor cable, the LED ring cable and the panel controls are plugged in, and the network cable is connected (or you have Wi-Fi set up, see section 8).
- Switch on. The unit starts stopped: the platter does not move and the LEDs show the starting colour solid (red at full brightness unless you changed it). This is normal.
- Start the platter. Turn the main knob clockwise a few clicks. The platter begins to turn and speeds up smoothly. (Or press Start on the phone page, below.)
- Give it a tempo. Tap the TAP button in time with the music four times or so. The platter settles to a speed that matches your taps. (If your show software is already sending tempo, the platter follows that and you don't need to tap.)
- Pick a colour. Turn the HUE knob to choose a colour, SAT for how rich it is, and VAL for how bright.
- Stop. Press the main knob. The platter slows to a stop.
To control it from a phone, open http://liquidturntable.local/live in a browser on the same network. If that address doesn't work, see section 6.
2. The panel#
| Control | Turn | Press |
|---|---|---|
| Main knob (speed) | Changes speed. Each click is 1% of full tempo speed. Turning past zero reverses the platter. | Stops the platter. |
| HUE knob | Changes colour. 120 clicks make one full trip round the colour wheel. | Resets to red. |
| SAT knob | Changes how rich the colour is (0% = white, 100% = full colour), 1% per click. | Toggles white. The first press makes the light white; the next press puts the colour back as it was. |
| VAL knob | Changes brightness, 1% per click. | Resets to 100%. |
| TAP button | Sets the tempo by tapping (see section 4). |
The panel also has spare connections for four more knobs. They are not used by the current firmware.
3. Running the platter#
How fast does it go?#
The platter turns one revolution every 12 beats. So the tempo sets the speed:
| Tempo (BPM) | Time for one revolution | Platter speed |
|---|---|---|
| 60 | 12 s | 5 RPM |
| 90 | 8 s | 7.5 RPM |
| 120 | 6 s | 10 RPM |
| 140 | 5.1 s | 11.7 RPM |
| 170 | 4.2 s | 14.2 RPM |
| 204 and above | 3.5 s | 17 RPM (the limit) |
Above about 204 BPM the platter can't keep up with the beat. It stays at its top speed of 17 RPM, and the phone page shows a warning.
The speed knob#
The main knob sets how much of that tempo speed you want, from 0% to 100% either way:
- 100% turns the platter in time with the music.
- 50% turns it at half that speed.
- Zero stops it. Turning the knob past zero reverses the platter: it slows down, stops, and turns the other way.
- The platter never turns slower than a minimum speed (about 0.6 RPM). Below about 1% on the knob it stops; from about 2% it turns at that minimum and speeds up from there.
Smooth starts, stops and changes#
The platter is heavy, so every change of speed is eased in: starting, stopping, changing tempo, turning the knob, and reversing. From a standstill to 10 RPM takes about a second, and a stop from top speed takes about a second and a half. A reversal slows down, turns round and speeds up again without the motor ever switching off.
Reverse direction (setting)#
If "clockwise" turns the platter the wrong way, tick Reverse motor direction on the settings page (see section 6). This is remembered.
4. Tempo: how the platter knows the beat#
The unit takes its tempo from the first of these that is available:
- Show software over the network (OSC
/bpm). The normal way to run a show. - A tempo-controller feed (such as the tempo slider in Resolume). Used if the first is missing.
- Tapping. Used when neither of the above is sending.
Tempo only changes the speed. It never starts or stops the platter: that is always your decision, with the knob or the phone page.
Tap tempo#
Tap the TAP button, or press Tap on the phone page, in time with the music.
- The first tap just starts the count. From the second tap the tempo is set from the average of your last four taps.
- Taps more than 15 seconds apart start a fresh count.
- Valid tempos are 20 to 500 BPM.
- Tapping only changes the tempo while no show software is sending one. Every tap still sends a "tap" message on the network, so other equipment can follow it.
On the phone page, the line under the tempo tells you where it is coming from: from OSC /bpm, from OSC tempo controller, or local (tap / set).
Starting tempo#
When the unit switches on it uses a starting tempo (120 BPM until you change it on the settings page) until it hears something better.
5. Lighting#
The LED ring shows one colour, set by the HUE, SAT and VAL knobs, by the sliders on the phone page, or by show software. The unit sends the colour to the lighting controller inside (running the open-source WLED software) as soon as it changes, and repeats it every few seconds.
- VAL is the overall brightness. Turning it down also lowers the power the ring draws.
- At switch-on the colour is the starting colour from the settings page (red at full brightness unless you change it). The ring stays dark for the first second or two while the lighting controller starts up.
- Colour temperature (settings page) shifts the whole light warmer or cooler, like a filter: neutral is 6500, lower is warmer and more orange, higher is bluer. It is handy for making white look like tungsten or daylight, and it also tints every other colour the same way.
- Colour comes from this unit, not from WLED's own page. If you change the colour on WLED's web page, the unit puts its own colour back within 10 seconds. Effects and other WLED settings are still yours to use.
- For the one-time WLED settings an installer should make (LED type, power limit, no light at power-up), see Appendix: one-time WLED setup.
6. Controlling it from a phone or computer#
The unit has a small web server. You need a phone, tablet or computer on the same network.
Finding it#
Try these in order:
- Open
http://liquidturntable.local/. This works on Windows 10 and later, Macs, iPhones and iPads, and Linux. Some Android phones don't support it. - Look in your router's list of connected devices for
liquidturntableand open that address (for examplehttp://192.168.1.50/). - As a last resort, connect a USB cable to the controller board and read its log: it prints "ETH got IP" or "Wi-Fi got IP" followed by the address.
The live page (/live)#
Open http://liquidturntable.local/live. It is made for a phone and refreshes about once a second.
| Item | What it does |
|---|---|
| Tempo (big number) | The current BPM, with where it came from underneath. |
| Platter line | Actual speed in RPM, the speed setting as a percentage, and the direction. |
| Start | Sets the speed to 100% (the platter eases up to it). |
| Stop | Stops the platter. |
| Slower / Faster | Changes the speed by 5%. These never cross zero, so they won't reverse the platter. |
| Reverse | Reverses direction (slows, turns round, speeds up). |
| Tap | Same as the TAP button. |
| BPM box + Set BPM | Types in a tempo (20 to 500). It holds until a show-software tempo arrives. |
| Hue / Saturation / Brightness sliders | Set the colour. |
| Colour temperature slider | Warms or cools the whole light, 2000 to 10000 K (6500 = no change). Like the other colour controls, it holds until the unit is restarted, when it returns to the setting on the settings page. |
| Bottom line | The Ethernet and Wi-Fi addresses and the Wi-Fi signal strength. |
The documents on the unit#
This guide and the hardware overview are stored in the unit itself, so they are there when you have no internet. Open the User guide or Hardware link at the top of the settings page (or go to http://liquidturntable.local/docs/USER_GUIDE.html). They are the same documents, in dark colours, and ask for the same password as the other pages.
The settings page (/)#
Open http://liquidturntable.local/. The top shows the current tempo, direction, colour, firmware version and addresses. The page is dark, with tabs across the top: Status, Network, Show (OSC and the lighting controller), Colour, Motor and Security. The tabs are all one form: Save & Reboot, always at the bottom, stores every tab at once and restarts the unit (give it about 10 seconds). The smooth-motion slider on the Motor tab is the exception: it applies and saves as you move it.
| Setting | What it is for |
|---|---|
| Hostname | The unit's name on the network (liquidturntable unless you change it). Letters, digits and hyphens only. See several turntables. |
| Static IP, Gateway, Subnet mask | Leave at 0.0.0.0 to get an address automatically (recommended). |
| Wi-Fi network name and password | A network to join, tried before the built-in ones. See section 8. Tick Open network for one with no password. |
| OSC listen port | Where show software sends tempo and colour. Default 3335. |
| Use JSON over serial | Leave ticked: the lighting controller is on the board. Untick only to drive a separate, networked WLED device, then enter its address. |
| Starting colour | The colour and brightness the light shows at switch-on. Pick any colour; a darker shade starts dimmer, white means no colour, black starts with the light off. The knobs, buttons and phone page change it from there. |
| Colour temperature | The switch-on setting. Warms or cools everything the light shows. 6500 is neutral (no change), lower is warmer (candle is about 2000, tungsten lamps 2700 to 3200), higher is cooler and bluer, up to 10000. |
| Starting BPM | Tempo used at switch-on. |
| Max speed | Top platter speed, in steps per second (1,813 is about 17 RPM). Most people never change this. |
| Reverse motor direction | Flips which way the platter turns. |
| New password | See below. |
| Smooth-motion floor (slider under the form) | The slowest speed the platter will turn at. Drag it to feel the difference; it changes straight away and is saved when you let go. Lower is smoother at very slow speeds. |
Password#
The pages are open to anyone on the network until you set a password. Set one on first use: user name admin, at least 8 characters. After that every page asks for it. Firmware updates are disabled until a password is set.
Other pages: /log shows the unit's recent activity (useful when something is wrong). A bar at the top stays in view as you scroll: Live switches the automatic refresh on and off (turn it off to read or copy a line without the page moving), Clear empties the log, and Save .txt downloads it as a text file. And /update is for firmware updates.
7. Show-control software (OSC)#
The unit listens for OSC messages on UDP port 3335 (changeable), on Ethernet and Wi-Fi at the same time. Numbers may be sent as floats or integers.
| Address | Value | Effect |
|---|---|---|
/bpm | 20 to 500 | Sets the tempo. The preferred source. |
/composition/tempocontroller/tempo | 0.0 to 1.0 | Resolume's tempo slider, mapped to 20 to 500 BPM. Used when /bpm is not arriving. |
/scaleEncoder | 0.0 to 1.0 (wraps) | Acts like turning the main knob. Every 0.0125 is one click. |
/scaleZero | anything | Stops the platter. |
/directionChange | anything | Reverses direction. Ignores repeats within a quarter of a second. |
/hue | 0.0 to 1.0 | Colour (wraps round). |
/saturation | 0.0 to 1.0 | Colour richness. |
/value | 0.0 to 1.0 | Brightness. |
/colourtemp (or /colortemp) | 2000 to 10000 | Colour temperature in kelvin: 6500 is neutral, lower is warmer and more orange, higher is cooler and bluer. |
The unit also sends two messages, as a broadcast to port 3336 on the local network, so other equipment can react to the tap button:
| Address | Value | When |
|---|---|---|
/tap | 1 | Every time the TAP button (or the phone page's Tap) is pressed. |
/tapbpm | tempo | Whenever tapping sets a new tempo. |
How "stale" is decided: a /bpm feed that stops for 60 seconds is dropped in favour of the tempo controller; a tempo-controller feed that stops for 1 second is dropped in favour of tapping. When a feed is dropped, the last tempo stays in force until something new arrives. The first /scaleEncoder message after switch-on only records where your control is; it doesn't move the platter.
8. Network setup#
Ethernet is the most dependable link and is used for show work. Plug the unit into your network or router and it asks for an address automatically (DHCP).
Wi-Fi is optional. The unit tries these networks in this order, giving each up to 15 seconds:
- The network set on the settings page, if any.
- The networks built into the firmware (set by whoever built it).
If none can be found or joined, it waits 15 seconds and starts again from the top, so the preferred network is picked up as soon as it appears. The log (/log) shows each attempt and why it failed (for example "network not seen" or "wrong password"). Wi-Fi works well within a room; for timing-critical tempo, Ethernet is steadier.
Several turntables on one network#
Every unit is called liquidturntable until you change it, so the first one answers at http://liquidturntable.local/. When a second unit starts, it asks the network whether that name is taken. If so it quietly uses liquidturntable-1, the next one liquidturntable-2, and so on. You can see which name a unit is using at the top of its settings page and of the phone page, and in the log.
Names are first come, first served, so which unit gets which number depends on which was switched on first. To give each turntable a fixed name, open its settings page, type a different Hostname (for example stage-left and stage-right), and press Save & Reboot. Do this once per unit, connecting to them one at a time if need be (by their addresses).
A fixed address. If you want one, set it on the settings page, or (better) reserve an address for liquidturntable in your router.
If you can't reach the unit at all (a wrong fixed address, or a forgotten password): switch the unit off, hold down the TAP button, switch on, and keep holding for 5 seconds. This clears the password and puts Ethernet back on automatic addressing. Other settings are kept.
9. Power and safety#
The unit needs two external DC supplies, plugged into the power connector:
- 24 V (the motor and the unit's own electronics): 1 A or more; 2 A leaves comfortable room.
- 5 V (the LED ring): up to about 11 A when the ring is at full white.
Switching on and off
- Use one switch for both supplies, and do not plug or unplug the power connector with the supplies on.
- After switching off, wait about 3 seconds before switching on again. The electronics need that long to drain.
- Both supplies, started together, produce a brief inrush current. Use a slow-blow fuse (T-type) in the mains inlet.
Hazards and precautions
- Never connect or disconnect the motor cable or the LED ring cable with the power on. A motor is a coil: unplugging it live makes a voltage spike that can destroy the motor driver. The ring cable carries up to about 11 A and can arc as it is made or broken. Switch off, wait about 3 seconds, then change the cable. The same goes for the plug-in modules on the mainboard.
- The supplies run on mains voltage. Bond the earth pin to any metal case, cover all mains terminals, and keep mains wiring away from the low-voltage board. Only a competent person should wire the mains side.
- Keep fingers, hair and cables clear of the platter. It is quiet and slow, and can still pull things in.
- At full white the LED ring is very bright and draws a lot of power. Keep the brightness down in small rooms, and don't look into it.
- The motor driver and the power regulator get warm in use. Leave air gaps around the enclosure.
- Don't press the small BOOT button on the controller module while the platter is running.
- The USB ports on the two controller boards are for setup and updates only; leave them unplugged during a show. When you do connect one, switch the main power on first.
Fuses. The board has two replaceable car-style blade fuses, labelled on the board: F1, 2.5 A (motor and electronics) and F3, 15 A (LED ring). Fit the rating printed beside each. Both take the standard (ATO) size, so the board can't stop you putting them in the wrong way round: check the labels.
10. Care and maintenance#
- Cleaning. With the unit off and unplugged, wipe with a slightly damp cloth. Keep liquid away from the electronics.
- Platter and coupling. The platter is joined to the motor by a flexible coupling. If the platter wobbles or the motor sounds different, check the coupling's grub screws.
Updating the firmware.
- Set a password on the settings page (once).
- Open
http://liquidturntable.local/update, choose the new.binfile (not the one ending.merged.bin) and press Upload. - The platter stops during the upload and the unit restarts into the new software.
A new version has to run for 30 seconds with the network up before it is accepted. If it fails to, or crashes, the unit goes back to the previous version by itself at the next restart.
- The log.
http://liquidturntable.local/logshows what the unit has been doing since switch-on, with the time of each event. It's the first place to look when something is wrong.
11. Troubleshooting#
| Problem | Things to try |
|---|---|
| Nothing happens at switch-on | Check both supplies and the fuses (F1 and F3). Check the power connector is fully home. |
| The platter doesn't move | It starts stopped: turn the main knob up, or press Start on the phone page. Check the speed on the phone page isn't 0%. Check the motor cable. |
| Platter turns the wrong way | Tick Reverse motor direction on the settings page. |
| Platter doesn't follow the tempo | Look at the source line on the phone page. Above about 204 BPM the platter is at its speed limit. At speed below 100% the platter runs slower than the beat on purpose. |
| Motor buzzes but doesn't turn | Check that the motor cable is plugged in properly, and that the motor really is wired A+, A−, B+, B− in order (see the Hardware Overview). |
| Tap button does nothing to the tempo | Show software is sending a tempo, which takes priority. The tap is still sent out as a network message. |
| The ring stays dark | Check the 5 V supply and fuse F3. Brightness may be at 0%. See the WLED notes in the appendix. |
| The ring flashes white at switch-on | In WLED, turn off "Turn LEDs on after power up". |
| Colours don't change | The lighting controller may not have started, or its settings are wrong (appendix). Check /log for "WLED". |
| Colour keeps going back | You changed it in WLED's own page. The unit puts its colour back within 10 seconds. Change it from the unit instead. |
| Two turntables and the wrong one answers | Each unit has its own name (liquidturntable, liquidturntable-1, ...), shown at the top of its phone page. Give each a fixed hostname on its settings page. |
| Can't open the web pages | Try the other forms of the address (section 6). Make sure your phone or computer is on the same network. Then try the TAP-button reset in section 8. |
| Wi-Fi won't connect | Open /log over Ethernet and read the Wi-Fi lines. "Network not seen" means out of range or the wrong name; "AUTH_FAIL" means a wrong password. |
| Forgot the password | Use the TAP-button reset in section 8. |
| Firmware update refused | A password must be set first. Use the .bin file, not the .merged.bin. |
12. Specifications#
| Tempo range | 20 to 500 BPM |
| Platter | 1 revolution per 12 beats; top speed 17 RPM (adjustable); slowest speed about 0.6 RPM |
| Speed setting | 0 to 100% of tempo speed in either direction, 1% per click |
| Motor | NEMA 17 bipolar stepper, driven at 800 mA per phase, 1/32 steps |
| Lighting | 178 RGB LEDs (SK6812), colour set by hue, saturation and brightness |
| Network | Ethernet 10/100, plus optional Wi-Fi (2.4 GHz); web pages on port 80, OSC on UDP 3335 |
| Name on the network | liquidturntable by default (liquidturntable.local); changeable; numbered automatically if taken |
| Power in | 24 V DC (1 A or more) and 5 V DC (up to about 11 A) |
| Fuses | F1 2.5 A and F3 15 A, standard (ATO) blade type |
| Controls | 4 rotary knobs with push buttons, 1 tap button |
Appendix: one-time WLED setup#
The lighting controller runs the free WLED software. Whoever builds or installs the unit should set this up once. (The full details are in the project README.)
- Install a WLED build for the ESP32-S3 with USB CDC On Boot disabled, otherwise the unit's colour commands never reach it.
- LED output on pin 4, 178 LEDs, type WS281x, colour order GRB.
- Set the brightness limiter to about 8,000 mA. WLED's default (850 mA) would leave the ring dim.
- Turn off "Turn LEDs on after power up", so the ring stays dark until the unit sends a colour.
- Keep the serial speed at the default 115,200.
- Update the lighting controller over its "USB" port or over Wi-Fi. Keep its "UART" USB port unplugged while the unit is in use.