Faits: A. Par jugement du 21 avril 2009 - sur opposition à une ordonnance pénale rendue par le Juge d'instruction -, le Juge de police de l'arrondissement de la Sarine a condamné A._ à sept jours-amende à 10 fr. et à 200 fr. d'amende pour infractions à la LCR et contravention à la LStup. A._ a formé appel, par acte du 1er juillet 2009, auprès de la Cour d'appel pénal du Tribunal cantonal fribourgeois. Dans sa réponse au recours, le Ministère public, agissant par le Substitut du Procureur B._, a conclu à l'irrecevabilité de l'appel pour motivation insuffisante. Dans ses observations complémentaires du 11 septembre 2009, A._ a requis la récusation du Substitut, en faisant valoir que ce dernier, qu'il connaissait depuis longtemps, lui avait donné des cours de droit dans un collège privé, et aurait été licencié "un peu à cause de [lui]", A._ ayant mis en doute ses compétences. Le Substitut aurait aussi déclaré à un inspecteur qu'il "voulait [sa] peau et celle de [son] frère". Le Substitut s'est déterminé sur cette demande de récusation en relevant qu'il agissait en tant que partie à la procédure, qu'il ne s'était déterminé que sur la recevabilité du recours, qu'il ne se souvenait que vaguement du recourant, qu'il n'avait pas connu de problèmes relationnels avec ses étudiants et qu'il n'avait pas été licencié. Les autres allégués relevaient de la calomnie, et leur auteur était invité à les retirer dans les trente jours, faute de quoi le dépôt d'une plainte pénale serait envisagé. B. Par arrêt du 3 novembre 2009, la Chambre pénale du Tribunal cantonal, compétente en la matière, a rejeté la demande de récusation. Les art. 29, 30 Cst. et 6 CEDH n'exigeaient pas la récusation d'un magistrat intervenant comme partie au procès, se bornant à soutenir l'accusation et à conclure à l'irrecevabilité du recours. Compte tenu de l'attitude de l'inculpé durant la procédure, les faits invoqués dans la demande de récusation n'étaient pas crédibles C. Par acte du 23 novembre 2009, A._ forme un recours contre l'arrêt cantonal. Il déclare maintenir sa demande de récusation. Il a requis, par la suite, l'assistance judiciaire. La Chambre pénale a renoncé à présenter des observations. Le Ministère public conclut au rejet du recours dans la mesure où il serait recevable, en précisant que l'appel a été déclaré irrecevable par arrêt de la Cour d'appel pénal du 1er décembre 2009. 