Check the starter cable itself from the starter to the solenoid.
I had the same problem, the starter cable was not routed properly.
Some previous owner must have had the starter off, when they refitted it, the cable was not through the rubber bush behind the sprocket cover.
The sprocket cover was then screwed on crushing the starter cable, cable shorts to the case and therefore to ground.
Starter turns slowly and I was getting whisps of smoke from the point at which the cable was pinched.