skip to main content
10.1145/3126594.3126658acmconferencesArticle/Chapter ViewAbstractPublication PagesuistConference Proceedingsconference-collections
research-article
Open Access

Bifröst: Visualizing and Checking Behavior of Embedded Systems across Hardware and Software

Authors Info & Claims
Published:20 October 2017Publication History

ABSTRACT

The Maker movement has encouraged more people to start working with electronics and embedded processors. A key challenge in developing and debugging custom embedded systems is understanding their behavior, particularly at the boundary between hardware and software. Existing tools such as step debuggers and logic analyzers only focus on software or hardware, respectively. This paper presents a new development environment designed to illuminate the boundary between embedded code and circuits. Bifröst automatically instruments and captures the progress of the user's code, variable values, and the electrical and bus activity occurring at the interface between the processor and the circuit it operates in. This data is displayed in a linked visualization that allows navigation through time and program execution, enabling comparisons between variables in code and signals in circuits. Automatic checks can detect low-level hardware configuration and protocol issues, while user-authored checks can test particular application semantics. In an exploratory study with ten participants, we investigated how Bifröst influences debugging workflows.

Skip Supplemental Material Section

Supplemental Material

uistf4553-file3.mp4

mp4

84.7 MB

References

  1. Marzieh Ahmadzadeh, Dave Elliman, and Colin Higgins. 2005. An analysis of patterns of debugging among novice computer science students. ACM SIGCSE Bulletin 37, 3 (2005), 84--88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Arduino. 2017. Arduino Zero. https://www.arduino.cc/en/Main/ArduinoBoardZero. (2017).Google ScholarGoogle Scholar
  3. Tracey Booth, Simone Stumpf, Jon Bird, and Sara Jones. 2016. Crossed Wires: Investigating the Problems of End-User Developers in a Physical Computing Task. In Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems (CHI '16). ACM, NY, NY, USA, 3485--3497. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Michael Bostock, Vadim Ogievetsky, and Jeffrey Heer. 2011. D3 data-driven documents. IEEE transactions on visualization and computer graphics 17, 12 (2011), 2301--2309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cloud9. 2017. Ace - The High Performance Code Editor for the Web. https://ace.c9.io/. (2017).Google ScholarGoogle Scholar
  6. Digilent. 2016. Digilent Electronics Explorer Board. (2016). https://reference.digilentinc.com/electronics_explorer:electronics_explorer Online; accessed 30-March-2016.Google ScholarGoogle Scholar
  7. Daniel Drew, Julie L. Newcomb, William McGrath, filip Maksimovic, David Mellis, and Björn Hartmann. 2016. The Toastboard: Ubiquitous Instrumentation and Automated Checking of Breadboarded Circuits. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology (UIST '16). ACM, NY, NY, USA, 677--686. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Mireille Ducassé. 1993. A pragmatic survey of automated debugging. Automated and Algorithmic Debugging (1993), 1--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Gugerty and G. Olson. 1986. Debugging by Skilled and Novice Programmers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '86). ACM, NY, NY, USA, 171--174. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Björn Hartmann, Scott R Klemmer, and Michael Bernstein. 2005. d. tools: Integrated prototyping for physical interaction design. IEEE Pervasive Computing 4 (2005).Google ScholarGoogle Scholar
  11. Joshua Hibschman and Haoqi Zhang. 2015. Unravel: Rapid Web Application Reverse Engineering via Interaction Recording, Source Tracing, and Library Detection. In Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology (UIST '15). ACM, NY, NY, USA, 270--279. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Joshua Hibschman and Haoqi Zhang. 2016. Telescope: fine-Tuned Discovery of Interactive Web UI Feature Implementation. In Proceedings of the 29th Annual Symposium on User Interface Software and Technology. ACM, 233--245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Jane Hoffswell, Arvind Satyanarayan, and Jeffrey Heer. 2016. Visual debugging techniques for reactive data visualization. In Computer Graphics Forum, Vol. 35. Wiley Online Library, 271--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Jun Kato, Sean McDirmid, and Xiang Cao. 2012. DejaVu: Integrated Support for Developing Interactive Camera-based Programs. In Proceedings of the 25th Annual ACM Symposium on User Interface Software and Technology (UIST '12). ACM, NY, NY, USA, 189--196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Cory Kissinger, Margaret Burnett, Simone Stumpf, Neeraja Subrahmaniyan, Laura Beckwith, Sherry Yang, and Mary Beth Rosson. 2006. Supporting End-user Debugging: What Do Users Want to Know?. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI '06). ACM, NY, NY, USA, 135--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Andrew J Ko, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, Brad Myers, and others. 2011. The state of the art in end-user software engineering. ACM Computing Surveys (CSUR) 43, 3 (2011), 21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Andrew J. Ko and Brad A. Myers. 2008. Debugging Reinvented: Asking and Answering Why and Why Not Questions About Program Behavior. In Proceedings of the 30th International Conference on Software Engineering (ICSE '08). ACM, NY, NY, USA, 301--310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Andrew J Ko, Brad A Myers, and Htet Htet Aung. 2004. Six learning barriers in end-user programming systems. In Visual Languages and Human Centric Computing, 2004 IEEE Symposium on. IEEE, 199--206. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Thomas D LaToza and Brad A Myers. 2010. Developers ask reachability questions. In Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering-Volume 1. ACM, 185--194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Bil Lewis. 2003. Debugging backwards in time. arXiv preprint cs/0310016 (2003).Google ScholarGoogle Scholar
  21. Tom Lieber, Joel R. Brandt, and Rob C. Miller. 2014. Addressing Misconceptions About Code with Always-on Programming Visualizations. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '14). ACM, NY, NY, USA, 2481--2490. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D Mellis, Massimo Banzi, David Cuartielles, and Tom Igoe. 2007. Arduino: An open electronic prototyping platform. In Proc. CHI, Vol. 2007.Google ScholarGoogle Scholar
  23. Bernhard Plattner and Juerg Nievergelt. 1981. Special feature: Monitoring program execution: A survey. Computer 14, 11 (1981), 76--93. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Guillaume Pothier, Éric Tanter, and José Piquer. 2007. Scalable omniscient debugging. ACM SIGPLAN Notices 42, 10 (2007), 535--552. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Markus Stumptner and Franz Wotawa. 1998. A survey of intelligent debugging. AI Communications 11, 1 (1998), 35--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Daniel Tetteroo, Iris Soute, and Panos Markopoulos. 2013. Five key challenges in end-user development for tangible and embodied interaction. In Proceedings of the 15th ACM on International conference on multimodal interaction. ACM, 247--254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Twitter. 2017. Bootstrap. http://getbootstrap.com. (2017).Google ScholarGoogle Scholar
  28. David Ungar, Henry Lieberman, and Christopher Fry. 1997. Debugging and the Experience of Immediacy. Commun. ACM 40, 4 (April 1997), 38--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Bret Victor. 2012. Learnable programming. (2012). http://worrydream.com/LearnableProgramming/Google ScholarGoogle Scholar
  30. Bret Victor. 2014. Seeing Spaces. (2014). http://worrydream.com/SeeingSpaces/Google ScholarGoogle Scholar
  31. W Eric Wong, Ruizhi Gao, Yihao Li, Rui Abreu, and Franz Wotawa. 2016. A survey on software fault localization. IEEE Transactions on Software Engineering 42, 8 (2016), 707--740. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Andreas Zeller. 2009. Why programs fail: a guide to systematic debugging. Elsevier. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Bifröst: Visualizing and Checking Behavior of Embedded Systems across Hardware and Software

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      UIST '17: Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology
      October 2017
      870 pages
      ISBN:9781450349819
      DOI:10.1145/3126594

      Copyright © 2017 Owner/Author

      Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 October 2017

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      UIST '17 Paper Acceptance Rate73of324submissions,23%Overall Acceptance Rate842of3,967submissions,21%

      Upcoming Conference

      UIST '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader