Sorry you are having all this trouble @rachtho . It’s frustrating when you car won’t start reliably. I had a similar problem with my early 90’s Corolla and finally got to the bottom of it. Before I finally fixed the problem, I had to park facing downhill all the time! lol …
When you say it won’t “start”, I’m assuming when this happens you mean it won’t “crank”. You know, that "rrrrr rrrrr rrrr " sound the engine makes just before it starts running. You may hears some clicks, but no “rrr rrr rrr”.
The first thing to do is the mechanic should measure the voltage at both terminals of the starter (between the terminal and starter case) during attempted cranking. If both are above 10.5 volts (during attempted cranking), and it doesn’t start, the problem is most likely a bad starter motor. On the other hand, if either or both are below 9.5 volts, there’s something wrong with the electrical system prior to the starter. A good starter still won’t crank at 9.5 volts and below. That’s the minimum voltage needed. There’s no point in replacing a starter motor if it isn’t being fed the proper voltage.
If your readings are in between 9.5 volts and 10.5 volts, the quickest way to a solution is to find out why. In theory it should start at 9.6 volts, but that is if everything is ideal. So don’t do battle with ideal. Diagnose why it is below 10.5 volts, then do what it takes to get the reading 10.5 volts or above in other words is the first priority.
If the problem is indeed a bad starter, either have it replaced with another, or take the existing one to your local auto electric shop and have it repaired. If the existing one is a Toyota branded starter purchased at a dealership, I think the better option is to have it repaired, rather than purchasing another. It will be less expensive and more likely to work. There’s been numerous complaints here in the past about poor quality rebuilt parts from offshore suppliers. I got a bad starter myself and had to take it back a couple years ago.
If the problem is the electrical system, well, for a car to crank several things have to be working correctly
- The battery must be in good shape and fully charged.
- The electrical connections at the battery must be clean and tight.
- Both connections at the starter motor must be clean and tight.
- The ground between the starter case and the engine, and then to the battery ground terminal must, for the whole path, be below 0.005 ohms.
- If your car uses a starter relay (a small box shaped electrical gadget inside the passenger compartment), it must be working correctly.
- If an automatic, the neutral start switch must be working and have a “on” resistance that meets specs. If a manual xmission, the clutch safety switch must be working and have a “on” resistance that meets specs.
- The ignition switch, in the “start” position, the “on” resistance must meet specs.
There are other less likely problems that will cause this too. The starter alignment may not be correct, and may not be properly engaging with the flywheel in “start”. Or the flywheel teeth might be damaged. Or the engine is locked up for some reason. But all those problems usually result in weird noises or will be evident once the starter is removed. Since you don’t mention these problems, I assume your mechanic has already checked on these.
Edit: One other caveate, a starter motor coil can get shorted out. When this happens is will cause the voltage to be low during attempted cranking, even though the electrical system is ok. To prove/disprove, the mechanic can measure the coil resistance and compare to the specs.
Best of luck.