SS relays, MCP23017, ULN2803, SSA1064T. Are these good choices ?

Hi there,

I made a project a few month ago (as a prototype) and intent to do it in a more suitable/reliable (because I like well done work) way now. I've done some digging on the parts side, and wanted to have some acknowledgement on my choices :slight_smile:

Prototype main parts :

  • Arduino UNO rev3 official board
  • LEDs and tactile switches controlled using a 8 bits port expander PCF8574 (not using interruptions)
  • Multiple opto-isolated SPDT 5V relays using a relay board
  • 5V/1A power supply using a 7805 (almost at full load when all relays are activated)
  • Live configuration storage is the Arduino internal EEPROM

FYI, I attached the original schematic I've made for that prototype with fritzing. I don't have started the new one yet (still on the thinking step). It's kind of messy, but it should be fully understandable. Relays were connected to Arduino pins 3 to 10.

This time, I intent to do it all myself in a CMS form factor. But I need to double my needs and improve the overall quality. I was considering these parts :

  • Arduino UNO self made clone (I need an all-in-one PCB) : ATmega328P (same as the Arduino Nano board)
  • 16 bits version of the PCF8574 (PCF8575 or PCF9555) are hard to find. I came accross the MCP23017 which seems popular and cheap. I'd also like to use interruptions to check tactile switches state this time
  • I'll need to use DPDT relays this time, and Solid State relays seemed to be a good choice : from what I understood, I do not need opto isolation anymore with those relays. Is that quite right ?
  • To avoid to draw current from the Arduino, I've considered using an ULN2803, but every time I found questions about it, "useless" is a common answer. What's the correct solution ?
  • I don't already decided wether I'll be using straight Arduino I/O or another chained MCP23017 on the I2C bus to command the relays (to reduce needed pins)
  • An additional SAA1064T (4 digits LED driver) will be added on the I2C bus
  • Hopefully, I do not need a more powerfull supply, but if I do, what can I pick up ? I'm kind of lost in all those parts digging :slight_smile:
  • Should I use a dedicated EEPROM chip ?

That's all (at least for now) :smiley:
Is there any concerns about the choice I made ?

Thanks,
LTourist

What is your project about?

Sorry, I might have start with that :slight_smile:

Fully configurable MIDI controlled relays. Those are meant to activate/desactivate audio loops. Is that what you were asking for ?

It's uneasy to give an advice based on text description, one electrical schematic 'd save a million words.

I've attached the original prototype schematic. That's all I have right now as I have not began the new one.
The idea is still the same and most question are about parts equivalence with that first design.

Relays were connected to arduino pins 3 to 10.
Hope this helps...

•I'll need to use DPDT relays this time, and Solid State relays seemed to be a good choice :

I've never seen a DPDT solid state relay... I'd say they are rare... If you can't find one, you might have to use multiple relays instead.

from what I understood, I do not need opto isolation anymore with those relays. Is that quite right ?

Correct. All relays are isolated. Solid state relays are optically isolated.

•To avoid to draw current from the Arduino, I've considered using an ULN2803, but every time I found questions about it, "useless" is a common answer. What's the correct solution ?

For what? To drive the solid state relays? You probably don't need it... You'll have to check the current requirements for your solid state relays. Typically, you need 5 - 10 mA to trigger a SSR. Each Arduino I/O pin can source/sink up to 40mA up to a total of 200mA for all combined I/O pins. Assuming 10mA each, 20 SSRs should be OK without the 2803.

•Should I use a dedicated EEPROM chip ?

If the internal EEPROM is large enough, use it! Fewer parts usually means better reliability. Plus lower cost, and it will be easier to design and build.

Thanks for your concerns both of you :slight_smile:

DVDdoug:
I've never seen a DPDT solid state relay... I'd say they are rare... If you can't find one, you might have to use multiple relays instead.

DVDdoug:
You probably don't need it... [...] Typically, you need 5 - 10 mA to trigger a SSR.

So I'll eventually need it if I choose the DPDT path and hence standard relays.
But they do consume much more power right ? As I said in my first post, and if I recall it correctly, I currently use around 75% of my power supply capacity at max. I cannot believe my power supply would stand with this new configuration (same amount of relays but DPDT instead of DPST.

Standard relays do mean a powerfull suply + opto isolation in my case...
Regarding this, I think I should go for SSR relays. Moreover, I read somewhere that there are "quiter" because of the no moving mechanical parts (and therefore, no possible generated noise from one state to another).

Thanks for all this help :slight_smile: !

Instead of using the regulator on the board - use an externally regulated power supply - you can get these quite cheaply and at anything upto 3 amps off the shelf.

I would use i2c as much as possible - it is the way i am going.

Could you not just build a custom board with the SSRs, i2c modules etc and then just connect that to your arduino with two wires for i2c - if you made it in shield compatible format then you could just stack them together - that way you could just use a standard arduino board (or better yet a Mega so you do not run out of RAM etc)

Craig

craigcurtin:
Instead of using the regulator on the board - use an externally regulated power supply - you can get these quite cheaply and at anything upto 3 amps off the shelf.

I would use i2c as much as possible - it is the way i am going.

Could you not just build a custom board with the SSRs, i2c modules etc and then just connect that to your arduino with two wires for i2c - if you made it in shield compatible format then you could just stack them together - that way you could just use a standard arduino board (or better yet a Mega so you do not run out of RAM etc)

Craig

I already used an external regulator on my prototype (7805) which delivers me 1A. With classic relays, It may be unsufficient. But with SSR I think it would be OK.
As for the custom board without the arduino itself, that's exactly what I did on my first prototype. But this leads me to some space issue as I only have 2.5 cm in height. Besides, a arduino is around 20€-30€, but the necessary parts only cost a few euros to build the "essential" core : as I have an external regulator, I do not need the power regulator, the ftdi chip, usb jack etc. This could leads me to a 7~8€ arduino core components. That's a drastic improvment :slight_smile:

I did buy a arduino nano for prototyping/debugging purpose thougth :slight_smile: With the extensive use of I2C, I might be able not to use any other pin at all. My only concern is wether or not I would be able to chain multiple I2C chips depending on their addressing.
I need chain 4 maybe 5 chips :
Port expander (x2, maybe 3)
EEPROM (after some calculations, the internal EEPROM won't be enough)
SAA1064 (7 segments led driver) or equivalent