After trying various versions of the DCC Code and Servo Code I am still experiencing issues with Servo Jitter. Even when not activating the DCC Code it looks like the interrupts have sufficient impact on the timings of the Arduino to make the servos unstable.
I’m now setting up a test rig using one Arduino as a DCC to I2C bridge, this performs all the DCC decoding and sends a simple I2C message to the Arduino controlling the servos. I’ve not worked out the details yet but all I am thinking of is passing the servo number and position (straight/thrown) to the controller board. The controller will then change the state of the servo as instructed.
Ok, so things are progressing slowly at the moment. I’m testing a setup with the NMRA Arduino DCC Code at the moment – details can be found here. I’m using the ‘standard’ DCC interface circuit at the moment –
However, I am finding that there is a noticeable amount of jitter present on the servos. Strangely enough, disconnecting the DCC input resolves the issue. I can only assume at this stage that this is probably being introduced by the AC DCC signal?
After testing with various Masturbator servo drivers I came across this blog by ‘arvid’ – it’s designed for controlling 20 servos. This is too many for Another my requirements, and, it also means that pin 2 gets used up by a servo – no good as I need pin 2 for the DCC interface. However, after a quick note to ‘arvid’ he came back with a suggestion to help modify the code for my use. I’ll report back as I go on with the testing.