Often the best way for a person to interact with a product is using a screen. Computers and mobile phones have long used screens as their primary means of communicating information to the user. As Internet of Things (IoT) products move from the early adopter phase to the mainstream, many of them will incorporate displays to ease configuration by customers, provide additional features and reduce support costs. To render a modern user interface on the screen, scalable fonts are invaluable. They provide users with crisp, readable text at the optimal size, and product designers with the ability to use typography to imbue the product with brand character.
While rendering text well is still challenging, particularly on inexpensive hardware, Monotype and Moddable are now offering technology that makes it easier to deliver high-quality scalable fonts to embedded devices without the need for time-consuming integration efforts By joining forces, we provide designers with the flexibility to use text creatively without burdening embedded software engineers with a myriad of new text challenges such as rendering, measuring, internationalization, performance, caching and memory use.
Monotype provides users with an unparalleled library of distinctive fonts, and Monotype Spark™, a remarkably efficient and high-quality rendering engine for embedded devices. Moddable integrates the Monotype Spark engine into its modern SDK for building rich, animated user interfaces for low-cost embedded devices that incorporate a display. Unlike most embedded GUI solutions, the Moddable SDK uses standard JavaScript for UI development—the same language used to bring web pages to life—with all source code openly available.
The integration of Monotype Spark into the Moddable SDK provides designers of IoT products with unmatched flexibility and breadth of text rendering options. Benefits include:
These demonstration videos show the Monotype Spark engine running on an ESP32 microcontroller powered by the Moddable SDK. The display is QVGA (320 x 240) operating at 16-bits per pixel.
Logo Tween - The characters of the Moddable logo are animated into place, smoothly scaling as they enter and exit.
Text Styles - The Open Sans TrueType font is used to exercise the layout features of the Piu user interface framework. All glyphs are rendered on-demand on the embedded device.
Bouncing Glyphs - Four glyph outlines from the Burlingame Pro font are animated in real time by independently modifying their horizontal and vertical scales.
Word Clock - A text based clock that allows the user to select their preferred text size and style.
High quality anti-aliased text at all sizes
Moddable has integrated the Monotype Spark engine with the Moddable SDK, so IoT application engineers can immediately start building their user interface. Because the Moddable SDK uses JavaScript as its primary programming language, developers implement user interfaces more quickly than in traditional embedded development tools such as in C or C++. All measurement and rendering of text is implemented in native C code for maximum performance.
Additional features include:
When building software for embedded devices, numbers are essential to evaluate if a technology can be used in your project. Of course, each deployment is unique so the numbers will vary. These numbers should only be used as approximate guidelines.
Note: These numbers are based on an ESP32 MCU. Similar results are seen on ARM MCUs and x86 processors.
Supports all screen orientations with no impact on memory use or performance
A common challenge in embedded software development effort is adapting standard technologies from computer and mobile for use on microcontrollers with at least an order of magnitude less power. The benefits of using standard technologies include the re-use of proven designs, the ability to use existing tools, and lower total cost of development. Unfortunately, many standards used on computers and mobile were not designed for use in products powered by embedded processors. JavaScript was created for computers and has continued to evolve with the expectation it will be used only on computers and powerful mobile devices. Moddable has done considerable work to allow the modern JavaScript language to be used on embedded microcontrollers. Similarly, Monotype has invested heavily to make TrueType/OpenType fonts work efficiently on embedded microcontrollers. For maximum efficiency, TrueType fonts need to be adapted for use on embedded.
Monotype has developed extensions to TrueType fonts to optimize their use in embedded products:
Monotype has implemented the Spark font rendering engine designed to meet the needs of embedded product designers:
The Moddable SDK with support for the Monotype Spark engine is available now.
The Moddable SDK is available from the Moddable GitHub repository with FOSS and commercial licensing options described on the Moddable web site. Commercial licenses for the Monotype Spark integration with the Moddable SDK are available from Moddable.
Both Monotype and Moddable offer development support for customers building products using their respective technologies.
As part of this partnership, Monotype offers:
As part of this partnership, Moddable offers: