MegaPoints Controllers

MegaPoints Servo-8 User Guide

Your layout. Your way. One board at a time.

User Reference — Release 27

Contents

Getting Started

  1. What is the Servo-8?
  2. Welcome to System2
  3. Hooking Up Your Board
  4. Getting Connected — Wi-Fi Setup
  5. The Main Page at a Glance
  6. Configuring Your Ports
  7. Visual Servo Endpoint Adjustment
  8. EasyConfig — Quick Setup
  9. Wi-Fi Settings & Roaming

Servo-8 In Detail

  1. What's New
  2. Networks & Protocols
  3. Choosing a Protocol
  4. Saving, Loading & Restoring
  5. Cloud Backup & Restore
  6. Live Monitoring Charts
  7. Software Updates
  8. Network Monitor
  9. The Dashboard
  10. Status Log & Diagnostics
  11. Contact Us
  12. For the Tinkerer — the Built-in API
  13. Technical Reference & Reliability
  14. Connecting Multiple Boards
  15. Document Revisions

1. What is the Servo-8?

Your MegaPoints Servo-8 is an eight-channel servo controller designed specifically for model railways. It gives you precise, smooth control over the small servos that move turnouts, semaphore signals, level crossing gates, barriers, and anything else on your layout that needs to swing, tilt, or rotate.

The Servo-8 is built on the System2 platform — the same proven infrastructure that powers the MegaPoints Panel Controller. That means you get:

MegaPoints Servo-8 board
The MegaPoints Servo-8 controller board.

Whether you are controlling a single set of points or an entire fiddle yard, the Servo-8 makes it straightforward. You set the travel range for each servo by dragging endpoints on a visual gauge — no need to count microseconds or guess at values.

2. Welcome to System2

The Servo-8 is part of the MegaPoints System2 family of controllers. System2 is an ecosystem of boards that work together to automate your model railway — all sharing a common web-based interface and the same underlying technology.

The System2 Family

ProductChannelsRole
Panel Controller16 in / 16 outThe heart of any System2 installation — 16 inputs (push button, toggle, block detector, or points indicator) and 16 LED pair outputs. Your layout's control desk.
Mini Panel8 in / 8 outAll the functionality of the Panel Controller in a compact form factor. Ideal for smaller panels, expansion, or getting started with System2.
Servo-88 servosEight-channel servo controller with six movement types — points, wig-wag, semaphore bounce, semaphore lever, crossing gate, and acceleration. New intuitive visual servo endpoint adjustment for precise setup.
Input-3232 inA 32-port input controller, functionally equivalent to the inputs on the Panel Controller. Use for large-scale track occupancy, feedback, or sensor arrays.
Output-3232 outA 32-port output controller, functionally equivalent to the LED outputs on the Panel Controller. High-density LED control to reduce board count on complex layouts.
OUT-64 RGB64 LEDsDrives up to 64 individually addressable WS2812B RGB LEDs for colour signals, ground lighting, or scenic effects.
Solenoid Driver4 solenoids20–24V solenoid controller with integrated CDU and intelligent firing — only activates when the capacitor reaches full charge. Adjustable “thump” for each output.
DCC Decoder4000 addressesA generic DCC accessory decoder for System2 networks. Automatically maps DCC accessory addresses (1–4000) to matching V-Ports — no complex DCC configuration needed.
Route Processor100 routesPre-configured route automation for all System2 motor types. Up to 100 routes with 16 elements each. Trigger by switch, block occupancy, DCC command, or RFID tag. Built-in route editor with learn-by-listening.
RFID Reader2 readersDual RFID reader and writer — create a 4-digit loco ID and identify trains as they pass. Works over CAN bus or via MQTT in native and JMRI modes.
Relay Driver4 relaysMulti-channel relay control for frog switching, accessory power, or any application requiring isolated contacts.
Stall/Kato Driver4 motorsDrives stall-type, Kato, and MTB point motors with adjustable current limiting and position feedback.

Shared Infrastructure

Every System2 board shares the same features out of the box:

You can mix and match System2 boards freely. A typical layout might have one Panel Controller at the control desk, two or three Servo-8 boards under the baseboard, and an Input-32 for track detection — all talking to each other over the CAN bus.

3. Hooking Up Your Board

Setting up your Servo-8 takes just a few minutes. Here is what you need to connect.

Power Supply

Your Servo-8 needs a 12V DC power supply rated at 1.5A minimum. Connect via the power connector on the left side of the board.

Always use a regulated 12V supply. Under-voltage or unregulated supplies can cause erratic servo behaviour or board resets under load.

Servo Connections

Each of the 8 channels has a 3-pin header for connecting a standard hobby servo. The pins are labelled:

PinColour (typical)Function
SOrange or WhiteSignal (PWM)
+Red+V power
-Brown or BlackGround
Most hobby servos use a standard 3-pin connector that plugs straight in. Just make sure the brown/black wire is on the side marked with a minus sign.

CAN Bus

For multi-board networks, connect the CAN bus using the screw terminal:

Use twisted pair wire and keep runs under 30 metres for reliable communication. If you have only one board, you do not need the CAN bus at all.

LED Indicators

LEDMeaning
Power (green)Board is powered on
WiFi (blue)Solid = connected to Wi-Fi; Flashing = searching or in AP mode
CAN (yellow)Blinks when CAN bus traffic is detected
Activity (white)Blinks briefly when a servo moves

Board Layout

Servo-8 board layout and connections
Servo-8 board layout showing connectors, button, and jumper locations.

4. Getting Connected — Wi-Fi Setup

