
I recently purchased a EZ4 board and I was anxious to use it. I went through two cables (mini din to molex) both of them traced correctly but yet I got nothing when I went into EzBuilder.
The camera functioned (although it appears to only take up half the image window), I could connect to the web server no problem, but not the Roomba (although it acted like it wanted to connect).
In your pin out you have two pins being used one is ground and one is sending 5 volts (pin 3) to the create. Which confuses me because the directions make note to measure the voltage coming from the cable however I believe pin 3 SENDS to the Roomba not receives, am I misunderstanding?
My last attempt I took a PS2 cable put a meter lead on the pins you mentioned and then on the bare wire, until I had a complete connection. I attached those two to a molex connector with servo wire double checked the connections and still nada.
Help? *stress* *tired*
Pin 3 --- to data pin on ezb D0
Pin 7 --- to the grd pin on the ezb D0
1) First are you connected to your ezb in ARC? That means a solid green or blue led on the ezb...
2) Which version of the Roomba do you have 400 series or 500 series? (I think you said Create, but what version 1 or 2?)
3 Have you tried the built in Roomba control in ARC yet? Are you using port D0 on your ezb?
4) Do you have a copy of the Roomba ROI pdf? (commands and communication protocol manual)
If you wired the plug correctly it will work ( I own a couple of 400 series Create and a 500 series Create is on the way)...
I have an ARC file on how to connect and drive around a series 500 Roomba with a EZB4 here in the EZ cloud... Look under robot apps, then sharing in the drop down box for it... It is called Roomba 500 custom movement panel... It works after all I wrote it lol...
IRobot Roomba or Create has its own power, only connect 2 wires (to send serial commands), ground and pin 3.
Not sure of your actual application?
Here is what I use on IRobot Create V1, I just tested it on EZB4 with my public file, CaptainAnndroid public is in the cloud.
# 3 pin is RXD 0-5V Serial input to Roomba
As Richard said refer to IRobot Roomba SCI.
If you are just trying to send commands, pin 3 is correct.
Turn on your IRobot power.
This app will send the "init" command at connection.
It will also use a custom Movement Panel for forward, etc..
This is first time trying it on a EZB4 using D0, it seems to work great sending all of my custom Movement Panel send serial commands.
Steve S
"Edit"- ... Video to follow
You forced me to try something new today!
Hope something helps.
Steve S
(No DJ, I'm pretty sure I'm safe on connecting the power... thanks though ...
1. The cable I had connected from the Roomba to the Ez4 had the pins in the diagram connected to the servo cable. There was no power coming from the cable and I wouldn't have expected it since we're not trying to power between the two.
2. The cable is from an old PS2 mouse with the center tab removed and to confirm the two cables I had connected I metered from the pin in the connector to the end of the wire. They matched the two in the digram (although something now must be jacked up).
3. My earlier comment on the page being incorrect is that it mentions you should get 5v across the cable when you measure it plugged into the Roomba, I am not sure how though as the cable is only made to send commands not for power so I am thinking something doesn't jive on the directions.
4. This is a Roomba Create Version 1. (I keep forgetting the changed the color and called it new
Here's the answers to the other questions from above:
Yes, my comment was intended to show the board had power, was live and I was able to get the ARC tool to see it. They are related as much as the board has to be active.
Correct, although it doesn't have to be D0 but that is what I attempted to use.
I think this is part of the confusion, so the PS/2 has 6 actual pins I can connect to coming out of the top of the cable and then off to the servo cable, and I think what's getting me jacked up are the pin numbers being used. The instructions are referencing pin numbers on the Roomba connector but and not the PS/2 connector (and again as I said the mention of power ... which struck me as odd).
I looked over the screenshot (http://www.ez-robot.com/Robots/Files/109/resized_img_0155.jpg) if that is a PS/2 connector with the tab removed the two pins showing at the top that would be closest together (with the notch at the bottom as shown) would be white on pin 4 and black on pin 5.
So I've ordered from Amazon a PS/2 mini din that I can just get to the pins on and a servo connector with the molex end on it. I'm just going to solder it from scratch instead of using an existing cable. I want to make sure I've got this correct ...
- On the PS/2 plug, removing the tab is in theory removing
pin #6 from the Roomba side.
- Data (White wire), pin #4 on PS/2 plug (in a PS/2 pinout this is defined as +5v) on the Roomba this is pin #3
- Red wire, not used
- (Ground)Black wire, pin #5 on PS/2 plug (in a PS/2 pinout this is defined as CLOCK) on the Roomba this is pin #7
Just my thinking here but for someone who's not as savvy as us, it may help to reference pins on each side. I can toss together a quick diagram (once I'm up and running here).
Yes.
Create Version 1 - So it's a 500 series I think.
Yes, as mentioned before I can see the camera, I can see the board, the board just doesn't see the Roomba via D0.
Somewhere around I believe. On page 3 it shows the PIN out and I see that 3 is input to Roomba and 7 is ground (same as 01 and 14 on the serial connector).
The meter says it's wired correctly, my gut tells me somethings hinky though. I even took apart a Bluetooth cable I had working since I knew the pins / cables were correct ... no joy. I am sure it's between the two cables and their connection.
Thank you I will take a look, the next project is RoboPhilo, Parrot Two, Myo Armband and Darwin Mini ... Yes, it's an addiction
(This create FYI, was running ROS before with Kinect, Beaglebone and cape, then went to Bluetooth with Beaglebone and custom code). If I can get this working like I think it will this will be MUCH easier !
Thanks again guys!
Once I get the parts in and soldered up, I'll give her a second go and let you know.
What is this project file they speak of? It sounded like Steve had something custom too, is it non standard ?
I thought there was mention of a custom file you sent, I'm sorry I was confused. Sounds like Steve also created a custom panel (I'll go look at his in a second too).
You're using a custom one since the default wouldn't work?
So you're basically setting something like Forward(255, 5000) in the movement script attached to your custom panel?
The next thing is adding two servos from Rolli to handle the camera X/Y/Z movement for tracking. I have several CV algos of my own but I want to run through DJ's first and then from there.
I am glad he's got an API / SDK and Python / Node.js support.
So to my new virtual community friends ... thanks for your support!
1. Understanding the cable wasn't the issue as much as the pins DJ refers to are for the Roomba connector and not the actual PS/2 connector. I am working on some documentation that shows each and the pins across them. (oh and those are a PITA to solder).
2. You need to use pin #3 and #7 as the Roomba Identified pins. Although #6 is also grnd and functionally it would work, in the PS/2 cable it does not have as many pins as either the 8 or 7 pin Roomba version and so when you remove the plastic tab inside the male portion, you in essence end up with a space where your pin #6 would be. You can see my earlier comment to see the pins for the PS/2 side.
Thanks for the answer though, it's appreciated.
I haven't run it yet (it was getting late) but I wanted to run one of the commands by you to make sure I'm on the same page.
sendSerial(d0,19200, 128 130) as an init for the device.
sendSerial(do,19200, 137)
iRobot create 1 (white one) default com speed is 57600.... You have to put it in 19200 if you want that speed.. essentially your serial commands otherwise are correct...
Code:
I glossed right over the ...
"Baud: 57600 or 19200 (see below)
Data bits: 8
Parity: None
Stop bits: 1
Flow control: None
By default, Roomba communicates at 57600 baud. If you are
using a microcontroller that does not support 57600 "
Any ideas?
Here's what the 8 pin connector pinout looks like
Here's a direct link: http://www.ez-robot.com/Tutorials/Help.aspx?id=100
I've tried the config with all the different settings. I have 115200 baud checked and old protocol not checked and it does nothing. The only time it responds is with baud uncheck and old protocol checked, and that's when it goes into spot clean mode.
The instructions are referencing pin numbers on the Roomba connector but and not the PS/2 connector ...
- On the PS/2 plug, removing the tab is in theory removing
pin #6 from the Roomba side.
- Data (White wire), pin #4 on PS/2 plug (in a PS/2 pinout this is defined as +5v) on the Roomba this is pin #3
- Red wire, not used
- (Ground)Black wire, pin #5 on PS/2 plug (in a PS/2 pinout this is defined as CLOCK) on the Roomba this is pin #7
Some of cables for ps2 stuff actually have other issues, it's easier to start and make the who thing.
I will try to build some more videos and write ups. Also keep in mind the difference in the baud rates.
My c2 Is using now a custom flash Arduino wired to a buck transformer. I used sqare ended jumpers right into the Roomba jack and some heat since to clean it.
I have to manually drop the baud but that easy.
So use this method as a test, on the ezB in D0, plug in two jump wires a white and black and plug the other ends directly into the Roomba pins as I indicated above.
That is a good test and will work fine you can heat sink them and add pretty connections later.
In one of your post here, number 6 the diagram, I'm curious about it.
Could you explain it a little further to me.
Is there some software you use with it?
Thanks
The issue is a ps2 plug has a different layout then Roomba and not all use same or correct colors.
I have been trying to explain the pins on both sides.
I was just curious about that diagram and where you got it.
First is the 8 pin connector.
Then the 7 pin connector
The response I get is that the first or second command sent seems to respond properly and then its is very intermittent about responding. The most consistent response comes from turning the vacuum on and off, but even that will stop working if I turn it on/off very quickly.
I'm not very hopeful the the 8-pin mini-din plug I've ordered is going to be any better then the 8-pin mini-din cable I was trying to use before.
Also, I have no problem controlling the Roomba from the computer with the USB to Serial cable the Create 2.
Sending commands using D0 on an R3 Roomba (500, 600, 700, and Create-2) may not work well due to the difference in 3.3vdc signal being sent from the EZB(4) and Roomba serial expecting 5vdc.
You might try using one of the UART ports and send test commands to see if the Roomba responds better.
I feel I should mention that the D0 control is not as reliable as using one of the 3 ez-bv4 uarts.
***EDIT*** Ha, ha also realized you can't do anything cool without the ezb on board....
I've only tried controlling it from the Roomba control panel in ARC on D0. I really want to get this working for my 9 year old son. It's a good entry point for him and it was why I bought the EZ-B to begin with. It was the main reason I bought the it and I won't be a happy camper if I can't get it working.
Anyway, UPS just arrived with my 8-pin plug, so i'm going to go fire up the soldering iron and see if that helps.
The other option would be to take a servo cable and put one end on D0 and two of the wires (leave one off for now as it's not used -- white), and simply put the bare wire ends into the din plug.
This way you make sure it's not your plug or your solder, etc.
As an example I have an Arduino wired to a buck transformer and then directly into the Roomba for power and the digital ports are just jumper wires at present (until I make a cable). I of course have other items to contend with (eg: power increase during charging of the Roomba, keeping the signal alive, etc)
I see from the EZ-Bv4 datasheet that D0 is an unregulated power port and is a change from EZ-Bv3. Is it possible that the 3.3v port is need to work properly and if so is there a way to use the A7 port instead? It doesn't seem like ARC is setup to let you use the Roomba on anything but D0.
D0 is a 3.3V signal, the power ports beside it are unregulated. If you were to use D5 & D6 you will likely have better results, although you will not have access to the ARC Roomba control anymore.
Why is that D5 & D6 would have better results? Are there known problems with ARC Roomba tools not working due to being on port D0?
I wrote this for testing my 500/600/700 series Roombas... Guaranteed to work if everything is wired correctly... It uses pin D5 (UART port 1) instead of pin D0.... ***Run the Init script before using any of the other controls*** Roomb500_Test.EZB
I've run the diagnostic test and they seem to work (of course I have no devices plugged in). Audio feature of the box work.
The EZ-B is brand new. I'm wondering if I just have a bad one?
And yes! DRDDDDDDDDeeeeezzzz Someone needs to build one, because I want several running around cleaning up after my kids
I will also like post the instructable this week and dig up the videos.
If Todd wants to email me directly I am game just please pm me here first.
I'm certain I'm wiring to the correct pins. The only factor I have not tried changing is the type of servo cable. I've tried a number of different ones of the same cable, but all with the same result. Is there some particular gauge or type of wire that is needed? Here is a link to the one I'm using (with the middle red cable removed)
www.amazon.com/gp/product/B00J60ZEU6/ref=oh_aui_detailpage_o04_s01?ie=UTF8&psc=1
Again, I ask, is it normal for the EZ-B to lock up when sending a command to U5 port with no wire attached? It locks up every time and I need to power cycle the EZ-B to get it to respond to anything after it locks up. It seems to me I simply have a bad unit (which is brand new) and need to get a replacement.
Code:
This is all with the same cable that does not wok on port D0. I think this then is confirmation that the Roomba Movement Panel that is in ARC simply does not work (at least with the hardware I have).
Hopefully I can save the custom Movement Panel and make it work with the other controls the way it is demonstrated on the video. If not, the main reason that sold me on purchasing the EZ-B is removed.
Does anyone know if ARC is open source? I didn't see it on GitHub.
Cheers
Richard
No, it isn't, however there is a .NET SDK and a Mono SDK published by EZ-Robots that you can use to create your own interfaces, and some 3rd party SDK's (OpenBot and a Node.js and Python library).
See the items in the black menu bar on the software page: http://synthiam.com/Products/ARC
Alan
It looks like the specs for the roomba serial port are 0-5 volts. If port d0 is only ouputting 0-3.3 volts the communication could be intermittent. Seems you could put a 3.3 volt to 5 volt converter between d0 port and roomba receive pin. Let me know if this could be the issue? Could be a simple fix.....Rick B.
The link from I-Robot states that the Create 2 serial port uses 5 VOLT LOGIC LEVELS for asynchronous serial communications.
It also states that Create 2 can take a 3.3 Voltage level on its rx and dd lines.
This does not mean that 3.3 volts is the ideal level that the rx line wants to see. It may work but some of the people who are having issues with the D0 port on the Roomba and Create robots could be having their issues because the receive level the robots want to see is closer to 5 volts.
I have worked as a senior electronics and engineering technician and I have seen many instances where although the spec is 0-5 volts or whatever it may be, that when you lower the voltage from the spec that all bets are off. This leads to unreliable flaky operation sometimes.
All i-robot says is that it can take 3.3 volts. They don't state that it is the ideal level. I have seen specs on their site stating the levels are 0-5 volts.
For those people having issues with d0 port connected to roomba or create, they could try a similar circuit to what is in the link you sent me to translate the d0 output of 3.3 volts to 5 volts for the roomba and create rx line. They also make translator IC's that do the translation in both directions. I believe adafruit sells them and they are pretty cheap.
what levels do the ez-bv4 uart channels put out as people seem to have more reliable communications using them.
I understand your point too, but there is a reason voltage specs are given. Would be interesting to see what I-Robot engineers have to say about this issue with regards to the 0-5 volt spec for serial communications.....Rick B.