Skip to content

Instantly share code, notes, and snippets.

@usametov
Last active April 3, 2025 21:22
Show Gist options
  • Save usametov/da8ca098ca6db8a8abfb61372a9c032f to your computer and use it in GitHub Desktop.
Save usametov/da8ca098ca6db8a8abfb61372a9c032f to your computer and use it in GitHub Desktop.
robotic arm

please look here: https://github.com/TheRobotStudio/SO-ARM100 and here: https://github.com/huggingface/lerobot and tell me which of these parts can be sourced from old vacuum cleaner.

Let’s break this down by examining the components of the SO-ARM100 robotic arm (from TheRobotStudio) and the LeRobot framework (from Hugging Face), and then cross-referencing what might be salvaged from your old robotic vacuum cleaners for your robotic arm project. The goal is to identify reusable parts while keeping in mind the specific needs of the SO-ARM100 design and LeRobot compatibility.

The SO-ARM100 is a 5-degree-of-freedom (DOF) robotic arm with a gripper, designed to be affordable and open-source. Its bill of materials (BOM) includes:

  • 6 Feetech STS3215 servo motors (7.4V or 12V versions) for actuation of the joints and gripper.
  • 3D-printed structural parts (e.g., base, links, gripper), requiring a 3D printer or purchased pre-printed.
  • Servo bus controller (e.g., WaveShare adapter) to interface motors with a PC or microcontroller.
  • Power supply (5V or 12V, 5A+ depending on servo choice).
  • Screws and basic hardware for assembly.
  • Optional accessories like wrist cameras or tactile sensors, but these aren’t core requirements.

The arm integrates with LeRobot for control, teleoperation, and AI training, relying on precise servo control and a sturdy frame.

LeRobot is a software framework for robotics, providing tools for teleoperation, dataset recording, and imitation learning. It doesn’t dictate hardware but supports affordable robots like the SO-ARM100. It assumes:

  • Motors/actuators for movement.
  • Sensors (e.g., cameras) for observation.
  • A control interface (e.g., via USB or a microcontroller).
  • Power source to drive the system.

Since you’re building a robotic arm, LeRobot will use whatever hardware you provide, so the focus is on what your vacuums can contribute to the SO-ARM100’s physical build.

Parts in Robotic Vacuum Cleaners

Robotic vacuums (e.g., Roomba, Shark, or similar) typically contain:

  • DC motors: For driving wheels and brushes (usually 6-24V, depending on the model).
  • Battery pack: Rechargeable, often 12V-18V NiMH or Li-ion.
  • Sensors: Infrared (IR) for obstacle detection, cliff sensors, or bump sensors.
  • Wheels and gears: For mobility.
  • Microcontroller/board: Manages navigation and motor control.
  • Plastic housing: Lightweight but durable.
  • Suction motor: A higher-power motor for vacuuming.
  • Cables and connectors: For power and signal routing.

Matching Vacuum Parts to SO-ARM100 Needs

Here’s what you can realistically source from your vacuums:

  1. Motors

    • Vacuum: DC motors for wheels and brushes.
    • SO-ARM100: Requires 6 Feetech STS3215 servos (7.4V or 12V, with precise position control).
    • Analysis: The SO-ARM100 relies on servo motors, which are specialized DC motors with built-in feedback (e.g., encoders) for precise angular positioning. Vacuum cleaner DC motors are typically simple brushed motors without feedback, designed for continuous rotation (wheels) or high RPM (suction). They lack the precision and torque control needed for a robotic arm’s joints. You might adapt one or two for a custom gripper or base rotation if you add an encoder and driver, but they won’t directly replace the STS3215 servos.
    • Verdict: Not directly usable for SO-ARM100 joints; consider salvaging for a custom modification if you’re willing to experiment.
  2. Battery Pack

    • Vacuum: Likely a 12V-18V rechargeable pack (e.g., 2000-4000mAh).
    • SO-ARM100: Needs a 5V or 12V, 5A+ power supply for the servos.
    • Analysis: If your vacuum’s battery matches the voltage (e.g., 12V for the 12V STS3215 version) and can supply enough current (check specs—servos draw significant power under load), it’s a great candidate. Most vacuum batteries are robust enough to power multiple motors. You’d need to test its capacity and add a connector compatible with the servo bus (e.g., barrel jack or terminal block).
    • Verdict: Highly reusable—test voltage and current capacity first.
  3. Sensors

    • Vacuum: IR sensors, bump sensors, or small cameras (in premium models).
    • SO-ARM100: Doesn’t require sensors in its core design, but LeRobot supports camera input for vision-based control.
    • Analysis: IR or bump sensors could be repurposed for basic obstacle detection if you add a wrist camera mount (an optional SO-ARM100 accessory). If your vacuum has a camera (rare in older models), it could serve as a vision sensor for LeRobot. These aren’t essential for the base arm but could enhance functionality.
    • Verdict: Usable as optional add-ons, not core components.
  4. Structural Parts (Housing)

    • Vacuum: Durable plastic casing.
    • SO-ARM100: Uses 3D-printed parts for precise fit and strength.
    • Analysis: You could cut and shape the vacuum’s plastic housing to create a base or custom links, but it won’t match the precision of 3D-printed STL files from the SO-ARM100 repo. It’s a viable hack if you lack a 3D printer, though you’d need to ensure rigidity and proper servo mounting.
    • Verdict: Possible for a DIY base or gripper, but not ideal for joints.
  5. Wheels and Gears

    • Vacuum: Small wheels and gear assemblies.
    • SO-ARM100: Stationary arm, no wheels needed.
    • Analysis: Wheels are irrelevant unless you’re adding a mobile base (not part of SO-ARM100’s default design). Gears might inspire a custom gripper mechanism, but they’re not directly applicable.
    • Verdict: Not usable for the core arm.
  6. Microcontroller/Board

    • Vacuum: Controls navigation and motors.
    • SO-ARM100: Uses a servo bus controller (e.g., WaveShare) or external microcontroller (e.g., Arduino) with LeRobot.
    • Analysis: The vacuum’s board is tailored to its original firmware and unlikely to support the STS3215 servos or LeRobot’s Python scripts without significant reverse-engineering. You’re better off with a cheap Arduino or sticking to the recommended servo bus.
    • Verdict: Not practical to repurpose.
  7. Power Cables/Connectors

    • Vacuum: Internal wiring and connectors.
    • SO-ARM100: Needs wiring for power and servo control.
    • Analysis: Salvaged wires and connectors can be reused to hook up the battery or servos, saving you a few bucks on small parts.
    • Verdict: Fully reusable.

