Amalgam: Hardware Hacking for Web Developers with Style (Sheets)

  • Jorge GarzaEmail author
  • Devon J. Merrill
  • Steven Swanson
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11496)


Web programming technologies such as HTML, JavaScript, and CSS have become a popular choice for user interface design due to their capabilities: flexible interface, first-class networking, and available libraries. In parallel, driven by the standards set by the mobile companies, embedded devices manufacturers now want to replicate these capabilities. As a result, embedded devices that use web technologies for their graphical interface have started to emerge. However, the programming effort required to integrate web technologies with embedded software hinders its adaption. In this paper, we introduce Amalgam, a system that facilitates the development of embedded devices that use web programming technologies. Amalgam does this by translating the physical interface of embedded hardware components found (e.g., a push button) directly into the HTML and CSS syntax. Our system reduces the programming effort required to develop new embedded devices that use web technologies, as well as adds new interesting capabilities to the design of these. We show Amalgam’s capabilities by exploring three embedded devices built using web programming technologies. Also, we demonstrate how Amalgam reduces programming effort by comparing two traditional approaches of building one of these devices against Amalgam. Results show our system reduces the lines of code required to integrate hardware elements into an embedded device application to a line of code per hardware component added to the device.


Rapid development Embedded devices IoT Web user interface CSS HTML 


  1. 1.
    AngularJS - Superheroic JavaScript MVW Framework.
  2. 2.
  3. 3.
    Electron—Build Cross Platform Desktop Apps with JavaScript, HTML, and CSS.
  4. 4.
  5. 5.
  6. 6.
    Johnny-Five: The JavaScript Robotics & IoT Platform.
  7. 7.
    Linuxduino - A JavScript Library for Communicating with Hardware in a Arduino Style Programming for Any Linux Platform.
  8. 8.
  9. 9.
    Raspberry Pi - Teach, Learn, and Make with Raspberry Pi.
  10. 10.
    Rythm.js - GitHub Pages.
  11. 11.
    Specifications -
  12. 12.
    Web Bluetooth Community Group.
  13. 13.
  14. 14.
    YouTube Player API Reference for iframe Embeds - Google Developers.
  15. 15.
    Volder, K.: JQuery: a generic code browser with a declarative configuration language. In: Van Hentenryck, P. (ed.) PADL 2006. LNCS, vol. 3819, pp. 88–102. Springer, Heidelberg (2005). Scholar
  16. 16.
    Dürkop, L., Imtiaz, J., Trsek, H., Jasperneite, J.: Service-oriented architecture for the autoconfiguration of real-time ethernet systems. In: 3rd Annual Colloquium Communication in Automation (KommA) (2012)Google Scholar
  17. 17.
    EETimes: 2017 Embedded Markets Study: Integrating IoT and Advanced Technology Designs, Application Development Processing Environments, April 2017.
  18. 18.
    Gavrin, E., Lee, S.J., Ayrapetyan, R., Shitov, A.: Ultra lightweight JavaScript engine for Internet of Things. In: Companion Proceedings of the 2015 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH Companion 2015, pp. 19–20. ACM, New York (2015).
  19. 19.
    Guan, G., Dong, W., Gao, Y., Fu, K., Cheng, Z.: TinyLink: a holistic system for rapid development of IoT applications. In: Proceedings of the 23rd Annual International Conference on Mobile Computing and Networking, pp. 383–395. ACM (2017)Google Scholar
  20. 20.
    Guinard, D., Trifa, V.: Towards the Web of Things: web mashups for embedded devices. In: Workshop on Mashups, Enterprise Mashups and Lightweight Composition on the Web (MEM 2009), in Proceedings of WWW (International World Wide Web Conferences), Madrid, vol. 15 (2009)Google Scholar
  21. 21.
    Kuc, R., Jackson, E.W., Kuc, A.: Teaching introductory autonomous robotics with JavaScript simulations and actual robots. IEEE Trans. Educ. 47(1), 74–82 (2004)CrossRefGoogle Scholar
  22. 22.
    Locke, D.: MQ Telemetry Transport (MQTT) v3. 1 Protocol Specification. IBM Developer Works Technical Library (2010)Google Scholar
  23. 23.
    Osentoski, S., Jay, G., Crick, C., Pitzer, B., DuHadway, C., Jenkins, O.C.: Robots as web services: reproducible experimentation and application development using rosjs. In: IEEE International Conference on Robotics and Automation (ICRA), pp. 6078–6083. IEEE (2011)Google Scholar
  24. 24.
    Schlett, M.: Trends in embedded-microprocessor design. Computer 31(8), 44–49 (1998). Scholar
  25. 25.
    Villar, N., Scott, J., Hodges, S., Hammil, K., Miller, C.:NET gadgeteer: a platform for custom devices. In: Kay, J., Lukowicz, P., Tokuda, H., Olivier, P., Krüger, A. (eds.) Pervasive 2012. LNCS, vol. 7319, pp. 216–233. Springer, Heidelberg (2012). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Department of Computer Science and EngineeringUniversity of California San DiegoSan DiegoUSA

Personalised recommendations