JMB Lighting — User Manual

JMB one / 4our / 8ight · Firmware 2.x · 2026-08-20 · 4-port shown (1/8-port variants identical unless noted)


1. Front panel

One rotary encoder: turn = scroll / adjust, click = select, hold (1.2 s) = back one level, keep holding (3 s) = straight home + lock from any depth. The home screen shows the JMB mark; hold to unlock into the menu. The panel relocks after inactivity (running tests and effects keep going). When no source is decoding, the lock screen reads No Data — whatever the CRMX link state — so a linked-but-silent radio can never masquerade as a live source.

Main menu

Item What it does
Test Mode Fade / Step RGBW output tests (click cycles, hold exits)
Ports per-port or All Ports setup, incl. Presets — see below
Sources the input hub — wired DMX and CRMX each with live status (the active source + Hz shows inline and in the header); Chain Listen arms here
Health worst fault inline; Clear Faults + the live universe viewer
Setup system only: ID, Bluetooth + PIN, curve, encoder, language, protection, cal, reset

Port Settings (per port, or All Ports)

DMX Address and Head Number open the digit editor (turn = digit, click = next, SAVE commits; hold cancels; the footprint hint shows the span). Personality cycles RGB / RGB16 / CCT / CCT16 / FX10 (see DMX chart). Effect opens the effect picker. PWM Mode cycles Smooth 8 kHz / Silent 20 kHz / Camera 62.5 kHz — Camera is the power-up default and is flicker-free for slow-motion capture (see §8). Current and Temp limits step their trip points and push to the port hardware immediately. Clear Fault re-arms a latched port. Presets opens the presets sub-menu (below).

All Ports adds two rows: - Chain: Local / Global — Local edits this unit. Global also passes a baton down the DMX line after you commit (see §4). - Apply: Same / Seq / Offset — how a base address fans out: everyone the same; follow-on by each port's real footprint; or fixed 10-channel spacing (re-personality later without re-patching).

Presets (Port Settings → Presets)

Three rows: - Dimmer — a live master brightness. On a single port it opens straight on that port; on All Ports it walks each port in turn (turn = level, click = next port). The output follows the encoder live — no need to confirm to see it. 1 % steps on a slow turn, coarser when you spin. Hold = cancel and restore the levels you started with. - Colours — the factory colour / CCT looks. - Scenes — your four user looks (U1–U4).

When Port Settings is on All Ports and Chain: Global, the Dimmer row becomes a Chain Master: you set one level and, after a DEPLOY DIMMER? confirm, it sets every port on this unit and every armed unit down the DMX line (see §4). Deploy from the first controller in the chain to reach the whole rig.

Sources (the input hub)

One screen answers "what's driving the rig": the header names the active source and its refresh rate, and each row carries live status — DMX In (Hz or silent; click = the line analyzer), CRMX (no link / NO DATA / Hz — data-driven, so "linked but nothing arriving" is visible at a glance; click = link/unlink/antenna) and Chain Listen (arms this unit to accept ONE Global baton — always Off at power-up, disarms itself after use).

Setup

Controller ID (shows on screens, in the Bluetooth name after reboot, and in the RDM label) · Bluetooth on/off + PIN · Dimmer Curve (Lin / Soft 1.6 / Thtr 2.2) · Reverse Encoder · Language · Thermal Fold · Sensor Cal · Factory Reset (confirmed).


2. Output priority

Test mode → Identify (RDM/app) → live DMX → Effect → Manual → hold-last. Live DMX always outranks manual and effects; when the desk vanishes, the last DMX look holds until you set something else. Outputs soft-start over ~1 s at power-up. All sources pass the dimmer curve.

"Live DMX" is the wired input or the CRMX radio — they merge into one universe, so everything downstream (patch, FX personality, the diagnostics viewer, RDM) treats the radio exactly like a cable. The header on every screen names the winner: DMX or CRMX.

2a. Firmware update over Bluetooth (BLE OTA)

The controller updates its own firmware straight over Bluetooth from the app — no USB, no cable, no Wi-Fi.

Wi-Fi / network DMX (sACN, Art-Net) and Wi-Fi OTA are not part of the shipping firmware — the control path is deliberately kept off the network for responsiveness. Wired DMX, CRMX and BLE cover input and updates.


