Skip to main content
← All white papers

OR-WP-2026-004 / Technical white paper

From a single-arm X-Hub host to a dual-arm development system

A read-only AMBER B1 case study in preservation, runtime compatibility and continuous control

Version 1.0 adapts the November 5 read-only system audit. Conversion, two-hub identification and physical commissioning remain pending.

Not peer reviewed. Recorded evidence and remaining physical tests are distinguished throughout.

ROB holds a red can outward after turning its torso above the tracked base.
ROB holding a can during the October 29, 2026 session, photographed by Kierie. This earlier scene provides project context; it does not show the audited spare or a commissioned X-Hub conversion.

Abstract

An older robot controller may be useful as a spare without being a drop-in clone. This case study compares a B1 V1 X-Hub/EtherCAT installation with ROB's current dual-arm host. The audit identifies a 32 GB versus 64 GB disk mismatch, an incompatible C runtime, single-arm launch assumptions and conflicting model limits. A short CPU sample cautions against copying the current workload onto the smaller processor. The study preserves 393 selected files with matching source hashes and proposes separate replacement media, independent arm ownership, transport identification and explicit commissioning gates. Two powered X-Hubs were disconnected during inspection; firmware identity, electrical compatibility and physical retargeting remain unverified.

1. ROB and the purpose of the spare

ROB is Orbitus Robotics' experimental tracked humanoid for robotics education, human-robot interaction and supervised manipulation. Its two seven-joint arms share a moving torso and mobile base. Cerebro coordinates perception and command admission; phone and visionOS interfaces provide operator input. A second arm-control computer could support recovery, development and a later replacement controller, provided its software, transport and timing are qualified. [6, 7, 8]

This study asks whether an older AMBER B1 computer can become a reproducible two-arm host. A November 5, 2026 read-only audit compared its installed stack with the working dual-arm master. The contribution is a measured compatibility assessment and a staged conversion plan. It is not a completed clone, an X-Hub firmware identification or a physical control trial. [1]

Evidence classMethod and limit
Live host observationsRead-only OS, storage, interface, process, socket and configuration snapshots. The current master kept running.
Static software inspectionLaunch files, package metadata, ELF version requirements, symbols, disassembly, headers and robot models. No vendor launcher executed.
Historical recordAn October 20, 2024 ROS log documents an earlier EtherCAT connection. It is not a measurement of current hubs.
Preservation393 selected robot-stack files copied and individually hash-compared with source reads. No whole-disk image or boot restore was performed.
Operator contextTwo X-Hubs were reported powered on, with neither connected by Ethernet. No physical label, EEPROM identity or firmware image was obtained.

The public evidence supplement retains the numerical findings and binary identities while omitting host addresses, adapter serials, access details, operator messages and vendor payloads. Readers can reproduce the publication from its committed inputs; independently reproducing the hardware observations requires matching equipment and a separately controlled inspection. [1]

2. What is installed, and what remains unknown

Installed path: Robot Studio to the ROS 2 Foxy controller, then SOEM EtherCAT to an X-Hub endpoint. The link was disconnected during the audit.
Figure 1. Installed single-arm architecture inferred from launch files and binary inspection; no active X-Hub exchange was performed.

The installation belongs to the B1 V1 X-Hub/EtherCAT software family. Its launch scripts select amber_b1_hw_gui_ethercat.launch.py with hardware and EtherCAT enabled. The AmberB1Hardware plugin imports SOEM functions and uses a fixed network interface. The web/API configuration reports version 1.1; this value does not identify the circuit board or hub firmware. [1, 2]

ComponentRecorded finding
PlatformUbuntu 20.04.3; ROS 2 Foxy; glibc 2.31.
ROS packagescontroller_manager 0.9.0; joint_trajectory_controller 0.7.0; rclcpp 2.4.1; February 2022 package builds.
Vendor layerHardware, GUI, interfaces and bringup packages 0.0.0; description 0.0.1; soem_ros2 1.4.0.
Control configuration200 Hz; open_loop_control=true; position and velocity command interfaces.
Available materialsInstalled headers, binaries, launch files and models; original workspace source tree absent.

The EtherCAT-facing port had no carrier, matching the reported disconnected cables. The driver, GUI control node and command backend were inactive. The historical log records one slave, 92 input bytes, 56 output bytes and expected working counter 3; later entries report packet errors and a lost slave. These describe a past session, not a diagnosis of the powered but disconnected hubs. [1]

The pinned public vendor tree exposes no C/C++ source tree; archived release contents were not exhaustively searched. Installed headers contain CAN error counters, per-joint CAN status and message proxy fields. This supports investigating a CAN bridge, but proves neither electrical compatibility nor interchangeable motor commands. [1, 2]

3. Why a direct copy is insufficient

Observed itemOlder hostCurrent dual-arm master
ProcessorCeleron N2840; 2 coresCeleron J4125; 4 cores
Memory / swap1.96 GB RAM; no swap3.92 GB RAM; 3.99 GB swap
Disk capacity32,017,047,552 bytes64,023,257,088 bytes
Boot layoutUEFI; DOS/MBR; EFI + ext4UEFI; GPT; EFI + boot + LVM
OS / C runtimeUbuntu 20.04.3 / glibc 2.31Ubuntu 22.04.3 / glibc 2.35
Installed transportSingle-arm SOEM EtherCATTwo USB-CAN adapters

A raw image of the current master cannot fit the smaller disk unchanged. The preservation-first path is separate replacement media, with exact capacity and connector compatibility verified before a restore. A compact fresh installation is another option; neither requires overwriting the original V1 system. [1]

Both current arm executables require GLIBC_2.34, which the old glibc 2.31 installation cannot provide. Ubuntu 22.04 is the initial compatibility baseline, with all other libraries, ABI and CPU instruction requirements still subject to verification. Foxy targets Ubuntu 20.04; its installed binaries should not be casually mixed into another ROS distribution. Canonical lists standard maintenance for Ubuntu 22.04 through May 2027, so a supported successor is a separate validation task. [1, 3, 4]

A 2.025-second sample of the current master measured 194.1% and 187.1% CPU for the two vendor processes, with 19 threads each: about 3.81 logical CPUs combined. Percentages use one fully occupied logical CPU as 100%. This short snapshot is not a benchmark on the N2840 or a worst-case timing study. It warns against copying the workload unchanged; it does not show that an efficient two-arm controller cannot run on two cores. [1]

The older launchers also assume one arm: broad process matching during restart, shared controller names, unprefixed joints, a fixed command endpoint and a fixed interface. Starting the same launcher twice does not establish isolated two-arm ownership. [1, 2]

4. Models, transport and continuous retargeting

Model inspectedRecorded valuesImplication
Old standalone URDFJ7: -314 to +314 rad; all joint velocities: 10.Not a measured limit profile.
Old launched XacroJ7: +/-3.05 rad; J1-4 velocities: 3.1415; J5-7: 5.23.Geometry and origins also differ from the standalone model.
Current solver filesOne 7-joint chain per arm; limits +/-2.09; effort 100000; velocity 1000000.Large values cannot be treated as commissioned actuator ratings.

Joint axes, signs, zero offsets, geometry and limits must be reconciled against the identified arm revision and fresh feedback. The selected solver models do not describe the entire mobile body, torso, open grippers, payload and observed table/floor. Collision planning must include these frames and swept paths, especially when the base approaches a table. Model edits alone cannot serialize overlapping commands. [1, 5]

Two transport paths remain candidates. Direct, isolated USB-CAN would resemble the current master, but requires verified pinout, power separation, termination, bitrate, motor IDs, units, modes and watchdogs. Retaining the two X-Hubs requires a tested multi-slave EtherCAT topology or supported separate interface paths. With one of the older host's two NICs used for LAN, interface allocation matters. Neither a conventional switch nor a second copy of the single-arm driver establishes the needed topology. [1]

Cerebro and VR targets pass shared scene, limit and Stop admission, then branch into independent persistent right and left arm owners with exclusive transport writers.
Figure 2. Proposed two-arm ownership boundary. The transport and physical stop behavior still require commissioning.

Each arm should have one persistent trajectory owner and a bounded latest-target mailbox. A new goal updates a coherent position, velocity and acceleration state while limits and Stop remain under the same owner. VR input adds relative clutching, timestamp checks, quaternion interpolation, continuous-branch inverse kinematics and tracking-loss behavior. These are proposed integration requirements. The old GUI was not shown to contain the same detached-command-worker defect documented for the newer core. [1, 5]

5. A conversion sequence with reversible gates

