Amulet Support Site

According to the help, Internal RAM can be 256 byte variables, 256 words variables, 256 color variables and 256 25-character null terminated string variables. Are they mutually exclusive?
The InternalRAM is all mutually exclusive. You can use all bytes, words, colors, and strings at the same time. The length of the internalRAM arrays can also be changed in the GEMstudio project settings if you require more of any type, or longer strings.
There is a file generated at compile time which is not used by the project, inside the output folder is a MAP folder, and within that is the .map file mirroring your GEMstudio project’s filename (ProjectName.map for example). This file contains the flash header file number for every file, and the #define macro format is meant to be used as an include file in your project. See the “Amulet Communication Protocols” under the “Jump to specific page” section in the GEMstudio User’s Guide
This is built right into GEMstudio. In the File menu, select “Save As Production File With OS”
Find the GEMstudio installation directory then right click on the GEMstudio icon and select Run as Administrator. This will elevate its permissions so it can write your registration information to the registry.
GEMstudio is Amulet’s tool for creating GUIs and programming them into Intelligent Digital Display modules. There are video tutorials available here. We also recommend going through the various example Demo project found in your Documents folder under GEMstudio Pro
Input data structures like byte and word are unsigned at first. The “minFld” and “maxFld” parameters of the numericField widget can be used to shift and scale the input to negative output values. Example: minFld = -128 maxFld = 127, a byte in this numeric field with value of 0 will display -128, and a value of 255 will display 127.
Newer versions of GEMstudio do not have a dedicated “restore OS” feature. Instead, the OS is detected before programming and can be autoatically added if the version on the hardware does not match.
It is no longer possible to compile and run HTML projects directly from current versions of GEMstudio. However, conversion from HTML to GEMstudio is possible.
The simplest non-trivial UI would be displaying a number and adding a button to change that number. In a GEMstudio project, first go to the + button and add a numericField, changing the “href” parameter to “internalRAM.byte(0).value()”, without quotes. Next, Add a button and change its href to “internalRAM.byte(0).add(1)”. These are now referencing the same variable and the displayed value will change automatically.
You can create your own look and functionality by deconstructing the widget using multiple objects. For example, a button has touch input and image output, sometimes with a string label. Instead of a button widget, you could instead layer an imageSequence and stringField underneath a touchArea widget which provides all the touch events without having to worry about any low level code.
Open the LCD Profile Editor from the tools menu. Filling in the fields it will automatically use the Part Number you specify as the filename, in the folder heirarchy defined by the pixel resolution and the manufacturer. Using custom display configurations requires a GEMstudio Pro Plus license.
Amulet provides a utility that is integrated in GEMstudio that will “play” the user’s GUI pages on the PC. The user has to click on “run” button on the lower right corner of the GEMstudio window. Please see the GEMstudio User’s Guide for more information.
This selection does not erase the previous page when changing pages, and instead it converts each pixel to grayscale and uses that as a background image. If the new page does not cover the entire screen, then the uncovered portions will still be visible but grayed out and not interactive. This can appear like a pop-up dialog.
GEMstudio will run under Windows 7 or later and requires about 300MB of disk space. Optional external code editors such as VS Code not included and require a separate download.
The GEM Font Converter allows users to convert any Windows True Type or bitmap font into an Amulet font file. In GEMstudio you can select Launch GEM Font Converter from the main slash screen or from the File menu.
GEMstudio has multuple types of buttons, guages, sliders, string and numeric fields, images, animations, graphs and more. You can also create your own functionality through touch events and image control. For a complete listing of the Amulet Widgets, please see the GEMstudio User’s Guide
GEMstudio supports JPEG, PNG, and GIF import directly. BMP and TIFF can also be used, but they are converted to PNG before compile and not all features of TIFF work (no multiple layers, for example)
In the GEMstudio Pro, go to the Help menu and select “View Change Log” for the latest updates in GEMstudio Pro, including new features, enhancements to existing features, and bug fixes.
Amulet has included GUI demos in the GEMstudio software. These can be found in ~\Documents\GEMstudio Pro\. There are also video tutorials on Amulet’s website.

There are 2 types of devices on the USB port, so there are multiple places for this documentation. The first is a Mass Storage Device which looks like like a USB flash drive. Additionally, there is on-board flash and sometimes also a microSD card so there are up to two drives that may enumerate. There are commands which allow you to chose which drive is available or to disable them altogether. These commands can be found in the User’s Guide under the topic: Appendix B – All Commands → Control Widget Href Functions

You can also control whether the hardware will enumerate any MSD or not upon boot by changing a project property, which is under this topic: GEMstudio IDE Features → Project Properties → USB MSD

The other type of device is the Communications Class Device, which is basically a USB serial port. This can be used to send data back and forth using the standard protocols, which can be found in the User’s Guide under the topic: Amulet Communication Protocols

“The name is AmuletUSB.inf and it can be found in your GEMstudio installation directory. By default install folder is C:\Program Files (x86)\AmuletTechnologies\GEMstudio\USB Drivers\

Choose x86 for 32-bit versions of Windows, and amd64 for all others.”

Local fonts are .auf or .aauf font files that are stored in the same directory as the main .gemp GEMstudio project file, in a Fonts subfolder. This makes the fonts easier to track and distribute with version control systems, and also allows for custom glyph support in each project.

The GEMstudio Pro Plus license comes with the option to debug script in real time, stepping through lines of code and inspecting the variables. This is done through a Visual Studio Code extension communicating with GEMstudio. You can debug the GEMplayer PC simulator or the actual hardware.

The GEMstudio Pro Plus license comes with the option to debug script in real time, stepping through lines of code and inspecting the variables. This is done through a Visual Studio Code extension communicating with GEMstudio. You can debug the GEMplayer PC simulator or the actual hardware.

How do Amulet's Intelligent Digital Displays interface with a Host microprocessor?
Amulet display modules support multiple types of interfaces inlucing UART, RS232, RS485, and USB. The built-in comm protocols work on all of those ports simultaneously. Specific port availability differs on each module type. Custom scripts can also be used to write your own protocol as well as communicate over SPI or I2C/TWI. Low level C/C++ or “native code” can also be used. Automated native code building is a feature of GEMstudio Pro Plus license.
There are multiple methods for updating the GUI in the field. The simplest way is to copy a precompiled file onto the module and it will automatically extract upon reset. This can be done over the microSD card or copied directly onto the on-board flash through the USB cable. A more automated approach uses one of the serial ports to send the file using the XMODEM file transfer protocol which can be implemented by your host processor. Please refer to the GEMstudio User’s Guide for more information on the file type, how to make the file and how to program it. Not all hardware is capable of XMODEM field update and a GEMstudio Pro Plus license may be required.
The Intelligent Digital Display with a 7″ Capacitive touchscreen comes with 4GB of flash. This can store thousands of pages and images. The average project compiles to 20-50 MB.
We recommend a dry microfiber or lint-free cloth, and to add an LCD cleaning solution onto the cloth for the more stubborn marks. If you don’t have solution, use a water in a spray bottle to moisten the cloth. Do not spray directly on to the display. The point is to not let water have a chance of seeping between anything, especially while it is powered on. Do not use acetone, alcohol, or amonia based cleaners or harsh chemicals.
Amulet does not have a CAGE code.
STEP moduels are available in the Resource Center under the Documentation topic, scroll down to 3D Models.
What kind of data is sent between the host microprocessor and Amulet display?
Most commands involve requesting or setting simple data structures such as 1, 2, or 4-byte integers as well as text strings. Normally no image data is sent back and forth unless dynamic images are required, such as displaying camera images.
The Amulet OS is capable of both slave and master commands. There is no master/slave/dual master setting within the GEMstudio project settings so the specific commands you use in your project determine whether it is also a master or just a slave. The driving factor is usually in your own processor. If you use one without a uart, then it could be difficult to have dual master.
The StringField widget is used to display dynamic strings. This widget can be set up to act as a master and automatically send a request for a UTF-8 encoded string from the host at a repeating interval, or it can be a slave and wait for the host processor to update the on-board string variable which will cause the new string to be drawn at the location of the StringField widget.

GEMstudio does not have a built-in serial terminal, but there are many options available. With the permission of Docklight, Amulet has provided a link to the trial version of Docklight. The ability to customize send and receive sequences and automatically calculate CRCs makes Docklight our favorite tool at Amulet for working with serial protocols. By installing Docklight, you adhere to the End User License Agreement set forth by Docklight during the install. The “Scripting ” version of Docklight is required to calculate CRCs. Amulet can provide this script upon request as well as sample protocol commands.

If you would like to install the trial version or purchase the full version of Docklight, you can do so by going to Docklight’s web site. www.docklight.de

If you would like to install the trial version or purchase the full version of Docklight, you can do so by going to Docklight’s web site. www.docklight.de”

The byte stream depends on the Protocol chosen. We have two stock protocols to chose from called ASCII and CRC. Both involve setting or requesting simple datatypes like integers and strings. Lets go over a simple example of setting a byte at index 0x00 to a value of 0xFF.

In ASCII, most opcodes are in the 0xD0-0xDF range and the address and data (in hex) are encoded into ASCII. The command to set a byte is the exactly the same coming from or going to the Amulet. First you have the opcode 0xD5 followed by the address in ASCII, in this case hex 0x00 we take the “00” and convert each nibble to an ASCII character, 0x30 0x30, which is followed by the data value again in ASCII. With the data equal to 0xFF, the whole message would be 0xD5 0x30 0x30 0x46 0x46 there are a couple of choices on how you reply, but the default is to echo the data with a reply opcode of 0xE5, so you would send 0xE5 0x30 0x30 0x46 0x46.

For the CRC protocol, the Modbus-RTU style is used with the “custom” opcode range. Each command starts with a address, which is the host address if coming from the “slave” Amulet, and defauts to 0x02. Next is the setByte opcode, 0x30, followed by the raw address and data, and finally a 2-byte CRC calculated using the Modbus CRC-16 calculation. For a data address of 0x00 and a value of 0xFF, the whole message would be 0x02 0x30 0x00 0xFF 0x41 0xD3. The reply echos the address and opcode without any payload, and then the CRC, which would be 0x02 0x30 0x00 0xC4.

From GEMstudio open the Help menu and select User’s Guide. In the documentation that opens, select the topic Amulet Communication Protocols
Group 32 (1)

Video Tutorials

Quick technical demos and walkthroughs for building and deploying embedded UIs with Amulet.

Insights

Expert articles and best practices on embedded UI design and system partitioning.

Documentation

Technical specs, integration guides, and development resources.

Press Releases

Company announcements, product launches, and industry news.