Remote UI Client icon Remote UI Client — PC Remote UI Client for ARC enables remote robot control via customizable multi-page interfaces from other ARC instances. Try it →
Asked
1 Participant
Mirror JD to UBTech Alpha via Vx

Mirror JD To Ubtech Alpha Via Vx

I’ve got a JD Humanoid running on ARC over WiFi (EZB v4) and I’m trying to have a UBTech Alpha1 mirror JD’s dance routine. I added the UBTech Alpha 1 Bluetooth movement panel, paired the Alpha over Bluetooth, selected the COM port, hit Connect and Init, and it shows connected. If I poke the virtual servos directly, the Alpha moves fine. For example, this JavaScript works instantly:

Servo.setPosition("V1", 90)
Servo.setPosition("V2", 60)

The JD routine is built in the Auto Position skill with frames referencing JD’s D-ports (e.g., D0-D15). My plan was to edit each frame and add matching Vx entries so the UBTech skill would forward those to the Alpha (I enabled the corresponding Virtual servo checkboxes in the UBTech Alpha 1 Bluetooth config). Expected: when I play the JD action, both JD and Alpha move in sync. Actual: JD moves perfectly, but the Alpha doesn’t respond during Auto Position playback. If I then run a separate script to set Vx, the Alpha jumps to the expected pose, so the Bluetooth link and Vx mapping seem fine.

I tried: reordering Init/Connect timing, adding small delays before playback, lowering Auto Position step speeds, and even using the Auto Position Action Script to explicitly call Servo.setPosition("Vx", value) which does work, but defeats the frame-based workflow.

Does the Auto Position skill support writing to Vx virtual servos provided by another skill like UBTech Alpha 1 Bluetooth, and if so, what’s the correct way to get Vx to update during frame playback so my Alpha mirrors JD without extra scripting?



Related Hardware (view all EZB hardware)
JD Humanoid by EZ-Robot
JD Humanoid with Synthiam ARCx: pose, animate, walk, voice, vision, and AI control from any browser.
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
Create servo frames/actions to animate humanoid, hexapod or custom gaits with smooth transitions, SW ramping and directional control
Bluetooth control for UBTech Alpha1 servos via ARC: map Vx to servo IDs, enable servos, and integrate with ARC movement & LEDs.

ARC Pro

Upgrade to ARC Pro

Unleash your robot's full potential with the cutting-edge features and intuitive programming offered by Synthiam ARC Pro.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#1  

Yes - Auto Position can drive virtual servos, but the key detail is how the frames were built and whether the virtual servos were actually part of the Auto Position skill’s servo configuration.

What you’re describing usually happens when:

  • Auto Position is only controlling the JD D ports
  • while the Alpha1 skill is listening on V ports
  • but those V ports were not added/configured inside Auto Position itself

What to know

Servo.setPosition("V1", 90) works because you are directly commanding the virtual servo.

But Auto Position does not automatically mirror other skills’ servo mappings just because a frame contains corresponding positions elsewhere. Each skill manages its own configured servo list. So if Auto Position frames were created with only D0-D15, it won’t magically also update V1-V16 unless those virtual servos are included in Auto Position’s setup.

The correct approach

Option 1: Add the Vx servos to Auto Position

If you want the Alpha1 to mirror JD through frame playback, add the virtual servos to the Auto Position skill itself:

  1. Open Auto Position
  2. Use the kebab menu / settings menu on the skill
  3. Go to Configuration
  4. Add the matching virtual servos (V1, V2, etc.) to the skill’s servo list
  5. Save frames again so the Vx positions are stored in the frames

Then when Auto Position plays an action, it should command both the physical servos and virtual servos together.

Option 2: Use a script to mirror frame changes

If you need tighter control, use the Auto Position Action Script or frame scripts to copy JD positions to Alpha positions. That’s the method you already found working.

That’s often the most reliable approach when the two robots do not share identical servo layouts or when one robot is driven by a separate Movement Panel skill.

Important note

If Auto Position is already configured with only JD ports, adding Vx later may require:

  • reconfiguring the skill
  • recreating or updating the frames
  • verifying that the frame entries actually contain the Vx values

Can you confirm:

  • Is Auto Position configured with both D0-D15 and V1-V16?
  • Or is it only configured with the JD D ports?

If it’s only the D ports, that explains why the Alpha doesn’t move during playback.

Relevant docs

If you want, I can help you set up a clean mirroring pattern so JD frames automatically drive both robots in ARC without hand-editing every frame. This is also something the ARC AI Assistant can help rewrite right inside the script editor: https://synthiam.com/Products/AI-Assistant

I am a customer support AI and still learning. Please verify important answers in our support documentation. For advanced AI features, use the AI Script Agent built into ARC.