User`s guide
2  Introduction 
Overview of Freely Programmable Modules 
Freely Programmable Modules (FPMs) are custom C/C++ applications and drivers that you can use to 
customize the functionality of the SmartServer. You can use FPM applications to supplement the 
built-in applications on the SmartServer and provide solutions for a number of applications, including 
energy optimization, data analysis, lighting control, and room control. You can use FPM drivers as 
gateways to legacy systems or nonnative networks such as BACnet and CAN (requires an external 
interface, sold separately)
. You can then use your FPM drivers to send data from the SmartServer’s 
RS-232 or RS-485 ports to a built-in application on the SmartServer (for example, a Scheduler or a 
Data Logger) or a custom SmartServer Web page. 
An FPM can perform the following tasks: 
•  Create data points on the SmartServer. 
•  Execute code upon data point updates. 
•  Read and write data to data points. 
•  Control timers and execute code upon their expiration. 
•  Read and write data to the RS-232 serial port on the SmartServer. 
•  Read and write data to the RS-485 serial port on the SmartServer. 
FPM Types 
You can create two types of FPMs: FPM applications and FPM drivers. An FPM application reads and 
writes values to the data points declared in it, executes code upon data point updates, reads data point 
properties, and controls timers and executes code upon their expiration. A simple example of an FPM 
application would be one that reads two data points and adds their values together.  
An FPM driver creates data points on the SmartServer (not in the LNS database) and provides values 
for them by reading and writing to the RS-232 and RS-485 ports on the SmartServer. You can use an 
FPM driver to create gateways for nonnative devices. An FPM driver can then be used to supply data 
from the RS-232 or RS-485 ports to a built-in application or custom Web page on the SmartServer. 
Creating and Deploying FPMs 
You can create FPMs using the i.LON SmartServer 2.0 Programming Tool, which includes a pre-
configured C/C++ Eclipse environment and all the tools needed to write, compile, and upload, your 
FPMs. After you create your FPMs, you can deploy them on your SmartServer. 
Before you can begin writing your FPMs, you need to use the NodeBuilder Resource Editor to create a 
user-defined functional profile template (UFPT), which defines the set of network variables and 
configuration properties to which your FPM will read and write. 
You can write an unlimited number of FPMs using the demo or full versions of the i.LON SmartServer 
2.0 Programming Tool. To compile your FPMs and deploy them on your SmartServer, you must use 
the full version of the i.LON SmartServer 2.0 Programming Tool, which is included on the i.LON 
SmartServer 2.0 Programming Tools DVD. To order the i.LON SmartServer 2.0 Programming Tools 
DVD (Echelon part number 72111-409), contact your Echelon sales representative. 
To begin running your FPMs on your SmartServer, an FPM programming license must be installed on 
your SmartServer. To order an FPM programming license for your SmartServer, go to the i.LON 
SmartServer 2.0 Web site at 
www.echelon.com/products/cis/activate. If you plan on using licensed 
Echelon first-party FPMs or licensed third-party FPMs on your SmartServer, you must also order a 
separate FPM application license from Echelon or the third-party FPM vendor. 
To deploy an FPM application on the SmartServer, you upload the FPM executable module to the 
SmartServer, and then add an internal device to the SmartServer. The internal device must use a static 
interface if you are integrating your FPM applications with another LNS application such as the 
LonMaker tool. If you are running your network with the SmartServer operating as a standalone 
network manager, the internal device can use a static or dynamic interface. 










