Maybe the pause time is to long between steps, the decay of the field has probably occured before the next coil has been energised, thus has nothing to work with, reduce time from 500 to 50 or even lower. Also you need to zero b1 on the reverse leg of your code.......🤞
Reminder to myself to double check post before posting!
You are of course correct Mr Benson, serout pin is C.3 and not B.3 which I incorrectly posted for some odd reason........DOH.