3. Effects

Twenty-one built-in dynamic looks per port (Candle, Fire, Fireworks, Water, Siren, Laser, Club, Lightning, Rainbow, Aurora, Sunset, TV Sim, Strobe, Police, Pulse, Party, Traffic, Fluoro, Paparazzi, Explosion, Clouds). Set from Port Settings → Effect, the app, or DMX channel 8 of the FX personality. Speed 0–255 (128 = designed tempo) from the app or DMX channel 9. While an effect runs, the app's RGB sliders become its colour trim — all at full = the untouched effect; pull one down to take that colour out (Rainbow minus blue, say). The trim is a live tool: it resets to full at power-up. Effects never start on their own. When DMX is absent, an effect runs only from the moment you deliberately pick it (panel or app) — a saved effect does not auto-run at power-up, and a desk dropout (cable or CRMX) always holds the last DMX look rather than starting one. Pick the effect again after a loss to run it. Siren/Police alternate across ports like a lightbar; Party pulses fully-saturated colour on a 128 BPM bar clock; Fireworks bursts out of true darkness; Sunset is a one-shot arc — from golden hour it eases through ember red down to black over ~2 minutes and stays there; re-select it (or dip the port dimmer to 0 and back up) to run another sunset. Traffic plays passing-headlight sweeps with independent timing per port. The film gags: Fluoro is a failing fluorescent tube — rapid failed strikes, then it catches and holds with a faint mains buzz; Paparazzi fires irregular hard white pops, independent per port, like a press pit; Explosion is a white-hot flash blooming to an orange fireball with an ember-flicker decay; Clouds drifts daylight slowly dimmer and cooler as cloud crosses the sun, then back.

Rig-wide effect controls (the app's Effects card): Tap tempo sets the whole rig's beat-effect speed to the music — tap the app's Tap button in time (or type a BPM, 60–240; 128 is the designed tempo). Spread offsets each port in time (0–100 %) so effects sweep across the rig as a wave instead of every port in lockstep. Both persist across reboots.

Capture to scene: the app's Scenes tab saves the current look — Save current as scene… (named) or Capture live (one tap, auto-named). A scene captures the whole programmer state (colour, or effect + speed), recalls with a crossfade, and rides in the show file. Up to 100 scenes per phone (they live in the phone's browser storage, and in any show file you export).


4. Global addressing (chain baton)

To address a whole chain of controllers from one screen:

  1. On every unit that should take part: Sources → Chain Listen → ARMED. (Units left Off are untouched — preset rigs are safe.)
  2. On unit 1: Port Settings → All Ports → Chain: Global, choose Apply mode, open DMX Address, enter the base, SAVE.
  3. Confirm the DEPLOY CHAIN? warning. Unit 1 addresses itself, then each armed unit down the line takes the follow-on addresses and the next controller ID, shows a receipt, disarms, and relays onward.

Head numbers chain the same way. A unit accepts one baton per arming.

The dimmer chains too. With the same arming in place, Port Settings → All Ports → Chain: Global → Presets → Dimmer gives a single Chain Master level. Set it, confirm DEPLOY DIMMER?, and every armed unit down the line takes the same brightness. Only a downstream unit hears the baton, so deploy from the first controller in the chain. (Addresses are untouched — this only moves the dimmer.)

Looks, blackout and full chain too. All Ports → Chain: Global → Presets → Colours → pick a colour/CCT and confirm DEPLOY LOOK? to set that look on every armed unit. Choosing Off blacks out the whole chain; White takes it to full. The app's Chain broadcast card has one-tap Blackout / Full / DMX In buttons for the same thing. (Dimmer and looks never re-address or renumber — they only change the output.)


5. RDM

The controller is a full E1.20 responder: discovery, identify (flashes the ports and strobes the main screen HERE), device info, start address, personality — the root device carries the rack view (a SET fans out per the Apply mode) and each port is addressable individually as a sub-device. E1.37-1 dimmer curve and PWM frequency are settable from the desk. The controller also publishes per-port temperature and current as E1.20 sensors on the root device ("Port 1 Temp", "Port 1 Current", …), so any RDM console reads fixture health live. The main screen also flashes the moment discovery finds the unit. The powered DMX thru forwards everything downstream; downstream fixtures' RDM responses are relayed back to the desk automatically.

