Faits :
A.
Par ordonnance pénale du 19 juin 2017, Le Ministère public fribourgeois a condamné A._ à 300 fr. d'amende pour contraventions à la loi d'application du code pénal (contravention aux ordres de la police, désordre ou tapage, trouble à la tranquillité publique). A._ a fait opposition à cette ordonnance et la cause a été transmise au Juge de police de l'arrondissement de la Sarine (ci-après: le Juge de police).
Par citation à comparaître du 9 août 2017, le Juge de police a fixé des débats au 23 août 2017. A._ ne s'étant pas présenté, le Juge de police a considéré que l'opposition était retirée et a rayé la cause du rôle. Cette décision a toutefois été annulée par la Chambre pénale du Tribunal cantonal fribourgeois et la cause a été renvoyée au Juge de police en vue de la fixation d'une nouvelle audience. A._ a requis la récusation du Juge de police, requête écartée par arrêt de la Chambre pénale du 31 janvier 2018 (cf. arrêt du Tribunal fédéral 1B_82/2018 du 3 mai 2018 confirmant ce prononcé). Par citation du 17 juillet 2018, les débats ont été fixés au 29 août 2018. Par lettre du 28 juillet 2018, A._ a fait savoir qu'il n'était pas en mesure d'assister à une audience en raison de son état de santé et a remis un certificat médical daté du 18 juillet 2018 attestant du fait qu' "il n'est pas possible d'exiger... sa présence devant la Justice actuellement". Le 17 août 2018, après réception d'un exemplaire signé de ce certificat, le Juge de police a renvoyé les débats sine die. Relancé par le juge, A._ a produit en janvier et en mai 2019 des certificats médicaux attestant de la nécessité d'éviter des situations stressantes, en raison de céphalées. Le 8 juin 2019, il a transmis au Juge de police un nouveau certificat attestant de "céphalées tensionnelles persistantes, survenues après un accident ayant causé un traumatisme crânien. Ces céphalées sont exacerbées par les situations de stress ainsi que par les tâches exigeant une concentration importante... Dans ce contexte, je recommande au patient d'éviter les situations stressantes, de pratiquer une activité physique douce régulière et de maintenir des activités sociales ainsi que des activités stimulant la mémoire". Par citation à comparaître du 19 juillet 2019, le Juge de police a fixé des débats au 17 septembre 2019. A._ a répondu le 31 juillet 2019 qu'il n'était pas en mesure d'y participer en raison de son état de santé qui n'avait pas évolué depuis 2017. Un certificat médical daté du 31 juillet 2019 était joint attestant de "céphalées importantes suite à son accident survenu en décembre 2017. Ces céphalées sont déclenchées par les situations de stress". Par lettre du 5 août 2019, le Juge de police a indiqué que l'audience du 17 septembre 2019 était maintenue, au vu des derniers certificats ne mentionnant nullement une éventuelle impossibilité de comparaître.
B.
Le 14 août 2019, A._ a à nouveau demandé la récusation du Juge de police. Par ordonnance du 21 août 2019, celui-ci, s'estimant habilité à statuer lui-même sur la demande de récusation, l'a rejetée pour tardiveté et l'a qualifiée d'abusive ou de manifestement irrecevable.
A._ a recouru contre cette ordonnance auprès de la Chambre pénale. Sur le vu de ce recours, le Juge de police a révoqué le mandat de comparution. Par arrêt du 9 janvier 2020, La Chambre pénale a rejeté le recours. La demande de récusation ne pouvait être considérée comme tardive, mais elle était insuffisamment motivée car elle ne faisait pas état de fautes lourdes ou répétées commises par le magistrat.
C.
Par acte du 21 janvier 2020, A._ forme un recours au Tribunal fédéral contre l'arrêt cantonal. Il en demande l'annulation et le renvoi de la cause à l'instance précédente pour nouvelle décision dans le sens du recours.
Le dossier de la cause a été produit, sans observations.

