How Does it Work?

A standard asynchronous serial port connects your system's microcontroller to the serial LCD controller. Simple ASCII commands are used to draw images, text, controls, and other LCD interface elements, on the screen. The controls report back over the serial line when they are activated or changed. Images are stored on the serial LCD controller in flash memory. 
Your microcontroller connects via serial commands to the Reach module

Microcontroller display 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.Sample Buttons

Simple-to-program LCD user interface

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 code.

Want more detail?

Get the Software Reference Manual from the Download Center. It contains a complete description of the "bdc" and "xi" commands used in this example.


// this code assumes bitmaps 1 and 2 are the buttons
// and 3 and 4 are the indicators
// main code loop or process calls drawScreen() to show the screen and
// updateScreen() to update it.
// define button #1 at x=20, y=20, type 2 (on/off), text for both
// undepressed and depressed states are the same, use bitmaps 1 and 2
// for the button images

void drawScreen(void)
	printf("bdc 1 20 20  2 "RELAY 1" "RELAY 1" 1 2/r");

	// create Relay 2 button at x=20, y=95
	printf("bdc 2 20 95  2 "RELAY 2" "RELAY 2" 1 2/r");

	// create Relay 3 button at x=20, y=170
	printf("bdc 3 20 170 2 "RELAY 3" "RELAY 3" 1 2/r");

void drawIndicator(int num, int state) 

  if( 1 == num )

      if(state == 0) printf("xi 3 130  20/r"); // draw bitmap #3 at(130,20)
      else           printf("xi 4 130  20/r"); // draw bitmap #4 at(130,20)  

  if( 2 == num )

      if(state == 0) printf("xi 3 130  95/r");
      else           printf("xi 4 130  95/r");


  if( 3 == num )

      if(state == 0) printf("xi 3 130 170/r");
      else           printf("xi 4 130 170/r");



void updateScreen(void) 

  char inBuf[10];
  unsigned int button;
  enum {up, down} state;

  // check for incoming control string in the form 's'<button>  
  if( EOF != gets(inBuf) ) 
  {   // split control string to button and state
      button = inBuf[1]-'0';       
      state = inBuf[2]-'0';       
      // handle the button pressed or released       
      if( button == 1 ) relay1Handler(state);       
      if( button == 2 ) relay2Handler(state);       
      if( button == 3 ) relay3Handler(state);  
  // update the display  
  if( relay1Sense() )  drawIndicator(1, 1); 
  else                 drawIndicator(1, 0);  
  if( relay2Sense() )  drawIndicator(2, 1); 
  else                 drawIndicator(2, 0);  
  if( relay3Sense() )  drawIndicator(3, 1); 
  else                 drawIndicator(3, 0);  


No particular operating system required

Reach microcontroller displays 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.

Drag-and-drop GUI builder tool

We do not have a drag-and-drop GUI builder tool. Instead we recommend using a standard bit-mapped image development and manipulation tool 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.

Looking for an iPhone-like interface, more I/O, or a drag-and-drop design environment? Check out our new G2 Product. More

No graphics library required

The library is built into Reach microcontroller displays. 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.

Display Module Demonstration

Embedded Display Features Tour Video

View a short video
to see examples of what you can do with a Reach display module: on-board proportional and fixed width fonts, parameter, label and simple math macros, easy to use buttons, save/restore drawing state, dynamic labels, text in a box, relative touch, data visualization charts, slider controls (compass, gauge meters), animation, scroll and rotate, and drawing primitives.

Reach microcontroller display configurations

Reach serial LCD displays come in these configurations:

Enclosed Units

Enclosed Units

Ready to go for applications requiring a NEMA 4 class case, or for any application where a completely enclosed unit is desirable... More

Display Modules

Display Modules

Completely assembled graphic-display units help you rapidly integrate an intelligent display system into your product... More

Controller Boards

Controller Boards

Board-only products for full design flexibility... More

Development Kits

Low Cost Microcontroller Display Development Kits

Our low-cost, low-risk development kits contain everything you need to get a color touchscreen up and running in a matter of days... More

How to learn more

You can do any, or all, of these:

Have more technical questions?

Get more information about how Reach products work with your product. Call our research and development office at 503-675-6464503-675-6464 or email a microcontroller display engineer.


Start Simple

The Value of a Simple Solution

Make something very simple work from end-to-end, then build from there. 1:42 Min Video

See How it Works

See How it Works Video

See how to get a Development Kit up and running. 7:52 Min Video

29 Customer Examples

Products Using Reach

Check out examples of how companies have incorporated Reach modules into products.
2:35 Min Slideshow

Get a Screen Up in Days

Within a week have something up and running. Development Kits start at $349 ... More

12-Page Report

Weigh three options for adding a touch screen or display to
a product.

Why Reach?

Reach gives engineers a jump start. They see lower development costs, reduced risk and decreased time-to-market... More

Will the Microcontroller Display Work with my Product?

The answer is yes if your host microcontroller or microprocessor has an Asynchronous Serial port or a USB host port and you don't need to display video or movie clips.... More

Try Before You Buy

Order a microcontroller LCD development kit which contains everything you need to get a touch interface up and running in a matter of days...More

Want more detail?

Download the microcontroller display Software Reference Manual from the Download Center. The manual contains a complete description of the "bdc" and "xi" commands used in this example.

Have Questions?

Call sales and customer service
at 510-770-1417510-770-1417 or email us.
Call technical support at 503-675-6464503-675-6464 or email a microcontroller display engineer.

© 2016 Reach Technology, a Novanta company. All rights reserved.