When your Servo-8 is brand new (or after a Wi-Fi reset), it does not yet know your Wi-Fi network name and password. It will create its own temporary hotspot so you can tell it which network to join. You only need to do this once — the board remembers your Wi-Fi details permanently, even after power cuts and software updates.

Even better, once one board knows your Wi-Fi credentials you can share them across the wired CAN network to every other System2 board with a single button press (see Wi-Fi Settings & Roaming). So in practice, you only ever type your Wi-Fi password once for your entire layout.

Step-by-step Wi-Fi Setup

  1. Power on your Servo-8. If it has no stored Wi-Fi credentials, its onboard LED will flash rapidly and it will appear as a Wi-Fi hotspot named after its board ID (e.g. serv8-a1cc84).
  2. Connect to the hotspot. On your phone or tablet, open your Wi-Fi settings and look for the board's name. Tap to connect — there is no password.
    Phone Wi-Fi list showing Servo-8 hotspot
    Look for your board's name in your phone's Wi-Fi list and tap to connect.
  3. A setup page opens automatically. Your phone's captive-portal detection will open the Wi-Fi configuration page. If it does not appear within a few seconds, open a web browser and go to http://4.3.2.1.
    Wi-Fi setup page with scan results
    The Wi-Fi setup page shows nearby networks. Select yours from the dropdown.
  4. Select your network and enter the password. Tap Scan WiFi to see nearby networks. Choose yours from the dropdown, type your password, and press Save.
    Wi-Fi credentials saved confirmation
    Once saved, the board reboots and connects to your Wi-Fi network.
  5. Reconnect to your own Wi-Fi. Switch your phone back to your normal Wi-Fi network. The board will reboot and join the same network. You can now access it by typing its name into a browser (e.g. http://serv8-a1cc84.local) or by using the IP address shown in the status bar.

5. The Main Page at a Glance

Once your Servo-8 is connected to Wi-Fi, open its address in a browser and you will see the main configuration page. Everything you need is on this single page.

Collapsible Sections

The main page is organised into four collapsible sections. Click any section header to expand or collapse it. Your preferences are saved automatically and remembered across sessions.

SectionContents
Port ConfigurationThe servo settings table (V-Port, Range, Speed, Type, Trigger, Feedback) and the Adjust button for each channel.
ChartsFour real-time monitoring charts — WiFi RSSI, WiFi traffic, CAN bus activity, and MQTT activity.
NetworkProtocol selection (CAN / JMRI / MQTT), MQTT broker settings, CAN ID, WiFi boot delay, roaming, and credential sharing.
Status LogA scrolling log of events — connections, disconnections, CAN traffic, errors, and firmware messages.
Servo-8 main page
The main configuration page showing charts, port table, network settings, and status log.

What You See

6. Configuring Your Ports

Each of the 8 servo channels has its own set of configuration options. Let's walk through them.

The Settings

SettingWhat It Does
V-PortThe virtual address that other devices use to control this servo. For example, a Panel Controller switch set to V-Port 101 will toggle servo S1 if its V-Port is also 101.
Range LowThe servo position (in microseconds) for the "off" or "normal" state. Default: 1000.
Range HighThe servo position (in microseconds) for the "on" or "reverse" state. Default: 2000.
SpeedHow fast the servo moves, from 1 (very slow) to 100 (full speed). Default: 50.
TypeThe movement style — see Servo Types below.
ReversedSwaps the meaning of "on" and "off" without changing the range values.
TriggerAn input V-Port address that will toggle this servo when it changes state.
FeedbackAn output V-Port address that reports this servo's current position to other devices.
AdjustOpens the visual servo endpoint adjustment popup for this channel. Drag the LO and HI endpoints on a graphical arc to set the servo's travel range, adjust the speed, and slide the entire range up or down — all while watching the servo move in real time. See section 7 for details.
Servo-8 port configuration table
The port configuration table with all eight servo channels configured.

Servo Types

The Servo-8 supports six different movement types. Choose the one that matches what your servo is controlling:

Points

Standard two-position movement for turnouts and points. The servo moves smoothly between its Low and High positions and holds at each end.

WigWag

Continuous back-and-forth swinging motion, like a level crossing warning signal. The servo oscillates between Low and High until told to stop.

Semaphore Bounce

The signal arm drops to "clear" with a realistic mechanical bounce when it reaches the bottom, just like a real semaphore signal.

Semaphore Lever

Smooth, lever-style movement for semaphore signals without the bounce effect. A dignified, steady travel from one position to the other.

Gate

Slow, smooth movement designed for level crossing gates and barriers. The servo eases in and out at each end for a realistic appearance.

Accelerated

The servo ramps up to speed and then decelerates as it approaches its target position. Useful when you want visible acceleration and braking.

Keyboard Shortcuts

When entering V-Port, Trigger, or Feedback addresses, you can append a special character to auto-fill the remaining channels in one go:

SuffixEffectExample
+Fills all rows below with incrementing valuesType 101+ in S1's V-Port → S2 gets 102, S3 gets 103, … S8 gets 108
-Fills all rows below with decrementing valuesType 108- in S1's V-Port → S2 gets 107, S3 gets 106, … S8 gets 101
.Fills all rows below with the same valueType 500. in S1's Trigger → S2–S8 all get 500

This works in any numeric field in the port table. The suffix character is stripped after the values are applied.

You do not need to type microsecond values by hand. The easiest way to set Range Low and Range High is to click the Adjust button and use the visual endpoint adjustment — see the next section.

7. New Intuitive Visual Servo Endpoint Adjustment

The visual servo endpoint adjustment is the heart of the Servo-8 experience. Instead of guessing at microsecond values, you simply drag two endpoints on an arc to set the exact travel range for your servo, and watch it move in real time.

To open it, click the green Adjust button next to any servo in the port table. The gauge appears as a popup overlay showing an arc with two draggable thumbs (LO and HI), a needle showing the current servo position, and a speed slider.

Servo-8 servo range adjustment gauge
The servo range adjustment popup showing the arc gauge with LO and HI endpoints, speed slider, and servo arm.

How to Use the Gauge

  1. Click "Adjust" next to any servo in the port table. The gauge popup appears, showing that servo's current range.
  2. Drag the red LO thumb to set where the servo's travel begins. On the real board, the servo moves in real time as you drag — so you can watch your turnout or signal and stop when it is exactly where you want it.
  3. Drag the blue HI thumb to set where the servo's travel ends. Again, the servo follows your finger or mouse in real time.
  4. Drag between the LO and HI thumbs to shift the entire range up or down the arc without changing the gap between them. This is useful when your endpoints are set correctly but the whole range needs nudging in one direction.
  5. Adjust the speed slider on the right side to control how quickly the servo moves between its two positions. Slow speeds look more realistic for turnouts and signals.
  6. Click "Move" to start the servo sweeping back and forth between LO and HI so you can see the full travel in action. Click again to stop.
  7. Click "Centre Servo" to move the servo to the midpoint between LO and HI. This is useful for checking that both ends of travel are balanced.

When you are happy with the settings, close the gauge and click Save in the main page. Your LO, HI, and Speed values are written back to the port table automatically.

No need to count microseconds — just drag and watch your turnout move. The gauge shows you the exact microsecond values, but you never need to think about them. Just drag until it looks right.

Buttons Explained

ButtonWhat It Does
Centre ServoMoves the needle (and the real servo) to the exact midpoint between LO and HI. Useful for checking that your range is centred on the servo's travel.
ResetReturns all settings to their defaults: LO = 1000, HI = 2000, Speed = 50%. Use this if you get lost or want to start over.
Arm SelectorCycles through the five needle styles: Servo Arm (wide), Teardrop, Standard, Long, and Pointer. This is purely cosmetic — pick whichever you prefer.
On the real Servo-8, the gauge needle shows the actual position of the servo as reported by the board over WebSocket. This means you see exactly where the servo is, not just where you told it to go. If the servo is still moving, the needle tracks its position in real time.

8. EasyConfig — Quick Setup

If you are building a multi-board layout using the standard MegaPoints addressing scheme, EasyConfig lets you set up all 8 servo channels in one click.

How It Works

  1. Click the EasyConfig button in the action bar below the port table.
  2. Select your board number from the dropdown (Board 1, Board 2, Board 3, etc.).
  3. Click Apply. EasyConfig automatically sets the V-Port, Trigger, and Feedback addresses for all 8 servos based on your board number.

What Gets Set

For each board number, EasyConfig assigns addresses in a predictable sequence. For example, if you select Board 1:

ServoV-PortTriggerFeedback
S1101201301
S2102202302
S3103203303
S4104204304
S5105205305
S6106206306
S7107207307
S8108208308

Board 2 would start at V-Port 109, and so on. This keeps all your addresses unique across your entire layout.

EasyConfig only sets addresses — it does not change your servo travel ranges, speeds, or types. You can run EasyConfig first for the addresses, then fine-tune each servo's movement with the visual endpoint adjustment.

9. Wi-Fi Settings & Roaming

WiFi settings bar
The Wi-Fi settings area on the main page.

Roaming

Many layouts, especially exhibition layouts, use more than one Wi-Fi access point to cover a large area. Roaming tells the board to periodically check whether a stronger access point is available, and seamlessly switch to it if so.

We recommend leaving Roaming on (the default). Even if you only have a single access point today, roaming causes no harm and means your boards are ready to take advantage of a second access point if you add one later. With roaming on, the board scans every five minutes and only switches if it finds a significantly stronger signal, so there is no disruption during normal operation.

RSSI chart showing roaming improvement
This Wi-Fi signal chart shows a real roaming event. The signal was weak (red) until the board found a closer access point and switched — signal strength jumped to strong (green) immediately.

Boot Delay

On large layouts with many boards, enabling Boot delay adds a short pause (1–15 seconds) before the board connects to Wi-Fi at power-on. This staggers the Wi-Fi connection requests and avoids overwhelming your router when everything powers up at once. This is probably not necessary unless you have a particularly slow router and a large number of boards — say 30 or more. Most users can leave this off.

Sharing Wi-Fi Credentials

Once one board is connected to your Wi-Fi, you can send those credentials to every other System2 board on the wired CAN network with a single button press. This means you never need to set up Wi-Fi on each board individually.

Share, Revoke, and Erase buttons
The Wi-Fi credential management buttons.
ButtonWhat it does
ShareBroadcasts your Wi-Fi name and password to all boards over the CAN bus. Each board saves the credentials and connects automatically.
RevokeTells all boards on the CAN network to forget the stored Wi-Fi credentials. Useful if you change your Wi-Fi password.
EraseErases the Wi-Fi credentials on this board only. The board will restart its hotspot so you can set up a new network.
The credentials are sent as data packets over the CAN bus wiring. Only boards physically wired to the same CAN bus will receive them.

10. What's New

Version 25 was the first stable release of the MegaPoints Servo-8 firmware. Version 27 brings all the latest improvements. Here is what the Servo-8 includes.

Features

11. Networks & Protocols

Your Servo-8 can communicate with other devices using three different protocols. You choose which one to use in the Network Configuration section of the main page.

CAN Bus

Wired — 2-wire connection

The native System2 backbone. Direct board-to-board communication with automatic discovery, shared Wi-Fi credentials, and V-Port messaging. No computer needed. Default protocol.

Native MQTT

Wireless — via Wi-Fi

Lightweight messaging through an MQTT broker. Integrates with Home Assistant, Node-RED, and custom applications. Requires a broker (e.g. Mosquitto) running on your network.

JMRI

Wireless — via Wi-Fi + computer

Computer-based layout control through JMRI software. Uses MQTT as the transport layer. Requires JMRI running on a PC, Mac, or Raspberry Pi, plus an MQTT broker.

CAN Bus

The CAN bus is the native System2 communication backbone. It is a simple two-wire connection (CAN-H and CAN-L) that lets all your System2 boards talk to each other directly. CAN bus features include:

JMRI

JMRI (Java Model Railroad Interface) is popular model railway control software that runs on a computer. When you select the JMRI protocol, your Servo-8 connects to JMRI over your Wi-Fi network, allowing JMRI to control your servos using its turnout and sensor tables.

Native MQTT

MQTT is a lightweight messaging protocol widely used in home automation. When you select MQTT mode, your Servo-8 connects to an MQTT broker (server) and publishes and subscribes to topics for each servo channel. This opens up integration with:

To use MQTT, enter your broker address and port (default 1883) in the Network Configuration section.

Most users start with CAN bus for a simple multi-board layout. If you later want to add computer control through JMRI or integrate with automation systems through MQTT, you can switch protocols at any time — your servo configurations are preserved.

12. Choosing a Protocol

Switching Protocols on the Main Page

In the Network Configuration section of the main page, you will see three protocol buttons: CAN Bus, JMRI, and MQTT. The currently active protocol is highlighted in green. To switch:

  1. Click the protocol button you want to use. It highlights immediately.
  2. If you selected MQTT or JMRI, enter your MQTT broker address in the MQTT Broker field and the port number (default 1883) in the Port field.
  3. Click Save to store your choice. The new protocol takes effect after the next reboot.

MQTT Broker Configuration

Both MQTT and JMRI modes require an MQTT broker running on your network. A broker is a small piece of software that routes messages between devices. The most popular choice is Mosquitto, which is free and runs on Windows, macOS, Linux, and Raspberry Pi.

FieldWhat to Enter
MQTT BrokerThe IP address or hostname of the machine running your broker (e.g. 192.168.1.10 or pi4.local)
PortThe broker port — almost always 1883 (the MQTT default)
If you are using JMRI, you need both JMRI and a Mosquitto broker running. JMRI connects to the same broker as your Servo-8 boards, so they can exchange messages. JMRI includes built-in support for MQTT turnout control.

MQTT Network Layout

Native MQTT Mode — Wireless via Broker MQTT Broker (e.g. Mosquitto) Panel Controller mimic panel Servo-8 under baseboard Servo-8 fiddle yard Your Wi-Fi Network (2.4 GHz)
In Native MQTT mode, all boards connect to your Wi-Fi network and communicate through a central MQTT broker.

JMRI Network Layout

JMRI Mode — Computer-Based Layout Control MQTT Broker (e.g. Mosquitto) JMRI on PC / Mac / Pi Panel Controller mimic panel Servo-8 under baseboard Servo-8 fiddle yard Your Wi-Fi Network (2.4 GHz)
In JMRI mode, boards and JMRI software both connect to the same MQTT broker over Wi-Fi.

13. Saving, Loading & Restoring

Your Servo-8 keeps all its settings in persistent storage, so they survive power cuts and reboots. However, when you make changes through the web interface, those changes live in memory until you explicitly save them.

Save Changes

The Save button writes all your current settings — servo positions, speeds, movement types, CAN IDs, network configuration, and everything else — to the board's non-volatile storage. Once saved, these settings are permanent until you change them again.

Reload Values

Changed something and want to undo it? Click Reload Values to discard any unsaved changes and reload the last saved configuration from storage. This is a quick way to back out of experimental tweaks without affecting your working setup.

Reset to Defaults

If you want to start from scratch, Reset to Defaults returns every setting to its factory state:

SettingDefault Value
LO endpoint1000 µs
HI endpoint2000 µs
Speed50%
Movement typeSmooth
CAN IDAuto-assigned
Reset to Defaults does not erase your Wi-Fi credentials. Your board will still connect to the same network after a reset. If you need to change the Wi-Fi network, use the Wi-Fi Settings page.

Local Backup — Download Settings

You can download a complete copy of your board's settings as a file to your computer. This is useful before making major changes, or if you want to copy a configuration from one board to another.

  1. Open the main page of your Servo-8.
  2. Click the Download Settings button.
  3. Your browser will save a settings file to your Downloads folder. The filename includes your board's name and the date, making it easy to keep track of multiple backups.

Local Restore — Upload Settings

To restore a previously downloaded settings file:

  1. Click the Upload Settings button.
  2. Select the settings file from your computer.
  3. The board will load the settings and apply them. You will see the new values appear on the page.
  4. Click Save to make the restored settings permanent.
Always save your settings before updating firmware. While updates are designed to preserve your configuration, having a local backup gives you extra peace of mind.

14. Cloud Backup & Restore

Cloud backup gives you an automatic safety net for your board's configuration. Once your board is registered, it backs up your settings to the MegaPoints cloud whenever you make changes. If you ever need to replace a board or recover from an accidental reset, your settings are just a click away.

Cloud Backup and Restore screen
The Cloud Backup and Restore overlay showing saved backups with location tags, version, and one-click restore.

Register Your Board

Before cloud backup can work, your board needs to be registered with the MegaPoints cloud. Registration is a one-time process:

  1. Open the Dashboard page on your board.
  2. Look for the Registration section and click Register.
  3. Your board sends its unique identifier to the cloud and receives a confirmation. That is it — registration is complete.

Automatic Backups

Once registered, your board automatically backs up its settings to the cloud whenever you save changes. You do not need to do anything — it happens in the background. The cloud keeps up to 5 rolling backups, so you always have recent versions to choose from.

Viewing and Restoring Backups

To see your cloud backups, visit the MegaPoints Dashboard in your browser. Each backup shows the date it was created and a summary of the settings it contains. To restore:

  1. Select the backup you want to restore.
  2. Click Restore.
  3. The settings are sent to your board and applied. Click Save on the board to make them permanent.

Locking Important Backups

If you have a configuration you want to keep permanently, you can lock a backup. Locked backups are protected from the rolling rotation — they will not be overwritten when new backups are created. This is ideal for a known-good baseline configuration.

Re-registration for New Owners

If you sell or give away a board, the new owner can re-register it under their own account. Re-registration clears the previous owner's cloud backups and starts fresh. The board's local settings are not affected.

Cloud backup works through your browser, not directly from the board. This keeps the board's memory free for running your servos and avoids the overhead of encrypted connections on a small microcontroller.

15. Live Monitoring Charts

Click Show Charts at the top of the main page to reveal four real-time charts covering the last 5 minutes of activity. They update every 5 seconds. Click on any chart to expand it for a larger, more detailed view — click outside the expanded chart to close it.

Live monitoring charts
Four real-time charts: Wi-Fi signal, Wi-Fi traffic, CAN bus activity, and MQTT activity. Click any chart to expand it.
ChartWhat it shows
Wi-Fi RSSISignal strength in dBm. Green is good (above −60), yellow is fair, red is weak.
Wi-Fi TrafficApplication-level packets sent (Tx) and received (Rx) per 5-second interval.
ChartWhat it shows
CAN ActivityCAN bus packets per second, averaged over 5-second windows. Shows how busy your wired network is.
MQTT ActivityMQTT messages sent, received, errors, and reconnection attempts (only active when using an MQTT-based protocol).

16. Software Updates

Software updates are one of the most important features of the Servo-8. Unlike traditional model railway electronics that are frozen at the version they ship with, your Servo-8 can update itself over the internet, gaining new features, improvements, and fixes long after you purchased it. This future-proofs your investment -- the board you buy today will keep getting better over time.

The board checks for updates automatically every 4 hours. If a new version is available, you will see a notification in the Status Log on the main page with a direct link to the Update page.

What you see on the Update page

The update page shows a complete release history with a summary of every version released since the one you are currently running. Click the arrow next to any release to read detailed notes about what changed.

How to install an update

  1. Navigate to the Software Update page by clicking Update in the footer menu on any page.
  2. The page checks for the latest version automatically and tells you if you are up to date.
  3. If an update is available, click Install Latest Update (or choose a specific version from the history list).
  4. The board downloads and installs two files -- the firmware and the filesystem. This takes 4--8 minutes depending on your internet speed. Do not power off the board during this process.
  5. Progress is shown with real-time bar graphs -- a green bar for firmware and a blue bar for the filesystem. You can see exactly how far along the download is.
  6. When complete, the board reboots automatically onto the new version.

Firmware Validation -- Your Safety Net

From V25 onwards, every update includes a 10-minute validation window. After the board reboots onto the new firmware, you will see a yellow banner at the top of the page with a countdown timer:

Firmware validation banner with Keep and Roll back buttons
The validation banner now shows both a green "Keep this version" button and an orange "Roll back now" button (V27b1).

This gives you time to check that everything is working properly before you commit to the new version. You have four choices:

ActionWhat happens
Click "Keep this version" The new firmware is accepted permanently. The validation banner disappears and the board continues running the new version. This is the normal case.
Click "Roll back now" Immediately rolls back to the previous firmware without waiting for the countdown. The board reboots onto the previous version within a few seconds. This button only appears when a previous firmware version is available on the board.
Let the timer expire If you do nothing for 10 minutes, the board automatically reboots back to the previous version. This protects you if the new firmware has a problem that prevents you from reaching the settings page.
Reboot the board If you reboot (via the Reboot button or by cycling power) before accepting, the board reverts to the previous version immediately.

Example: You update from V24 to V25. The board reboots and you see the validation banner. You check that your ports are working, the CAN monitor shows traffic, and the dashboard looks right. Everything is fine, so you click "Keep this version". Done -- you are now on V26 permanently.

Example: You update and the board reboots, but something does not look right -- perhaps a chart is missing or a setting looks wrong. You simply wait for the 10-minute timer to expire. The board reboots itself and you are back on the previous version, exactly as it was before the update. No harm done.

Manual Rollback

Even after accepting an update, you can roll back to the previous version at any time. On the Update page, you will see a Rollback button showing the version you can revert to. Click it and the board switches back immediately.

Example: You accepted V25 last week, but you have discovered an issue with your particular setup. Visit the Update page, click "Rollback to V24", and you are back to the version that was working. You can try V25 again later when an updated beta is available.

Recovery Mode

In the unlikely event that your board will not start properly after an update, there is a last-resort recovery option:

  1. Power off the board.
  2. Press and hold the button on the board.
  3. While holding the button, power the board on.
  4. Keep holding for 10 seconds until the board enters recovery mode.
  5. The board connects to Wi-Fi and downloads a known-good firmware from the cloud, then restarts on the recovered version.

You can also trigger recovery mode by connecting a USB cable and typing RECOVER followed by Enter in the serial monitor.

Pre-release Channel

If you would like to try new features before they are officially released, you can opt in to the pre-release channel. On the Update page, toggle the Pre-release channel switch. You will see beta versions appear alongside stable releases.

Pre-release firmware is tested but may contain bugs. It is not recommended for boards in permanent use on your layout. The firmware validation window applies to pre-release updates too, so you can always roll back if needed.

Example: You hear about an exciting new feature being tested. You toggle on pre-release, see "V22 beta 5" appear, and install it. After testing, you decide it is not ready for your layout, so you roll back to V25 stable. No problem.

Security

Every firmware update is digitally signed using RSA-PSS cryptography. The board verifies the signature before applying any update. Only authentic software from MegaPoints Controllers can be installed.

An active internet connection (via Wi-Fi) is required for software updates. The CAN wired network alone cannot download updates. Make sure your board is connected to Wi-Fi before starting.

17. Network Monitor

The Network Monitor is a dedicated page at /monitor that shows you every CAN bus packet flowing through your network in real time. It is an invaluable diagnostic tool when you are setting up a multi-board layout or troubleshooting communication issues.

Accessing the Monitor

Navigate to http://serv8-XXXXXX.local/monitor in your browser (replacing XXXXXX with your board's ID). The monitor opens with a live scrolling log of CAN packets and a filter bar at the top.

Servo-8 CAN bus network monitor
The CAN Monitor showing live packet traffic with filter bar, colour-coded board names, and V-Port decoding.

The Filter Bar

The filter bar at the top lets you narrow down the packet stream to find exactly what you are looking for. When any filter is active, the bar turns pink to remind you that not all packets are being shown.

FilterHow to Use
CAN IDFilter by CAN bus address. Enter a single number (e.g. 800), a range (e.g. 800-900), or a comma-separated list (e.g. 800,900,1200). Leave blank to show all.
BoardFilter by board name. Partial match, case-insensitive. Enter serv8 to see only packets from Servo-8 boards.
V-PortFilter by virtual port number. Supports the same syntax as CAN ID — single values, ranges, and comma-separated lists.
RFIDFilter by RFID tag ID. Partial match. Only shows RFID-tagged messages containing this text.
Type checkboxesPort = channel state changes (D0=1). RFID = messages with decoded RFID data. Mgmt = management messages (announces, reports, credential sharing). All = show everything.
PauseFreezes the display. New packets are discarded while paused.
ClearResets all filters and clears the log.

Packet Log Columns

ColumnDescription
SeqSequence number, counting from 1 since the page was loaded.
HH:MM:SS.mSSTimestamp — hours, minutes, seconds, and milliseconds since the board booted.
CanIdThe sender's CAN bus address. Each board has a unique CAN ID, assigned automatically.
D0–D7The 8 data bytes of the CAN frame. D0 indicates message type (1 = port change, 3 = announce, 5 = RFID). D1+D2 encode the V-Port number.
V-PortThe decoded virtual port address (D1 x 256 + D2) for port messages.
Board NameThe hostname of the sending board, resolved from the board registry. Colour-coded for easy identification.
RFID TagFor RFID messages, the decoded 4-character tag ID extracted from D3–D6.
The Network Monitor is a powerful debugging tool. If a turnout is not responding, open the monitor, toggle the switch, and check whether you can see the V-Port command flowing across the bus. If the command appears but the servo does not move, the issue is in the servo configuration. If the command does not appear, check the sending board's CAN connection.

Packet Filtering

The Network Monitor includes a filter bar at the top of the packet display. This lets you focus on exactly the traffic you need to see, even on a busy layout with hundreds of messages per second.

CAN Monitor filter bar with active filters
The filter bar turns pink when filters are active, with a counter showing how many packets are shown vs filtered.
FilterWhat it does
CAN ID Show only packets from a specific CAN address (e.g. 1234) or a range (e.g. 1000-2000). Leave blank to show all addresses.
Board Filter by board name (partial match, not case-sensitive). Only packets from boards whose name contains the text you type will be shown.
V-Port Show only packets for a specific virtual port number or range. Only applies to port-state messages (D0=1).
RFID Filter by RFID tag ID (partial match). Only packets with a decoded RFID tag matching the text will be shown.
Type checkboxes Toggle visibility of message types independently: Port (channel state changes), RFID (tag reads), and Mgmt (reports, announces, credential sharing). Use All to toggle all three at once.
Pause Freezes the display. New packets are discarded while paused, letting you examine the current output without it scrolling away.

When any filter is active, the filter bar turns pink and a counter shows how many packets have been shown versus filtered out. Click Clear to reset all filters and return to the unfiltered view.

All filtering runs entirely in the browser -- there is no additional load on the board and no network overhead.

18. The Dashboard

Servo-8 dashboard
The dashboard showing System, WiFi, CAN Bus, and MQTT metric cards, diagnostics, servo positions, and status log.

System

Shows how long the board has been running since its last reboot (uptime), available memory (free heap), total boot count, firmware version, and the board's friendly name.

WiFi

Displays the network your board is connected to, its IP address, signal strength (RSSI), the Wi-Fi channel in use, and the board's MAC address. The RSSI value tells you how strong the signal is — anything above -60 dBm is good; below -75 dBm and you may see occasional dropouts.

CAN Bus

Tracks the number of packets sent and received, the peak packet rate, any errors, and the current buffer usage. If errors are climbing, check your wiring and termination resistors.

MQTT

When MQTT is enabled, this card shows the broker address, connection status, and message counts for both transmit and receive. A green dot next to the status means the connection is healthy.

Servo Positions

A quick-reference row showing the current microsecond position of each servo. Channels with no servo connected show a dash.

Diagnostics

Click the Diagnostics bar to expand a detailed view of internal metrics — partition sizes, task stack usage, and other low-level information that can help with troubleshooting. Most users will never need this section, but it is there when you need it.

19. Status Log & Diagnostics

The Status Log is a scrolling list of timestamped events from your board. It shows you what is happening in real time, making it the first place to look when something is not working as expected.

What Appears in the Log

The status log captures a wide range of events, including:

Reading the Log

Each log entry starts with a timestamp showing the time since boot (hours, minutes, seconds). Entries are colour-coded to help you scan quickly:

Using the Log for Troubleshooting

If a servo is not responding, check the log for CAN bus errors or missing packet reports. If Wi-Fi is dropping out, look for roaming events or RSSI warnings. The log gives you a clear timeline of what happened and when, which is invaluable for narrowing down issues.

The status log is your first port of call when troubleshooting. Before asking for help, check the log — it often reveals exactly what went wrong and when.

20. Contact Us

We'd love to hear from you. If you have an issue or want to provide feedback we've baked it right into the system.

Click the Contact Us link in the footer navigation at the bottom of any page on the Servo-8 web interface. The form automatically attaches diagnostic information from your board, making it easy for us to investigate any issues.

Feedback Categories

CategoryWhen to Use
Bug ReportSomething is not working as expected. Describe what you did, what happened, and what you expected to happen.
Feature RequestYou have an idea for a new feature or an improvement to an existing one.
General FeedbackAnything else — questions, comments, suggestions, or just to say hello.

What Gets Sent

When you submit the form, the following information is sent along with your message:

This diagnostic data helps us understand your setup without needing to ask follow-up questions. No personal information is collected.

Internet Connectivity

The feedback form requires your board to have internet access through your Wi-Fi network. Before sending, the form checks connectivity by pinging the MegaPoints cloud. If the check fails, the form will show a message explaining that internet access is needed.

Servo-8 Contact Us page
The Contact Us feedback form with category selection, urgency flag, activity context, and auto-attached diagnostics.
When reporting a bug, try to include the steps to reproduce the issue. The more detail you provide, the faster we can investigate and fix it.

21. For the Tinkerer — the Built-in API

The Servo-8 includes a full REST API that lets you read and control the board programmatically. If you enjoy scripting, building custom dashboards, or integrating with home automation systems, this is for you.

You can use the API from any tool that speaks HTTP — a web browser address bar, a command line with curl, Python scripts, Node-RED, or even a smartphone app. All responses are in JSON format, and all endpoints include CORS headers for cross-origin access.

This section is likely to grow based on user feedback. If there is something you would like to be able to do with the API, let us know through the Contact Us form.

Quick Examples

Replace serv8-a1cc84.local with your board's hostname or IP address.

Check board status

GET http://serv8-a1cc84.local/api/status

Returns hostname, IP, software version, protocol, heap memory, and more:

{
  "hostname": "serv8-a1cc84",
  "ip": "192.168.1.42",
  "mac": "A4:CF:12:A1:CC:84",
  "ssid": "ModelRailway",
  "swVersion": 25,
  "protocol": "CAN",
  "freeHeap": 142308,
  "canId": 801,
  "nodeCount": 3
}

Read all 8 channels

GET http://serv8-a1cc84.local/api/channels

Returns an array of all 8 channel configurations including V-Port, range, speed, type, and current position.

Toggle a servo

POST http://serv8-a1cc84.local/api/channel/3/toggle

Toggles channel 3 between its Low and High positions.

# Using curl:
curl -X POST http://serv8-a1cc84.local/api/channel/3/toggle

Update a channel setting

PUT http://serv8-a1cc84.local/api/channel/1
Content-Type: application/json

{"rangeLow": 1100, "rangeHigh": 1900, "speed": 40}
# Using curl:
curl -X PUT http://serv8-a1cc84.local/api/channel/1 \
  -H "Content-Type: application/json" \
  -d '{"rangeLow":1100,"rangeHigh":1900,"speed":40}'

Back up your settings

GET http://serv8-a1cc84.local/api/settings/export

Downloads a complete backup of all settings as a JSON file. You can also do this from a browser address bar.

List all boards on the network

GET http://serv8-a1cc84.local/api/boards?json

Returns a JSON list of every board discovered on the CAN bus.

Full API Endpoints

MethodEndpointDescription
GET/api/statusBoard status and identity
GET/api/channelsAll 8 channel configurations
GET/api/channel/{n}Single channel (1–8)
PUT/api/channel/{n}Update channel settings (JSON body)
POST/api/channel/{n}/toggleToggle servo position
POST/api/channel/{n}/centreMove servo to midpoint
POST/api/channels/moveMove all servos to low or high
GET/api/wifiWi-Fi connection details
GET/api/canCAN bus diagnostics
GET/api/mqttMQTT broker status
GET/api/settingsAll writable settings
PUT/api/settingsUpdate settings (JSON body)
GET/api/set?key=valUpdate settings via URL parameters
GET/api/settings/exportDownload full backup (JSON file)
POST/api/settings/importRestore from backup file
GET/api/diagnosticsExtended board diagnostics
GET/api/productsProduct database list
GET/api/boardsList discovered network boards
GET/api/cloud/pingCheck internet connectivity
POST/api/cloud/feedbackSubmit feedback form
POST/api/actions/saveSave settings to permanent memory
POST/api/actions/reloadReload saved settings
POST/api/actions/defaultsReset to factory defaults
POST/api/actions/rebootRestart the board
POST/api/rollbackRollback to previous firmware

22. Technical Reference & Reliability Enhancements

Built for reliability

The System2 platform has been engineered with robustness as a top priority. The Servo-8 shares the same battle-tested infrastructure trusted to run The Grand Challenge, Pete Waterman's Guinness World Record-holding portable layout with nearly 700 metres of track and dozens of System2 boards operating simultaneously.

What makes it robust

FeatureDetail
CAN bus The same automotive-grade serial bus used in cars, trucks, and aircraft. It features built-in error detection, automatic retransmission, and bus-off recovery. Immune to most electrical interference found on model railway layouts.
Auto CAN ID Detects CAN ID collisions in real time and resolves them automatically, with NVS-backed persistence. No manual coordination needed.
Wi-Fi auto-reconnect If the Wi-Fi connection drops, the board automatically reconnects. A maximum of 3 automatic reboots are attempted before stopping, to avoid reboot loops.
Wi-Fi roaming Boards scan for and switch to the strongest available access point every 5 minutes when signal quality drops below −70 dBm.
Thread-safe design NVS (settings storage) access is protected by FreeRTOS mutexes to prevent data corruption. MQTT receive uses a lock-free queue between the networking task and the main loop.
CAN TX back-pressure When the CAN transmit buffer is more than 75%% full, non-critical frames are dropped to prevent buffer overflow and keep critical messages flowing.
WebSocket rate limiting Browser messages are capped at 50 per second and 200 bytes per message, protecting against runaway scripts or faulty connections.
Signed firmware updates RSA-3072 PSS signature verification with key pinning. Only firmware signed with the authentic MegaPoints OTA key is accepted.
NVS write optimisation Settings are only written to flash when values actually change (dirty-check against shadow copies), preventing unnecessary flash wear.

Testing and quality

Every release goes through extensive testing before publication. The firmware includes comprehensive CAN bus stress testing, Wi-Fi failover testing, NVS integrity verification, MQTT broker disconnect/reconnect cycles, and over-the-air update validation including signature verification. The Status Log, Network Monitor, and live charts provide full visibility into the system's operation, making it straightforward to verify that everything is working correctly.

Specifications

ProcessorESP32 dual-core, 240 MHz
Servo channels8 independent channels with per-channel range, speed, and type
Movement types6: Points, WigWag, Semaphore Bounce, Semaphore Lever, Gate, Accelerated
CAN bus125 kbit/s, standard frames, 64-deep RX buffer, 32-deep TX buffer
Wi-Fi802.11 b/g/n, 2.4 GHz, WPA2, mDNS hostname resolution
V-Port range1 – 60,000
MQTTAsync client, QoS 1, auto-reconnect with 30s back-off
Settings storageNon-volatile (NVS) — survives power loss and updates
OTA updatesHTTPS from AWS S3, RSA-3072 PSS signed, MD5 verified
Web interfaceAsync web server, WebSocket + SSE live updates

23. Connecting Multiple Boards — the CAN Bus and Wiring

The CAN bus is the wired backbone of a System2 layout. It runs at 125 kbit/s over a simple two-wire connection, and is extremely reliable — the same technology used in cars, aircraft, and industrial machinery.

CAN Bus settings
CAN Bus settings — Auto CAN ID is recommended for most users.

Each board on the CAN network needs a unique CAN ID. With Auto CAN ID turned on (the green toggle), the system manages this for you automatically. If two boards accidentally share an ID, they will detect the collision and pick new, unique IDs within seconds.

Connecting Multiple Boards — the CAN Wiring

The CAN bus is a simple two-wire network that connects all your System2 boards together. It carries switch states, LED commands, and management messages between boards at 125 kbit/s. The wiring is straightforward: run a twisted-pair cable from board to board, connecting H to H and L to L in a daisy-chain.

The simplest setup is two boards connected by a single cable:

Simplest Setup — Two Boards CAN H CAN L Servo-8 mimic panel TERM Servo Driver under baseboard TERM Jumper IN Jumper IN
The simplest CAN bus: two boards, both with termination jumpers fitted. A single twisted-pair cable connects CAN H to CAN H and CAN L to CAN L.

When you add more boards, they simply tap into the same pair of wires. The CAN bus is a linear bus — branch it out from board to board rather than running separate cables back to a central point.

CAN Bus Wiring — Multiple Boards CAN H CAN L Servo-8 mimic panel TERM Servo Driver under baseboard TERM Servo Driver under baseboard TERM DCC Gateway DCC interface TERM Jumper IN Jumper REMOVED Jumper REMOVED Jumper IN DCC Track Bus DCC Accessory address = V-Port address (e.g. Accessory 86 → V-Port 86)
Four boards connected to a CAN bus. Termination jumpers are fitted on the first and last boards only; the two Servo Drivers in between have their jumpers removed. The DCC Gateway connects to your DCC command station — DCC Accessory addresses map directly to V-Port addresses, so sending a command to Accessory 86 translates to V-Port 86. It’s that simple.

Termination Jumpers

Every System2 board has a built-in 120 Ω termination resistor that is activated by a small jumper on the board, labelled TERM. The CAN bus standard requires exactly two termination resistors — one at each physical end of the bus cable. The rule is simple:

If termination jumpers are missing from both ends, the bus may suffer from signal reflections causing intermittent communication errors. If too many jumpers are left in, the signal is over-damped and range is reduced. Always leave exactly two — one at each end.
With only two boards on the bus, both boards keep their termination jumpers fitted — each one is an end of the bus.
Unless you have a specific reason to set CAN IDs manually, leave Auto CAN ID switched on. It is the simplest and most reliable option.

Document Revisions

VersionDateChanges
V27 4 April 2026 Promoted to V27 stable release. Updated screenshots throughout. Added instant rollback button to firmware validation. Added CAN bus wiring section with updated diagrams. Revised cloud backup screenshots. Updated dashboard screenshots. Cleared all change tracking markers for clean V27 baseline.
V25 1 April 2026 Initial release of this document. Covers all V25 features including servo control, arc gauge adjustment, CAN bus, MQTT, cloud backup, OTA updates, recovery mode, and the web interface.