You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 22, 2022. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+60-16Lines changed: 60 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,38 +1,84 @@
1
-
Official open-dobot forum is at http://open-dobot.no-ip.org
1
+
Check out the official [open-dobot forum](http://open-dobot.no-ip.org)
2
2
3
-
#What is open-dobot
3
+
# Table of Contents
4
+
1.[What is open-dobot](#what-is-open-dobot)
5
+
2.[Why? ...or the original firmware problems](#why)
6
+
1.[Protocol](#protocol)
7
+
2.[The "Arduino-based" joke](#arduino-joke)
8
+
3.[Features implemented so far](#features-implemented-so-far)
9
+
4.[Planned features](http://open-dobot.no-ip.org)
10
+
5.[Prerequisites](#prerequisites)
11
+
6.[Disclaimer](#disclaimer)
12
+
7.[Installation](#installation)
13
+
8.[Details](#details)
14
+
15
+
# What is open-dobot
4
16
This project is intended as a completely open and free (MIT License) alternative to proprietary, unreliable and inflexible firmware for Dobot robotic arm (original Kickstarter campaign https://www.kickstarter.com/projects/dobot/dobot-robotic-arm-for-everyone-arduino-and-open-so/description).
5
17
6
18
---
7
19
8
-
#Why? ...or the original firmware problems
20
+
#<aname="why"></a> Why? ...or the original firmware problems
9
21
The need for this project arisen due to the original claim on Kickstarter to make the arm "Open-source" and "Arduino-based", which has been mostly unsatisfied.
10
22
The "openness" ends with the protocol that is used to send commands to the arm. The "Arduino-based" claim brings absolutely no benefit to the owner as it does not drive the arm but sends commands further to the top board via SPI. The top board has FPGA that controls the three stepper drivers (PWM signals).
11
-
###Protocol
23
+
###Protocol
12
24
The issues with the original protocol the Dobot team has released are all in the proprietary firmware, which renders the protocol useless:
13
25
- the firmware drops commands randomly
14
26
- provides no acknowledgement of commands being received or feedback on the reasons why they are dropped
15
27
- no command buffer and no indication of command being completed, which introduces unnecessary complexity to the application software
16
28
- too high-level with too little features - the firmware implements forward and inverse kinematics, but, of course, no trajectory planning, which puts it into the "toy" category
17
29
- absurd - 3d printing (one of the claims on the kickstarter campaign) with delays between commands and commands dropping... no comments
18
30
19
-
###The "Arduino-based" joke
31
+
###<aname="arduino-joke"></a> The "Arduino-based" joke
20
32
The fact that the Arduino board does not actually control the arm but delegates the control function to the FPGA using a proprietary protocol, brings no benefit of having Arduino at all. It could in fact be as well any other hardware don't have control over the arm either way.
21
33
22
34
---
23
35
24
-
#Prerequisites
36
+
# Features implemented so far
37
+
- direct control over the FPGA board from application level (DobotDriver.py)
38
+
- reliable and fast communication to the host system via USB
39
+
- command buffering (queueing) in firmware (in Arduino) for smooth, non-jerky moves
40
+
- move each joint stepper motor by specified number of steps, in specified direction and at specified speed
41
+
- 100% accurate moves in steps
42
+
- limit switch/photointerrupter support with calibration routing implemented in firmware and controlled from application level (DobotDriver.py, DobotSDK.py) by selecting any of the unused Arduino pins dynamically
43
+
- accurate and fast Inverse Kinematics
44
+
- 100% accurate step number tracking in SDK and in firmware (coming in 0.6.0)
45
+
- accurate (to the best of Dobot's mechanical design) moves in cartesian coordinates (x,y,z) in a straight line from current location to the specified location (coming in 0.6.0)
46
+
- laser on/off (coming in 0.6.0)
47
+
48
+
---
49
+
50
+
# Prerequisites
25
51
~~The simplest way to overcome the above problems and bring full control over the arm seems to be by replacing the top board (that contains FPGA) with a cheap (around $10) RAMPS1.4 board. By doing so we get direct control of the stepper drivers from Arduino and the rest becomes a matter of creating a simple firmware.~~
26
52
27
-
**With the latest advancements in figuring out the FPGA on the top board firmware/fpga version 0.2.0 requires NO changes to hardware and is ready to replace original firmware by simply uploading it with dobot-tools https://github.com/maxosprojects/open-dobot/releases/tag/0.2.0**
53
+
**With having completely decoded the protocol to directly control the top FPGA board firmware starting from 0.2.0 and on requires NO changes to hardware and is ready to replace original firmware by simply flashing it to the bottom Arduino board. See [Installation](#installation)**
54
+
55
+
You will only need:
56
+
-[DobotTools](http://dobot.cc/download.php) or avrdude directly (included in Arduino IDE) to flash the firmware
57
+
-[Python](https://www.python.org) to run application software and examples
28
58
29
59
---
30
60
31
-
#The Plan
32
-
###Disclaimer
61
+
# Disclaimer
33
62
The information provided here is a collective effort of enthusiasts who wanted to make the Dobot arm useful for themselves and others. The instructions are provided without pursuing any personal or material benefit, AS IS and to the best of the knowledge of the people involved in this project as to not cause any damage or harm with hardware and software manipulations, but to only bring the arm to life, make it useful and reliable, squeezing out everything from every dollar that has been paid for the arm. That being said, following these instructions strictly or (especially) not strictly you take any risk and full responsibility for any damage or harm that it might lead to.
34
63
35
-
###Hardware
64
+
---
65
+
66
+
# Installation
67
+
Always prefer latest [Release](https://github.com/maxosprojects/open-dobot/releases) version, for everything - the compiled firmware, source code and examples.
68
+
Unless you know what you are doing and want to try out experimental features DON'T use the code in any of the branches, including *master*.
69
+
70
+
Using original [DobotTools](http://dobot.cc/download.php) or [avrdude](http://www.nongnu.org/avrdude) directly (included in Arduino IDE distribution) flash the firmware dobot-x.x.x.hex to Dobot's Arduino board via the USB cable. If using DobotTools then the .hex file must be copied into the "hex" folder inside DobotTools.
71
+
Alternatively, you can compile and flash the firmware yourself using a simple build script firmware/fpga/upload.sh that refers to avrdude already installed with Arduino IDE.
72
+
In application/fpga/python/ folder you may find examples that use the driver directly, SDK and more. Read the descriptions in those examples before executing.
73
+
74
+
That is all to installation. Have fun!
75
+
76
+
Don't forget to leave comments, suggestions, etc., and check updates on the [forum](http://open-dobot.no-ip.org).
77
+
78
+
---
79
+
80
+
# Details
81
+
### Hardware
36
82
~~First, an overview of a quick and dirty solution proving the approach for this project feasible:
4. Planned - connect the accelerometers. This will enable firmware to read the current (initial or at any time at rest) arm configuration~~
47
93
48
-
**firmware/fpga version 0.2.0 requires NO changes to hardware and is ready to replace original firmware by simply uploading it with dobot-toolshttps://github.com/maxosprojects/open-dobot/releases/tag/0.2.0**
94
+
**firmware/fpga version 0.2.0 and up requires NO changes to hardware and is ready to replace original firmware by simply uploading it with dobot-tools**
- Firmware (follow up on [wiki](https://github.com/maxosprojects/open-dobot/wiki))
99
+
- Firmware (follow up on [wiki](https://github.com/maxosprojects/open-dobot/wiki) and [forum](http://open-dobot.no-ip.org))
54
100
2. Implementation
55
101
56
-
###Application software
102
+
###Application software
57
103
There are plenty of open-source projects implementing forward and inverse kinematics, trajectory planning and execution that could be used with the arm. One example would be http://moveit.ros.org . A simple camera would bring perception, which increases the number of arm applications by orders of magnitude.
58
-
59
-
There are some reports of success with application integration at https://www.reddit.com/r/Dobot/comments/4b1ope/opendobot/
0 commit comments