I used 4 lines of hal suggested by 'Clive S' from the last time I tried:
net spindle-position hm2_5i25.0.encoder.01.position => motion.spindle-revs
net spindle-velocity hm2_5i25.0.encoder.01.velocity => motion.spindle-speed-in
net spindle-index-enable hm2_5i25.0.encoder.01.index-enable <=> motion.spindle-index-enable
setp hm2_5i25.0.encoder.01.scale 144
Table motion appears to follow my DIY optical encoder, I can hear the steppers changing pitch as they follow the errors in the crappy encoder. Main problem is the optical disc is running eccentrically, I'll have another go at getting it to run true but I think I need something better.
Thank you to everyone who have shared their knowledge, both this time and my last failed attempt.