Handbook
Version:v1.0.0
• Date:<2025-10>
• Author:Harry Warriner / Ark
Purpose: ArkBot is designed to be an affordable high strength, high accuracy robotic arm you can build at home.
Scope: This handbook covers how to build ArkBot and how to get it running within the Ark Framework.
The ArkBot is a pick-and-place robotic arm designed to be affordable and easy to build at home. With the intention of demonstrating the ark_framework's capabilities. Comes complete with an accurate URDF file.
![]() |
![]() |
![]() |
![]() |
![]() |
The parts ordered from either side (amazon or cheapest) are the same parts, the difference is the time and price. The amazon links will come significantly faster whilst the others will take a while longer. At the bottom though there are two different PLA filaments, the bambu or an equivalent high brand printer filament is reccomended, but if on a budget, the amazon ones will work fine.
Totals | Amazon Total: | Cheapest Total: |
---|---|---|
£348.12 | £215.86 |
Qty Needed | Name | Amazon Price | Amazon Link | Cheapest Price | Cheapest Link |
---|---|---|---|---|---|
7 | ST 3215 Servos | £26.99 (x7) | Amazon | £20.10 (x7) | Robotshop |
1 | Servo Bus Driver | £9.99 (x1) | Amazon | £4.80 (x1) | PiHut |
36 | 693-2z (Tiny Bearings) | £9.89 (x2) | Amazon | £2.31 (x4) | AliExpress |
12 | 6802-2RS (Medium Bearings) | £9.79 (x2) | Amazon | £3.23 (x2) | AliExpress |
5 | 6706-2RS (Big Bearings) | £12.19 (x1) | Amazon | £1.27 (x5) | AliExpress |
6 | 6810-2RS (Massive Bearings) | £26.29 (x1) | Amazon | £10.39 (x1) | AliExpress |
1 | 10cm 30x30 Aluminium Extr. | £2.27 (x1) | Amazon | £2.27 (x1) | Aluminium-Profile |
1 | 20cm 30x30 Aluminium Extr. | £3.35 (x1) | Amazon | £3.35 (x1) | Aluminium-Profile |
12 | M3 30x30 T-nuts (100) | £7.89 (x1) | Amazon | £3.46 (x1) | AliExpress |
1 | Box of M3 Screws | £7.88 (x1) | Amazon | £7.88 (x1) | Amazon |
50 | Threaded Inserts (100) | £7.99 (x1) | Amazon | £0.98 (x1) | AliExpress |
2 | 1kg of PLA | £20.99 (x2) | BambuLab | £9.99 (x2) | Amazon |
This is a list of the most basic tools required to build the Ark_bot, additionally it is reccomended to have a drill and pliers, just to improve quality of assembly.
List of tools Required |
---|
3D printer |
Soldering Iron |
5mm 12v DC power supply |
m3 Hex Key |
wire cutters |
electrical tape |
electrical wires |
Clamps |
Release
v1.0.0
Parts List (Grouped by Subsystem)
Base | Cyclodial Drive | Links | Claw | Limbs |
---|---|---|---|---|
1 × Base | 2 × Motor Holders | 1 × Link 3 Body | 2 × Claw Connector | 2 × Limb Motor Side |
2 × Base Bearing Cover | 2 × Bearing Holder Disk (Exterior) | 2 × Link3 and 5 Motor Side | 1 × Claw Bottom Case | 2 × Limb Non Motor Side |
1 × Base Motor Holder | 2 × Cyclodial Drive Exterior | 2 × Link3 and 5 Side | 1 × Claw Runners | |
1 × Joint 1 Base | 2 × Cyclodial Drive Exterior Top | 1 × Link4 | 2 × Claw Body | |
1 × Joint 1 Connector to Joint 2 | 1 × Cyclodial Drive Other Half | 1 × Link5 Body | 4 × Claw Runner Clamp | |
3 × Eccentric Rod Motor Connector | 2 × Claw Link | |||
18 × Internal Cyclodial Drive Spacer | 2 × Finger | |||
6 × Cyclodial Disk | 1 × Claw Motor Driver | |||
3 × Cyclodial Driver Interior Top | 2 × Claw Motor Holder Link Pin | |||
3 × Eccentric Rod Middle | 2 × Claw Link Motor | |||
3 × Eccentric Rod Top | 2 × Claw Link Cap | |||
3 × Cyclodial Driver Interior Bottom |
Total Parts: 86
Parameter | Value |
---|---|
Reach | 1 m |
Weight | 2.6 kg |
Payload | 1.8kg |
DOF | 6 |
Input Voltage | DC12V |
When 3D printing, the Cyclodial Disks, ensure that the diameter of the 6 holes on the outside are exactly 12mm in diamter, and that the disk fits near perfectly in the exterior.
The better the fit the more accurate the final positioning will be.
This is the only note with the 3D prininting, as long as these two parts work. Everything else can be printed on random settings, of course the higher the infill the stronger the final parts.
⏱ Total time: <estimate, 120 minutes>
🧰 Skill level: Intermediate
Connect the indivual motor to the driver board.
Go to the configuration.py file in arkbot. Config file
Make sure the config is correct in the file:
if __name__ == "__main__":
DEVICENAME = "COM7" # or "/dev/ttyUSB0"
BAUDRATE = 1_000_000
Then run the program, it will tell you the ID number of the motor, if this is not correct, change it to the number associated to that motor.
Go to the Ark Framework repo and follow the instructions there.
Make sure Ark Registry is running.
Make sure arkbot.py is also running (in a different terminal)
Then use the jupyter notebook in tests, if using sim, make sure sim_node.py is running. And that sim=true in the config of the jupyter notebook.
Configure: Make sure the port is correct in the .yaml file.
{
real_config:
port: "/dev/ttyACM0"
baudrate: 1000000
}
You should be able to carefully move the cyclodial drives and the motors when powered off. Move ArkBot so that it is completly facing upwards, and plug it in. Run the configuration.py file, and when promted set all the midpoint positions.
Power cycle the robotic arm, and run the configuration code, and when promted go to output and read the current ticks of all the motors. These then need to be put into the arkbot.yaml file:
home_ticks:
{
"1": 2800,
"2": 2431,
"3": 2093,
"4": 2050,
"5": 2059,
"6": 2020,
"7": 1011,
}
Next is the home loop configuration. The robotic arm must start from the position below. (Only matters for the first 3 motors) These motors rotate multiple times due to the gear ratio. Therefore the loops to get the [0,0,0,...] position must also be inputted:
home_loops: {
"1": 0, "2": 3, "3": 3, "4": 0, "5": 0, "6": 0, "7": 0
}
Now run the jupyter notebook and send it to [0,0,0,...] if it goes straight up then the calibration was a succsess.
✅ Pass criteria: When sent to [0,0,0,...] it goes straight up
- Ensure that it is in the starting position.
- Power on and send to home.
- If succseful, enjoy using ArkBot!
Symptom | Possible Causes | Fix |
---|---|---|
Won’t power on | 12V Cable Not Plugged in | Plug it in |
Jittery motion | Cyclodial disks not correct size | Reprint to size |
Massive Backlash | Plastic could have worn and snapped | Reprint parts |
Q: A:
Q: A: