Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited
Resolved Resolved by Dunning-Kruger!

Roomba Connection

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*


Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro

AI Support Bot
Related Content
@Richard R do you have any I2C code in your project? I wondering if you had some RGBLED eyes or something in your project that @todd85 doesn't have. I guess I could always load the project.....
Hey @Jeremie.... nope, no I2c.... just basic uart commands to the Roomba .....
Richard's project seems straight forward, the ez-b shouldn't lock up unless @todd85 is using an I2C control without an I2C device. I think I may have to dust off my Roombas again and start fiddling with them again. I might be able to work with DJ to make some changes and upgrades to the Roomba control and possibly move it from D0 to a full hardware uart.
@Jeremie This does work. ... i promise you that... if you want me to demo it on the 13th(May).... bring your Roomba to work that day.....:)
Richard, will you get cracking on that Farscape DRD shell for Roomba?
@Zap I would love too... but alas i couldn't design my way out of a paper bag. ... I would love one of those farscape DRD shells too....:)
Oh I definitely trust that your example works @Richard, I was just thinking that it may be beneficial to upgrade the Roomba control in ARC to help @todd85 out a bit on the graphical side of things.

And yes! DRDDDDDDDDeeeeezzzz Someone needs to build one, because I want several running around cleaning up after my kids:D
todd85 one more thing to consider is that sometimes the SCI will lock up and the only way to cure it is to either disconnect the battery momentarily or send the reset command "7" to the Roomba. Then try your program controls.
I'm working on a fritzing diagram of the connections tonight, I have to build something that looks like an EzB object though.

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 can certainly try to reset the Roomba, but I don't see how the port can be locked up when I can control the Roomba with the USB Serial cable that came with it and Roomba's example control program.

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)

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.
Hi @todd85 maybe you can share your code and we can provide some insight. Are you doing a uartinit before writing uart data to D5?
This should work... Just a simple movement test



uartinit(0, 1, 115200) #Init UART port 1 on pin D5
uartWrite(0, 1,128,132) #Init the Roomba and place in full mode

uartWrite(0,1,137,0,$speed_R,128,0) # move forward slow
uartWrite(0,1,137,0,0,0,0) #stop Roomba
22gauge is expected but I don't think required.
I've used 24, 26, and 30 gauge wiring to make connection on the Roomba 7-pin mini din.
Thanks Richard that script did the trick. I found the init command on the original script was wrong and locking up the EZ-B. After changing the init command in your original script the everything works great.

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.
@todd85.... Awesome.... Now the fun begins.... I'll look at my sample project and change it as required...



Does anyone know if ARC is open source? I didn't see it on GitHub.

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


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.