Erwägungen:
1.
Die Staatsanwaltschaft des Kantons Schaffhausen führt gegen A._ ein Strafverfahren wegen Diebstahl und weiterer Delikte. Am 14. Februar 2017 wurde er festgenommen und mit Verfügung vom 17. Februar 2017 vom Zwangsmassnahmengericht des Kantons Schaffhausen in Untersuchungshaft versetzt. Eine dagegen erhobene Beschwerde wies das Obergericht des Kantons Schaffhausen mit Entscheid vom 17. März 2017 ab.
2.
Mit Beschwerde in Strafsachen ans Bundesgericht vom 23. April 2017 beantragt A._ im Wesentlichen, der Entscheid des Obergerichts sei aufzuheben und er selbst sei aus der Untersuchungshaft zu entlassen.
Die Staatsanwaltschaft und das Obergericht haben eine Vernehmlassung eingereicht. Der Beschwerdeführer hat dazu Stellung genommen.
3.
Nach <ref-law> ist die Beschwerde innert 30 Tagen nach der Eröffnung der vollständigen Ausfertigung des angefochtenen Entscheids beim Bundesgericht einzureichen. Diese gesetzliche Frist ist nicht erstreckbar (<ref-law>). In Fällen der strafprozessualen Haft gilt der Fristenstillstand gemäss <ref-law> nicht (<ref-ruling> E. 1.2 S. 273 ff.; Urteil 1B_275/2015 vom 29. September 2015 E. 2, in: SJ 2016 I S. 91; je mit Hinweisen).
Gemäss der in den Akten liegenden Empfangsbestätigung wurde der angefochtene Entscheid dem Rechtsvertreter des Beschwerdeführers am 21. März 2017 zugestellt. Die Beschwerdefrist lief am 20. April 2017 ab. Die Eingabe des Beschwerdeführers, die dieser nach eigenen Angaben am 24. April 2017 dem Gefängnispersonal abgab und die gemäss Poststempel einen Tag später der Schweizerischen Post übergeben wurde (<ref-law>), ist somit verspätet.
4.
Auf die Beschwerde ist nicht einzutreten.
Der Beschwerdeführer stellt ein Gesuch um unentgeltliche Rechtspflege. Da sein Rechtsbegehren unter den gegebenen Umständen aussichtslos ist, ist das Gesuch abzuweisen (<ref-law>). Von einer Kostenauflage ist dennoch abzusehen (<ref-law>).

Demnach erkennt der Einzelrichter:
1.
Auf die Beschwerde wird nicht eingetreten.
2.
Das Gesuch um unentgeltliche Rechtspflege wird abgewiesen.
3.
Es werden keine Gerichtskosten erhoben.
4.
Dieses Urteil wird dem Beschwerdeführer, der Staatsanwaltschaft des Kantons Schaffhausen, dem Kantonsgericht Schaffhausen, Zwangsmassnahmengericht, dem Obergericht des Kantons Schaffhausen und Thomas Heeb schriftlich mitgeteilt.
Lausanne, 17. Mai 2017
Im Namen der I. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Einzelrichter: Karlen
Der Gerichtsschreiber: Dold