Horizontal Servo icon Horizontal Servo Mouse-drag horizontal servo control with configurable min/max limits, center/release functions, multi-servo mirroring and direction invert. Try it →
New Zealand
Asked

Micro:Bit Continuous Servos Jittering

I’m driving a small 2-wheel bot with a BBC micro:bit connected to ARC over USB. Each wheel is a FS90R continuous rotation servo powered from a separate 4xAA pack (common ground tied to micro:bit GND). Signal lines go to P0 (left) and P1 (right) via a breakout. In ARC I added the Continuous servo Movement Panel and set Left Port = P0, Right Port = P1, and checked Reverse on the right to account for mirrored mounting.

What I expect: when I press Stop, both servos should hold neutral without creeping. What I see: as soon as the Movement Panel initializes, both servos twitch every ~0.5s. Stop never fully stops; there’s a slow creep and periodic hunting. Forward/Reverse works but the speed oscillates slightly. If I use Release on both ports the jitter stops (of course, no holding torque), so it seems related to the PWM/servo pulses being sent.

What I’ve tried:

  • Re-calibrated both FS90R trims so 90 is dead-stop on a servo tester; same behavior via ARC+micro:bit.
  • Moved signals to P2 to rule out a noisy pin; no change.
  • Verified power: servos on their own pack, micro:bit on USB, grounds common.
  • Disabled any LED patterns on the micro:bit before loading the ARC firmware (I’ve read some pins are shared with the LED matrix).

Is there a way in ARC with the Continuous servo Movement Panel and micro:bit to set a per-wheel neutral (center pulse) or deadband, or to disable the micro:bit LED matrix/adjust PWM so the servos truly stop without jitter on P0/P1?



Related Hardware (view all EZB hardware)
Connect BBC Micro:bit to Synthiam ARC via USB. Access GPIO, LEDs, buttons; upload Arduino firmware for I2C, SPI and analog sensors.
USB
Servos Varies
Camera
Audio
UART
I2C
ADC 3
Digital 16

Related Robot Skills (view all robot skills)
Control two continuous servos for bidirectional robot movement with speed sliders, configurable ports/stop values, testing and brake/coast options.
Continuous Servo by Synthiam
Control a 3-wire continuous 360-degree servo in ARC: adjustable forward/reverse speeds, start/stop buttons, board/port selection and test controls

ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.

Author Avatar
PRO
Canada
Twitter YouTube GitHub
#1  

Yes - what you’re describing is usually continuous-servo neutral calibration / deadband, not a power or wiring issue.

A few important notes for the micro:bit + ARC Continuous servo Movement Panel setup:

What’s happening

  • FS90R servos are analog continuous servos, and many of them are a bit picky around neutral.
  • ARC’s Continuous servo Movement Panel uses the servo values you set for Forward / Reverse / Stop.
  • If Stop = 90 isn’t the exact neutral for that specific servo, you’ll see:
    • creeping
    • hunting
    • small periodic twitching

Since Release stops the jitter, that confirms ARC is still intentionally sending a servo pulse - the servo is just not perfectly neutral at that pulse width.


What to try in ARC

Open the kebab menu on the Continuous servo Movement Panel and go into Settings. Then adjust these values:

Try small changes around 90, like:

  • 88
  • 89
  • 90
  • 91
  • 92

Do this one wheel at a time until each wheel truly stops.

Example

If the left wheel creeps forward at 90:

  • set Left Stop to 88 or 89

If the right wheel creeps backward:

  • set Right Stop to 91 or 92

Because your right servo is mirrored, it’s common for the stop point to need a slightly different value than the left.


About "deadband"

ARC does not currently expose a separate "deadband width" setting in that Movement Panel for continuous servos.

But you can simulate deadband by:

  • tuning the Stop value more precisely
  • reducing how far Forward/Reverse are from 90 if the servos are overly sensitive

For example:

  • Forward 100
  • Stop 90
  • Reverse 80

instead of the default extreme values like 180 / 1

That often makes FS90R-style servos behave much more smoothly.


About the micro:bit LED matrix

The LED matrix can conflict with some micro:bit pins, but P0 / P1 / P2 are the recommended beginner pads, and your symptom sounds more like servo neutral mismatch than LED-matrix interference.

So I would not expect disabling the LED matrix to fix this jitter if:

  • the issue only happens when the servo signal is actively held
  • Release stops the behavior
  • it happens on multiple pins

Best next test

Try this in order:

  1. In ARC, set both servos to:

    • Forward: 100
    • Stop: 90
    • Reverse: 80
  2. Test each wheel individually.

  3. Fine-tune Stop by 1 step at a time:

    • 88, 89, 90, 91, 92
  4. If one wheel still jitters only when stopping, reduce the forward/reverse spread:

    • Forward 96
    • Stop 90
    • Reverse 84

If you want to script it

You can also set servo positions directly in JavaScript for testing:

Servo.setPosition(d0, 90)
Servo.setPosition(d1, 90)

If your micro:bit firmware maps differently, use the configured servo ports for that firmware setup.


A couple questions so I can narrow it down

  1. Which micro:bit firmware version are you using from Synthiam?
  2. In the Movement Panel settings, are your Stop values exactly 90, or did you already try offsets?
  3. Does the jitter happen with both wheels connected, or even if only one servo is plugged in?

If you want, I can walk you through a quick neutral calibration procedure in ARC step by step.


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.