Virtual Reality Robot icon Virtual Reality Robot Stream robot camera to VR and control servos with headset pitch/yaw; supports SteamVR and Cardboard (iOS/Android) for immersive teleoperation Try it →
Asked

Troubleshooting Non-Functional Servos Issue

I am currently using the latest version of ARC and have established a connection. I am working on a GalapagosBot with an EZ-B v4 connected to my Wi-Fi, as indicated by the green LED. While the camera is functioning correctly, none of the eight brand-new servos are operational. Does anyone have any idea why the servos might not be working?



Related Hardware (view all EZB hardware)
EZ-B V4 by EZ-Robot
EZ-B v4/2 robot controller: dual Cortex ARM, Wi-Fi, audio/video, 24 servo/digital ports, I2C/UART, camera and Synthiam ARC control for custom robots
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
EZB Connection by Synthiam
Connects EZ-B I/O controllers to ARC via COM or IP (5 connections). Supports init scripts, battery monitoring, TCP/EZ-Script server and serial/I2C.
Servo Summary by Synthiam
All-in-one servo view showing and editing servo positions and speeds; add servos and resize the control to fit.

ARC Pro

Upgrade to ARC Pro

Stay on the cutting edge of robotics with ARC Pro, guaranteeing that your robot is always ahead of the game.

Author Avatar
PRO
Belgium
Thingiverse
#25  

@athena

test1 perfect Start

EZ-B index 0 connected: true EZ-B index 0 address: 192.168.0.130 Done (00:00:00.0632794)

test2 fail Start

Single servo test starting on d23 Execution Error Line 3 Col 0 - IsReleased is not defined Done (00:00:00.0129596)

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#26  

V0 is always there, but you don't have it selected. You have D23 selected, not any Vx ports. You can see that because there's no selection in the radio button above the dropdown of Vx ports. If you had a Vx port selected, you wouldn't be able to select Dx ports.

I would assume your EZB is broken. Does it make an audible startup chime when you power it on?

Author Avatar
PRO
Synthiam
LinkedIn Thingiverse Twitter YouTube GitHub
#27  

Oh, you should also check to make sure there is power on the VCC and GND pins for the Dx ports. RED is positive, BLACK is gnd.

Author Avatar
PRO
Belgium
Thingiverse
#28  

dj

yes when start up the ezbv it make a chime . it also said am sucsesfully connected to my wifi . i also tested an rgb and also that works . i have 7,54 volt on the pins . can this be fixed with , a new top or bottem board ?

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#29  

Great data - thanks. Your EZ-B v4 is connecting (connected:true, address 192.168.0.130), servos work on the IoTiny, you have proper VCC (~7.54V), and the EZ-B chimes at startup. That rules out the servos and power source and points to an EZ-B I/O or configuration problem. Below are focused next steps (scripts, web-admin tests, and hardware checks) to pinpoint whether it’s a configuration/UI issue or physical damage to the EZ-B bottom I/O board.

  1. Try these exact JavaScript tests in ARC (copy/paste and Run)
  • Connection check (you already did this, but include for completeness)
var connected = controlCommand("Connection","GetStatus",0);
var addr = controlCommand("Connection","GetAddress",0);
print("EZ-B index 0 connected:" + connected);
print("EZ-B index 0 address:" + addr);
  • Simple servo move test (D23 then D0). This avoids IsReleased since you saw that throw an error.
print("Servo test starting on d23");
Servo.setPosition(d23,120);
sleep(1000);
Servo.setPosition(d23,60);
sleep(1000);
print("Servo.getPosition(d23) = " + Servo.getPosition(d23));

print("Servo test starting on d0");
Servo.setPosition(d0,120);
sleep(1000);
Servo.setPosition(d0,60);
sleep(1000);
print("Servo.getPosition(d0) = " + Servo.getPosition(d0));

print("Servo test complete");

What to report back: the printed output and whether the servo physically moved for D23 and D0.

  1. Test servos from the EZ-B web admin (hardware-level test)
  • Open: https://192.168.0.130 (you said this works)
  • Look for a Ports / Hardware / servo Test panel (UI varies by firmware).
  • Select the same physical port (D23) and try to move it from the web page. Report: does the servo move from the EZ-B web admin? (Yes / No)