Recommendations

From your robotic vacuums, you can realistically source:

  • Battery pack: Primary power source if voltage matches (e.g., 12V for 12V servos).
  • Cables/connectors: For wiring up power and motors.
  • Housing: Rough structural parts (e.g., base) if you can’t 3D print.
  • Sensors: Optional enhancements (e.g., IR for obstacle detection).

You’ll still need:

  • Servo motors: Buy the Feetech STS3215s (or equivalent) since vacuum motors won’t cut it for precise joint control.
  • Servo bus controller: To interface with LeRobot.
  • 3D-printed parts: Unless you’re skilled at carving the vacuum housing to spec.

Next Steps

  1. Disassemble your vacuums and test the battery (voltage, current capacity) with a multimeter.
  2. Check motor specs—unlikely to be servos, but confirm RPM and torque for potential hacks.
  3. Source the missing STS3215 servos (about $15 each) and a servo controller.
  4. Use the SO-ARM100 STL files to 3D print parts, or improvise with vacuum plastic.

Let me know your vacuum models or what you find inside, and I can refine this further! What’s your arm’s intended task—lifting, grabbing? That’ll guide how much precision you need.

Repurposing robotic vacuum cleaners for a robotic arm is a creative way to dive into robotics. Here’s a heads-up to get you started:

First, assess what you’ve got. Robotic vacuums typically contain motors (for movement and suction), sensors (like infrared or bump sensors), a battery pack, wheels, and a microcontroller or circuit board. These are gold for a robotic arm—motors can drive joints, sensors can detect position or obstacles, and the battery could power it all.

Start by disassembling the vacuums carefully. Unscrew the casings and keep track of components (a photo or labeled bags help). Test the motors—hook them to a power source (match the voltage!) and see if they spin. DC motors are likely what you’ll find, perfect for arm joints. The battery packs are reusable if they hold a charge—check with a multimeter.

For the arm itself, decide on a basic design. A simple robotic arm might have a base, a shoulder joint, an elbow, and a gripper. You could use the vacuum’s motors for rotation (shoulder and elbow) and maybe repurpose a smaller motor or servo (if you’ve got one) for the gripper. The chassis or housing from the vacuum could be cut up for structural parts—light plastic is easy to work with.

Electronics-wise, you’ll need to control it. If the vacuum’s microcontroller is intact, you could reprogram it (Arduino IDE might work if it’s compatible), but honestly, grabbing an Arduino or Raspberry Pi is easier for flexibility. Connect the motors through a driver (like an L298N) since microcontrollers can’t power them directly.

Tools you’ll need: screwdriver set, wire cutters/strippers, soldering iron (for connections), and maybe a 3D printer or scrap material for custom parts. If you’re new to this, look up “DIY robotic arm Arduino” for tutorials—plenty use similar components.

What’s your goal for the arm—lifting stuff, precision tasks? That’ll shape how you prioritize parts. Let me know what models your vacuums are or what you find inside, and I can refine the advice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment