Sachverhalt: A. Die Staatsanwaltschaft des Kantons Schaffhausen erhob am 30. Juni 2008 beim Kantonsgericht Anklage gegen X._ wegen qualifizierter Widerhandlung gegen das Betäubungsmittelgesetz. Am 2. Juli 2009 lud das Kantonsgericht des Kantons Schaffhausen X._ zur Hauptverhandlung vom 4. November 2009 vor; dabei wurde die Besetzung des Gerichts bekanntgegeben und vermerkt, dass die Hauptverhandlung zusammen mit derjenigen gegen Y._ stattfinden werde. Am 27. Oktober 2009 stellte X._ Gesuch, ihn von der Teilnahme an der Hauptverhandlung zu dispensieren, da er krankheitsbedingt nicht verhandlungsfähig sei. Die Hauptverhandlung könne ohne seine Anwesenheit stattfinden; sein Verteidiger werde daran teilnehmen und ihn wirksam verteidigen. Am 30. Oktober 2009 setzte das Kantonsgericht die Verhandlung gegen X._ ab. Am 4. November 2009 führte das Kantonsgericht die Hauptverhandlung gegen Y._ durch. B. Am 11. Februar 2010 stellte X._ gegen das Kantonsgericht ein Ablehnungsbegehren mit dem Antrag, den Prozess gegen ihn an ein auswärtiges Gericht zu überstellen. Am 1. April 2010 trat der Präsident des Obergerichts des Kantons Schaffhausen auf das Ausstandsgesuch nicht ein. Mit Beschwerde in Strafsachen beantragt X._, den Entscheid des Obergerichtspräsidenten aufzuheben und ihn einzuladen, auf das Ausstandsgesuch einzutreten und es materiell zu behandeln. Eventualiter sei ihm unentgeltliche Rechtspflege und Verbeiständung zu gewähren. C. Ohne einen Antrag zu stellen weist der Obergerichtspräsident in seiner Vernehmlassung die gegen seinen Entscheid erhobenen Einwände zurück. Das Kantonsgericht beantragt, die Beschwerde abzuweisen. X._ hält in seiner Replik an der Beschwerde fest. In ihren Dupliken, die dem Beschwerdeführer am 26. Mai 2010 zugestellt worden sind, halten der Obergerichtspräsident und das Kantonsgericht an ihren Standpunkten fest. 