Why this matters:

  • If web admin CAN move the servo, the EZ-B I/O is working and we have an ARC-to-port mapping or control problem (we’ll re-map the servo Summary controls to dX).
  • If web admin CANNOT move the servo while camera and RGB still work, that strongly points to bottom I/O hardware damage (or a specific header/trace failure).
  1. Get the ARC Status / connection log
  • In ARC, open the bottom Status area and press COPY, then paste the entire log here. I’ll look for the firmware handshake lines (they show whether the I/O processor responded correctly). That log is diagnostic for top vs bottom board health.
  1. Inspect and reseat (non-destructive hardware checks)
  • Power off and unplug the EZ-B.
  • Open the case and remove the loose magnet you found (metal objects can short traces or damage components). Don’t force anything.
  • Carefully inspect for scorched components, lifted traces, or bent pins around the digital headers.
  • Reseat the top board to the bottom board connectors (they are usually pin headers). Reassemble and power on.
  • After reseat, repeat the web-admin servo test and the script tests above. Report: any visual damage, and the results after reseating.
  1. Measure VCC/GND while commanding servos
  • With the servo test running, measure voltage between VCC and GND at the header.
  • Report: Idle voltage, and voltage while commanding movement (you already measured ~7.54V - confirm whether it stays steady while command is sent).
  1. Likely cause & repair options (based on your symptoms)
  • Symptoms that point to bottom I/O damage:
    • Camera and top-board functions work.
    • ARC connects.
    • Web admin cannot move servo (if that’s the case).
    • Servos and power are known-good (they work on IoTiny).
  • If this is confirmed, the bottom I/O board (the lower board that handles D0-D23/PWM/ADC/UART) may be damaged. Yes - the EZ-B v4 is made of two boards (top = communications/WiFi/camera, bottom = I/O). Replacing the bottom board typically resolves this if it’s the culprit.
  • Replacement options:
    • Check the EZ-B v4 product/support page for spare parts and ordering: https://synthiam.com/Support/Hardware/EZ-B-v4
    • You can replace only the bottom board if you’re confident the top board is OK. If you want, tell me where you purchased the unit and I’ll suggest which board to look for (I can walk through what to verify before buying).
  1. If web admin moves the servo (I/O OK) - how to fix ARC mapping
  • Open your servo Summary settings (kebab / three-lines menu) and ensure Board Index = 0 and Port = d23 (not v0).
  • If servos were added as v0, remove/re-add them and explicitly choose the dX ports.
  • If you want, paste the screenshot (or exact text from the servo config) and I’ll give step-by-step mapping instructions.

What I need next from you

  • Results of the script test above (print output + whether the servo moved on D23 and D0).
  • Result of the EZ-B web-admin servo test (Did it move?).
  • The full ARC Status log (COPY and paste).
  • Photos of the inside (show the loose magnet area, connector area) if you’re comfortable opening it.

If the bottom board is damaged and you want help finding/ordering the part and step-by-step replacement instructions, say so and I’ll walk you through it. If you’d rather keep diagnosing software first, start with the script + web-admin tests and paste the ARC log.

Would you like the step-by-step images showing how to change the servo port from v0 to d23 in servo Summary?


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.
Author Avatar
PRO
Belgium
Thingiverse
#30  

@athena

test1 Start

EZ-B index 0 connected:true EZ-B index 0 address:192.168.0.130 Done (00:00:00.0104515)

test2 on D23 Start

Servo test starting on d23 Servo.getPosition(d23) = 60 Servo test starting on d0 Servo.getPosition(d0) = 60 Servo test complete Done (00:00:04.3795887)

test3 on D0 Start

Servo test starting on d23 Servo.getPosition(d23) = 60 Servo test starting on d0 Servo.getPosition(d0) = 60 Servo test complete Done (00:00:04.3696423)

i pres the button set all ports to 90 on the webpage but nothing moves ? it does reboot on the  webpage with the button .

Author Avatar
PRO
Belgium
Thingiverse
#31  

@athena

is this what you need ?

Sent: 4 3 Bytes Expected: 2 Received (0 bytes): Disconnected Discovered EZ-B v4.x/2 (192.168.0.130:23) (Type: EZ-B v4.x/2). Attempting connection on 192.168.0.130:23 Connected to 192.168.0.130:23 (tx timeout: 2000, rx timeout: 2000, tx buffer: 20000 rx buffer: 20000) Reports EZB v4 OS With Comm 2 Firmware 'EZ-B v4.x/2 Native Firmware' (0x02) on 'EZ-Robot EZ-B v4.x/2' supports the following capabilities:

  • ADC with 12 bit Resolution
  • Can stream Audio v4 codec
  • Reports battery voltage
  • Reports CPU temperature
  • Read/Write Digital I/O Ports
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
  • I2C Master
  • LIPO battery protection & shutdown
  • PWM Duty on digital ports
  • PWM servos on digital ports
  • PWM servos on digital ports can release their position
  • Servo speed for PWM servos on digital ports
  • Has NVRam configuration and can be restored to default settings
  • Transmit Uart TX on all digital ports
  • Adjustable I2C clock speed
  • Configurable UART TX digital port baud timing
  • Ultrasonic Ping distance sensor support
  • 12 Byte Unique Identifier
  • Can stream video v4 codec
  • Native UART Connectivity from ARC
  • Native WiFi Connectivity from ARC
  • Broadcasts to ARC's PnP network scanner

EZ-B v4.x/2 Native Firmware ID: 52-49-0-0-46-255-61-57-56-37-37-38 Setting battery monitor voltage: 7.0 Setting battery protection: True Setting i2c rate: 100000 EZ-B voltage is 7.63v EZ-B temperature is 25.02c Connected

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#32  

Thanks - your test results are very helpful.

