{"id":1300,"date":"2010-12-14T22:22:54","date_gmt":"2010-12-14T22:22:54","guid":{"rendered":"http:\/\/www.edatechforum.com\/?p=1300"},"modified":"2010-12-14T22:22:54","modified_gmt":"2010-12-14T22:22:54","slug":"low-cost-real-time-data-delivery-for-medical-devices","status":"publish","type":"post","link":"https:\/\/www.techdesignforums.com\/practice\/technique\/low-cost-real-time-data-delivery-for-medical-devices\/","title":{"rendered":"Low-cost real-time data delivery for medical devices"},"content":{"rendered":"<p>Medotech\u2019s Grindcare system provides relief from problems related to teeth grinding (bruxism). This is a type of hyperactivity in the jaw muscles that can cause severe dental problems as well as headaches and muscular pain. The Grindcare device measures the movement of facial muscles during sleep via an electrode placed on the temple. When grinding begins, it stimulates jaw muscles with a brief electric impulse, causing those muscles to relax and thereby stopping the action.<\/p>\n<p class=\"p3\">The treatment requires close supervision by a dentist, and this is best achieved if the care provider has access to historic data from a Grindcare unit. The care program can best be managed if this data can be accessed on a daily basis.<\/p>\n<h3 class=\"p4\"><strong>Security<\/strong><\/h3>\n<p class=\"p2\">Given the inherent sensitivity of any personal medical data, access to data in a device such as Grindcare must be strictly controlled. Medotech decided to use Nabto\u2019s micro-server software, uNabto. It embedded a uNabto web server in the Grindcare device, and a secure plug-in program was installed in the dentist\u2019s browser from which to access readings.<\/p>\n<p class=\"p3\"><span class=\"s1\">The system requires no specific configuration by the patient. The device powers up and can be controlled once Internet access is available. All communication is encrypted and both peers are cryptographically authenticated. As well as controlling the patient\u2019s Grindcare device from an office PC, the dentist can also access the system over a smart phone using a dedicated Nabto \u2018app\u2019.<\/span><\/p>\n<h3 class=\"p4\"><strong>Offloading complexity<\/strong><\/h3>\n<p class=\"p2\"><span class=\"s2\">MCU developers often face remote-access challenges. The main problem typically lies in providing\u00a0 ubiquitous and secure access to a sensitive system at an appropriate price. The user is looking for a technology that offers a smaller memory footprint, reduced bandwidth and low-power consumption on a low-cost 8-bit MCU, thereby offloading any heavy lifting to desktop and server class machines that can handle content rendering and the central network interface.<\/span><\/p>\n<p class=\"p3\">The uNabto web server seeks to reverse the client and server roles. Only such information as is absolutely necessary is stored locally on the device and exchanged with the client. As well as simplifying the software on the embedded device, this greatly simplifies configuration management as all rich content and business logic are stored in a central location.<\/p>\n<p class=\"p3\">The system exploits existing technologies from such fields as voice-over-Internet Protocol (VoIP). Three specific node types are:<\/p>\n<ul>\n<li>a client\u2014a web browser with Nabto plugin, enabling handling of the custom <em>nabto:\/\/<\/em> URL scheme;<\/li>\n<li>an embedded device containing the <span class=\"s3\">uNabto server software (denoted<\/span> uNabto adapter in <em>Figure 1<\/em>); and<\/li>\n<li>a central Nabto base station.<strong> <\/strong><\/li>\n<\/ul>\n<p><strong> <\/strong><\/p>\n<h3 class=\"p5\"><strong>A typical scenario (<em>Figure 1<\/em>) will then unfold as follows:<\/strong><\/h3>\n<div class=\"article_figure\"><strong><a class=\"figure\" title=\"A typical deployment\" href=\"\/edasource\/december_2010\/images\/197\/eda1012_embedded1_large.jpg\"><img decoding=\"async\" src=\"\/edasource\/december_2010\/images\/197\/eda1012_embedded1_medium.jpg\" alt=\"\" \/><\/a><\/strong><\/div>\n<div class=\"article_figure\">\n<p class=\"figure_wrapper\"><span class=\"figure_title\"><strong>Figure 1<\/strong><\/span><strong><br \/>\nA typical deployment <\/strong><\/p>\n<\/div>\n<p><strong> <\/strong><\/p>\n<h4 class=\"p6\"><strong><strong><em>Device registration<\/em><\/strong><\/strong><\/h4>\n<p class=\"p2\"><span class=\"s2\">The embedded device registers itself with the Nabto base station with its designated ID (e.g., gc-3471.medotech.com). A UDP-based awareness signal is periodically transmitted to the base station, serving two purposes, managing the presence of online devices in the base station; and keeping a channel open in the local firewall.<\/span><\/p>\n<h4 class=\"p6\"><strong><em>User request<\/em><\/strong><\/h4>\n<p class=\"p2\">The user activates an application on the device (e.g., through a bookmark or link on a portal) by requesting the appropriate URL\u2014in this case: <a href=\"\/\/gc-3471.medotech.com\/report\">nabto:\/\/gc-3471.medotech.com\/report<\/a>.<\/p>\n<p class=\"p3\">The Nabto plugin contacts the Nabto base station (the device\u2019s DNS hostname resolves to the base station).<\/p>\n<p class=\"p3\">The plugin retrieves an HTML device-driver bundle from the base station (if not already installed). The driver contains all \u2018rich\u2019 content (i.e., graphics, style sheets, layout templates, client side scripts) and descriptions of the services provided by the device in question.<\/p>\n<p class=\"p3\">The plugin initiates a handshake with the remote device.<\/p>\n<h4 class=\"p6\"><strong><em>Encrypted handshake<\/em><\/strong><\/h4>\n<p class=\"p2\"><span class=\"s1\">An encrypted handshake is mediated by the base station: cryptographic certificates are exchanged through the basestation and, if both peers authorize one other, encrypted details about each peer\u2019s network configuration are exchanged (specifically, details about each peer\u2019s NAT configuration are exchanged). This information is determined through a process similar to the STUN analysis known from VoIP applications.<\/span><\/p>\n<p class=\"p3\"><span class=\"s2\">If the network configuration allows it, the client may now communicate directly with the device. If UDP hole punching is not possible due to either peer\u2019s NAT configuration, an end-to-end encrypted relay takes place through the base station instead.<\/span><\/p>\n<h4 class=\"p6\"><strong><em>Client\/server communication<\/em><\/strong><\/h4>\n<p class=\"p2\">The plugin maps the user request (in this case, the \u201creport\u201d extracted from the URL) to an opcode as described in the HTML device driver and sends the request to the device.<\/p>\n<p class=\"p3\">The uNabto service code on the device receives the request and dispatches it along with decoded parameters to relevant system functionality.<\/p>\n<p class=\"p3\">The system computes a response that is encoded and sent back to the client. For the \u2018report\u2019 request, this is simply a sequence of integer three-tuples representing time, measured jaw activity and amplitude of the allied electric impulses.<\/p>\n<h4 class=\"p6\"><strong><em>Rendering of response<\/em><\/strong><\/h4>\n<p class=\"p2\">The browser plugin receives the data from the device and populates the appropriate response layout template from the HTML device driver. The template may reference other static content in the HTML device driver, rendering an HTML page with the final result (<em>Figure 2<\/em>, p. 16).<\/p>\n<div class=\"article_figure\"><a class=\"figure\" title=\"An example of a rendered HTML response page\" href=\"\/edasource\/december_2010\/images\/198\/eda1012_embedded2_large.jpg\"><img decoding=\"async\" src=\"\/edasource\/december_2010\/images\/198\/eda1012_embedded2_medium.jpg\" alt=\"\" \/><\/a><\/div>\n<div class=\"article_figure\">\n<p class=\"figure_wrapper\"><span class=\"figure_title\">Figure 2<\/span><br \/>\nAn example of a rendered HTML response page<\/p>\n<\/div>\n<h3 class=\"p4\"><strong>Simple integration and maintenance<\/strong><\/h3>\n<p class=\"p2\">The benefits from allowing the dentist to directly interact with the Grindcare device are obvious, particularly if compared with cumbersome manual examination. In addition, off-loading contents from resource-limited devices greatly simplifies maintenance and system development:<\/p>\n<ul>\n<li>The Medotech engineers may change the application layout or add new client scripts.<\/li>\n<li>They may add support for a new language if deploying in a new region.<\/li>\n<li>They may add optimized layout (e.g., for new mobile clients).<\/li>\n<li>All such changes take place in the centrally located HTML device driver bundle, without updating a single bit on the embedded device.<\/li>\n<\/ul>\n<p class=\"p3\">It is only necessary to update the device if the request\/response model and\/or the actual system software changes. However, the Nabto technology also simplifies remote firmware update as described later in the Cypherbridge uLoad case study.<\/p>\n<p class=\"p3\"><span class=\"s2\">The Nabto micro web server and base station can be implemented in a wide range of embedded devices on MCU platforms. System designers can license the Nabto web server code or acquire the code as an integrated part of an optional PIC Ethernet board. The Microchip-based module enables companies to design and prototype web-based systems such as remote medical, industrial and consumer applications.<\/span><\/p>\n<h3 class=\"p4\"><strong>Secure remote update for MCU<\/strong><\/h3>\n<p class=\"p2\">Security SDKs such as embedded uSSL and uSSH are well suited to secure FTP, SMTP and similar protocols. The classic desktop content model imposes significant compromises and cost impacts on embedded devices. So-called thin-clients typically are leans content servers and browsers that generally employ many of the same protocols as found on desktop PCs.<\/p>\n<p class=\"p3\">Industry experience has shown that such legacy-oriented embedded content servers fall somewhere in a spectrum ranging from price-performance impact for a 32-bit MCU at one end, to unrealistic for 16- and 8-bit MCUs.<\/p>\n<p class=\"p3\"><span class=\"s1\">The proliferation of MCU devices calls for a device management and firmware distribution package that is both secure and scalable. The Cypherbridge Systems uLoad product provides a comprehensive one that includes an in-chip boot loader, standalone downloader, secure image processing and a multi-point scalable distribution server.<\/span><\/p>\n<p class=\"p3\">Cypherbridge has integrated its security, connectivity and device management SDKs with Nabto technology, serving all market segments including 8-, 16- and 32-bit platforms. The uLoad product is offered in a range of integrated packages, including Unified Build, that co-exist with RTOS and TCP, file system, flash memory and network download support, and a standalone build with independent security, download and re-flash capability.<\/p>\n<p class=\"p3\">The Cypherbridge uLoad Standalone Build, Micro content server and Nabto device engine contain:<\/p>\n<ul>\n<li><em>Application:<\/em> determined by the user.<\/li>\n<li><em>uServer:<\/em> a micro content server for platform sensors, configuration and management, including command\/response message handlers, async event notification and timers.<\/li>\n<li>uLoad: Cypherbridge\u2019s standalone installer and secure boot-loader.<\/li>\n<li><em>LTP:<\/em> the lightweight transport protocol.<\/li>\n<li><em>uCrypt:<\/em> an integrated symmetric encryption and authentication.<\/li>\n<li><em>BSP Drivers:<\/em> interfaces to MCU COM ports and flash memory.<\/li>\n<li><em>Nabto Device Engine:<\/em> the Nabto transport interface and event dispatcher.<\/li>\n<li><em>I\/O Channel:<\/em> a flexible interface to interactive or machine-to-machine peer over Ethernet, simple TWSI, RS-232, SPI, BT or 802.11 Radio module, etc. standards.<\/li>\n<\/ul>\n<p class=\"p3\">These are just a couple of examples of the benefits of a Nabto content engine. Any trade-off analysis for an embedded content server should include:<\/p>\n<ul>\n<li>processor cycles, RAM and ROM memory required;<\/li>\n<li>footprint size for SDK instruction flash and RAM memory buffers;<\/li>\n<li>an ability to deliver parity with a desktop content experience without compromising the MCU-based system design cost;<\/li>\n<li>keeping bandwidth low to save cost especially for WAN radio links with a limited data plan, and to control RF calls on overall system power; and<\/li>\n<li>implementing a lightweight command\/response engine well-suited to devices that have an aggressive power managed battery, or solar assisted and energy harvesting sources.<\/li>\n<\/ul>\n<p class=\"p1\"><em>Nabto<br \/>\n<\/em><em>\u00c5bogade 15<br \/>\n<\/em><em>8200 Aarhus N<br \/>\n<\/em><em>Denmark<br \/>\n<\/em><em>T:+45 8734 5513<br \/>\n<\/em><em>W: <a href=\"http:\/\/www.nabto.com\">www.nabto.com<\/a><\/em><\/p>\n<p class=\"p1\"><em>Cypherbridge Systems LLC<br \/>\n<\/em><em>7040 Avenida Encinas #104211<br \/>\n<\/em><em>Carlsbad 92011<br \/>\n<\/em><em>USA<br \/>\n<\/em><em>T: +1 760 814 1575<br \/>\n<\/em><em>W: <a href=\"http:\/\/www.cypherbridge.com\">www.cypherbridge.com<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Danish life science entrepreneur Medotech needed a way to provide secure and simple access to its Grindcare medical devices deployed on patients\u2019 home networks. This article outlines how Medotech solved the problem using Nabto\u2019s patented off-the-shelf embedded software and describes how the implementation simplifies system maintenance and future development. A further section considers the integration of the Nabto technology with Cypherbridge Systems products for secure low-cost MCU-based projects.<\/p>\n","protected":false},"author":330,"featured_media":1303,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[814,1240],"tags":[1264,369],"coauthors":[816,815],"class_list":["post-1300","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-december-2010","category-embedded-development-platforms","tag-medical","tag-security"],"_links":{"self":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts\/1300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/users\/330"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/comments?post=1300"}],"version-history":[{"count":0,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/posts\/1300\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/media\/1303"}],"wp:attachment":[{"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/media?parent=1300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/categories?post=1300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/tags?post=1300"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.techdesignforums.com\/practice\/wp-json\/wp\/v2\/coauthors?post=1300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}