Hi, a few thoughts:
Yes, as far as I know the SSRez connects one side of the opto-coupler to 5V and then when the other side is grounded (current is sunk to ground) by the Due the relay turns on. I am not sure that running at 3.3V would cause random flicker when the units where supposed to be off, if anything it might cause the units to not turn on reliably (see below).
Some triacs can switch on with mains voltage spikes, what part number are you using?
Are there long runs between the Due and the SSRez?
Are you using cat5 or a similar twisted pair cable?
Does mains run alongside the ‘data’ cable?
With regard to level shifters:
From the data sheet -
http://www.farnell.com/datasheets/97984.pdf
Page 2, INPUT LED, Forward Voltage is 1.15V (Typically).
From that we can work out the voltage dropped by the resistor and the current flowing:
5V (supply) – 1.15V (dropped by the INPUT LED) = 3.85V (dropped by the resistor).
From the schematic -
https://www.doityourselfchristmas.com/wiki/index.php?title=SSRez
The resistor is 680R.
Ohms Law: V (Voltage) = I (Current) * R (Resistance).
Transposed: I = V / R
I = 3.85V / 680R = 5.7mA.
So with a 5V supply 5.7mA flows through the opto-coupler to then turn on the triac.
When 3.3V is supplied:
3.3V (supply) – 1.15V (dropped by the INPUT LED) = 2.15V (dropped by the resistor).
Transposed: I = V / R
I = 2.15V / 680R = 3.1mA.
So with a 3.3V supply 3.1mA flows through the opto-coupler to then turn on the triac.
Will this work reliably?
We need to know when using PWM what is the shortest pulse we send to the opto-coupler.
I am guessing your mains frequency is 60Hz. There are 120 half cycles in a second each lasting:
1 Second / 120 Half cycles = 0.0083 Seconds or 8.3mS.
Each of these 8.3mS half cycles can be broken down into 255 ‘DMX’ time values. For full brightness you would have the triac on for 225 and for very dim you could have the triac on for only 1.
8.3mS / 255 = 0.032mS or 32uS.
The shortest pulse we will ever send is 32uS.
From the data sheet again.
Page 2, Figure 4. LED Current Required to Trigger versus LED Pulse Width.
If you look at the vertical axis the first marker line is not labelled but we can work out it is 2.5mA. Following it across to where it meets the curve and moving down we can see this is at 10uS on the horizontal axis.
This means that a current of 2.5mA for 10uS is enough to switch on the opto-coupler and by default the triac. As we have worked out that you even at 3.3V you are supplying 3.1mA for 32uS this should work (good values are above the line on the graph in Figure 4).
With regard to your post and problems:
Flicker when the unit should be ‘off’, I’d look at interference in the cables and triac types.
Flicker when the units should be ‘on’, I’d be thinking about a level shifter or changing the 680R resistors (or adding a second resistor in parallel) to increase the current to closer to 5mA.
I hope that is some help if a little long winded.