Shortcut Creator icon Shortcut Creator Shortcut Creator relocated to the ARC Options menu; new manual page provides updated Shortcut Creator documentation. Try it →
Asked

Move Both Pistons Simultaneously

In the Movement Panel for the EZ-Robot head, I have a right back piston and a left back piston. These two need to move together at the same time, but in the Movement Panel I can only move one at a time, and that doesn't work well. How do I solve this so both pistons can operate simultaneously from the Movement Panel?

For context: I'm using an EZ-B controller connected to ARC. I have the ports set as D4 = right and D5 = left.

together.jpg



Related Hardware (view all EZB hardware)
EZ-Inmoov Robot Head by EZ-Robot & Gael Langevin
EZ-InMoov robot head-DIY educational humanoid kit powered by Synthiam ARC for vision tracking, speech, chatbot integration and mobile control
Wi-Fi
Servos 8
Camera
Audio
UART
I2C
ADC 2
Digital 8

Related Robot Skills (view all robot skills)
Relative Servos by Synthiam
Synchronize servos by designating a master; slave servos mirror scaled (decimal/negative) positions with min/max limits and pause control
Create servo frames/actions to animate humanoid, hexapod or custom gaits with smooth transitions, SW ramping and directional control

ARC Pro

Upgrade to ARC Pro

Discover the limitless potential of robot programming with Synthiam ARC Pro – where innovation and creativity meet seamlessly.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#1  

Yes - the cleanest way to make both pistons move together from the Movement Panel is to have ARC treat one actuator as the master and the other as a follower, or to build a small custom motion script/skill that drives both ports at once.

Since you’re using the EZ-Robot head in ARC and your ports are D4 = right and D5 = left, here are the best options:


If each piston is controlled by a servo output, the easiest solution is to use a skill like Relative Servos:

  • Add Relative Servos to the project
  • Set one piston as the Master
  • Add the second piston as a Slave
  • Set the ratio to:
    • 1 if both should move in the same direction
    • -1 if one must mirror the other

Steps

  1. In ARC, go to Project > Add Robot Skill
  2. Add Relative Servos
  3. Open the skill’s settings from the kebab menu
  4. Set:
    • Master = D4 or D5
    • Slave = the other port
    • Ratio = 1 or -1 depending on the mechanism

This way, moving one servo automatically moves the other.

More here:


Option 2: If these are movement directions, use a custom Movement Panel

If your pistons are part of a custom movement behavior and the standard Movement Panel only drives one at a time, then the right solution is to create a custom robot skill or custom Movement Panel that sends both commands together.

That way, when ARC sends Forward / Reverse / Stop, your skill can do:

  • D4 = move
  • D5 = move
  • both at the same time

Synthiam’s movement system is designed so a Movement Panel owns the direction logic, and you can create your own if needed:


Option 3: Use a script in the Movement Panel action

If your current Movement Panel is something like an Auto Position or custom scripted control, you can have the movement direction call both ports in the same script.

Example JavaScript idea:

function forward() {
  Digital.set(D4, true)
  Digital.set(D5, true)
}

function reverse() {
  Digital.set(D4, false)
  Digital.set(D5, false)
}

function stop() {
  Digital.set(D4, false)
  Digital.set(D5, false)
}

If your pistons are actually servos, then the script should use Servo.setPosition() instead of Digital.set().

Example:

function moveBoth(position) {
  Servo.setPosition(d4, position)
  Servo.setPosition(d5, position)
}

Important note

A standard Movement Panel can only be the robot’s locomotion owner, but it does not mean you’re limited to one actuator. The issue is usually the configuration of the control, not ARC itself. In other words, ARC can absolutely drive both sides together - it just needs the correct setup.


What I need to know to give you the exact fix

Are those pistons controlled as:

  1. Servos on D4 and D5
  2. Digital outputs driving a piston driver/relay
  3. Part of an Auto Position or other movement skill

If you tell me which one, I can give you the exact ARC setup or a ready-to-paste JavaScript script for it.


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.