Skip to main content

Haskino: A Remote Monad for Programming the Arduino

  • Conference paper
  • First Online:
Practical Aspects of Declarative Languages (PADL 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9585))

Included in the following conference series:

Abstract

The Haskino library provides a mechanism for programming the Arduino microcontroller boards in high level, strongly typed Haskell instead of the low level C language normally used. Haskino builds on previous libraries for Haskell based Arduino programming by utilizing the recently developed remote monad design pattern. This paper presents the design and implementation of the two-level Haskino library. This first level of Haskino requires communication from the host running the Haskell program and the target Arduino over a serial link. We then investigate extending the initial version of the library with a deep embedding allowing us to cut the cable, and run the Arduino as an independent system.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Erkok, L.: Hackage package hArduino-0.9 (2014)

    Google Scholar 

  2. Gill, A., Sculthorpe, N., Dawson, J., Eskilson, A., Farmer, A., Grebe, M., Rosenbluth, J., Scott, R., Stanton, J.: The remote monad design pattern. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 59–70. ACM (2015)

    Google Scholar 

  3. Steiner, H.C.: Firmata: Towards making microcontrollers act like extensions of the computer, pp. 125–130 (2009)

    Google Scholar 

  4. Elliott, C.: Hackage package boolean-0.2.3 (2013)

    Google Scholar 

  5. Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming (1997)

    Google Scholar 

  6. Elliott, C., Finne, S., de Moor, O.: Compiling embedded languages. J. Funct. Program. 13(2), 455–481 (2003)

    Article  MATH  Google Scholar 

  7. Elliott, T., Pike, L., Winwood, S., Hickey, P., Bielman, J., Sharp, J., Seidel, E., Launchbury, J.: Guilt free ivory. In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell, pp. 189–200. ACM (2015)

    Google Scholar 

  8. Axelsson, E., Claessen, K., Dévai, G., Horváth, Z., Keijzer, K., Lyckegård, B., Persson, A., Sheeran, M., Svenningsson, J., Vajdax, A.: Feldspar: a domain specific language for digital signal processing algorithms. In: MEMOCODE 2010, pp. 169–178 (2010)

    Google Scholar 

  9. Axelsson, E., Claessen, K., Sheeran, M., Svenningsson, J., Engdal, D., Persson, A.: The design and implementation of feldspar. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 121–136. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  10. Persson, A., Axelsson, E., Svenningsson, J.: Generic monadic constructs for embedded languages. In: Gill, A., Hage, J. (eds.) IFL 2011. LNCS, vol. 7257, pp. 85–99. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  11. Sculthorpe, N., Bracker, J., Giorgidze, G., Gill, A.: The constrained-monad problem. In: Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, pp. 287–298. ACM (2013)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Svenningsson, J., Axelsson, E.: Combining deep and shallow embedding for EDSL. In: Loidl, H.-W., Peña, R. (eds.) TFP 2012. LNCS, vol. 7829, pp. 21–36. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  14. Svenningsson, J.D., Svensson, B.J.: Simple and compositional reification of monadic embedded languages. In: Proceedings of the 18th International Conference on Functional Programming, pp. 299–304. ACM (2013)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mark Grebe .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Grebe, M., Gill, A. (2016). Haskino: A Remote Monad for Programming the Arduino. In: Gavanelli, M., Reppy, J. (eds) Practical Aspects of Declarative Languages. PADL 2016. Lecture Notes in Computer Science(), vol 9585. Springer, Cham. https://doi.org/10.1007/978-3-319-28228-2_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-28228-2_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-28227-5

  • Online ISBN: 978-3-319-28228-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics