Some question on your boards:1) Does the inputs are insulated?
2) Does the inputs allow powered and not powered mode?
3) Which is your target price?
As per you schematic, you have to connect multiple wires in X4-1 to get the power and use as return X4-3,7 setting a pulldown resistor in the I/O extender. A clean solution could be have a dedicated supply screwed pins for each channel, but I know that this may lead to space problems.
My suggestion is use 12/24V coils in order to lower the current required by the relays, futhermore a DC/DC converter will help you to avoid high temperature in the linear voltage regulator.
Last, regarding the RFM22B is a small and cheap radio that works at different frequencies. If you have space on the bottom of your PCB, you may provide the wiring and a PCB antenna. So, your board may became a wireless one just soldering the small radio on the PCB.
I'm with your opinion. Unfortunately the space left on the board is not so much so I think it's impossible to have three screw pins for each input/output. This will raise the required screws from 7 to 15...
You're right. Having at least 12V coils is a better solution than using 5V relays. I'm not sure if 12V relays will reduce the overall Amps taken from the DC connector (the current sink from the relays is not related to the voltage but it's something proper to the relay mechanics). Having 12V coils will helps to reduce temperatures on the onboard DC power supply. I'll investigate this solution. Actually the board is provided with a DC linear voltage regulator with an input voltage up to 20V but it's mandatory to reduce the current drawn by the circuit to be able to run at this maximum voltage.
This will be sure an option for next board... this one is targeted to RS485.
Yesterday I was able to have the prototype working and running with the optiboot bootloader. It's amazing I'm writing a library to allow users to easily interact with relays and inputs/outputs pins and RS485. I've attached some pictures of the prototypes.Are you interested on test it with Souliss project? I have two prototypes in my hands. As soon I'll terminated to test them and to write the library I can send them to you ... What do you think about?
Hi@shineangelic: thank you and nice to meet you!
@veseo: I've just received two days ago the components I've ordered to play with the switching DC/DC converter. As soon I'll have tested I'll try to replace the linear regulator. I've followed your suggestion and I've ordered the MC33063ADR. The only problem I can see is that it requires bigger capacitor respect a linear regulator so I'll have to understand if there will be space left on the PCB. It will also costs a little bit more than the linear regulator but it will be able to run up to 30V without problems.I've a question for you: as you suggested I'll replace the relays with models working at 12 or 24Volts. Do you think that a separated regulator for that units should needed? My opinion is that is not required but I would like to have your feedback on that.
I think that a reasonable idea should be to propose two versions of the board working at 12 or 24 Volts. The latter would be preferred for domotics installations; the first for other standard usages. What do you think about?
On my side it will not require a regulator at all, the inlet power will be 12V or 24V that is basically yet stable, so it could power directly the relays' coil via the transitor. So, you will have a direct input at 12 or 24V connected on the transistor collector.
I'm really happy that you decided to move on higher voltages, because a long line with 5V supply may result in excessive drop of voltage over the line
That's what I was thinking too. So we have the same opinion. Ok. I'll do like that!
Just a quick update about libraries. I wrote a library that abstracts to the input/output pins and relays and seems working fine. It's able to use some hardware feature built in the SPI expander (like enable/disable the pull-up for each input, reverse the polarity, read the "onchange" event and so on). I'm satisfied about that.I've added also an abstraction layer for the RS485, trying to automagically generate the Tx enable with no user intervention. This last feature, unfortunately, is not completed. I've found some limitations on the arduino serial core library code that prevents the possibility to easily inherit from the serial class in order to auto generate the Tx signal. Actually I've a working set of functions (like, for example, the write(string)) but not all.. For example the writeln and write(float) is not working as expected. I know what's the problem but I'm not able to fix it without changing the arduino core library (and I don't want to do that).I've found other users in the forum with the same problem. I'll investigate a little more when I'll have time.