Abstract
Programming embedded microcontrollers often requires the scheduling of independent threads of execution, specifying the interaction and sequencing of actions in the multiple threads. Developing and debugging such multi-threaded systems can be especially challenging in highly resource constrained systems such as the Arduino line of microcontroller boards. The Haskino library, developed at the University of Kansas, allows programmers to develop code for Arduino-based microcontrollers using monadic Haskell program fragments. This paper describes our efforts to extend the Haskino library to translate monadic Haskell code to multi-threaded code executing on Arduino boards.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Grebe, M., Gill, A.: Haskino: a remote monad for programming the Arduino. In: Gavanelli, M., Reppy, J. (eds.) PADL 2016. LNCS, vol. 9585, pp. 153–168. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-28228-2_10
Erkok, L.: Hackage package hArduino-0.9 (2014)
Steiner, H.C.: Firmata: towards making microcontrollers act like extensions of the computer. In: New Interfaces for Musical Expression, pp. 125–130 (2009)
Gill, A., et al.: The remote monad design pattern. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 59–70. ACM (2015)
Gill, A., Dawson, J.: Hackage package remote-monad-0.2 (2016)
Elliott, C.: Hackage package boolean-0.2.3 (2013)
Koopman, P., Plasmeijer, R.: A shallow embedded type safe extendable DSL for the Arduino. In: Serrano, M., Hage, J. (eds.) TFP 2015. LNCS, vol. 9547, pp. 104–123. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39110-6_6
Hickey, P.C., Pike, L., Elliott, T., Bielman, J., Launchbury, J.: Building embedded systems with embedded DSLs. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming, pp. 3–9. ACM (2014)
Elliott, T., et al.: Guilt free ivory. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 189–200. ACM (2015)
Lindberg, R.: Hackage package frp-arduino-0.1.0.3 (2015)
Farmer, A., Sculthorpe, N., Gill, A.: Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 23–34. ACM (2015)
Acknowledgment
This material is based upon work supported by the National Science Foundation under Grant No. 1350901.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Grebe, M., Gill, A. (2019). Threading the Arduino with Haskell. In: Van Horn, D., Hughes, J. (eds) Trends in Functional Programming. TFP 2016. Lecture Notes in Computer Science(), vol 10447. Springer, Cham. https://doi.org/10.1007/978-3-030-14805-8_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-14805-8_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-14804-1
Online ISBN: 978-3-030-14805-8
eBook Packages: Computer ScienceComputer Science (R0)