Compare Development Environments
Reach Technology offers two touchscreen display module product lines whose main differences are hardware and the development process.
SLCD Development Environment
Connect your system’s microcontroller to the serial LCD controller via a standard asynchronous serial port. Use simple ASCII commands to draw images, text, controls, and other interface elements. Controls report back over the serial line when activated or changed. Images are stored on the embedded display’s SLCD controller board in flash memory.
Simple to Integrate
All microcontrollers, and even some DSP, have a serial port. In an upgrade situation, if no free port is available, the SLCD’s second serial port can be used in “pass-thru” mode to connect to the replaced device. Serial transmit and receive are easily interrupt- driven, and the received control packets are small, to minimize processor overhead.
Simple to Program
This simple control panel (see image at right) sets the state of three relays and shows the status of three signals. It is implemented by the following sample code. Get the Software Reference Manual that contains a complete description of commands used in this example.
No Particular Operating System Required
SLCD modules work with any operating system, with or without a host OS. From full-blown, embedded systems running Windows, Linux, or QNX, to small RTOS, or a “bare metal” code, the LCD interface is the same.
GUI Builder Tool
Build a user interface with your custom images or our image collection. We recommend using standard bitmap image development and manipulation tools such as Adobe® Illustrator®, Adobe Photoshop®, or a free program called GIMP (GNU Image Manipulation Program) to create images for your interface. Then use our Screen Layout Utilities program (a plug-in for GIMP) for image placement. See how to do this in our video tutorials.
No Graphics Library Required
The library is built into SLCD modules. Your embedded system does not require additional memory overhead for library code and has more resources to perform its main tasks of controlling your product.
G2 Development Environment
G2 modules interact with your system either via the module’s serial port to a microcontroller that handles I/O or directly using onboard interfaces including Ethernet, Wifi, USB, CAN, I2C, UART, etc. Use a Qt Integrated Development Environment with drag-and-drop tools to design a user interface or opt for a custom Linux distribution.
Choose between two main ways to connect modules to your system architecture.
Directly Using On-board Interfaces
G2 modules can act as miniature Linux panel PCs and connect to smart system components via any of their interfaces including Ethernet, Wifi, USB, CAN I2C, UART and more. Examples include:
- Embedded Web servers
- USB multifunction data acquisition modules
- CAN motor controls
Contact us to see how we can make this work for your project.
Via Serial Port to Microcontroller
G2 modules run your GUI and connect to agents to perform your product’s core functions, such as running a skin laser. We provide the software components, which include a translation layer that insulates the core function microcontroller from GUI changes. This separation allows GUI design to be flexible without requiring the embedded microcontroller code to be changed.
While G2 modules are Linux-based – you do not need to be a Linux developer to use them. Our solution allows developers to use Windows GUI tools and for Linux developers we provide a Virtual Machine with all the tools needed to develop.
While our display modules are Linux-based – that doesn’t mean you need to be a Linux developer to use them.
Our solution allows developers to use Windows GUI tools to develop applications and then load them into our display module to run. Write a complete graphical interface, test it out on the PC, and then drag the application over to our module’s file system. We have developed a suite of drag-and-drop interface components for quick prototyping.
Whether you develop in Qt or QML, you can run the same code on the PC or the target. We do all the work of configuring Linux to run your GUI code and provide customers with custom start-up screens and specialized I/O agents (processes) to connect the GUI to the outside world.
To begin writing your code, we suggest you start by running one of our sample applications.
To begin writing your code, we suggest you start by running one of our sample applications. We provide a Linux Development Virtual Machine (VM) with all the tools you need:
- Qt Creator for Module Applications – This Qt Creator shortcut is configured for developing applications to run on G2 modules. In this configuration, the Cross Compiler (see details below) path is added to Qt Creator for generating ARM executables that will run on the module.
- Qt Creator for Desktop Applications – This Qt Creator shortcut is configured for desktop development and allows developers to code and debug C/C++ applications in the development environment. Although executables generated in this configuration will not run in the module, this configuration allows for a simpler debugging or prototyping environment.
- Serial Port USB0 – This is a GTKTerm instance configured for /dev/ttyUSB0. This is typically the debug console.
- Serial Port USB1 – This is a GTKTerm instance configured for /dev/ttyUSB1. This is typically the application UART.
- Connect to Server – This is a shortcut to open the Samba share running on the display module. After launching, select the following, and click Connect.
- Server: [display module IP]
- Type: Windows share
- Download QML Components – This is a Chrome shortcut that downloads the G2 QML Component library.
To write C/C++ applications that will run on the display module, the source must be compiled with a cross compiler. The cross compiler is installed in /opt/reach/1.6.3. The 1.6.3 directory contains the script environment-setup-armv5te-reach-linux-gnueabi. This script, once sourced (with the sourcecommand), adds the correct paths to the environment for cross-compilation.
When you’re ready to deploy your application to the display module, see the Linux Deploy page for more details.
Development Tools and Languages
Use development tools and languages familiar to you to design a user interface and control devices attached to a G2 module. There are several options to consider.
QML is a markup language that will look familiar to Web programmers.
Qt Application Framework
Qt is a robust application framework for GUI and low-level systems programming in C++ and C.
You can also use QML to define your User Interface and use lower level Qt libraries to manage attached devices, I/O such as UART ports and TCP/IP, and low-level system calls.
We have examples to get you up-and-running quickly. If you get stuck trying to implement a specific UI feature, Reach Technology can help.
Check out our FAQ on Programming with Qt/QML/C++/C for more information.
If you’d rather use a Web front-end, our display modules also offer a built-in web server using lighttpd so they can serve an embedded Web interface.
Take advantage of the flexibility of Linux. G2 modules can communicate using RS232, RS485, I2C, CAN, Ethernet, and USB. Work with us to create a custom build of your required Linux components, testing functionality, and working with your team as things change over time. We can provide a custom distribution of libraries as needed.
Embedded Touchscreens Made Easy:
Up in Days, Smoothly to Production. Get started with a Development Kit.
Reach Technology is now a part of Novanta.
Research & Development
155 ‘B’ Avenue, Suite 200
Lake Oswego, OR 97034