johnwasser:
If you use analogWrite() on a non-PWM pin you get LOW for values below 512 and HIGH for higher values.
128, not 512.
case NOT_ON_TIMER:
default:
if (val < 128) {
digitalWrite(pin, LOW);
} else {
digitalWrite(pin, HIGH);
}