RDM controller (the app's Diag tab). The controller is also an RDM controller for everything plugged into its thru line — a full RDM tester built into the rack. Scan discovers every downstream RDM fixture and lists it as a card: model, label, UID, start address, footprint, personality and sensor count. Tap a card to edit it in place — identify (flash the fixture to find it), start address, personality, label, and live sensor reads. Scanning takes over the output line while it runs, so with an upstream desk live the app asks before taking over; the session releases the thru automatically when you stop (or after 3 minutes idle).


6. The app

https://jonathanbillitt.github.io/jmb-zone-app/ — Chrome/Edge on Android or desktop (iPhone: open it in the Bluefy browser). Add to Home screen for the full-screen app. Connect → PIN (default 0123, change it in Setup). If a controller was just reflashed, toggle the phone's Bluetooth off/on before connecting.

Tab Contents
Control per-port cards: address, head, personality, effect + speed, RGB sliders, Dim / FX-speed jog wheels, Prep-all button; tap the label slot in a card's header to name the port (16 characters — the name also appears under the head number on that port's screen when the panel is locked)
Colour console-style picker: Dim, Hue, Sat, Kelvin, ΔUV columns — one colour model, every fader a projection of it; ΔUV is an independent green/magenta trim; CW/WW targets get a Kelvin-only picker with a live mix readout
Scenes save / recall with per-scene crossfade seconds; stored on the phone; included in the show file
Ports live telemetry: patch, output current, temperature, faults, source (matching the port screens)
Diag the line-analyzer suite: signal card (live/no-signal, source, fps with a rolling sparkline, slots, start code, packet age, error counts) · universe analyzer — full-screen heatmap with Live / Min / Max / Activity views, a min-max capture recorder and a channel inspector (tap a cell: level, %, captured range, change count, and which port it patches to) · flicker finder — arm it and every channel change on the wire is logged with values and timing · RDM universe controller (see §5) · port-bus health
Setup controller ID, curve, apply mode, Firmware update (over Bluetooth — see §2a), Flash-to-find, reset-all + undo, show-file export/import, PIN, disconnect

Touching any colour control takes manual control automatically; the picker stomps running effects on its targets. On a CW/WW personality the Control sliders change identity: Warm (amber track) and Cool (ice-blue track), with the unused Blue slider hidden. Export produces one .jmb show file carrying the whole rig — addresses, heads, labels, looks and scenes — import it on any phone or controller.

The app updates itself. It always loads the newest version when opened with any internet connection, and keeps working offline from its cached copy at a venue. No store updates, nothing to install — reopen it and you're current.

Demo mode. Explore in demo mode on the connect screen walks the entire app — every tab, the analyzers, even an RDM scan that discovers example fixtures — with no controller present. Nothing a demo user touches goes anywhere.


7. Fault handling

Ports protect themselves: over-current (hiccup ×3 then latch), bolted-short µs trip, over-temperature, ground-leak imbalance, comms-loss failsafe. Latched ports show a flashing fault banner on their screen, the fault word appears in the menu and the app, and Clear Faults / Port Reset re-arms.

Thermal foldback (Setup → Thermal Fold, on by default): before a port hits its over-temp trip, it eases the output down over the last 10 °C (to a 30 % floor) so a hot fixture rides through instead of hard-latching mid-show. The latch stays as the real-fault backstop.


8. Camera & slow-motion work

Each port dims with a high-frequency PWM carrier, set per port under Port Settings → PWM Mode (also in the app, and over RDM via MODULATION_FREQUENCY):

Mode Carrier Use it for
Camera (default) 62.5 kHz Any shoot — flicker-free on high-speed cameras
Silent 20 kHz Quietest drive (no coil whine) when no camera is present
Smooth 8 kHz Maximum low-end dimming smoothness, eye-only / theatre

All three carry the full ~16-bit dimming resolution (temporal dithering makes up the difference at the higher carriers), so the picture is identically smooth — only the flicker frequency changes.

Setting up for slow-motion / high-speed capture:


9. Quick reference