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
United Kingdom
Asked — Edited

Expanding Digitalports

I was wondering if anyone had a simple solution for adding more digital connections to the controller. One idea I had was to link an arduino to it via i2c, although I don't know where to start to do that.

I need to increase the connections by about 6 ( making 26 ) minimum.


Upgrade to ARC Pro

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

United Kingdom
Honestly, don't bother trying to expand, just use a second EZ-B, it saves a lot of headaches, time and scripting. If you expand you wont get native controls in ARC for the extra ports so everything will need to be scripted and you will need to carefully think about what to connect where etc.

For the price of another EZ-B (OK I know they are currently not available but hang in there), which is only going to be about £30 more than any expander, you get native support for all 20 digital ports, 8 more analogue ports and no headaches.

I looked in to using an I2C expander, the datasheet wasn't worth the paper it was printed on, I'm yet to get this to work for the simplest of tasks let alone using it for sensors etc.

Arduino add on could work but do you really want to be writing the code for the Arduino that allows ARC to control it via the I2C port?

It's been discussed before, it'll be discussed again I'm sure, but after a lot of research and messing around (not to mention throwing down £30 on an I2C expander that doesn't work very well) personally speaking I'll always advise a second EZ-B over any other method.
United Kingdom
To be honest, I would always prefer to use a second ez-b. For all the reasons you mentioned. I do have experience in scripting an arduino, although using it directly connected to a pc rather than via i2c. I t was only going to be used for servos alone.

It would of just been a nice cheaper option. Plus a basic script can be written on them to listen for servo positions via its serial port.

I did think about simply making a little circuit that could switch operations of servos using a servo if you get me.

if the control servo was at position A, d0-5 operates servo's 1 - 6.
if the control servo was at position B, d0-5 operates servo's 7 - 12 and so on.

Other positions would then offer a variety of servo combinations.

Just had trouble thinking of the best way to do it.

Scripting i'm happy with. even if its a bit of a ball ache.
I have an SD84. I haven't really messed with it yet, but I believe it has 80 ports on it. I think you go in with one or two and you come out with 80. it is controlled by the USB bus. It should work with the EZB, you would have to ask D.J.

United Kingdom
For it to work you would need to have some kind of interface between the ARC and the software which can control the SD84.
It may be possible to connect the USB to the EZ-B through some type of simple serial connection method however the EZ-B serial is only monodirectional, you can send but it cannot receive which may cause problems.

Also, the SD84 is £53.82 plus VAT and shipping which is more expensive than the $69 plus shipping of an EZ-B.
United Kingdom
Slight alteration after Tony's recent post...

The SD21 on Robot Electronic's site is I2C controlled and since Tony has recommended it in another post it's safe to say that control is simple. It may pay to look in to using one of those. Or for a cheaper option the SD20 which Tony has mentioned and build yourself a nice little circuit to expand the ports via I2C.

The native controls issue would still apply but with I2C, provided the info is clear, it's simple, quick and easy to script.
United Kingdom
Thanks guys. Net been down *tired* but now im back ill check out this SD21.
Anything that costs more than an ez-b is next to pointless for me as im looking for the cheapest possible option.

I will post back when I've looked
I used a pololu maestro for this type of function. They come in different sizes 6, 12, 18, and 24 ports. It connects to the EZ-B using a Digital port in serial mode and you use ARC scripts to control servos and turn on and off digital ports. There is a bit of setup on the Pololu via usb with a computer to define how the ports will be used and set it up for the serial I/O connection to the EZ-B. The Pololu even has its own scripting language and a pololu script can be started and stopped by the EZ-B. I needed more ports on the EZ-B to support the RGB LED eyes for my robot. They would have used up 6 ports on the EZ-B, but using a Pololu maestro I use one EZ-B port. I have also tried controlling servo through the Pololu and that works.

The 6 port micro maestro is $19.95. The 12 port mini maestro is $29.95.

Check out the forum discussion I started (http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=4259). I have been working on other parts of my robot so I have not gotten back to the pololu yet. I want to try using a virtual servo and monitoring script to try and allow the ARC user interface more visual control of the pololu maestro controlled servos. My other approach is a Slide script which might work quite well.

Pololu also has a serial servo controllers that might do the job. Eight servo ports by using one EZ-B port for serial output to the controller. http://www.pololu.com/catalog/product/0207/resources still $19.95. The maestro can control digital outputs as well as servos which is more what I wanted. I don't have any experience with the serial servo controller, but it looks like it might be what you need.

As noted using two EZ-Bs is the easiest way as it gives you direct access to all of the ports in the user interface. ARC scripting for the pololu hardware is not difficult and you do not need to use the pololu maestro scripting features if all you need is more ports. The issue is the pololu connection is one way(EZ-B to Pololu). The ARC scripts tell the pololu what to do. The pololu has no feedback path to provide status information on its ports. With two EZ-Bs you get the feedback visually on the computer screen.
United Kingdom
checked out the sd20 by reading http://www.robot-electronics.co.uk/htm/sd20tech.htm
Seems a nice little chip.

@RobertL184 I have looked at these before. But I thought that they were only compatible via USB. I didn't realise they could be operated digitally.

I am personally scripting my robot in c#. One way communication is fine for what I need.
I will re look into the maestro now. I
Good to have you back, Jay!

I was talking about using the sd84 with the EZB not replacing the EZB. But, it looks like they have more simple ones. The sd84 worked off of the USB port.

United Kingdom
@MovieMaker That's good I need it to work with it. I've looked at the SD20. It looks a simple enough chip. I cant see where to buy them from though. Any suggestions?
United Kingdom
strike that. stupidity on my part.

Same damn site I was looking on *confused*
United Kingdom
Remember to add VAT and shipping if you're pricing things up as they list it excluding VAT.