{"id":9051,"date":"2019-07-22T08:52:31","date_gmt":"2019-07-22T07:52:31","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=9051"},"modified":"2026-03-26T16:57:40","modified_gmt":"2026-03-26T20:57:40","slug":"a-ui-for-a-deeply-embedded-system","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2019\/07\/22\/a-ui-for-a-deeply-embedded-system\/","title":{"rendered":"A UI for a deeply embedded system"},"content":{"rendered":"<p>From time to time, I have the need to explain to someone exactly what an embedded system is. The definition has evolved a bit over the years, but goes something like: \u201cAn electronic system that deploys one or more microprocessors, that typically performs a single, fixed gamut of functionality and is not regarded as a computer\u201d. I could add that embedded systems rarely have a rich and flexible UI compared with computers or even phones and tablets. Sometimes they have no UI at all \u2026<!--more--><\/p>\n<p>A big challenge, when designing a deeply embedded system is the lack of any kind of UI. If you have something as simple as an LED, there is much that can be done, as I <a href=\"https:\/\/www.mentor.com\/embedded-software\/blog\/post\/blinking-is-good-9171a5c2-c4fe-4c3a-98fb-cad2b7e1a667\" target=\"_blank\" rel=\"noopener noreferrer\">wrote about<\/a> a long time ago. An interestingly different example that I heard about was a heart pacemaker that could be accessed by means of an inductive connection and the communications were verified by it temporarily stimulating an unusual heart rhythm.<\/p>\n<p>If your device is networked and running an RTOS [like <a href=\"https:\/\/www.mentor.com\/embedded-software\/nucleus\/\" target=\"_blank\" rel=\"noopener noreferrer\">Nucleus<\/a>], a little creativity can result in a satisfactory UI. There are a couple of obvious possibilities:<\/p>\n<ol>\n<li>You could include an embedded Web server [actually an HTTP server]. A user just needs to connect to the device with a Web browser and the server provides pages of information. This is quite common practice with networking kit, like routers.<\/li>\n<li>You could include an SMTP [i.e. email sending] server. The device can be set up to send emails to an appropriate address in the event of problems. A POP3 servers could also be included to enable the device to receive email too.<\/li>\n<\/ol>\n<p>Both of these options [and, indeed, you could use both] sound complex, but are quite straightforward to implement. The result is a flexible way for your UI-free device to talk to the world.<\/p>\n<p><a href=\"http:\/\/www.linkedin.com\/in\/colinwalls\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6579\" src=\"http:\/\/s3-blogs.mentor.com\/colinwalls\/files\/2014\/01\/linkedin.png\" alt=\"\" width=\"40\" height=\"40\" \/><\/a><a href=\"https:\/\/twitter.com\/colin_walls\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6583\" src=\"http:\/\/s3-blogs.mentor.com\/colinwalls\/files\/2014\/01\/twitter.png\" alt=\"\" width=\"40\" height=\"40\" \/><\/a><a href=\"https:\/\/www.facebook.com\/colinwalls.author\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6591\" src=\"http:\/\/s3-blogs.mentor.com\/colinwalls\/files\/2014\/01\/facebook.png\" alt=\"\" width=\"40\" height=\"40\" \/><\/a><a href=\"http:\/\/blogs.mentor.com\/colinwalls\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-6599\" src=\"http:\/\/s3-blogs.mentor.com\/colinwalls\/files\/2014\/01\/wordpress.jpg\" alt=\"\" width=\"44\" height=\"44\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>From time to time, I have the need to explain to someone exactly what an embedded system is. The definition&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[300,462,304,374,378,526,309,527,323],"industry":[],"product":[],"coauthors":[],"class_list":["post-9051","post","type-post","status-publish","format-standard","hentry","category-news","tag-embedded-software","tag-http","tag-nucleus","tag-nucleus-os","tag-nucleus-rtos","tag-pop3","tag-rtos","tag-smtp","tag-user-interface"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=9051"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9051\/revisions"}],"predecessor-version":[{"id":10807,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/9051\/revisions\/10807"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=9051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=9051"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=9051"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=9051"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=9051"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=9051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}