Using Macromedia Flash as an embedded device UI
Jul 28, 2005 — by LinuxDevices Staff — from the LinuxDevices Archive — 20 viewsThis whitepaper from Vibren Technologies discusses the use of Macromedia Flash as a technology for creating rich, portable, maintainable, and consistent user interfaces across multiple models and generations of embedded devices, and outlines system requirements and porting issues. It also includes an example of an embedded device that uses embedded Macromedia Flash in its user interface. Enjoy . . . !
by A. Charles Beddoe and Ray Shapiro
Why embed Flash?
The runaway success of Internet-based Flash technology has been remarkable. Macromedia and its partner Vibren Technologies are now attempting to duplicate this success in the embedded arena as well, by making it easier to obtain (and pay for) smaller volumes of Flash licenses.
What makes the use of Macromedia Flash compelling in embedded applications is that embedded Flash provides the same moving picture and moving word interface as its desktop/Internet-based counterpart. Also, because Flash displays embedded content in the same manner as it does desktop content, Flash content can be developed on any platform that supports the Macromedia Flash authoring tools.
Macromedia Flash has become the de facto standard for developing rich user interfaces. It has become ubiquitous on the Web — the favorite technology among designers looking to create compelling user experiences. Consequently, Macromedia Flash is also becoming a must-have software component of Web-enabled embedded devices.
But Flash has far more to offer embedded devices than compatibility with Web-browsers. Macromedia Flash can be used to create great user experiences, and can serve as a platform on which to build a richer, more immersive user interface (UI) that can add value to embedded products.
The same tools and rendering engine that are used to build and display Web-based Flash content targeting the desktop can also be applied to embedded designs. The main distinction between desktop and embedded Flash development and deployment tends to be factors such as display size and processor performance. Embedded devices typically have smaller displays, less processing horsepower, and reduced memory resources, compared to desktop computers.
Benefits of embedded Flash
One key benefit of Flash is that it can form the basis of a UI that is consistent across a company's complete product line, regardless of processor, operating system, or other variations. This is possible because Flash enables the UI to be implemented by means of content, rather than within the embedded software. Additionally, the Macromedia Flash player itself is microprocessor- and operating system-agnostic.
A unified look and feel is good for branding. It also helps reduce tech support issues, because users only need to learn one UI. Additionally, a consistent UI can be maintained regardless of the inevitable hardware and software changes that are made to the company's products in the future.
Another advantage of the embedded Flash UI approach is that the ability to use readily available graphics opens up a variety of creative opportunities. This can help designers embed that all-important “consumer appeal” into the devices they develop.
Additionally, the local (embedded) content required to implement the device's UI is created by means of standard Flash authoring tools. This makes it relatively easy (and inexpensive) to develop, maintain, and enhance the device UI, and to adapt it to other product models and next-generation designs.
Consider a product line that includes a non-portable model, a small form-factor portable model, and a highly compact handheld model — all based on different processors and operating systems. Implementing identical or even similar UI's on all these devices would normally be a daunting task. Using embedded Flash, however, it is relativey easy to develop a single, simple, and unified interface.
Good interfaces are particularly important in point-of-sale terminals and wall-mounted security systems. Such devices are expected to have consistent interfaces across all stores or homes, respectively, regardless of user sophistication or technology underpinnings, since some locations may have newer or different product versions. In these situations, consistency contributes to customer satisfaction.
In short, if the proprietary UI software for a company's devices does not provide a significant competitive advantage — that is, if it doesn't improve revenue, profitability, or cash flow in a direct or indirect manner — an embedded Flash based solution may well be a more effective alternative from a cost and development resources perspective.
Porting considerations
Although Macromedia Flash is processor and operating system agnostic, it does require certain levels of hardware performance and memory resources to operate effectively. An x86 processor at 366MHz, or an ARM or XScale processor at 400MHz, will generally provide acceptable performance on all but the most complex Flash files. The embedded Flash player itself occupies 1-1.5 MB footprint, typically.
Embedded Macromedia Flash software architecture
The Macromedia Flash player has been ported to x86, ARM, XScale, PPC, MIPS, and SH4 processors, and to Windows XP Embedded, Windows CE, Linux, QNX, and BeOS embedded operating systems. Since the Flash player runs at application level and does not talk directly to hardware, the porting is relatively straightforward for developers with the right experience.
Some porting is easier, some harder. A port to a new embedded operating system presents a few challenges, whereas a port of an unsupported software interface (new browser, filter, etc.) to the Flash player is more difficult, and optimizing for hardware is harder still.
Optimizations of — or extensions to — Macromedia's Flash player require broader and deeper skills than those needed for a simple port. Depending on the requirements, hardware programming, graphics rendering, middleware, and operating systems kernel experience may be needed, as well as a detailed understanding of the Flash source code. In addition, after the port is completed, the modified version of the Flash player needs to be tested and verified by Macromedia on the intended target hardware before the final product can be shipped.
Macromedia also offers an SDK with source code, a test suite, and documentation for large volume device manufacturers, and porting services aimed at achieving optimal performance on embedded devices are available from Vibren.
Conclusion
Macromedia Flash offers many advantages to embedded devices. It is powerful, portable, programmable, and easily maintained and updated. And, because it has become so popular on the Web, Flash is tending to become a “must have” feature for a wide range of Web-enabled devices. Perhaps more important, the popularity of Flash has fostered a broad development community that knows how to create compelling content that delivers rich user interfaces that the end users of devices can appreciate.
The decision regarding whether to develop in-house expertise in embedded Flash or to outsource it is likely to be influenced by the company's current product mix and future product plans. In companies with long-term visions of “immersive” interfaces for their embedded devices, it probably makes sense to invest in internal Flash expertise. For short-term or isolated projects, on the other hand, companies may be better off farming out their Flash development to outside services. In either case, thanks to the growing ubiquity of Flash, companies using embedded Flash have many alternatives for Flash content development.
In summary, deploying Macromedia Flash as the basis for user interfaces in today's embedded devices is an attractive alternative to traditional approaches, and is supported by a value proposition that is both affordable and easily achievable. Embedded Macromedia Flash is a technology on the cusp of widespread adoption, and is worthy of serious consideration for next generation user-interactive device designs.
Macromedia has published a case study about a device maker (CorAccess) that used Flash to create “an engaging, dynamic” user interface for its Companion family of home control devices. According to the writeup, “the UI had to be able to run standalone (rather than connected to a Web browser) and had to be based on open, accessible technology for easy use by the dealers who sell Companion to home and business owners, as well as vendors who embed Companion in their products (such as lighting or home theater makers).”
The resulting product (in this case based on Linux) has been profiled in an article at LinuxDevices.com. Visit Macromedia's website for an interesting, interactive demonstration of the CorAccess Companion's Flash-based user interface. The full embedded Flash case study is also available on Macromedia's website.
A. Charles Beddoe has spent 32 years in the real-time and embedded systems industry, in embedded application development, real-time system deployment, and operating system development. Beddoe holds a B.Sc. in mathematics and an M.S. in computer science.
Ray Shapiro has over 25 years in the computer industry, including 10 years building embedded systems. A veteran of Digital Equipment and SystemSoft, Shapiro was a founder of Rachis Corp, which specialized in software for digital set-top boxes. He also served as Director of Embedded Solutions at Vibren Technologies from 2002 to 2005.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.