StageWork and completion evidence
1. Preserve originalsKeep the V1 disk intact. Create coordinated offline images, independent copies and a verified restore target. File hashes alone do not demonstrate a bootable recovery.
2. Prepare separate mediaUse a compatible SSD or compact clean installation. Assign a unique machine identity and independent credentials. Disable motor startup before first boot with motor links disconnected.
3. Reproduce the runtimeVerify libraries, ABI and instruction requirements. Separate per-arm models and profiles from host configuration. Install and test deliberate startup/recovery ownership inhibition.
4. Qualify this CPU offlineExercise both inert owners and simulated transports under realistic load. Record timing, queue age, RAM, temperature and faults; investigate busy polling. Use a stronger host if margin is inadequate.
5. Resolve the transportIdentify both hubs and arm revisions. Verify topology, electrical interfaces, feedback codec, PDO layout where applicable, signs, zeros, modes and drive-side watchdog behavior.
6. Commission incrementallyUnder separate physical-test authorization: one arm, tiny bounded move and Stop, then moving retargets; repeat for the other arm, then paired motion and VR.

First implementation milestone: a bootable development clone with a unique identity, motor startup disabled, two independent simulated arm owners and a reproducible deployment manifest. This milestone does not require a motor adapter change.

Physical-side routing must be explicit. The current installation's internal L/R names are reversed relative to physical sides, so a clone must bind verified adapter identities and profiles to the intended arm rather than infer side from directory names or enumeration order. New hardware needs its own mapping. [1]

The source-owned controller candidate remains physically inert in the cited commissioning record. Prior software and virtual-CAN tests support continued development; they do not implement or authorize live streaming on either of the proposed transports. [6]

6. Acceptance criteria and limits of the evidence

GateRequired evidence before promotion
Restore and routingBoot the spare with motor links detached; verify rollback, unique per-arm endpoints and rejection of missing or swapped adapters.
Exclusive ownershipA second writer cannot acquire the arm. Legacy startup and recovery cannot silently restore a competing controller.
Retarget continuityForward/reverse goals and input floods preserve bounded position, velocity, acceleration and jerk, stable worker count and latest-target replacement.
Feedback and StopStale feedback, packet loss, partial writes, queue backlog, disconnect and restart produce defined fault behavior without automatic resumption.
Timing at 200 HzA 5 ms period sets the scheduling budget. Measure worst-case and high-percentile latency, misses and queue age under load; declare release thresholds before testing.
World and VRValidate measured model transforms and full swept paths. Exercise clutch release, tracking loss, stale timestamps, orientation equivalence and IK branch changes.

The audit preserved 393 regular files in a 15,203,162-byte archive and compared every archived file SHA-256 with fresh source reads, with zero mismatches. This establishes selected-file integrity at the sampled times. It is not a whole-system backup, a reproducible vendor build or a tested disk restore. The archive and private report are not redistributed; the supplement provides curated findings and identity hashes. [1]

No X-Hub firmware, EEPROM identity or physical board label was obtained. No electrical compatibility, two-hub topology, motor tracking, real-time deadline margin, whole-disk recovery or physical stop behavior was validated. SMART tooling was absent, and physical power stability was not tested. These are open work items, not negative test results. [1]

Conclusion: use the old computer first as a preserved development and recovery candidate. A dual-arm conversion becomes credible when media recovery, runtime compatibility, timing, transport semantics and exclusive motion ownership each have their own evidence. The plan does not require an arm to settle before every future goal; it requires a commissioned controller that can retarget continuously.

References

[1] Curated November 5 host-audit evidence (this publication)

[2] AMBER B1 vendor launcher, pinned revision 4074511

[3] ROS 2 Foxy release documentation: supported platforms

[4] Canonical Ubuntu release cycle, checked November 5, 2026

[5] OR-WP-2026-001: Motion retargeting and the persistent owner

[6] OR-WP-2026-003: Recovery-first CAN takeover plan

[7] ROB project chronology and public codebase map

[8] ROB software platform and operator interfaces

Publication record

Version 1.0 adapts the November 5 read-only system audit. Conversion, two-hub identification and physical commissioning remain pending.

Prepared with AI assistance from a project audit, installed-file inspection and recorded evidence. No new physical robot trial was performed for this publication. Private machine identifiers, access details, operator messages and vendor binary payloads are omitted.

Photography: Kierie, October 29, 2026. Diagrams: Orbitus Robotics. Project lead: Rodolfo Aramayo.

Questions or corrections: contact Orbitus Robotics.