Short summary of what they show

  • ARC is connected to the EZB (connected:true, address 192.168.0.130).
  • The EZB reports the correct firmware and capabilities (includes PWM servos).
  • Battery voltage is good (~7.6 V) and the EZB chimes at startup.
  • Your servos work on the IoTiny, so the servos themselves and the battery are OK.
  • ARC’s Servo.getPosition shows 60 (the default/last commanded), and Servo.setPosition did not change a physical servo position - and the web admin "Set All to 90" also did not move them.

Taken together, that strongly points to the EZB’s I/O (the bottom I/O board / servo driver circuitry or its connectors) not actually driving the servo ports even though the top/comm board and firmware are present and ARC is connected.

Before concluding a hardware replacement, let’s run a few lowrisk checks to confirm the I/O outputs are dead or find a different root cause.

  1. Quick UI check (easy)
  • Add an ARC servo control (if you don’t have one).
  • In that servo control change:
    • Board Index 0
    • Port d23 (or the port your servo is plugged into)
  • Move the slider and watch the ARC Status window (bottom). Click COPY in the status area and paste the log here if anything new appears.
  1. Try a PWM test from a script (tests if PWM output is generated)
  • Paste and run this JavaScript in ARC (uses print()):
print("PWM test starting on d23");
PWM.set(d23,50); // 50% duty
sleep(1000);
PWM.set(d23,0);
print("PWM test complete");

What to check:

  • With a multimeter measure between the SIGNAL pin (servo signal) and GND while the test runs. You’re looking for either a pulsed waveform (if you have an oscilloscope) or a change in DC average (multimeter may read ~1-2 V as average while PWM runs). If you see no change at all on the signal pin, the EZB is not driving that pin.
  1. Test simple digital toggle (confirms if signal pin can go logic-high)
  • Run:
print("Digital test on d23");
Digital.set(d23, true);
sleep(500);
Digital.set(d23, false);
print("Digital test complete");

What to check:

  • Measure voltage on the SIGNAL pin vs GND. It should toggle between ~0 V and ~3.3 V. If it does not toggle (stays ~0 V or ~floating), the digital driver for that port is not working.

If you don’t have a meter:

  • You can briefly test with an LED + resistor from the SIGNAL pin to GND (use a 2.2k resistor and expect a dim blink if the pin toggles). Be careful: LED tests show simple HIGH/LOW but don’t confirm PWM timing.
  1. Verify VCC + GND on the exact header the servo plugs into
  • With the servo unplugged, measure VCC pin to GND on that header (D23 header). You said you measured ~7.54 V earlier - please confirm that is measured at the same header pins where the servo plugs in (not just the board VIN).
  • While you run the servo/script tests, re-measure VCC to confirm it stays steady (no big sag when commanded).
  1. Reseat and inspect
  • Power off the EZB and remove the case.
  • Remove any foreign object you mentioned (magnet) and inspect for scorch marks, lifted traces, or bent pins.
  • Carefully reseat the top comm board onto the bottom I/O board (pins/connectors). Reassemble and test again.
  1. Check ARC status log when you run commands
  • Before running the tests above, open ARC Status and press COPY. After running the command(s) paste the entire status output here - I’ll look at the handshake lines and any errors when commands are sent.

Interpreting likely results

  • If the SIGNAL pin does NOT toggle with the PWM and digital tests on multiple ports (d23, d0), and VCC is present and steady on those headers, then the bottom I/O board (the PWM/digital driver circuitry) is most likely damaged. That matches the symptom set: camera and WiFi (top/comm board) OK, but servo outputs not driving.
  • If SIGNAL toggles (you see 3.3 V or PWM) but servos still don’t move, that would suggest the VCC line to the servo headers is not actually powering the servos even though VIN looks OK. Confirm VCC on that header in that case.

If I/O board replacement is needed

  • The EZB v4 is two boards (top comm / bottom I/O). If the bottom I/O board is damaged you can replace just that board and keep the top board.
  • EZB v4 support/parts: https://synthiam.com/Support/Hardware/EZ-B-v4 If you want, I’ll help identify the correct replacement part and give stepbystep photos for swapping the bottom board.

Mapping / servo Summary (if I/O proves fine)

  • If the tests show outputs are actually being generated, and servos move from the web admin or script, but your servo Summary control has v0 entries:
    • Open the servo Summary control window.
    • Click the kebab / threeline menu on the servo control Settings.
    • For each servo row set:
      • Board Index: 0
      • Port: choose d0, d1, d2, d23 (not v0)
    • Save and test with the slider.

What I need from you now (one reply with these)

  • Results of PWM test and digital toggle test (did the SIGNAL pin change? Give meter readings if possible).
  • VCC measured at the servo header(s) and whether it stays stable while tests run.
  • The ARC Status log (COPY and paste) after running a test.
  • A photo of the inside near the headers if you saw any damage or the magnet location (optional but helpful).

I’ll interpret the meter readings and logs and give the exact next action (software re-map or board replacement walkthrough). Want me to walk you stepbystep through measuring SIGNAL and VCC with a multimeter?


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.