It's been almost 3 years exactly since my last update. A lot has happened. I started a new business called Axis Robotics and that has been taking up most of my bandwidth!
I've been interested in 3d printing for some time now, but just couldn't justify the cost of the hardware. Well, I came across this vintage Sony SCARA robot and I figured it would be a good platform for a 3d printer. So, this page will hopefully document what it will take to fire up the Sony and also convert it into a 3d printer.
Working Surface: X Travel: Y Travel: Z Travel: Weight: Motors: Controller:
Here is a look at the back of the controller I have. Fortunately I ended up with a matching serial number pair of controller and robot. This is important because of the home calibration that is required between the robot and the controller.
Step 1: get power to the controller. I have no experience with circular connectors, so it took a bit of trial and error with a few ebay auctions to understand the numbering of these things and end up with the right connector.
It turns out that Amphenol and Cannon both make a connector that will work, but I went with the Cannon. If you search for part# MS3106A 18-10, that should get you in the right ball park. The MS3106 indicates the type of connector, but the important numbers are the 18 (shell size) and 10 (wire gauge pin size). I didn't know it at the time, but if you shine a flashlight into the connector on the Sony controller, you can see the numbers 18-10. That sure would have helped if I had known that!
Finally got power to the robot and now it's time for the next step...mounting the robot to a big metal plate. I used a 24" x 24" x 5/8" thick 6061 aluminum plate and then clamped it to the bench.
The next thing to do is to see if I can establish basic RS232 communications with the controller. After spending two days working on this, I decided to open up the controller and have a look. To my surprise, there was loads of metal shavings all over the PCB's and covering most everything else inside the controller.
Metal flakes covering the pins of the IC's...not good. I thought for sure that it was fried. So, I called the expert and he direct me to Mike over at lasermotion in Stockton. I drove over there and we opened up the case, vacuumed all the chips out, then connected it up to his robot and pendant and the controller was actually working! I couldn't believe that something wasn't fried.
So, with confidence that this project was going to get off the ground, I came back to the shop and after modifying my DB25 safety connector, I was able to establish RS232 communications with the controller. Just make sure that your USB-RS232 adapter is on Com1 or Com2 because SRXWIN will only allow for one or the other. If you have a PC that has a hardware com port and com1 and com2 are already in use, just disable one of them and then change the com port number of your USB-RS232 adapter to com1 or com2.
By the way, the com port settings are: 9600, 8-N-1. I spent a lot of time trying to figure this out, so hopefully it will save the next guy some time!
At this point, I was starting to realize just how bad I'm going to need a pendant for this thing, but it sure looks like they are hard to come by. Hmmm, what to do...
So, I started reading the manuals...what a joy...not! I ran across this page in the manual regarding SRXWIN and LUNA and thought...how bad could it be? Here is a complete idiot thinking about a keyboard, display, robot. If this is the kind of mentality that is required to get this thing going, I've go no problem...right? Wow, I sure was wrong! The manual is cryptic and doesn't show what it takes to get this sucker running and if you don't have the pendant, forget it!
Well, I figured let's dig in and see what I can figure out. From reading the manual, I discovered that it "might" be possible to run the robot without the pendant, but how to go about it? Apparently there is something called a "safety box" that plugs into the DB15 connector on the front panel, but after scouring the manual and the web, I found ZERO information about this mysterious device.
So, I poured over the diagrams and schematics, hunted for other Sony products that might be similar and then studied everything in the manual that even made mention of this connector.
This part was a bit sketchy, but I ended up making an educated guess on what each of the pins did and by trying various combinations of shorting pins together, I figured out what the safety box actually does. Bill, who I purchased the robot from, assured me that this is "90's logic" and is very tough. Thanks Bill, it is! So I figured what the heck, if I don't try, I'll never know and the worst that can happen is that I need to scrounge up some new PCB's for my boat anchor. The correct pin shorts are: 1-2, 3-4, 5-6, 7-8, 9-10 and 14-15. I left jumpers on 7-8 and 9-10 so I could see what the effect of releasing the "dead man" switch would be. It works just as expected!
Finally, with the right combination of jumpers on the DB15 connector, the robot clicked and whirred and sprang to life, just 30 hours or so from when I started tinkering with it!.
The next step is to figure out how to home the robot without actually having a pendant. Sure would have been cool if they put a button in SRXWIN for this, but no. Initially, I thought that this would be possible programmatically in LUNA. But so far, I haven't been able to figure this one out. Apparently, there is some difference between a "system program" and an ordinary task program, but I'm still trying to wrap my head around that one. So, back to the fun manuals. What I found is that there is an input connector on the I/O board on the back of the controller, and in this connector there is a signal called I40 that can be used to trigger a "home return". Aha, maybe we're getting somewhere here.
From the manual, we find that I40 is the magic bit that needs to be twiddled to trigger a home return? OK, now where am I going to get a cable to do that?
Well, it turns out that this tidbit of info about the I40 signal and system programs led me down another path. I hunted around and came across the SYSWIN/SAMPLE/SYSTEM directory. In here, there is a program called "SYSTEM.LUN" and after reading through this program, I discovered that I40 is in fact configured to trigger the home return. So, I loaded this SYSTEM.LUN to the controller and then stepped through it watching what was going on. After I understood the program, I hit the "exe" button on the SRXWIN GUI and executed the program. I then remembered seeing the I/O monitor window in SRXWIN and I began to wonder if it would be possible to twiddle the I40 bit through SRXWIN? You bettcha! I pulled up the I/O monitor window, clicked on I40, then hit "FON" which I think means "Force On". Like magic, the controller sprang to life and began to execute the home return. AWESOME! I'm starting to like this controller.
So, to recap, the steps to perform a "home return" without the pendant are as follows:
OK, it's now time to figure out how to run this robot in full speed mode without a pendant. On the I/O connector that I40 is located on, there are a few other signals that will get this thing going, but where on earth do I find that cable? Initially, I thought it was a standard 50 pin SCSI cable, but after searching, no dice. It's actually called a "Micro Centronics" 50 pin cable and from my search, the male connector is extremely rare. It looks like these were also used for proprietary SCSI-2 interface cables, but they also are nearly extinct. They also may be known as HD(High Density)CN50 and HP(Half-pitch)CN50 cables.
This must be some kind of standard connector for robots because my Denso 6 Axis controller also has these connectors for I/O except it's the other way around Male->Female. So, the hunt begins. If you have any info on where to get one of these or what another name is for this type, please fire me an email!
OK, so I found the last known cable of this type on the earth over at PCCables.com. It's called a Half Pitch Centronics 50 Pin Latch Connector Female and the PCCable description is HPCN50 on one side and the other is HPDB50. I ordered it for $30 and I hope it fits. Alex up in Canada is building his own control box (seen below) and is going to purchase the cable ends and solder up his own cable which is also an option as the ends seem easier to come by. His page is here: MosaicMozart
In my hunt for a pendant, I ran across a guy named Klaus over at KKdepot.com who built his own panel to control the robot without the pendant. Here is a shot of his setup:
As expected based on what I know about the input connector, it looks like this will allow the user to put the robot into SYSRUN mode, select the program that is desired (1-4) and then execute the program with the PSTART signal. As soon as I get my cable, I'm going to wire up something like this and give it a go.
09.24.2014 Update: Good news! Thanks to Alex, I just scored a teach pendant for $100! Hopefully it is the right one. Stay tuned to find out.
OK, it's Monday and I've been thinking about the system tasks all weekend, wondering what they are all about. Back to the manual... Well, I thought I'd save you the hours of research that I put in this morning searching, thinking, trying to make sense out of the translated manual, and here we go. This page pretty much sums it up.
The tidbit I was after is there under "System Task" - "This task defines the signal control for peripheral devices..." So, when they say signal control, that means the I/O connector on the back that I was using earlier to trigger the home return. At one point, I accidentally deleted "system.lun" from the controller and I couldn't get anything to work, including home return. Now it all makes sense. One other thing to remember is that the system task is only allowed in location 100 and it automatically gets loaded and starts running the moment you turn the power switch on, so if you have your SYSRUN jumpered, watch out, the robot can take off (yes I figured this one out accidentally).
OK, so with the understanding that the system task is monitoring I/O and telling the other robot tasks what to do when we power the system on, we should be able to load up a robot task into position 0, put the controller in online mode, make sure that program 0 is selected with the 4 bit binary number at I33-I36, then toggle SYSRUN and hold on. Sure enough, the robot jumped to life and ran at 100% speed, which was probably enough to rip the mounting plate from my bench, but fortunately, the program I had loaded was just a couple of small moves that were close together. Just an FYI, make sure your speed is set to 50% (or lower) in your first .lun program so you don't rip things apart or hurt someone. This robot has some serious speed and mass and could easily tear you up if you aren't careful.YouTube link to video
So, now that all of the pieces are coming together, it's time to start thinking about how our control architecture is going to work. From what I now know about tasks, it looks like the system task is going to be used to monitor input from the operator control panel, including home return and setting the X0, Y0. Then we'll probably have a peripheral task to monitor the RS232 com port looking for 3d print coordinate data coming in across the port and directing it to the robot task which will move the arm into position. We'll see how it all comes together!
Well, the pendant I got was actually for the SRX-511, part number SRX-P003 and I need the SRX-P005. So...if anyone needs a pendant for the 511, I'll give you a good deal on it!
The update for today is that I got my control panel all put together today. The engraving and finish turned out quite nice and the I think the form factor and ergo is excellent!
Sony SRX-611 Manual, searchable rather than scanned, very useful! Sony - Operation Manual SRX-611 High-Speed Assembly Robot - Operation_Electrical_Mechanical Sony - Operation Manual SRX-611 High-Speed Assembly Robot - Safety and Installation Sony - Operation Manual SRX-611 High-Speed Assembly Robot - ErrorCode