Ports editor
The ports editor lets you configure the serial communication channels that MotioForge Studio uses to send commands to the hardware. It opens from the start window via the Edit button in the Ports tab.
List structure
The upper section shows the list of already configured ports. Each row represents a port with name, type, protocol, and physical address. Select a row to edit it in the panel below; click New to add a port.
Configuration fields
| Field | Description |
|---|---|
| Logical name | Internal identifier for the port (e.g. "Main port", "Head"). Must be unique within the domain. |
| Type | Always Serial in the current version of MotioForge Studio. |
| Protocol | Communication protocol used by the connected hardware. See protocol table below. |
| Board | The board running DEIMOS on this port (e.g. Arduino Mega 2560). It decides which pins exist and which are reserved: see Boards and reserved pins. Ports created with earlier versions use Arduino Mega 2560. |
| Serial device (COM/tty) | The port to which the device is physically connected, e.g. COM3 on Windows or /dev/ttyUSB0 on Linux. |
| Baud rate | Serial communication speed. With the D4C protocol it is fixed at 115200 and cannot be changed. |
| Description | Free notes about the port. Optional. |
Available protocols
| Protocol | Typical use |
|---|---|
| D4C | DEIMOS boards (Arduino Mega running DEIMOS firmware). Handles BUS servos (ST3215 and similar), PWM servos on direct pins or on a PCA9685 (I2C) expander, and Switch outputs on the same port. It is the only protocol enabled in the current version. |
Finding the correct COM port
On Windows: open Device Manager → Ports (COM & LPT). The controller name will appear after connecting the USB cable. Note the COM number (e.g. COM5) and enter it in the Serial device field.
Save and remove
- Save: applies changes to the selected port.
- Delete: removes the selected port. Elements already assigned to this port will lose their connection.
- Close: closes the editor saving all pending changes.
Boards and reserved pins
When you assign a pin to a switch, a PWM servo, a trigger button, a button in Export for DEIMOS SD or the sensor of a parametrized animation, ARES checks the pin against the profile of the port's board:
- blocked if it does not exist on the board, if DEIMOS uses it for itself, if another element of the same board already uses it, or if you try to drive an output from an input-only pin;
- to be confirmed if it can be used with care (for example the status LED).
Arduino Mega 2560 (DEIMOS 2.0)
| Pin | Use | Result |
|---|---|---|
| 0, 1 | USB to the PC (Serial0) | blocked |
| 16, 17 | serial servo bus (Serial2) | blocked |
| 20, 21 | I2C bus (PCA9685) | blocked |
| 50, 51, 52, 53 | SD card reader | blocked |
| 13 | status LED (on during playback) | to be confirmed |
| A0–A15 (54–69) | analog inputs for the sensor | free |
ESP32 WROOM-32 (provisional profile)
DEIMOS firmware for ESP32 does not exist yet: peripherals are assigned to the module's standard pins and will be confirmed when the firmware is available. The analog input reads 0–4095: the firmware will scale the value to 0–1023.
| GPIO | Use | Result |
|---|---|---|
| 1, 3 | USB to the PC | blocked |
| 6–11 | internal flash memory | blocked |
| 16, 17 | serial servo bus | blocked |
| 21, 22 | I2C bus | blocked |
| 5, 18, 19, 23 | SD card reader | blocked |
| 2 | status LED | to be confirmed |
| 0, 12, 15 | boot strapping pins: a connected circuit can prevent start-up | to be confirmed |
| 34–39 | input only, no internal pull-up | blocked as outputs; buttons need an external resistor |
| 36, 39, 32, 33, 34, 35 | analog inputs usable with Wi-Fi on | for the sensor |
With DEIMOS 2.0 or later the board identifies itself at start-up (board=mega2560): if it does not match the port's
Board field, ARES tells you when you run an animation.