steam train crank

I got this working somehow - now i don’t know how
see the bar that "joins’ the two big wheels?

well it don’t now! is the blend file.
how do i get the bar to go round with the wheels?
I only used parenting and constraint - one or both.
Oh just remembered. when i did whatever i did the bar/crank stayed in the same place. not like with track it goes to a funny angle i you have to put it back.
but no combination now seems to work

add another empty, put a copy loc constraint on it to “pin1”
parent the bar to the new empty.

alternatively, moves the bar’s center to pin1, and copy loc to pin1

also, the small bar connecting the piston to the first wheel doesn’t match up exactly.
you might look into using an armature setup with rotation constraints to drive the wheel system.

thanks for your help