EZ App Lynx

NEW - Software Library to Interface to Smartphones and Tablets

EZ App Lynx Icon
Download on the App Store
Android App on Google Play

Use the EZApp library to quickly create a wireless sensor or controller on a PIC® MCU that may be viewed and displayed on a mobile device using Bluetooth® included in CCS IDE Compilers. Drivers, examples and development boards for the Microchip RN-4020 Bluetooth® module.

No App Development experience needed.

Free generic App is compatible with the library included with IDE compilers.

EZApp C library allows the GUI on an App to be created at run time from the PIC® microcontroller.

GUI Components:
  • Status Bar
  • Gas Gauges
  • Sliders
  • Buttons
  • Text Edit Fields
  • Drop-down List
Style Components:
  • Text Sizes
  • Colors
  • Spacing
  • Margins and Alignment

The Android and iOS app both support Microchip's RN-4020 Bluetooth® Low Energy (BLE) module in MLDP mode. MLDP mode provides a serial data delivery similar to Bluetooth® Classic's SPP protocol. BLE and MLDP can be used on Apple's iOS without any extra provisioning, meaning the developer doesn't need to be a member of Apple's MFi program to use EZ App Lynx. The Android app also supports any Bluetooth® Classic module that uses SPP protocol, such as Microchip's RN-42.

The Android and iOS app are already available for download and use on their respective stores; the Android app can be found on Google Play while the iOS app can be found on the Apple App Store. A developer using the EZ App Lynx library and app can implement a smartphone or tablet interface without having to create an Android or Apple developer account. A developer using EZ App Lynx also doesn't have to worry about publishing an app to the Google Play or Apple App Store, since CCS has already done this.

If you would like to publish a version of the EZ App Lynx app that is rebranded with your name and company information, we are offering publishing services for Android, iOS, and both at a discounted price.

Available in IDE Compilers 5.032 or better.
Download new version or check Account History.


How it works

How EZ App Lynx Works

Example Styles:

Example Styles

Example Buttons:

Example Buttons

Sample C Source Code

#include "main.h"

#include <EZApp.c>

void main(void)
{   
   ezapp_field_index_t strIndex, rpmIndex, damperIndex, fan1Index, fan2Index;
   rom char* title = "Air Handler Unit 3269";
   
   HW_INIT();

   EZAppInit();
      
   EZAppSetTitleROM(title);

   EZAppSetValueStringROM(EZAppAddFieldString(), title);
   
   strIndex = EZAppAddFieldString();
   
   rpmIndex = EZAppAddFieldAnalogValue(
         (rom char *)"RPM X 1000",  //header
         EZAPP_ANALOG_TYPE_SLIDER,  //display type
         1024,                      //max value
         9                          //scaling
      );
   
   damperIndex = EZAppAddFieldAnalogValue(
         (rom char *)"DAMPER",      //header
         EZAPP_ANALOG_TYPE_SLIDER,  //display type
         1023                       //max value
      );

   fan1Index = EZAppAddFieldButtonTwoState(
         (rom char*)"Fan 1",        //header
         (rom char*)"Off\tOn"       //strings that go in button
      );

   fan2Index = EZAppAddFieldButtonTwoState(
         (rom char*)"Fan 2",        //header
         (rom char*)"Off\tOn"       //strings that go in button
      );

   for(;;)
   {
      EZAppTask();
      
      if (IsFailure())
      {
         EZAppSetValueStringROM(strIndex, (rom char*)"Operation: Failure");
      }
      else
      {
         EZAppSetValueStringROM(strIndex, (rom char*)"Operation: Normal");
      }
      
      EZAppSetValue(rpmIndex, read_adc());

      if (EZAppGetKbhit(damperIndex))
         SetDamper(EZAppGetValue(damperIndex));
     
      if (EZAppGetKbhit(fan1Index))
         SetFan1(EZAppGetValue(fan1Index));

      if (EZAppGetKbhit(fan2Index))
         SetFan2(EZAppGetValue(fan2Index));
   }
}
The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by Bluegiga Technologies is under license. Other trademarks and trade names are those of their respective owners.