Turning a broken 2 ton robot into a CNC-machine | ABB IRB6400
Background of the robot
The robot is an ABB IRB6400 / 2.4-200, manufactured in 1999.The documents that were still with the robot state that the original customer was the Eurostar train factory located in Austria, where it served as a welding robot.
Fixing the robot
Upon the first startup attempt the controller wouldn't perform a cold start and gave me : "Error 03:07003 Unexpected interrupt on MC". After talking to some experts on the ABB robotics forum (thank you graemepaulin for your expertise) they pointed me in the right direction and told me to replace the main or robot computer. Replacing the Robot computer fixed te issue and the S4C controller was able to perform a cold start. I then installed Robotware OS 3.1 and after this i was able to get some movement out of the robot. Once the axis were callibrated again (because the backup battery inside the robot itself also died) i was able to make linear moves and start creating simple programs. Full thread on the ABB Robotics forum can be found here: https://forums.robotstudio.com/discussion/13488/irb6400-s4c-controller-error-03-07003-unexpected-interrupt-on-mc#latest
Furthermore I replaced both backup batteries inside the S4C controller and swapped the Floppy drive for a USB one.
This whole process to get the robot up and running took about 2 weeks (had to wait for some parts to arrive). The rest of the time was spend on the development of a program to send coordinates directly to the S4C controller from a PC.
Even with the floppy drive swapped for a USB one, the internal memory size was still about the size of a floppy disk (1.4mb). Which means I was still only able to execute programs of max 1.4mb or around 15.000 lines of code. Anyone who ever worked with CNC-machines know that even the simplest programs exceed 15.000 lines. So that's why i made the Rapid2Serial application. I'm now able to execute any file size that I need. The Rapid2Serial program can be found here: https://bbprojects.technology/software/rapid2serial-program
During the development of the program I used an Arduino Mega as an emulator for the S4C controller, to test out the serial communication protocols and handshakes. The Arduino test program can be found here
The motor mount for the spindle is 3D-printed, mainly because i'm only going to use it to mill foam and also because i don't know how to make shiny alluminium pieces 😜.
The STL and Fusion 360 source files for the motor mount and dust shoe (including 3D-printable brushes) can be found here: https://bbprojects.technology/stl-fusion-360-source-files/abb-irb6400-motor-mount-dust-shoe
I used this spindle + controller combo: https://www.amazon.com.be/-/nl/cnc+motor+500+watt
I've also experimented with converting G-code (used for 3D-printing) to ABB Rapid code so i can turn this robot into a giant 3D-printer in the future. The "TEST" can also be seen in the video above at 03:40. I plan on using an Arduino or Raspbery Pi to receive the same data over serial as the robot and use it to controll the extruder on the robot. This would require some changes to be made to the Rapid2Serial program and the hardware on the robot.
Furthermore i also designed a dust collection system on the sides of the CNC-table to catch the remaining dust that flew past the dust shoe. This system is essentially a gutter connected to a vacuum source. The lids on the side of the gutter are optional and can be used to isolate the vacuum to only the length of the part you're going to be milling.
The STL and Fusion 360 source files for the table dust collection system can be found here: https://bbprojects.technology/stl-fusion-360-source-files/3d-printable-table-dust-collection-system