Runs smooth with choke on means the engine is getting too much air (also known as running lean) and/or too little fuel. This is generally caused by 1 of 2 problems:
1. Blocked fuel flow in the carburetor. The smallest bit of gunk or slime can partially clog a jet or other small part. This results in too little fuel reaching the engine. Choking the carburetor gets the fuel/air mixture "correct" and it runs smooth. When you pull the choke off, too much air gets in and the engine runs rough. This is generally the case if the engine was put away with fuel in the tank and left to sit more that 45 days. The fuel goes bad, clogs up the carb, and you've got a blocked main jet or other part.
2. Vacuum leak: A gasket or other part of the carburetor is sucking in air (again, too much air). Choking the engine make sit smooth, as you reduce the air level to a "correct" level for the fuel that is flowing.
To Fix 1, clean the carb with carb cleaner and compressed air. You may just want to put on a whole new carb; often they can be purchased for <$30 new.
To Fix 2, install new gaskets, and pay attention to the order and orientation. Get one backwards and you'll have a leak.
-Robert@Honda
Caveat: I work for Honda, but the preceding is my opinion alone.
This message was modified Apr 29, 2013 by robertcoats