Considérant en droit :
1.
Conformément aux art. 78 et 92 al. 1 LTF, une décision relative à la récusation d'un magistrat pénal peut faire immédiatement l'objet d'un recours en matière pénale auprès du Tribunal fédéral. Le recourant, dont la demande de récusation a été rejetée, a qualité pour agir en vertu de l'<ref-law>. Formé en temps utile contre une décision prise en dernière instance cantonale, le recours est recevable au regard des art. 80 al. 1 et 100 al. 1 LTF.
2.
Le recourant relève que les premiers certificats médicaux produits à l'appui de ses demandes de dispense de comparaître avaient été jugés suffisants et que le Juge de police aurait opéré sans raison un revirement au mois de juillet 2019, parallèlement à un autre magistrat de police (avec lequel il se serait indûment concerté) et alors que son état de santé n'avait pas changé, un Tribunal de Neuchâtel l'ayant dispensé de comparution sur la base des mêmes certificats médicaux. Le recourant relève que la cour cantonale avait déjà admis un recours contre une première convocation. Le fait d'avoir décidé lui-même sur sa propre récusation constituerait une autre faute grave de la part du magistrat dont les manquements seraient ainsi suffisamment nombreux pour justifier sa récusation.
2.1. Selon la jurisprudence, les parties à une procédure ont le droit d'exiger la récusation d'un membre d'une autorité dont la situation ou le comportement sont de nature à faire naître un doute sur son impartialité. Cette garantie tend notamment à éviter que des circonstances extérieures à la cause puissent influencer une appréciation en faveur ou au détriment d'une partie. Elle n'impose pas la récusation seulement lorsqu'une prévention effective est établie, car une disposition interne de l'intéressé ne peut guère être prouvée; il suffit que les circonstances donnent l'apparence de la prévention et fassent redouter une activité partiale. Seules des circonstances constatées objectivement doivent être prises en considération; les impressions individuelles d'une des parties au procès ne sont pas décisives (<ref-ruling> consid. 3.2.1 p. 179). Des décisions ou des actes de procédure qui se révèlent par la suite erronés ne fondent pas en soi une apparence objective de prévention; seules des erreurs particulièrement lourdes ou répétées, constitutives de violations graves des devoirs du magistrat, peuvent fonder une suspicion de partialité, pour autant que les circonstances dénotent que la personne en cause est prévenue ou justifient à tout le moins objectivement l'apparence de prévention (<ref-ruling> consid. 3.2.3 p. 180).
2.2. La décision du 23 août 2017 prenant acte du retrait de l'opposition en raison de l'absence du recourant à l'audience du même jour a été annulée par arrêt de la Chambre pénale du 10 novembre 2017, la citation n'étant pas parvenue au recourant dix jours au moins avant l'audience. On ne saurait y voir une irrégularité grave dès lors que la citation avait bien été adressée plus de dix jours avant l'audience, mais reçue le 17 août seulement à l'échéance du délai de garde pour les envois non retirés. Cette irrégularité a d'ailleurs été réparée, sans aucun inconvénient pour le recourant, et ne constituait pas une erreur propre à justifier une récusation, comme l'a d'ailleurs déjà retenu le Tribunal fédéral dans son arrêt du 3 mai 2018 (1B_82/2018 consid. 2.2). Il en va de même du refus de renvoyer l'audience du 17 septembre 2019. Si le Juge de police a accepté plusieurs renvois d'audience sur le vu des premiers certificats médicaux produits, il pouvait se montrer plus exigeant par la suite: plus de deux ans s'étaient écoulés depuis la saisine du Tribunal, de sorte qu'un nouveau renvoi ne pouvait être obtenu que pour des raisons impérieuses, sauf à violer le principe de célérité (<ref-law>). Le Juge de police pouvait considérer que de telles raisons faisaient défaut dès lors que les derniers certificats médicaux préconisaient d'éviter les situations stressantes, mais ne faisaient pas état d'une impossibilité absolue de comparaître en justice. L'écoulement du temps et la teneur des certificats justifient ainsi la décision du magistrat, malgré les précédentes décisions et une appréciation apparemment différente (bien que le recourant ne donne aucun détail à ce sujet) de magistrats d'un autre canton. Le refus de renvoyer l'audience ne saurait dès lors justifier une récusation.
Quant aux autres motifs de récusation soulevés, notamment la connivence alléguée avec un autre juge et le fait que le Juge de police a statué lui-même sur sa propre récusation, ils n'ont pas été soulevés à l'occasion du recours cantonal, le recourant ayant expressément limité ses griefs aux questions relatives à ses certificats médicaux. Dans la mesure où le recourant a pu saisir la cour cantonale d'un recours contre le refus du magistrat de se récuser, la décision de celui-ci a la même portée que la prise de position exigée à l'<ref-law> et ne saurait dénoter une quelconque prévention à l'égard du recourant.
Les allégations générales à l'égard des autorités fribourgeoises ne sauraient non plus justifier une récusation, comme l'a maintes fois rappelé le Tribunal fédéral (cf. notamment arrêt 1B_414/2018 du 26 septembre 2018).
C'est dès lors sans violer le droit fédéral que la cour cantonale a retenu que les motifs allégués étaient insuffisants pour justifier une récusation.
3.
Le recours doit par conséquent être rejeté dans la mesure où il est recevable, selon la procédure simplifiée prévue à l'<ref-law>. Conformément à l'<ref-law>, les frais judiciaires - réduits compte tenu des circonstances - sont mis à la charge du recourant qui succombe.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 500 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal de l'Etat de Fribourg, Chambre pénale, et au Ministère public de l'Etat de Fribourg.
Lausanne, le 10 février 2020
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
Le Greffier : Kurz