From 2d75620bbe989965ae5c82c59b91c8a49441103e Mon Sep 17 00:00:00 2001
From: "Carlo A. Nicolau" <cnicolau@km3net.de>
Date: Tue, 25 May 2021 20:58:23 +0200
Subject: [PATCH] Under development (backup commit)

---
 host/python/codegen/analogvariables.py        |  547 +++
 host/python/codegen/commands.py               |  880 ++++
 host/python/codegen/digitalvariables.py       |  237 +
 host/python/codegen/entities/__init__.py      |    0
 host/python/codegen/entities/base.py          |   23 +
 host/python/codegen/entities/descriptors.py   |  338 ++
 host/python/codegen/firmwareconfig.py         |   41 +
 .../codegen/generate_analogvariables.py       |  171 +
 host/python/codegen/generate_commands.py      |  254 ++
 .../codegen/generate_digitalvariables.py      |  180 +
 host/python/codegen/generate_switches.py      |  178 +
 host/python/codegen/generate_userpins.py      |  174 +
 host/python/codegen/main.py                   |  152 +
 host/python/codegen/switches.py               |  100 +
 host/python/codegen/userpins.py               |   48 +
 host/python/codegen/utils.py                  |    4 +
 micro/BPD-V01-FIRMWARE.X/Makefile             |  113 +
 micro/BPD-V01-GPIOTEST.X/main.c               |   82 +
 micro/BPD-V01-GPIOTEST.X/mcc.mc3              | 3932 +++++++++++++++++
 19 files changed, 7454 insertions(+)
 create mode 100644 host/python/codegen/analogvariables.py
 create mode 100644 host/python/codegen/commands.py
 create mode 100644 host/python/codegen/digitalvariables.py
 create mode 100644 host/python/codegen/entities/__init__.py
 create mode 100644 host/python/codegen/entities/base.py
 create mode 100644 host/python/codegen/entities/descriptors.py
 create mode 100644 host/python/codegen/firmwareconfig.py
 create mode 100644 host/python/codegen/generate_analogvariables.py
 create mode 100644 host/python/codegen/generate_commands.py
 create mode 100644 host/python/codegen/generate_digitalvariables.py
 create mode 100644 host/python/codegen/generate_switches.py
 create mode 100644 host/python/codegen/generate_userpins.py
 create mode 100644 host/python/codegen/main.py
 create mode 100644 host/python/codegen/switches.py
 create mode 100644 host/python/codegen/userpins.py
 create mode 100644 host/python/codegen/utils.py
 create mode 100644 micro/BPD-V01-FIRMWARE.X/Makefile
 create mode 100644 micro/BPD-V01-GPIOTEST.X/main.c
 create mode 100644 micro/BPD-V01-GPIOTEST.X/mcc.mc3

diff --git a/host/python/codegen/analogvariables.py b/host/python/codegen/analogvariables.py
new file mode 100644
index 0000000..ae60208
--- /dev/null
+++ b/host/python/codegen/analogvariables.py
@@ -0,0 +1,547 @@
+from entities.descriptors import AnalogVariableDescriptor, AnalogAlarmDescriptor
+from firmwareconfig import FirmwareConfig as fwcfg
+
+
+def linear_regression(x0, y0, x1, y1, x):
+    m = float((y1-y0) / (x1-x0))
+    return m * (x-x0) + y0
+
+
+def channel2voltage_ADC(_channel):
+    """Convert from the ADC channel to the ADC voltage"""
+    num_channels = fwcfg.ADC_NUM_CHANNELS
+    voltage_reference = 4.096
+    assert _channel <= (num_channels - 1), "channel2voltage_ADC _channel = {} (maximum allowed is {})".format(_channel, num_channels-1)
+    assert _channel > 0, "channel2voltage_ADC _channel = {} (minimum allowed is {})".format(_channel, 0)
+    return float(_channel) * voltage_reference / num_channels
+
+
+def voltage2channel_ADC(_voltage):
+    """Convert from the ADC voltage to ADC channel"""
+    num_channels = fwcfg.ADC_NUM_CHANNELS
+    voltage_reference = 4.096
+    assert _voltage <= voltage_reference, "voltage2channel_ADC _voltage = {} (maximum allowed is {})".format(_voltage, voltage_reference)
+    adc_channel = round(num_channels * float(_voltage) / voltage_reference)
+    return adc_channel
+
+
+DA FARE: definisci una f.ne per invertire (in modo da scrivere meno codice)
+
+convert_chn2meas_DUL_BOARDTEMP
+convert_meas2chn_DUL_BOARDTEMP
+
+convert_chn2meas_TEMP2
+convert_meas2chn_TEMP2
+
+convert_chn2meas_TEMP1
+convert_meas2chn_TEMP1
+
+convert_chn2meas_VEOC_RTN_I
+convert_meas2chn_VEOC_RTN_I
+
+convert_chn2meas_VEOC_FWR_I
+convert_meas2chn_VEOC_FWR_I
+
+convert_chn2meas_HYDRO_I
+convert_meas2chn_HYDRO_I
+
+convert_chn2meas_INPUT_V
+convert_meas2chn_INPUT_V
+
+convert_chn2meas_LBL_I
+convert_meas2chn_LBL_I
+
+convert_chn2meas_GLRA_I
+convert_meas2chn_GLRA_I
+
+convert_chn2meas_GLRB_I
+convert_meas2chn_GLRB_I
+
+convert_chn2meas_PWB_I
+convert_meas2chn_PWB_I
+
+
+
+
+#
+# def channel2current_MON_DU_I(_channel):
+#     """
+#     Converter from ADC channel to current for an ACS724 sensor
+#     According to formula in schematics:
+#         DU_I_MON Voltage Range:
+#         @ Ta=25C to 150C & VCC=4.5V ... 4.9V
+#         Vout=1.21V ... 1.36V @ 0A
+#         Vout=1.78V ... 1.99V @ 600mA
+#         Vout=4.03V ... 4.51V @ 3A
+#         DU_I_Mon(A)=[#ch @ (I_Actual) - #ch @ (0A)]/K
+#         @ Ta=25C K(max)=215.2; K(min)=194.7
+#     Recalculating using nominal component values (and ACS datasheet formula) @ VCC = 5V :
+#         Vadc = (89/33) * (0.5 + 0.4 * I)
+#     Thus:
+#         I = ((33/89) * Vadc - 0.5) / 0.4
+#     """
+#     return ((33. / 89.) * channel2voltage_ADC(_channel) - 0.5) / 0.4
+#
+#
+# def current2channel_MON_DU_I(_current):
+#     """
+#     Converter from current to ADC channel for an ACS724 sensor
+#     see channel2current_MON_DU_I for comments
+#     """
+#     return voltage2channel_ADC((89. / 33.) * (0.5 + 0.4 * _current))
+#
+#
+# def channel2voltage_MON_BPS_V(_channel):
+#     """
+#     Converter from ADC channel to voltage read on the BPS_V_MON (as defined in schematic, or MON_BPS_V, as defined in code)
+#     According to formulas in schematics:
+#     BPS_V_MON Voltage Range:
+#         ~ 3.05V @ 300V
+#         ~ 3.63V @ 360V
+#         ~ 3.73V @ 375V
+#         ~ 3.83V @ 380V
+#     """
+#     x0, y0 = voltage2channel_ADC(3.05), 300.
+#     x1, y1 = voltage2channel_ADC(3.83), 380.
+#     return linear_regression(x0, y0, x1, y1, _channel)
+#
+#
+# def voltage2channel_MON_BPS_V(_voltage):
+#     """
+#     Converter from voltage read on the BPS_V_MON (as defined in schematic, or MON_BPS_V, as defined in code) to ADC channel
+#     see channel2voltage_MON_BPS_V for comments
+#     """
+#     x0, y0 = 300., voltage2channel_ADC(3.05)
+#     x1, y1 = 380., voltage2channel_ADC(3.83)
+#     return linear_regression(x0, y0, x1, y1, _voltage)
+#
+#
+# def channel2current_MON_5V_I(_channel):
+#     """
+#     Converter from ADC channel to current on the 5V
+#     According to formulas in schematics:
+#         5V_I_Mon Vout Range:
+#         ~ 0mV  @ 0mA
+#         ~ 1.8V @ 3A
+#         ~ 5.0V @ 8.3A (Full Scale)
+#         Sens=8.13mA/count
+#     """
+#     x0, y0 = voltage2channel_ADC(0.), 0.
+#     x1, y1 = voltage2channel_ADC(0.5*5.), 0.5*8.3
+#     return linear_regression(x0, y0, x1, y1, _channel)
+#
+#
+# def current2channel_MON_5V_I(_current):
+#     """
+#     Converter from current on the 5V to ADC channel
+#     see channel2current_MON_5V_I for comments
+#     """
+#     x0, y0 = 0., voltage2channel_ADC(0.)
+#     x1, y1 = 0.5* 8.3, voltage2channel_ADC(0.5 * 5.)
+#     return linear_regression(x0, y0, x1, y1, _current)
+#
+#
+# def channel2current_12V(_channel):
+#     """
+#     Converter from ADC channel to current on one of the 12V lines
+#         LBL_I_Mon/HYDRO_I_Mon Vout Range:
+#         1) @ Ta=-40C to 85C & VCC 3.2V ... 3.4V
+#         Vout=38mV ... 610mV @ 0mA
+#         Vout=3.23V ... 4.08V @ 800mA
+#         2) @ Ta=25C & VCC 3.29V ... 3.31V
+#         Vout=206mV ... 370mV @ 0mA
+#         Vout=496mV ... 670mV @ 70mA
+#         Vout=3.52V ... 3.79V @ 800mA
+#         LBL_I_Mon(mA)=[#ch @ (I_Actual) - #ch @ (0mA)]*K
+#         @ Ta=25C K(max)=1.37; K(min)=1.15
+#     We assume data for T=25C
+#     """
+#     x0 = voltage2channel_ADC((0.206 + 0.370) / 2.)
+#     y0 = 0.
+#     x1 = voltage2channel_ADC((3.52 + 3.79) / 2.)
+#     y1 = 0.8
+#     return linear_regression(x0, y0, x1, y1, _channel)
+#
+#
+# def current2channel_12V(_current):
+#     """
+#     Converter from current on one of the 12V lines to ADC channel
+#     see channel2current_12V for comments
+#     """
+#     x0 = 0.
+#     y0 = voltage2channel_ADC((0.206 + 0.370) / 2.)
+#     x1 = 0.8
+#     y1 = voltage2channel_ADC((3.52 + 3.79) / 2.)
+#     return linear_regression(x0, y0, x1, y1, _current)
+#
+#
+# def channel2temperature_THEATSINK(_channel):
+#     """
+#     Converter from ADC channel to heatsink temperature
+#     To be done. For now just use ADC voltage conversion
+#     """
+#     return channel2voltage_ADC(_channel)
+#
+#
+# def temperature2channel_THEATSINK(_temperature):
+#     """
+#     Converter from heatsink temperature to ADC channel
+#     To be done. For now just use ADC voltage conversion
+#     """
+#     return voltage2channel_ADC(_temperature)
+#
+#
+# def channel2temperature_TBOARD(_channel):
+#     """
+#     Converter from ADC channel to heatsink temperature
+#     From schematics:
+#         DUL Board Temperature
+#         Sensor Voltage Range:
+#         ~ 1.0V @ 0C
+#         ~ 1.5V @ 25C
+#         ~ 3.0V @ 100C
+#     """
+#     x0 = voltage2channel_ADC(1.)
+#     y0 = 0.
+#     x1 = voltage2channel_ADC(3.)
+#     y1 = 100.
+#     return linear_regression(x0, y0, x1, y1, _channel)
+#
+#
+# def temperature2channel_TBOARD(_temperature):
+#     """
+#     Converter from ADC channel to heatsink temperature
+#     see channel2temperature_TBOARD for comments
+#     """
+#     x0 = 0.
+#     y0 = voltage2channel_ADC(1.)
+#     x1 = 100.
+#     y1 = voltage2channel_ADC(3.)
+#     return linear_regression(x0, y0, x1, y1, _temperature)
+
+
+class AnalogVariableList:
+    """A class to define the list of analog variables of the BPS"""
+
+    # this class can be actually created only once
+    _ready = False
+
+    def __init__(self):
+        assert self._ready is False, "Class {} should be created only once!".format(self.__class__.__name__)
+        self._create()
+        self._ready = True
+
+    def count(self):
+        return len(self.vars)
+
+    def entries(self):
+        return self.vars
+
+    def _create(self):
+        self.vars = list()
+
+        alarm_enum_index = 1
+        var_enum_index = 1
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_DUL_BOARDTEMP',
+                analog_channel=0,
+                channel2measure_converter=convert_chn2meas_DUL_BOARDTEMP,
+                measure2channel_converter=convert_meas2chn_DUL_BOARDTEMP,
+                description='DUL board temperature sensor',
+                units='C',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_TEMP2',
+                analog_channel=1,
+                channel2measure_converter=convert_chn2meas_TEMP2,
+                measure2channel_converter=convert_meas2chn_TEMP2,
+                description='VICOR2 Heatsink (connector J12) temperature sensor signal acquisition',
+                units='C',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_TEMP1',
+                analog_channel=2,
+                channel2measure_converter=convert_chn2meas_TEMP1,
+                measure2channel_converter=convert_meas2chn_TEMP1,
+                description='VICOR1 Heatsink (connector J1) temperature sensor signal acquisition ',
+                units='C',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=60.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_VEOC_RTN_I',
+                analog_channel=3,
+                channel2measure_converter=convert_chn2meas_VEOC_RTN_I,
+                measure2channel_converter=convert_meas2chn_VEOC_RTN_I,
+                description='DU backbone return current sensor signal acquisition ',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=True,
+                    threshold_default=1.5,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=True,
+                    threshold_default=2.5,  # TODO
+                    timeout_default_ms=5.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_VEOC_FWR_I',
+                analog_channel=4,
+                channel2measure_converter=convert_chn2meas_VEOC_FWR_I,
+                measure2channel_converter=convert_meas2chn_VEOC_FWR_I,
+                description='DU backbone forward current sensor signal acquisition ',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=True,
+                    threshold_default=1.4,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=True,
+                    threshold_default=2.4,  # TODO
+                    timeout_default_ms=5.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_HYDRO_I',
+                analog_channel=5,
+                channel2measure_converter=convert_chn2meas_HYDRO_I,
+                measure2channel_converter=convert_meas2chn_HYDRO_I,
+                description='HYDRO current sensor signal acquisition ',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=0.15,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=0.80,  # TODO
+                    timeout_default_ms=50.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_INPUT_V',
+                analog_channel=6,
+                channel2measure_converter=convert_chn2meas_INPUT_V,
+                measure2channel_converter=convert_meas2chn_INPUT_V,
+                description='Main Input Line voltage sensor signal acquisition ',
+                units='V',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=405.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=405.,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_LBL_I',
+                analog_channel=7,
+                channel2measure_converter=convert_chn2meas_LBL_I,
+                measure2channel_converter=convert_meas2chn_LBL_I,
+                description='LBL current sensor signal acquisition ',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=0.60,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=0.90,  # TODO
+                    timeout_default_ms=50.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_GLRA_I',
+                analog_channel=8,
+                channel2measure_converter=convert_chn2meas_GLRA_I,
+                measure2channel_converter=convert_meas2chn_GLRA_I,
+                description='GLENAIR-A current sensor signal acquisition',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=12.0,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=12.0,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_GLRB_I',
+                analog_channel=9,
+                channel2measure_converter=convert_chn2meas_GLRB_I,
+                measure2channel_converter=convert_meas2chn_GLRB_I,
+                description='GLENAIR-B current sensor signal acquisition',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=12.0,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=12.0,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+        alarm_enum_index += 2
+        var_enum_index += 1
+
+        self.vars.append(
+            AnalogVariableDescriptor(
+                firmware_config=fwcfg,
+                name='MON_PWB_I',
+                analog_channel=10,
+                channel2measure_converter=convert_chn2meas_PWB_I,
+                measure2channel_converter=convert_meas2chn_PWB_I,
+                description='POWER BOARD current sensor signal acquisition',
+                units='A',
+                enum_index=var_enum_index,
+                alarm_slow=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=False,
+                    threshold_default=1.8,  # TODO
+                    timeout_default_ms=100.  # TODO
+                ),
+                alarm_fast=AnalogAlarmDescriptor(
+                    enum_index=alarm_enum_index+1,
+                    enable_default=False,
+                    threshold_default=1.8,  # TODO
+                    timeout_default_ms=100.  # TODO
+                )
+            )
+        )
+
+        print "Analog Variables, latest alarm index defined: ", alarm_enum_index+1
+
+
+if __name__ == '__main__':
+    analog_variables = AnalogVariableList()
+    print analog_variables.vars[0].name
+
+
diff --git a/host/python/codegen/commands.py b/host/python/codegen/commands.py
new file mode 100644
index 0000000..be64483
--- /dev/null
+++ b/host/python/codegen/commands.py
@@ -0,0 +1,880 @@
+from entities.descriptors import CommandDescriptor, PayloadFieldEnum
+from entities.descriptors import PayloadFieldU8, PayloadFieldU16, PayloadFieldU32
+from switches import SwitchList
+from analogvariables import AnalogVariableList
+from digitalvariables import DigitalVariableList
+from userpins import UserPinList
+from firmwareconfig import FirmwareConfig as fwcfg
+
+
+class SwitchEnumField(PayloadFieldEnum):
+    """A class to create enum relative to the switches"""
+
+    def __init__(self, switch_list):
+        assert isinstance(switch_list, SwitchList)
+        PayloadFieldEnum.__init__(
+            self,
+            name='SWITCHNUM',
+            description='Switch number',
+            index_list=[itm.enum_index for itm in switch_list.entries()],
+            value_list=[itm.name for itm in switch_list.entries()])
+
+
+class UserPinEnumField(PayloadFieldEnum):
+    """A class to create enum relative to the board user pins"""
+
+    def __init__(self, user_pin_list):
+        assert isinstance(user_pin_list, UserPinList)
+        PayloadFieldEnum.__init__(
+            self,
+            name='PINNUM',
+            description='User pin number',
+            index_list=[itm.enum_index for itm in user_pin_list.entries()],
+            value_list=[itm.name for itm in user_pin_list.entries()])
+
+
+class AlarmEnumField(PayloadFieldEnum):
+
+    def __init__(self, analog_variable_list, digital_variable_list, analog_only=False, append_all_selector=False, append_ored_selector=False):
+        assert isinstance(analog_variable_list, AnalogVariableList)
+        assert isinstance(digital_variable_list, DigitalVariableList)
+        index_list = list()
+        value_list = list()
+        enum_name = 'ALARM_NUMBER'
+        for variable in analog_variable_list.entries():
+            index_list.append(variable.alarm_slow.enum_index)
+            value_list.append('ALARM_SLOW_' + variable.name)
+            index_list.append(variable.alarm_fast.enum_index)
+            value_list.append('ALARM_FAST_' + variable.name)
+        if not analog_only:
+            for variable in digital_variable_list.entries():
+                index_list.append(variable.alarm.enum_index)
+                value_list.append('ALARM_' + variable.name)
+        else:
+            enum_name += '_ANALOG'
+        if append_all_selector:
+            enum_name += '_ALL'
+            index_list.append(max(index_list)+1)
+            value_list.append('ALARMS_ALL')
+        if append_ored_selector:
+            enum_name += '_EXT'
+            index_list.append(max(index_list)+1)
+            value_list.append('ALARMS_ALL_ORED')
+
+        PayloadFieldEnum.__init__(
+            self,
+            name=enum_name,
+            description='Alarm number',
+            index_list=index_list,
+            value_list=value_list
+        )
+
+
+class VariableEnumField(PayloadFieldEnum):
+
+    def __init__(self, analog_variable_list, digital_variable_list, analog_only=False, append_all_selector=False):
+        assert isinstance(analog_variable_list, AnalogVariableList)
+        assert isinstance(digital_variable_list, DigitalVariableList)
+        index_list = list()
+        value_list = list()
+        enum_name = 'VARIABLE_NUMBER'
+        for variable in analog_variable_list.entries():
+            index_list.append(variable.enum_index)
+            value_list.append(variable.name)
+        if not analog_only:
+            for variable in digital_variable_list.entries():
+                index_list.append(variable.enum_index)
+                value_list.append(variable.name)
+        else:
+            enum_name += '_ANALOG'
+        if append_all_selector:
+            enum_name += '_ALL'
+            index_list.append(max(index_list)+1)
+            value_list.append('ALL_VARIABLES')
+
+        PayloadFieldEnum.__init__(
+            self,
+            name=enum_name,
+            description='Variable number',
+            index_list=index_list,
+            value_list=value_list
+        )
+
+
+class VariableAveragingPrescalerEnumField(PayloadFieldEnum):
+    """A class to create enum relative to the averaging functionality"""
+
+    def __init__(self):
+        idxs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
+        PayloadFieldEnum.__init__(
+            self,
+            name='AVERAGINGPRESCALER',
+            description='Variable averaging prescaler',
+            index_list=idxs,
+            value_list=[str(idx) for idx in idxs])
+
+
+class SwitchStateField(PayloadFieldEnum):
+    """A class to create enum relative to board switch state"""
+
+    def __init__(self, for_request=False):
+        if for_request:
+            PayloadFieldEnum.__init__(
+                self,
+                name='SWITCHSTATE_NC',
+                description='Switch state',
+                index_list=[0, 1, 2],
+                value_list=['OPEN', 'CLOSED', 'NO_CHANGE'])
+        else:
+            PayloadFieldEnum.__init__(
+                self,
+                name='SWITCHSTATE',
+                description='Switch state',
+                index_list=[0, 1],
+                value_list=['OPEN', 'CLOSED'])
+
+
+class EnableStateField(PayloadFieldEnum):
+
+    def __init__(self, for_request=False):
+        if for_request:
+            PayloadFieldEnum.__init__(
+                self,
+                name='ENABLESTATE_NC',
+                description='Enable state',
+                index_list=[0, 1, 2],
+                value_list=['DISABLED', 'ENABLED', 'NO_CHANGE'])
+        else:
+            PayloadFieldEnum.__init__(
+                self,
+                name='ENABLESTATE',
+                description='Enable state',
+                index_list=[0, 1],
+                value_list=['DISABLED', 'ENABLED'])
+
+
+class FiredStateField(PayloadFieldEnum):
+
+    def __init__(self):
+        PayloadFieldEnum.__init__(
+            self,
+            name='FIREDSTATE',
+            description='Fired state',
+            index_list=[0, 1],
+            value_list=['NO', 'YES'])
+
+
+class FlagStateField(PayloadFieldEnum):
+
+    def __init__(self, name=None, description=None):
+        if name is None:
+            name = 'FLAGSTATE'
+        if description is None:
+            description = 'Status'
+        PayloadFieldEnum.__init__(
+            self,
+            name=name,
+            description=description,
+            index_list=[0, 1],
+            value_list=['LOW', 'HIGH'])
+
+
+class UserPinStateField(PayloadFieldEnum):
+
+    def __init__(self, name=None, description=None):
+        if name is None:
+            name = 'PINSTATE'
+        if description is None:
+            description = 'Status'
+        PayloadFieldEnum.__init__(
+            self,
+            name=name,
+            description=description,
+            index_list=[0, 1],
+            value_list=['LOW', 'HIGH'])
+
+
+class CommandList:
+    """A class to define the list of board commands"""
+
+    # this class can be actually created only once
+    _ready = False
+
+    def __init__(self, switch_list, analog_variable_list, digital_variable_list, user_pin_list):
+        assert self._ready is False, "Class {} should be created only once!".format(self.__class__.__name__)
+        assert isinstance(switch_list, SwitchList)
+        assert isinstance(analog_variable_list, AnalogVariableList)
+        assert isinstance(digital_variable_list, DigitalVariableList)
+        assert isinstance(user_pin_list, UserPinList)
+        self.switch_list = switch_list
+        self.analog_variable_list = analog_variable_list
+        self.digital_variable_list = digital_variable_list
+        self.user_pin_list = user_pin_list
+        self._create()
+        self._ready = True
+
+    def count(self):
+        return len(self.vars)
+
+    def entries(self):
+        return self.vars
+
+    def _create(self):
+        self.vars = list()
+        self._create_field_types()
+        self._create_switch_commands()
+        self._create_alarm_commands()
+        self._create_variable_commands()
+        self._create_utility_commands()
+        self._create_rescue_control_commands()
+        self._create_debug_commands()
+        self._consolidate_list()
+
+    def _consolidate_list(self):
+        command_code_start = 0x40  # to avoid clashing with previus version commands
+        command_code_current = command_code_start
+        command_code_usedlist = []
+        for cmd in self.vars:
+            if cmd.request_code is None:
+                assert cmd.response_code is None
+                assert command_code_current not in command_code_usedlist
+                assert (command_code_current+1) not in command_code_usedlist
+                cmd.request_code = command_code_current
+                cmd.response_code = command_code_current+1
+                command_code_current += 2
+            else:
+                if cmd.response_code is None:
+                    assert (cmd.request_code + 1) not in command_code_usedlist
+                    cmd.response_code = cmd.requset_code + 1
+            assert cmd.request_code not in command_code_usedlist, "Command {}".format(cmd.name)
+            command_code_usedlist.append(cmd.request_code)
+            assert cmd.response_code not in command_code_usedlist or cmd.implement is False, "Command {}".format(cmd.name)
+            command_code_usedlist.append(cmd.response_code)
+
+    def _create_field_types(self):
+        # switch enumeration
+        self.switch_enum_field = SwitchEnumField(self.switch_list)
+
+        # variables enum fields
+        self.variable_enum_field = VariableEnumField(self.analog_variable_list, self.digital_variable_list)
+        self.variable_enum_field_all = VariableEnumField(self.analog_variable_list, self.digital_variable_list, append_all_selector=True)
+
+        # variables value fields
+        self.variable_value_field = PayloadFieldU16(name='VALUE', description='Last acquired sensor value (0/1 for digital sensors)')
+        self.variable_meanvalue_field = PayloadFieldU16(name='MEANVALUE', description='Sensor mean value (0 for digital sensors)')
+        self.variable_offset_field = PayloadFieldU16(name='OFFSET', description='Sensor offset value (acquired at start-up, reports zero for digital sensors)')
+        self.variable_maxvalue_field = PayloadFieldU16(name='MAXVALUE', description='Sensor maximum value since last reset (0/1 for digital sensors)')
+
+        # some variables command fields generated collections
+        self.variable_getall_values_respfields = self.__util_gen_variable_getall_response_payload('values')
+        self.variable_getall_meanvalues_respfields = self.__util_gen_variable_getall_response_payload('means')
+        self.variable_getall_offsets_respfields = self.__util_gen_variable_getall_response_payload('offsets')
+        self.variable_getall_maxvalues_respfields = self.__util_gen_variable_getall_response_payload('maxvalues')
+        self.variable_meanvalue_prescaler_field = VariableAveragingPrescalerEnumField()
+
+        # alarms enum fields
+        self.alarm_enum_field = AlarmEnumField(self.analog_variable_list, self.digital_variable_list)
+        self.alarm_enum_field_all = AlarmEnumField(self.analog_variable_list, self.digital_variable_list, append_all_selector=True)
+        self.alarm_enum_field_analog = AlarmEnumField(self.analog_variable_list, self.digital_variable_list, analog_only=True)
+        self.alarm_enum_field_ored = AlarmEnumField(self.analog_variable_list, self.digital_variable_list, append_ored_selector=True)
+
+        # alarms value fields
+        self.alarm_timeout_value_field = PayloadFieldU16(name='TIMEOUT', description='Timeout value')
+        self.alarm_maxcount_value_field = PayloadFieldU16(name='MAXCOUNT', description='Max count value')
+        self.alarm_firecount_value_field = PayloadFieldU16(name='FIRECOUNT', description='Fire count value')
+        self.alarm_threshold_value_field = PayloadFieldU16(name='THRESHOLD', description='Threshold value')
+
+        # rescue procedure fields
+        self.rescue_timeout_value_field = PayloadFieldU16(name='RESCUE_TIMEOUT', description='Timeout value')
+
+        # user pin related enumeration
+        self.user_pin_enum_field = UserPinEnumField(self.user_pin_list)
+
+    def _create_switch_commands(self):
+
+        description = 'Control one of the switches or enable lines of the board. Can be used to get the current switch status without changing it (see request payload field status)'
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SWITCH_CONTROL',
+                request_code=None,
+                response_code=None,
+                description=description,
+                request_payload=[self.switch_enum_field, SwitchStateField(for_request=True)],
+                response_payload=[self.switch_enum_field, SwitchStateField()]
+            )
+        )
+
+    def _create_alarm_commands(self):
+
+        ################################################################################################################
+        # Alarm enable/disable command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_ENABLE',
+                request_code=None,
+                response_code=None,
+                description='Enable or disable one of the alarms. Can be used to get the current enable status without changing it (see request payload field)',
+                request_payload=[self.alarm_enum_field, EnableStateField(for_request=True)],
+                response_payload=[self.alarm_enum_field, EnableStateField()]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Set timeout command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_TIMEOUT_SET',
+                request_code=None,
+                response_code=None,
+                description='Set the timeout of one alarm',
+                request_payload=[self.alarm_enum_field, self.alarm_timeout_value_field],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get timeout command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_TIMEOUT_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the timeout value of one alarm',
+                request_payload=[self.alarm_enum_field],
+                response_payload=[self.alarm_enum_field, self.alarm_timeout_value_field]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get the max timeout counter command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_MAXCOUNT_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the maximum counter value reached by one of the alarms (use command ALARM_MAXCOUNT_RESET to reset it to zero)',
+                request_payload=[self.alarm_enum_field],
+                response_payload=[self.alarm_enum_field, self.alarm_maxcount_value_field]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Max timeout counter reset command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_MAXCOUNT_RESET',
+                request_code=None,
+                response_code=None,
+                description='Reset the maximum counter value of one alarm (or all alarms)',
+                request_payload=[self.alarm_enum_field_all],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Set alarm threshold command (for analog sensor alarms only)
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_THRESHOLD_SET',
+                request_code=None,
+                response_code=None,
+                description='Set the threshold value of one analog alarm',
+                request_payload=[self.alarm_enum_field_analog, self.alarm_threshold_value_field],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get alarm threshold command (for analog sensor alarms only)
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_THRESHOLD_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the threshold value of one analog alarm',
+                request_payload=[self.alarm_enum_field_analog],
+                response_payload=[self.alarm_enum_field_analog, self.alarm_threshold_value_field]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get alarm fired command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_FIRED_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the has-fired flag of one alarm (or all alarms OR-ed)',
+                request_payload=[self.alarm_enum_field_ored],
+                response_payload=[self.alarm_enum_field_ored, FiredStateField()]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Alarm fired reset command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_FIRED_RESET',
+                request_code=None,
+                response_code=None,
+                description='Reset the has-fired flag of one alarm (or all alarms)',
+                request_payload=[self.alarm_enum_field_all],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get alarm firecount command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ALARM_FIRECOUNT_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the current fire counter of one alarm',
+                request_payload=[self.alarm_enum_field],
+                response_payload=[self.alarm_enum_field, self.alarm_firecount_value_field]
+            )
+        )
+
+    def __util_gen_variable_getall_response_payload(self, selection):
+        """Utility function"""
+        fields = list()
+        for variable in self.analog_variable_list.entries():
+            if selection == 'values':
+                name = variable.name + '_VALUE'
+                description = 'Variable ' + variable.name + ' last acquired value'
+            elif selection == 'means':
+                name = variable.name + '_MEAN'
+                description = 'Variable ' + variable.name + ' mean'
+            elif selection == 'offsets':
+                name = variable.name + '_OFFSET'
+                description = 'Variable ' + variable.name + ' offset'
+            elif selection == 'maxvalues':
+                name = variable.name + '_MAXVALUE'
+                description = 'Variable ' + variable.name + ' max value'
+            else:
+                assert False
+            fields.append(
+                PayloadFieldU16(
+                    name=name,
+                    description=description
+                )
+            )
+        # if requested fields are not offsets, then append the fields for the digital sensors
+        if not selection == 'offsets':
+            for variable in self.digital_variable_list.entries():
+                if selection != 'means':
+                    fields.append(
+                        FlagStateField(
+                            name=variable.name + '_STATE',
+                            description=variable.name + ' status'
+                        )
+                    )
+        return fields
+
+    def _create_variable_commands(self):
+
+        ################################################################################################################
+        # Append command: Get one sensor current value, offset value, and max value
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_GET_SINGLE',
+                request_code=None,
+                response_code=None,
+                description='Get one sensor\'s current value, offset value, max value, and mean value',
+                request_payload=[self.variable_enum_field],
+                response_payload=[self.variable_enum_field, self.variable_value_field, self.variable_offset_field, self.variable_maxvalue_field, self.variable_meanvalue_field]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Reset one sensor max value
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_MAXVALUE_RESET',
+                request_code=None,
+                response_code=None,
+                description='Reset the max value of one sensor (or all sensors)',
+                request_payload=[self.variable_enum_field_all],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get all sensors current values
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_VALUES_GETALL',
+                request_code=None,
+                response_code=None,
+                description='Get all sensors\' values',
+                request_payload=[],
+                response_payload=self.variable_getall_values_respfields
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get all sensors mean values
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_AVERAGE_GETALL',
+                request_code=None,
+                response_code=None,
+                description='Get all sensors\' mean values',
+                request_payload=[],
+                response_payload=self.variable_getall_meanvalues_respfields
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get all sensors offset values
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_OFFSETS_GETALL',
+                request_code=None,
+                response_code=None,
+                description='Get all sensors\' offsets',
+                request_payload=[],
+                response_payload=self.variable_getall_offsets_respfields
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get all sensors max values
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_MAXVALUES_GETALL',
+                request_code=None,
+                response_code=None,
+                description='Get all sensors\' max values',
+                request_payload=[],
+                response_payload=self.variable_getall_maxvalues_respfields
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Set mean calculator prescale value
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_AVERAGING_PRESCALER_SET',
+                request_code=None,
+                response_code=None,
+                description='Set the value of the prescaler used to compute sensors\' averages',
+                request_payload=[self.variable_meanvalue_prescaler_field],
+                response_payload=[]
+            )
+        )
+
+        ################################################################################################################
+        # Append command: Get mean calculator prescale value
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='SENSOR_AVERAGING_PRESCALER_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the value of the prescaler used to compute sensors\' averages',
+                request_payload=[],
+                response_payload=[self.variable_meanvalue_prescaler_field]
+            )
+        )
+
+    def _create_utility_commands(self):
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Time Since reset
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='BOARDTIME',
+                request_code=None,
+                response_code=None,
+                description='Time since last reset',
+                request_payload=[],
+                response_payload=[
+                    PayloadFieldU32(
+                        name='SECONDS',
+                        description='Seconds since reset'
+                    )]
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Time Since last command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='LASTCOMMANDTIME',
+                request_code=None,
+                response_code=None,
+                description='Time since last command',
+                request_payload=[],
+                response_payload=[
+                    PayloadFieldU32(
+                        name='SECONDS',
+                        description='Seconds since last command'
+                    )]
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Versioning info
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='VERSION',
+                request_code=None,
+                response_code=None,
+                description='Report embedded code versioning information',
+                request_payload=[],
+                response_payload=[
+                    PayloadFieldU32(
+                        name='FIRMWARE_TARGET',
+                        description='Target of the firmware'
+                    ),
+                    PayloadFieldU16(
+                        name='COMMAND_TABLE_VERSION',
+                        description='Version of the current command table'
+                    ),
+                    PayloadFieldU16(
+                        name='TEMPLATE_GENERATION_YEAR',
+                        description='Template generation year'
+                    ),
+                    PayloadFieldU8(
+                        name='TEMPLATE_GENERATION_MONTH',
+                        description='Template generation month'
+                    ),
+                    PayloadFieldU8(
+                        name='TEMPLATE_GENERATION_DAY',
+                        description='Template generation day'
+                    ),
+                    PayloadFieldU8(
+                        name='TEMPLATE_GENERATION_HOUR',
+                        description='Template generation hour'
+                    ),
+                    PayloadFieldU8(
+                        name='TEMPLATE_GENERATION_MINUTE',
+                        description='Template generation minute'
+                    ),
+                    PayloadFieldU8(
+                        name='TEMPLATE_GENERATION_SECOND',
+                        description='Template generation second'
+                    )]
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Get last error recorded
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='LASTERROR',
+                request_code=None,
+                response_code=None,
+                description='Return the last occurred error, and reset it to NOERR value',
+                request_payload=[],
+                response_payload=[
+                    PayloadFieldU8(
+                        name='ERRCODE',
+                        description='Error code'
+                    )]
+            )
+        )
+
+    def _create_rescue_control_commands(self):
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: commands related to rescuing procedure
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='RESCUE_ENABLE',
+                request_code=None,
+                response_code=None,
+                description='Enable or disable auto-rescue (or read enable status)',
+                request_payload=[EnableStateField(for_request=True)],
+                response_payload=[EnableStateField()]
+            )
+        )
+
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='RESCUE_STATUS_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the auto-rescue current status (fired or not)',
+                request_payload=[],
+                response_payload=[FiredStateField()]
+            )
+        )
+
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='RESCUE_STATUS_RESET',
+                request_code=None,
+                response_code=None,
+                description='Reset the auto-rescue current status',
+                request_payload=[],
+                response_payload=[]
+            )
+        )
+
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='RESCUE_TIMEOUT_SET',
+                request_code=None,
+                response_code=None,
+                description='Set the auto-rescue timeout value',
+                request_payload=[self.rescue_timeout_value_field],
+                response_payload=[]
+            )
+        )
+
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='RESCUE_TIMEOUT_GET',
+                request_code=None,
+                response_code=None,
+                description='Get the auto-rescue timeout value',
+                request_payload=[],
+                response_payload=[self.rescue_timeout_value_field]
+            )
+        )
+
+    def _create_debug_commands(self):
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: User pins commands
+
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='USER_PIN_CONTROL',
+                request_code=None,
+                response_code=None,
+                description='Control one user pin',
+                request_payload=[self.user_pin_enum_field, UserPinStateField()],
+                response_payload=[]
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Echo command (1 byte payload versions)
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ECHO1',
+                request_code=None,
+                response_code=None,
+                description='Echo (1 byte)',
+                request_payload=[PayloadFieldU8(name='VALUE', description='Echoed byte')],
+                response_payload=[PayloadFieldU8(name='VALUE', description='Echoed byte')]
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Echo command (4 bytes)
+        _echo4_payload = list()
+        for k in range(4):
+            _echo4_payload.append(PayloadFieldU8(name='VALUE_' + str(k), description='Echoed byte'))
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ECHO4',
+                request_code=None,
+                response_code=None,
+                description='Echo (4 bytes)',
+                request_payload=_echo4_payload,
+                response_payload=_echo4_payload
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Echo command (32 bytes payload versions)
+        _echo32_payload = list()
+        for k in range(32):
+            _echo32_payload.append(PayloadFieldU8(name='VALUE_' + str(k), description='Echoed byte'))
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='ECHO32',
+                request_code=None,
+                response_code=None,
+                description='Echo (32 bytes)',
+                request_payload=_echo32_payload,
+                response_payload=_echo32_payload
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: Utility command to check alignment
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='VALCHECK',
+                request_code=None,
+                response_code=None,
+                description='Return a some data to check endianness',
+                request_payload=[],
+                response_payload=[
+                    PayloadFieldU32(name='VALUE_0', description='Read as 128'),
+                    PayloadFieldU32(name='VALUE_1', description='Read as 2**31 = 2147483648'),
+                    PayloadFieldU16(name='VALUE_2', description='Read as 128'),
+                    PayloadFieldU16(name='VALUE_3', description='Read as 2**15 = 32768'),
+                    PayloadFieldU8(name='VALUE_4', description='Read as 4'),
+                    PayloadFieldU8(name='VALUE_5', description='Read as 64'),
+                ],
+                implement=True
+            )
+        )
+
+        # ------------------------------------------------------------------------------------------------------------------
+        # Append command: invalid command
+        self.vars.append(
+            CommandDescriptor(
+                firmware_config=fwcfg,
+                name='INVALID',
+                request_code=254,
+                response_code=255,
+                description='Invalid command (used in firmware, not implemented)',
+                request_payload=[],
+                response_payload=[],
+                implement=False
+            )
+        )
+
+
+if __name__ == '__main__':
+    switch_list = SwitchList()
+    analog_variable_list = AnalogVariableList()
+    digital_variable_list = DigitalVariableList()
+    user_pin_list = UserPinList()
+
+    commands = CommandList(switch_list, analog_variable_list, digital_variable_list, user_pin_list)
+    for command in commands.entries():
+        print command.name
+
+    print [itm.generate_enum_typename() for itm in PayloadFieldEnum.get_persistent_list().values()]
+
diff --git a/host/python/codegen/digitalvariables.py b/host/python/codegen/digitalvariables.py
new file mode 100644
index 0000000..b2b02e2
--- /dev/null
+++ b/host/python/codegen/digitalvariables.py
@@ -0,0 +1,237 @@
+from entities.descriptors import DigitalVariableDescriptor, DigitalAlarmDescriptor
+from firmwareconfig import FirmwareConfig as fwcfg
+
+
+class DigitalVariableList:
+    """A class to define the list of digital variables of the board"""
+
+    # this class can be actually created only once
+    _ready = False
+
+    def __init__(self):
+        assert self._ready is False, "Class {} should be created only once!".format(self.__class__.__name__)
+        self._create()
+        self._ready = True
+
+    def count(self):
+        return len(self.vars)
+
+    def entries(self):
+        return self.vars
+
+    def _create(self):
+        self.vars = list()
+
+        alarm_enum_index = 23 # 22 alarms related to analog variables
+        var_enum_index = 12   # 11 variables are analog ones
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_DUL_ALARMPOS1',
+                ioname='DIN_ALRMPOS1',
+                description='DUL current limiting on VEOC direct alarm 1',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_DUL_ALARMPOS2',
+                ioname='DIN_ALRMPOS2',
+                description='DUL current limiting on VEOC direct alarm 2',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_DUL_ALARMNEG1',
+                ioname='DIN_ALRMNEG1',
+                description='DUL current limiting on VEOC return alarm 1',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_DUL_ALARMNEG2',
+                ioname='DIN_ALRMNEG2',
+                description='DUL current limiting on VEOC return alarm 2',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_HYDRO_PWR_FAULT',
+                ioname='DIN_HYDRO_PWR_FLT',
+                description='Fault status acquisition of 12V ISO HYDRO power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_LBL_PWR_FAULT',
+                ioname='DIN_LBL_PWR_FLT',
+                description='Fault status acquisition of 12V ISO LBL power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_GLRA_FAULT',
+                ioname='DIN_GLR_A_FLT',
+                description='Fault status acquisition of 12V GLENAIR-A power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_GLRB_FAULT',
+                ioname='DIN_GLR_B_FLT',
+                description='Fault status acquisition of 12V GLENAIR-B power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_POWERBOARD_FAULT',
+                ioname='DIN_PWB_FLT',
+                description='Fault status acquisition of 12V POWER BOARD power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_GLRA_GOOD',
+                ioname='DIN_GLR_A_PG',
+                description='Power good status acquisition of 12V GLENAIR-A power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_GLRB_GOOD',
+                ioname='DIN_GLR_B_PG',
+                description='Power good status acquisition of 12V GLENAIR-B power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+        alarm_enum_index += 1
+        var_enum_index += 1
+        self.vars.append(
+            DigitalVariableDescriptor(
+                firmware_config=fwcfg,
+                name='FLAG_POWERBOARD_GOOD',
+                ioname='DIN_PWB_PG',
+                description='Power good status acquisition of 12V POWER BOARD power line',
+                enum_index=var_enum_index,
+                alarm=DigitalAlarmDescriptor(
+                    enum_index=alarm_enum_index,
+                    enable_default=None,    # requires a specific #define
+                    timeout_default_ms=1.5
+                )
+            )
+        )
+
+
+
+if __name__ == '__main__':
+    digital_variables = DigitalVariableList()
+    print digital_variables.vars[0].name
+
+
+
+
diff --git a/host/python/codegen/entities/__init__.py b/host/python/codegen/entities/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/host/python/codegen/entities/base.py b/host/python/codegen/entities/base.py
new file mode 100644
index 0000000..ad70c79
--- /dev/null
+++ b/host/python/codegen/entities/base.py
@@ -0,0 +1,23 @@
+class UniqueName:
+    """Base class for unique name checking"""
+
+    _names = list()
+
+    def __init__(self, name):
+        assert name not in self._names, 'Name "{}" already used'.format(name)
+        self.name = name
+        self._names.append(self.name)
+
+
+class EntityDescriptor(UniqueName):
+    """Base class for all entities"""
+
+    def __init__(self, firmware_config, name):
+        UniqueName.__init__(self, name)
+        self.firmware_config = firmware_config
+
+
+
+
+
+
diff --git a/host/python/codegen/entities/descriptors.py b/host/python/codegen/entities/descriptors.py
new file mode 100644
index 0000000..6a070d8
--- /dev/null
+++ b/host/python/codegen/entities/descriptors.py
@@ -0,0 +1,338 @@
+from base import EntityDescriptor, UniqueName
+
+
+class AnalogAlarmDescriptor:
+    """Board Descriptor of analog alarms"""
+
+    _enum_indexes = list()
+
+    def __init__(self, enum_index, enable_default, threshold_default, timeout_default_ms):
+        """
+        Constructor
+        :param enum_index: index used if used if enumerating
+        :param enable_default: boolean for default alarm enable
+        :param threshold_default: threshold value expressed as a float value (physical value)
+        :param timeout_default_ms: default timeout value in milliseconds
+        """
+        self.enum_index = enum_index
+        self.enable_default = enable_default
+        self.threshold_default = threshold_default
+        self.timeout_default_ms = timeout_default_ms
+        # check enum uniqueness
+        if self.enum_index is not None:
+            assert self.enum_index not in self._enum_indexes, 'Enum index {} already used for class "{}"'.format(self.enum_index, self.__class__.__name__)
+        self._enum_indexes.append(self.enum_index)
+
+
+class AnalogVariableDescriptor(EntityDescriptor):
+    """Board Analog variable descriptor"""
+
+    _enum_indexes = list()
+
+    def __init__(self, firmware_config, name, analog_channel, channel2measure_converter, measure2channel_converter, units, description, enum_index=None, alarm_slow=None, alarm_fast=None):
+        """
+        Constructor
+        :param firmware_config: the class FirmwareConfig
+        :param name: name of the analog variable (used for code generation)
+        :param analog_channel: ADC channel number
+        :param channel2measure_converter: function to convert from the ADC number (unsigned) to float value (physical value)
+        :param measure2channel_converter: function to convert from float value (physical value) to the ADC number (unsigned)
+        :param description: human readeable description (used for comments)
+        :param enum_index: index used if used if enumerating
+        :param alarm_slow: default values for the slow alarm
+        :param alarm_fast: default values for the slow alarm
+        """
+        EntityDescriptor.__init__(self, firmware_config, name)
+        self.analog_channel = analog_channel
+        self.channel2measure_converter = channel2measure_converter
+        self.measure2channel_converter = measure2channel_converter
+        self.units = units
+        self.description = description
+        self.enum_index = enum_index
+        self.alarm_slow = alarm_slow
+        self.alarm_fast = alarm_fast
+        # check enum uniqueness
+        if self.enum_index is not None:
+            assert self.enum_index not in self._enum_indexes, 'Enum index {} already used for class "{}"'.format(self.enum_index, self.__class__.__name__)
+        self._enum_indexes.append(self.enum_index)
+
+
+    def get_alarm_callback_name(self):
+        return 'alarm_' + self.name
+
+    def get_alarm_fast_timeout_ticks(self, num_analogvariables):
+        # calculate the number of ticks of the timeout
+        timeout_ticks = round((self.alarm_fast.timeout_default_ms / self.firmware_config.SLOW_TIMER_PERIOD_MS) / (self.firmware_config.ADCREADER_CALLS_PER_MEASURE * num_analogvariables))
+        assert timeout_ticks < self.firmware_config.TIMEOUT_COUNTER_MAX, 'get_alarm_fast_timeout_ticks: {}'.format(timeout_ticks)
+        return timeout_ticks
+
+    def get_alarm_slow_timeout_ticks(self, num_analogvariables):
+        # calculate the number of ticks of the timeout
+        timeout_ticks = round((self.alarm_slow.timeout_default_ms / self.firmware_config.SLOW_TIMER_PERIOD_MS) / (self.firmware_config.ADCREADER_CALLS_PER_MEASURE * num_analogvariables))
+        assert timeout_ticks < self.firmware_config.TIMEOUT_COUNTER_MAX, 'get_alarm_slow_timeout_ticks: {}'.format(timeout_ticks)
+        return timeout_ticks
+
+    def get_alarm_fast_timeout_actual_ms(self, num_analogvariables):
+        # calculate the actual number of milliseconds of the timeout
+        return self.get_alarm_fast_timeout_ticks(num_analogvariables) * self.firmware_config.SLOW_TIMER_PERIOD_MS * (self.firmware_config.ADCREADER_CALLS_PER_MEASURE * num_analogvariables)
+
+    def get_alarm_slow_timeout_actual_ms(self, num_analogvariables):
+        # calculate the actual number of milliseconds of the timeout
+        return self.get_alarm_slow_timeout_ticks(num_analogvariables) * self.firmware_config.SLOW_TIMER_PERIOD_MS * (self.firmware_config.ADCREADER_CALLS_PER_MEASURE * num_analogvariables)
+
+    def get_alarm_fast_threshold_channels(self):
+        threshold_channels = round(self.measure2channel_converter(self.alarm_fast.threshold_default))
+        assert threshold_channels < self.firmware_config.ADC_NUM_CHANNELS, 'get_alarm_fast_threshold_channels too high {} on {}'.format(threshold_channels, self.name)
+        return threshold_channels
+
+    def get_alarm_slow_threshold_channels(self):
+        threshold_channels = round(self.measure2channel_converter(self.alarm_slow.threshold_default))
+        assert threshold_channels < self.firmware_config.ADC_NUM_CHANNELS, 'get_alarm_slow_threshold_channels too high {} on {}'.format(threshold_channels, self.name)
+        return threshold_channels
+
+
+class DigitalAlarmDescriptor:
+    """Board Descriptor of digital alarms"""
+
+    def __init__(self, enum_index, enable_default, timeout_default_ms):
+        """
+        Constructor
+        :param enum_index: index used if used if enumerating
+        :param enable_default: boolean for default alarm enable
+        :param timeout_default_ms: default timeout value in milliseconds
+        """
+        self.enum_index = enum_index
+        self.enable_default = enable_default
+        self.timeout_default_ms = timeout_default_ms
+
+
+class DigitalVariableDescriptor(EntityDescriptor):
+    """Board Digital variable descriptor"""
+
+    _enum_indexes = list()
+
+    def __init__(self, firmware_config, name, ioname, description, enum_index=None, alarm=None):
+        """
+        Coonbstructor
+        :param firmware_config: the class FirmwareConfig
+        :param name: name of the digital variable (used for code generation)
+        :param ioname: name of the pin control macro (i.e. _SetHigh and _SetLow will be appended)
+        :param description: human readeable description (used for comments)
+        :param enum_index: index used if used if enumerating
+        :param alarm: default values for the alarm
+        """
+        EntityDescriptor.__init__(self, firmware_config, name)
+        self.ioname = ioname
+        self.description = description
+        self.enum_index = enum_index
+        self.alarm = alarm
+        # check enum uniqueness
+        if self.enum_index is not None:
+            assert self.enum_index not in self._enum_indexes, 'Enum index {} already used for class "{}"'.format(self.enum_index, self.__class__.__name__)
+        self._enum_indexes.append(self.enum_index)
+
+    def get_alarm_callback_name(self):
+        return 'alarm_' + self.name
+
+    def get_read_function_name(self):
+        return 'ioread_' + self.ioname
+
+    def get_alarm_timeout_ticks(self):
+        # calculate the number of ticks of the timeout
+        timeout_ticks = round(self.alarm.timeout_default_ms / self.firmware_config.FAST_TIMER_PERIOD_MS)
+        assert timeout_ticks < self.firmware_config.TIMEOUT_COUNTER_MAX, 'get_alarm_timeout_ticks: {}'.format(timeout_ticks)
+        return timeout_ticks
+
+    def get_alarm_timeout_actual_ms(self):
+        # calculate the actual number of milliseconds of the timeout
+        return self.get_alarm_timeout_ticks() * self.firmware_config.FAST_TIMER_PERIOD_MS
+
+
+class SwitchDescriptor(EntityDescriptor):
+    """Board Switch descriptor"""
+
+    _enum_indexes = list()
+
+    def __init__(self, firmware_config, name, ioname, description, enum_index=None):
+        """
+        Constructor
+        :param firmware_config: the class FirmwareConfig
+        :param name: name of the switch (used for code generation)
+        :param ioname: name of the pin control macro (i.e. _SetHigh and _SetLow will be appended)
+        :param description: human readeable description (used for comments)
+        :param enum_index: index used if used if enumerating
+        """
+        EntityDescriptor.__init__(self, firmware_config, name)
+        self.ioname = ioname
+        self.description = description
+        self.enum_index = enum_index
+        # check enum uniqueness
+        if self.enum_index is not None:
+            assert self.enum_index not in self._enum_indexes, 'Enum index {} already used for class "{}"'.format(self.enum_index, self.__class__.__name__)
+            self._enum_indexes.append(self.enum_index)
+
+
+class UserPinDescriptor(EntityDescriptor):
+    """Board user pin descriptor"""
+
+    _enum_indexes = list()
+
+    def __init__(self, firmware_config, name, ioname, description, enum_index=None):
+        """
+        Constructor
+        :param firmware_config: the class FirmwareConfig
+        :param name: name of the pin (used for code generation)
+        :param ioname: name of the pin control macro (i.e. _SetHigh and _SetLow will be appended)
+        :param description: human readeable description (used for comments)
+        :param enum_index: index used if used if enumerating
+        """
+        EntityDescriptor.__init__(self, firmware_config, name)
+        self.ioname = ioname
+        self.description = description
+        self.enum_index = enum_index
+        # check enum uniqueness
+        if self.enum_index is not None:
+            assert self.enum_index not in self._enum_indexes, 'Enum index {} already used for class "{}"'.format(self.enum_index, self.__class__.__name__)
+            self._enum_indexes.append(self.enum_index)
+
+
+class PayloadFieldDescriptor:
+    """A single payload (request or response) field in a command"""
+
+    def __init__(self, name, ctype, description, length):
+        """
+        Constructor
+        :param name:
+        :param ctype:
+        :param description:
+        """
+        self.name = name
+        self.ctype = ctype
+        self.description = description
+        self.length = length
+
+
+class PayloadFieldU8(PayloadFieldDescriptor):
+    """A single payload field containing an uint8"""
+
+    def __init__(self, name, description):
+        # super's constructor
+        PayloadFieldDescriptor.__init__(self, name, 'uint8_t', description, length=1)
+
+
+class PayloadFieldU16(PayloadFieldDescriptor):
+    """A single payload field containing an uint16"""
+
+    def __init__(self, name, description):
+        # super's constructor
+        PayloadFieldDescriptor.__init__(self, name, 'uint16_t', description, length=2)
+
+
+class PayloadFieldU32(PayloadFieldDescriptor):
+    """A single payload field containing an uint32"""
+
+    def __init__(self, name, description):
+        # super's constructor
+        PayloadFieldDescriptor.__init__(self, name, 'uint32_t', description, length=4)
+
+
+class PayloadFieldEnum(PayloadFieldDescriptor):
+    """A single payload field containing an enum value (mapped to an u8)"""
+
+    _persistent_list = {}
+    _identifiers = []
+
+    def __init__(self, name, description, index_list, value_list):
+        """
+        :param name: string used in C code to identify the payload field
+        :param description: description of the payload field
+        :param index_list: ordered list of indexes of the enum field
+        :param value_list: ordered list of values associated to the given enums (usually strings)
+        """
+
+        PayloadFieldDescriptor.__init__(self, name, 'uint8_t', description, length=1)
+        assert len(index_list) == len(value_list)
+        assert max(index_list) < 255  # because we map to uint8_t
+        self.index_list = index_list
+        self.value_list = value_list
+        # self.reference_table_num = len(PayloadFieldEnum.persistent_list)
+        # compute long description field
+        indexing_desc = '\n'.join([(str(index_list[k]) + ' -> ' + value_list[k]) for k in range(len(index_list))])
+        self.detailed_description = 'Enum values:' + '\n{}'.format(indexing_desc)
+        # verify the name is not already used (warn user)
+        if self.name in PayloadFieldEnum._identifiers:
+            print "WARNING: Identifier {} already used (now in class {})".format(self.name, self.__class__.__name__)
+        else:
+            PayloadFieldEnum._identifiers.append(self.name)
+            PayloadFieldEnum._persistent_list[self.name] = self
+        # assert self.name not in PayloadFieldEnum._identifiers, "Identifier {} already used.".format(self.name)
+
+    def generate_enum_typename(self):
+        return 'enum_' + self.name.lower() + '_t'
+
+    def get_index_min(self):
+        return min(self.index_list)
+
+    def get_index_max(self):
+        return max(self.index_list)
+
+    def get_value_by_index(self, index):
+        for idx in range(len(self.index_list)):
+            if self.index_list[idx] == index:
+                return self.value_list[idx]
+        return None
+
+
+    @staticmethod
+    def get_persistent_list():
+        return PayloadFieldEnum._persistent_list
+
+
+class CommandDescriptor(UniqueName):
+    """Board Command descriptor"""
+
+    _command_codes = list()
+
+    def __init__(self, firmware_config, name, request_code, response_code, description, request_payload, response_payload, implement=True):
+        """
+        Constructor
+        :param firmware_config: the class FirmwareConfig
+        :param name: command name (used for code generation)
+        :param request_code: request code number (set to None for auto-numbering)
+        :param response_code: response code number (set to None for auto-numbering)
+        :param description: command description (for comments)
+        :param request_payload: the request payload (an ordered list of PayloadField)
+        :param response_payload: the response payload (an ordered list of PayloadField)
+        :param implement: if False the command must be considered invalid (will not be callable by host)
+        """
+        # check request and response payload are correct type
+        assert all(isinstance(x, PayloadFieldDescriptor) for x in request_payload), "All request payload fields must be of type PayloadField"
+        assert all(isinstance(x, PayloadFieldDescriptor) for x in response_payload), "All response payload fields must be of type PayloadField"
+        UniqueName.__init__(self, name)
+        self.firmware_config = firmware_config
+        self.request_code = request_code
+        self.response_code = response_code
+        self.description = description
+        self.request_payload = request_payload
+        self.response_payload = response_payload
+        self.implement = implement
+        # check command codes not already used
+        if self.request_code is not None:
+            assert self.request_code not in self._command_codes, 'Request command code {} already used for class "{}"'.format(self.request_code, self.__class__.__name__)
+            self._command_codes.append(self.request_code)
+        if self.response_code is not None:
+            assert self.response_code not in self._command_codes, 'Response command code {} already used for class "{}"'.format(self.response_code, self.__class__.__name__)
+            self._command_codes.append(self.response_code)
+
+    def generate_callback_name(self):
+        return 'command_' + self.name
+
+    def get_request_payload_len(self):
+        return sum([itm.length for itm in self.request_payload])
+
+    def get_response_payload_len(self):
+        return sum([itm.length for itm in self.response_payload])
+
+
+
+
diff --git a/host/python/codegen/firmwareconfig.py b/host/python/codegen/firmwareconfig.py
new file mode 100644
index 0000000..8e8219c
--- /dev/null
+++ b/host/python/codegen/firmwareconfig.py
@@ -0,0 +1,41 @@
+"""
+Some data reflecting current firmware configuration.
+"""
+
+
+class FirmwareConfig:
+
+    # board clock frequency in MHz
+    MAIN_CLOCK = 64.
+
+    # fast timer period in milliseconds
+    FAST_TIMER_PERIOD_MS = 0.08
+
+    # slow timer period in milliseconds
+    SLOW_TIMER_PERIOD_MS = 0.3
+
+    # ADC data alignment
+    ADC_ALIGNMENT = 'left'
+
+    # maximum allowed value for a timeout counter (depends on the type used)
+    TIMEOUT_COUNTER_MAX = 65535
+
+    # number of adcreader ticks calls per measure
+    ADCREADER_CALLS_PER_MEASURE = 2
+
+    if ADC_ALIGNMENT == 'left':
+        ADC_NUM_CHANNELS = 65536.
+    elif ADC_ALIGNMENT == 'right':
+        ADC_NUM_CHANNELS = 1024.
+    else:
+        assert False
+
+    # this is a static class
+    def __init__(self):
+        assert False, "Class {} should not be instantiated".format(self.__class__.__name__)
+
+
+
+
+
+
diff --git a/host/python/codegen/generate_analogvariables.py b/host/python/codegen/generate_analogvariables.py
new file mode 100644
index 0000000..82edb40
--- /dev/null
+++ b/host/python/codegen/generate_analogvariables.py
@@ -0,0 +1,171 @@
+from analogvariables import AnalogVariableList
+from entities.descriptors import PayloadFieldEnum
+
+
+def generate_analogvariables_header(_analogvariables):
+
+    includes = """
+#include "../../typedefs.h"
+"""
+
+    typedef = """
+// analog reading info structure
+typedef struct {
+    analog_channel_t channel;                   // ADC channel from which the variable can be read
+    analog_value_t value;                       // last acquired value
+    analog_variable_sum_t sum_curr;             // current sum (to compute average)
+    analog_variable_sum_t sum_last;             // last computed sum
+    analog_variable_sum_counter_t sum_counter;  // current count for sum computation
+    analog_value_t offset;                      // offset value
+    analog_value_t value_max;                   // max value acquired
+    analogalarm_dual_info_t alarms;             // structure maintaining all the info related to the slow and fast alarms    
+} analog_variable_t;
+    """
+
+    countdef = """
+// number of defined analog variables
+#define ANALOG_VARIABLES_COUNT {}
+    """.format(_analogvariables.count())
+
+    extern = """
+    
+// make analog variable list available to anyone including this file
+extern analog_variable_t analog_variables[ANALOG_VARIABLES_COUNT];
+    """
+
+    varindex_tpl = """
+#define ANALOG_VARIABLE_INDEX_[varname]  [index]    // index of the analog variable [varname] inside analog_variables array"""
+
+    varindex_contents = ''
+    index = 0
+    for variable in _analogvariables.entries():
+        varindex_define = varindex_tpl
+        varindex_define = varindex_define.replace('[varname]', variable.name)
+        varindex_define = varindex_define.replace('[index]', str(index))
+        index += 1
+        varindex_contents += varindex_define
+
+    header_contents = includes + typedef + countdef + varindex_contents + extern
+
+    return header_contents
+
+
+def generate_analogvariables_source(_analogvariables):
+
+    entry_tpl = """// Variable: [name] ([description])
+{
+    .channel = [channel],
+    .value = 0,
+    .sum_curr = 0,
+    .sum_last = 0,
+    .sum_counter = 0,
+    .offset = 0,
+    .value_max = 0,
+    .alarms = {
+        .fast = {
+            .enabled = [fast_alarm_enabled],
+            .threshold = [fast_alarm_threshold], // [fast_alarm_threshold_comment]
+            .timeout = [fast_alarm_timeout], // [fast_alarm_timeout_comment]
+            .timeout_counter = 0,
+            .timeout_counter_max = 0,
+            .firecount = 0
+        },
+        .slow = {
+            .enabled = [slow_alarm_enabled],
+            .threshold = [slow_alarm_threshold], // [slow_alarm_threshold_comment]
+            .timeout = [slow_alarm_timeout], // [slow_alarm_timeout_comment]
+            .timeout_counter = 0,
+            .timeout_counter_max = 0,
+            .firecount = 0
+        },
+        .callback = [callback]
+    }
+}"""
+
+    source_list = list()
+    for analogvariable in _analogvariables.entries():
+
+        fast_alarm_timeout = analogvariable.get_alarm_fast_timeout_ticks(_analogvariables.count())
+        slow_alarm_timeout = analogvariable.get_alarm_slow_timeout_ticks(_analogvariables.count())
+        fast_alarm_timeout_ms = analogvariable.get_alarm_fast_timeout_actual_ms(_analogvariables.count())
+        slow_alarm_timeout_ms = analogvariable.get_alarm_slow_timeout_actual_ms(_analogvariables.count())
+
+        fast_alarm_threshold = analogvariable.get_alarm_fast_threshold_channels()
+        slow_alarm_threshold = analogvariable.get_alarm_slow_threshold_channels()
+
+        callback = analogvariable.get_alarm_callback_name()
+
+        entry_source = entry_tpl
+        entry_source = entry_source.replace('[name]', analogvariable.name)
+        entry_source = entry_source.replace('[description]', analogvariable.description)
+        entry_source = entry_source.replace('[channel]', str(analogvariable.analog_channel))
+        entry_source = entry_source.replace('[fast_alarm_enabled]', 'true' if analogvariable.alarm_slow.enable_default else 'false')
+        entry_source = entry_source.replace('[fast_alarm_threshold]', str(int(fast_alarm_threshold)))
+        entry_source = entry_source.replace('[fast_alarm_threshold_comment]', str(analogvariable.alarm_fast.threshold_default) + ' ' + analogvariable.units)
+        entry_source = entry_source.replace('[fast_alarm_timeout]', str(int(fast_alarm_timeout)))
+        entry_source = entry_source.replace('[fast_alarm_timeout_comment]', '{} ms ({} ms real)'.format(analogvariable.alarm_fast.timeout_default_ms, fast_alarm_timeout_ms))
+        entry_source = entry_source.replace('[slow_alarm_enabled]', 'true' if analogvariable.alarm_slow.enable_default else 'false')
+        entry_source = entry_source.replace('[slow_alarm_threshold]', str(int(slow_alarm_threshold)))
+        entry_source = entry_source.replace('[slow_alarm_threshold_comment]',  str(analogvariable.alarm_slow.threshold_default) + ' ' + analogvariable.units)
+        entry_source = entry_source.replace('[slow_alarm_timeout]', str(int(slow_alarm_timeout)))
+        entry_source = entry_source.replace('[slow_alarm_timeout_comment]', '{} ms ({} ms real)'.format(analogvariable.alarm_slow.timeout_default_ms, slow_alarm_timeout_ms))
+        entry_source = entry_source.replace('[callback]', callback)
+
+        source_list.append(entry_source)
+
+    source_contents = ''
+    source_contents += '#include "variables.h"\n'
+    source_contents += '# include "../../configuration.h"\n\n'
+
+    source_contents += 'analog_variable_t analog_variables[ANALOG_VARIABLES_COUNT] = {\n'
+    source_contents += ','.join(source_list)
+    source_contents += '};\n'
+
+    return source_contents
+
+
+def generate_analogalarm_callbacks_header(_analogvariables):
+    alarm_callback_header_tpl = """
+// Callback function for alarm on analog variable [name] ([description])
+void [callback]();
+"""
+    source_list = list()
+    for analogvariable in _analogvariables.entries():
+        source_list.append(
+            alarm_callback_header_tpl
+                .replace('[name]', analogvariable.name)
+                .replace('[description]', analogvariable.description)
+                .replace('[callback]', analogvariable.get_alarm_callback_name())
+        )
+    return ''.join(source_list)
+
+
+def generate_analogalarm_callbacks_source_template(_analogvariables):
+    alarm_callback_source_tpl = """
+// Callback function for alarm on analog variable [name] ([description])
+void [callback]() {
+    // TODO implement auto-generated callback function [callback]
+}
+"""
+    source_list = list()
+    for analogvariable in _analogvariables.entries():
+        source_list.append(
+            alarm_callback_source_tpl
+                .replace('[name]', analogvariable.name)
+                .replace('[description]', analogvariable.description)
+                .replace('[callback]', analogvariable.get_alarm_callback_name())
+        )
+
+    contents = '#include "generated/sources/variables.h"\n'
+    contents += ''.join(source_list)
+    return contents
+
+
+if __name__ == '__main__':
+    analogvariables = AnalogVariableList()
+    print generate_analogvariables_header(analogvariables)
+    print generate_analogvariables_source(analogvariables)
+    print generate_analogalarm_callbacks_header(analogvariables)
+    print generate_analogalarm_callbacks_source_template(analogvariables)
+
+
diff --git a/host/python/codegen/generate_commands.py b/host/python/codegen/generate_commands.py
new file mode 100644
index 0000000..bac6cd5
--- /dev/null
+++ b/host/python/codegen/generate_commands.py
@@ -0,0 +1,254 @@
+from commands import CommandList
+from entities.descriptors import CommandDescriptor, PayloadFieldEnum
+from switches import SwitchList
+from analogvariables import AnalogVariableList
+from digitalvariables import DigitalVariableList
+from userpins import UserPinList
+from utils import mls
+import pickle
+import datetime
+
+
+def generate_commandtable_header(_commands):
+    assert isinstance(_commands, CommandList)  # just to help pycharm
+
+    # read last command table version from file and update it
+    command_table_version = 10
+    now = datetime.datetime.now()
+    generation_year = now.year
+    generation_month = now.month
+    generation_day = now.day
+    generation_hour = now.hour
+    generation_minute = now.minute
+    generation_second = now.second
+    # comment reading first time you execute this script...
+    with open('versioning.pkl', 'r') as f:
+        command_table_version = pickle.load(f)
+    command_table_version += 1
+    with open('versioning.pkl', 'w') as f:
+        pickle.dump(command_table_version, f)
+
+
+    callback_declaration_tpl = """
+// [comment]
+err_t [callback](void);"""
+
+    countdef = """
+// number of defined commands
+#define COMMANDS_COUNT {}
+""".format(_commands.count())
+
+    extern = """
+// make command table available to anyone including this file
+extern command_info_t commands_info_table[COMMANDS_COUNT];
+"""
+
+    cmdcodes_req_tpl = """#define CMDCODE_[command]_REQ [reqcode]"""
+    cmdcodes_resp_tpl = """#define CMDCODE_[command]_RESP [respcode]"""
+
+    callback_declaration_list = list()
+    cmdcodes_declaration_list = list()
+    for command in _commands.entries():
+        assert isinstance(command, CommandDescriptor) # just to help pycharm
+        callback_declaration = callback_declaration_tpl
+        callback_declaration = callback_declaration.replace('[comment]', 'Callback for command {} (request code: {}), {}'.format(command.name, command.request_code, command.description))
+        callback_declaration = callback_declaration.replace('[callback]', command.generate_callback_name())
+        callback_declaration_list.append(callback_declaration)
+
+        cmdcode_req_definition = cmdcodes_req_tpl
+        cmdcode_req_definition = cmdcode_req_definition.replace('[command]', command.name)
+        cmdcode_req_definition = cmdcode_req_definition.replace('[reqcode]', str(command.request_code))
+        cmdcode_resp_definition = cmdcodes_resp_tpl
+        cmdcode_resp_definition = cmdcode_resp_definition.replace('[command]', command.name)
+        cmdcode_resp_definition = cmdcode_resp_definition.replace('[respcode]', str(command.response_code))
+        cmdcodes_declaration_list.append(cmdcode_req_definition)
+        cmdcodes_declaration_list.append(cmdcode_resp_definition)
+
+    header_contents = ''
+    header_contents += '# include "../../typedefs.h"\n'
+    header_contents += countdef
+    header_contents += extern
+    header_contents += '\n// Command codes\n'
+    header_contents += '\n'.join(cmdcodes_declaration_list)
+    header_contents += '\n'
+    header_contents += '\n// Callback functions\n'
+    header_contents += '\n'.join(callback_declaration_list)
+
+    # versioning information
+    header_contents += '\n\n// Versioning data\n'
+    header_contents += '#define COMMAND_TABLE_VERSION_NUM {}\n'.format(command_table_version)
+    header_contents += '#define TEMPLATE_GENERATION_YEAR {}\n'.format(generation_year)
+    header_contents += '#define TEMPLATE_GENERATION_MONTH {}\n'.format(generation_month)
+    header_contents += '#define TEMPLATE_GENERATION_DAY {}\n'.format(generation_day)
+    header_contents += '#define TEMPLATE_GENERATION_HOUR {}\n'.format(generation_hour)
+    header_contents += '#define TEMPLATE_GENERATION_MINUTE {}\n'.format(generation_minute)
+    header_contents += '#define TEMPLATE_GENERATION_SECOND {}\n'.format(generation_second)
+
+    return header_contents
+
+
+def generate_commandtable_sources(_commands):
+    assert isinstance(_commands, CommandList)  # just to help pycharm
+
+    cmdtable_tpl = """// commans info table
+command_info_t commands_info_table[COMMANDS_COUNT] = {
+[body]
+};"""
+
+    cmdcodes_req_tpl = """CMDCODE_[command]_REQ"""
+    cmdcodes_resp_tpl = """CMDCODE_[command]_RESP"""
+
+    cmdtable_entry_tpl = '   { .request_code = [reqcode], .response_code = [respcode], .request_payload_len = [reqlen], .callback_ptr = [callback]}'
+
+    cmdtable_body_list = list()
+    for command in _commands.entries():
+        assert isinstance(command, CommandDescriptor) # just to help pycharm
+        if command.implement:
+            entry_src = cmdtable_entry_tpl
+            entry_src = entry_src.replace('[reqcode]', mls(cmdcodes_req_tpl.replace('[command]', command.name), 43))
+            entry_src = entry_src.replace('[respcode]', mls(cmdcodes_resp_tpl.replace('[command]', command.name), 44))
+            entry_src = entry_src.replace('[reqlen]', mls(str(command.get_request_payload_len()), 3))
+            entry_src = entry_src.replace('[callback]', mls(command.generate_callback_name(), 39))
+            cmdtable_body_list.append(entry_src)
+
+    cmdtable_src = cmdtable_tpl.replace('[body]', ',\n'.join(cmdtable_body_list))
+
+    source_contents = ''
+    source_contents += '#include "commandstable.h"\n\n'
+    source_contents += cmdtable_src
+
+    return source_contents
+
+
+def generate_command_callback_template(_command):
+    assert isinstance(_command, CommandDescriptor)  # just to help pycharm
+
+    callback_declaration_tpl = """
+#include "../typedefs.h"  
+#include "../communication.h"  
+#include "../hardware.h"
+
+err_t [callback](void) {
+[comments]
+[body]
+}"""
+
+    ####################################################################################################################
+    comments = ''
+    comments += '    // Command: {}\n'.format(_command.name)
+    comments += '    // Description: {}\n'.format(_command.description)
+    comments += '    // \n'
+    comments += '    // Request code: CMDCODE_{}_REQ\n'.format(_command.name)
+    comments += '    // Response code: CMDCODE_{}_REQ\n'.format(_command.name)
+    comments += '    // Request payload (length in bytes is {}):\n'.format(_command.get_request_payload_len())
+    field_idx = 0
+    for field in _command.request_payload:
+        if isinstance(field, PayloadFieldEnum):
+            ctype = field.generate_enum_typename()
+        else:
+            ctype = field.ctype
+        comments += '    //     field #{} ({}) [type: {}] : {} ({})\n'.format(mls(str(field_idx), 3), str(field.length) + (' byte' if field.length == 1 else ' bytes'), mls(ctype, 10, stop_on_longer=False), mls(field.name, 10, stop_on_longer=False), field.description)
+        field_idx += 1
+    comments += '    // Response payload (length in bytes is {}):\n'.format(_command.get_response_payload_len())
+    field_idx = 0
+    for field in _command.response_payload:
+        if isinstance(field, PayloadFieldEnum):
+            ctype = field.generate_enum_typename()
+        else:
+            ctype = field.ctype
+        comments += '    //     field #{} ({}) [type: {}] : {} ({})\n'.format(mls(str(field_idx), 3), str(field.length) + (' byte' if field.length == 1 else ' bytes'), mls(ctype, 10, stop_on_longer=False), mls(field.name, 10, stop_on_longer=False), field.description)
+        field_idx += 1
+
+    ####################################################################################################################
+    body = ''
+    body += '    // Auto-generated section: request payload fields reading\n'
+    for field in _command.request_payload:
+        ctype = field.generate_enum_typename() if isinstance(field, PayloadFieldEnum) else field.ctype
+        body += '    {} req_{} = ({})communication_request_payload_retrieve_{}();\n'.format(ctype, field.name.lower(), ctype, field.ctype)
+    for field in _command.request_payload:
+        if isinstance(field, PayloadFieldEnum):
+            body += '    // checking range for enum field req_{}\n'.format(field.name.lower())
+            body += '    if(({})req_{} < ({}){}_min) return ERR_RANGE;\n'.format(field.ctype, field.name.lower(), field.ctype, field.generate_enum_typename())
+            body += '    if(({})req_{} > ({}){}_max) return ERR_RANGE;\n'.format(field.ctype, field.name.lower(), field.ctype, field.generate_enum_typename())
+    body += '    // End of auto-generated section\n\n'
+    body += '    // USER CODE HERE\n'
+    body += '    // TODO implement command callback function {}\n\n'.format(_command.generate_callback_name())
+    for field in _command.response_payload:
+        ctype = field.generate_enum_typename() if isinstance(field, PayloadFieldEnum) else field.ctype
+        body += '    // TODO: assign response field {} in command {} callback\n'.format(field.name, _command.name)
+        body += '    {} resp_{} = -1;\n'.format(ctype, field.name.lower())
+        body += '\n'
+
+    body += '    // Auto-generated section: response payload fields writing\n'
+    body += '    communication_response_payload_appender_reset();\n'
+    for field in _command.response_payload:
+        ctype = field.generate_enum_typename() if isinstance(field, PayloadFieldEnum) else field.ctype
+        body += '    communication_response_payload_append_{}(({})resp_{});\n'.format(field.ctype, field.ctype, field.name.lower())
+    body += '    return NOERR;\n'
+    body += '    // End of auto-generated section'
+
+    callback_declaration = callback_declaration_tpl
+    callback_declaration = callback_declaration.replace('[callback]', _command.generate_callback_name())
+    callback_declaration = callback_declaration.replace('[comments]', comments)
+    callback_declaration = callback_declaration.replace('[body]', body)
+
+    return callback_declaration
+
+
+def generate_commands_typedefs():
+    enums = PayloadFieldEnum.get_persistent_list()
+
+    enum_tpl = """
+// [comment]
+typedef enum {
+[body]
+} [typename];
+
+#define [typename]_min [name]_[indexmin]
+#define [typename]_max [name]_[indexmax]   
+"""
+
+    enum_entry_tpl = """    [prepend]_[name] = [value]"""
+
+    contents = ''
+    for enum in enums.values():
+
+        # if enum.name == 'VARIABLE_NUMBER':
+        #     print enum.name
+        #     print enum.__class__.__name__
+        #     print enum.index_list
+        #     print enum.value_list
+
+
+        enum_entries = list()
+        for k in range(len(enum.index_list)):
+            enum_entry_src = enum_entry_tpl
+            enum_entry_src = enum_entry_src.replace('[prepend]', enum.name)
+            enum_entry_src = enum_entry_src.replace('[name]', enum.value_list[k])
+            enum_entry_src = enum_entry_src.replace('[value]', str(enum.index_list[k]))
+            enum_entries.append(enum_entry_src)
+        enum_body = ',\n'.join(enum_entries)
+        enum_src = enum_tpl
+        enum_src = enum_src.replace('[comment]', enum.description)
+        enum_src = enum_src.replace('[typename]', enum.generate_enum_typename())
+        enum_src = enum_src.replace('[name]', enum.name)
+        enum_src = enum_src.replace('[indexmin]', str(enum.get_value_by_index(enum.get_index_min())))
+        enum_src = enum_src.replace('[indexmax]', str(enum.get_value_by_index(enum.get_index_max())))
+        enum_src = enum_src.replace('[body]', enum_body)
+
+        contents += enum_src
+    return contents
+
+
+if __name__ == '__main__':
+    switch_list = SwitchList()
+    analog_variable_list = AnalogVariableList()
+    digital_variable_list = DigitalVariableList()
+    user_pin_list = UserPinList()
+    commands = CommandList(switch_list, analog_variable_list, digital_variable_list, user_pin_list)
+    print generate_commandtable_header(commands)
+    print generate_commandtable_sources(commands)
+    for command in commands.entries():
+        print generate_command_callback_template(command)
+    print generate_commands_typedefs()
+
diff --git a/host/python/codegen/generate_digitalvariables.py b/host/python/codegen/generate_digitalvariables.py
new file mode 100644
index 0000000..8106d56
--- /dev/null
+++ b/host/python/codegen/generate_digitalvariables.py
@@ -0,0 +1,180 @@
+from digitalvariables import DigitalVariableList
+
+
+def generate_digitalvariables_header(_digialvariables):
+
+    # already included from analog variables
+    #     includes = """
+    # #include "../../alarms.h"
+    # """
+    includes = ''
+
+    typedef = """
+// digital reading info structure
+typedef struct {
+    digital_value_readfunc_t readfunc;    // function to read the value (must be defined by user)
+    digital_value_t value;                // last acquired value
+    digital_value_t value_max;            // max value acquired (...)
+    digitalalarm_info_t alarm;            // structure maintaining all the info related to the alarm    
+} digital_variable_t;
+    """
+
+    countdef = """
+// number of defined analog variables
+#define DIGITAL_VARIABLES_COUNT {}
+    """.format(_digialvariables.count())
+
+    extern = """
+    
+// make digital variable list available to anyone including this file
+extern digital_variable_t digital_variables[DIGITAL_VARIABLES_COUNT];
+"""
+
+    ioread_tpl = """// IO read function for variable [name]
+digital_value_t [readfunc](void);
+"""
+    varindex_tpl = """
+#define DIGITAL_VARIABLE_INDEX_[varname]  [index]    // index of the analog variable [varname] inside analog_variables array"""
+
+    varindex_contents = ''
+    index = 0
+    for variable in _digialvariables.entries():
+        varindex_define = varindex_tpl
+        varindex_define = varindex_define.replace('[varname]', variable.name)
+        varindex_define = varindex_define.replace('[index]', str(index))
+        index += 1
+        varindex_contents += varindex_define
+
+    header_contents = includes + typedef + countdef + varindex_contents + extern
+
+    # generate the prototypes for io read
+    ioread_list = list()
+    for digitalvariable in _digialvariables.entries():
+        ioread_source = ioread_tpl
+        ioread_source = ioread_source.replace('[name]', digitalvariable.name)
+        ioread_source = ioread_source.replace('[readfunc]', digitalvariable.get_read_function_name())
+        ioread_list.append(ioread_source)
+
+    header_contents += '\n'
+    header_contents += '\n'.join(ioread_list)
+
+    return header_contents
+
+
+def generate_digitalvariables_source(_digialvariables):
+
+    entry_tpl = """// Variable: [name] ([description])
+{
+    .readfunc = [readfunc],
+    .value = 0,
+    .value_max = 0,
+    .alarm = {
+        .enabled = [alarm_enabled],
+        .timeout = [alarm_timeout], // [alarm_timeout_comment]
+        .timeout_counter = 0,
+        .timeout_counter_max = 0,
+        .firecount = 0,        
+        .callback = [callback]
+    }
+}"""
+
+    ioread_tpl = """
+// IO read function for variable [name]
+digital_value_t [readfunc](void) {
+    return (digital_value_t)(0 != [ioname]_GetValue());
+}
+"""
+
+    source_list = list()
+    ioread_list = list()
+    for digitalvariable in _digialvariables.entries():
+
+        alarm_timeout = digitalvariable.get_alarm_timeout_ticks()
+        alarm_timeout_ms = digitalvariable.get_alarm_timeout_actual_ms()
+
+        callback = digitalvariable.get_alarm_callback_name()
+
+        entry_source = entry_tpl
+        entry_source = entry_source.replace('[name]', digitalvariable.name)
+        entry_source = entry_source.replace('[description]', digitalvariable.description)
+        entry_source = entry_source.replace('[readfunc]', digitalvariable.get_read_function_name())
+
+        if digitalvariable.alarm.enable_default is None:
+            alarm_enabled_value = 'DEFAULT_' + digitalvariable.name + '_ENABLED'
+        elif digitalvariable.alarm.enable_default == True:
+            alarm_enabled_value = 'true'
+        elif digitalvariable.alarm.enable_default == False:
+            alarm_enabled_value = 'false'
+        else:
+            assert False
+        entry_source = entry_source.replace('[alarm_enabled]',alarm_enabled_value)
+
+        entry_source = entry_source.replace('[alarm_timeout]', str(int(alarm_timeout)))
+        entry_source = entry_source.replace('[alarm_timeout_comment]', '{} ms ({} ms real)'.format(digitalvariable.alarm.timeout_default_ms, alarm_timeout_ms))
+        entry_source = entry_source.replace('[callback]', callback)
+
+        source_list.append(entry_source)
+
+        ioread_source = ioread_tpl
+        ioread_source = ioread_source.replace('[name]', digitalvariable.name)
+        ioread_source = ioread_source.replace('[readfunc]', digitalvariable.get_read_function_name())
+        ioread_source = ioread_source.replace('[ioname]', digitalvariable.ioname)
+
+        ioread_list.append(ioread_source)
+
+    source_contents = ''
+    # source_contents = '#include "variables.h"\n\n' # already included from analog variables...
+    source_contents = '\n#include "../../mcc_generated_files/mcc.h"\n\n'
+    source_contents += 'digital_variable_t digital_variables[DIGITAL_VARIABLES_COUNT] = {\n'
+    source_contents += ','.join(source_list)
+    source_contents += '};\n'
+
+    source_contents += '\n'.join(ioread_list)
+
+    return source_contents
+
+
+def generate_digitalalarm_callbacks_header(_digialvariables):
+    alarm_callback_header_tpl = """
+// Callback function for alarm on digital variable [name] ([description])
+void [callback]();
+"""
+    source_list = list()
+    for digitalvariable in _digialvariables.entries():
+        source_list.append(
+            alarm_callback_header_tpl
+                .replace('[name]', digitalvariable.name)
+                .replace('[description]', digitalvariable.description)
+                .replace('[callback]', digitalvariable.get_alarm_callback_name())
+        )
+    return ''.join(source_list)
+
+
+def generate_digitalalarm_callbacks_source_template(_digialvariables):
+    alarm_callback_source_tpl = """
+// Callback function for alarm on analog variable [name] ([description])
+void [callback]() {
+    // TODO implement auto-generated callback function [callback]
+}
+"""
+    source_list = list()
+    for digitalvariable in _digialvariables.entries():
+        source_list.append(
+            alarm_callback_source_tpl
+                .replace('[name]', digitalvariable.name)
+                .replace('[description]', digitalvariable.description)
+                .replace('[callback]', digitalvariable.get_alarm_callback_name())
+        )
+
+    contents = '' # '#include "generated/sources/variables.h"\n' already included
+    contents += ''.join(source_list)
+    return contents
+
+
+if __name__ == '__main__':
+    digialvariables = DigitalVariableList()
+    print generate_digitalvariables_header(digialvariables)
+    print generate_digitalvariables_source(digialvariables)
+    print generate_digitalalarm_callbacks_header(digialvariables)
+    print generate_digitalalarm_callbacks_source_template(digialvariables)
+
diff --git a/host/python/codegen/generate_switches.py b/host/python/codegen/generate_switches.py
new file mode 100644
index 0000000..dda7833
--- /dev/null
+++ b/host/python/codegen/generate_switches.py
@@ -0,0 +1,178 @@
+from switches import SwitchList
+from commands import CommandList # need to be called to initialize all enums
+from analogvariables import AnalogVariableList
+from digitalvariables import DigitalVariableList
+from userpins import UserPinList
+from entities.descriptors import PayloadFieldEnum
+
+
+def generate_switches_header(_switches):
+
+    includes = """
+#include "../../errors.h"
+"""
+
+    ####################################################################################################################
+    typedef_tpl = """
+typedef struct {
+[typedef_entries]
+} switches_t;
+"""
+
+    typedef_entry_tpl = """    enum_switchstate_t state_[name]; // status of switch [name], [desc]"""
+
+    typedef_entries = list()
+    for switch in _switches.entries():
+        typedef_entry = typedef_entry_tpl
+        typedef_entry = typedef_entry.replace('[name]', switch.name)
+        typedef_entry = typedef_entry.replace('[desc]', switch.description)
+        typedef_entries.append(typedef_entry)
+    typedef = typedef_tpl
+    typedef = typedef.replace('[typedef_entries]', '\n'.join(typedef_entries))
+
+    ####################################################################################################################
+    extern = """extern switches_t switches;"""
+
+    ####################################################################################################################
+    functionprotos_tpl = """
+// control functions for switch [name], [desc]
+void switch_[name]_set_closed(void);
+void switch_[name]_set_open(void);
+void switch_[name]_set(enum_switchstate_t _state);
+enum_switchstate_t switch_[name]_get(void); 
+"""
+
+    functionprotos_entries = list()
+    for switch in _switches.entries():
+        functionprotos_entry = functionprotos_tpl
+        functionprotos_entry = functionprotos_entry.replace('[name]', switch.name)
+        functionprotos_entry = functionprotos_entry.replace('[desc]', switch.description)
+        functionprotos_entries.append(functionprotos_entry)
+    functionprotos = '\n'.join(functionprotos_entries)
+
+    ####################################################################################################################
+    functions_by_enum_tpl = """
+// return the switch state set function by switch enum
+typedef void (*switch_state_set_func_t)(enum_switchstate_t _state);
+switch_state_set_func_t switch_get_function_set_by_enum(enum_switchnum_t _switch_index);
+
+// return the switch state get function by switch enum
+typedef enum_switchstate_t (*switch_state_get_func_t)(void);
+switch_state_get_func_t switch_get_function_get_by_enum(enum_switchnum_t _switch_index);
+"""
+
+    functions_by_enum = functions_by_enum_tpl
+
+    return '\n'.join([includes, typedef, extern, functionprotos, functions_by_enum])
+
+
+def generate_switches_source(_switches, _switch_enum):
+
+    assert isinstance(_switch_enum, PayloadFieldEnum)
+
+    includes = """"""
+
+    ####################################################################################################################
+    instance_tpl = """
+switches_t switches = {
+[instance_entries]
+};
+"""
+
+    instance_entry_tpl = """    .state_[name] = SWITCHSTATE_OPEN"""
+
+    instance_entries = list()
+    for switch in _switches.entries():
+        instance_entry = instance_entry_tpl
+        instance_entry = instance_entry.replace('[name]', switch.name)
+        instance_entries.append(instance_entry)
+    instance = instance_tpl
+    instance = instance.replace('[instance_entries]', ',\n'.join(instance_entries))
+
+    ####################################################################################################################
+    functionimpls_tpl = """
+// close switch [name] and update switch structure
+void switch_[name]_set_closed(void) {
+    [ioname]_SetHigh();
+    switches.state_[name] = SWITCHSTATE_CLOSED;
+}
+
+// open switch [name] and update switch structure
+void switch_[name]_set_open(void) {
+    [ioname]_SetLow();
+    switches.state_[name] = SWITCHSTATE_OPEN;
+}
+
+// set state of switch [name] and update switch structure
+void switch_[name]_set(enum_switchstate_t _state) {
+    if(_state == SWITCHSTATE_CLOSED) {
+        switch_[name]_set_closed();
+    }else{
+        switch_[name]_set_open();
+    }
+}
+
+// get switch [name] current status
+enum_switchstate_t switch_[name]_get(void) {
+    return switches.state_[name];
+} 
+"""
+
+    functionimpls_entries = list()
+    for switch in _switches.entries():
+        functionimpls_entry = functionimpls_tpl
+        functionimpls_entry = functionimpls_entry.replace('[name]', switch.name)
+        functionimpls_entry = functionimpls_entry.replace('[ioname]', switch.ioname)
+        functionimpls_entries.append(functionimpls_entry)
+    functionimpls = '\n'.join(functionimpls_entries)
+
+    ####################################################################################################################
+    functions_by_enum_tpl = """
+// return the switch state set function by switch enum
+switch_state_set_func_t switch_get_function_set_by_enum(enum_switchnum_t _switch_index) {
+[bodyset]
+}
+
+// return the switch state get function by switch enum
+switch_state_get_func_t switch_get_function_get_by_enum(enum_switchnum_t _switch_index) {
+[bodyget]
+}
+"""
+
+    bodyset = """    switch(_switch_index) {\n"""
+    bodyget = """    switch(_switch_index) {\n"""
+    enumobj = _switch_enum
+    for idx in range(len(enumobj.value_list)):
+        # print enumobj.value_list[idx]
+        bodyset += '        case {}_{}: return switch_{}_set;\n'.format(enumobj.name, enumobj.value_list[idx], _switches.entries()[idx].name)
+        bodyget += '        case {}_{}: return switch_{}_get;\n'.format(enumobj.name, enumobj.value_list[idx], _switches.entries()[idx].name)
+    bodyset += '    }\n'
+    bodyset += '    // this should never be reached\n'
+    bodyset += '    error_die_forever();\n'
+    bodyset += '    // but, just in case (if we neutralize the error function):\n'
+    bodyset += '    return switch_{}_set;'.format(_switches.entries()[-1].name)
+    bodyget += '    }\n'
+    bodyget += '    // this should never be reached\n'
+    bodyget += '    error_die_forever();\n'
+    bodyget += '    // but, just in case (if we neutralize the error function):\n'
+    bodyget += '    return switch_{}_get;'.format(_switches.entries()[-1].name)
+
+    functions_by_enum = functions_by_enum_tpl
+    functions_by_enum = functions_by_enum.replace('[bodyset]', bodyset)
+    functions_by_enum = functions_by_enum.replace('[bodyget]', bodyget)
+
+    return '\n'.join([includes, instance, functionimpls, functions_by_enum])
+
+
+if __name__ == '__main__':
+    switches = SwitchList()
+    analogvariables = AnalogVariableList()
+    digitalvariables = DigitalVariableList()
+    userpins = UserPinList()
+    commands = CommandList(switches, analogvariables, digitalvariables, userpins)
+    switch_enum = PayloadFieldEnum.get_persistent_list()['SWITCHNUM']
+
+    print '\n' * 4
+    print '=' * 64
+    print generate_switches_header(switches)
+    print generate_switches_source(switches, switch_enum)
diff --git a/host/python/codegen/generate_userpins.py b/host/python/codegen/generate_userpins.py
new file mode 100644
index 0000000..230c62b
--- /dev/null
+++ b/host/python/codegen/generate_userpins.py
@@ -0,0 +1,174 @@
+from switches import SwitchList
+from commands import CommandList  # need to be called to initialize all enums
+from analogvariables import AnalogVariableList
+from digitalvariables import DigitalVariableList
+from userpins import UserPinList
+from entities.descriptors import PayloadFieldEnum
+
+
+def generate_userpins_header(_userpins):
+
+    includes = """"""
+
+    ####################################################################################################################
+    typedef_tpl = """
+typedef struct {
+[typedef_entries]
+} userpins_t;
+"""
+
+    typedef_entry_tpl = """    enum_pinstate_t state_[name]; // status of usr pin [name], [desc]"""
+
+    typedef_entries = list()
+    for userpin in _userpins.entries():
+        typedef_entry = typedef_entry_tpl
+        typedef_entry = typedef_entry.replace('[name]', userpin.name)
+        typedef_entry = typedef_entry.replace('[desc]', userpin.description)
+        typedef_entries.append(typedef_entry)
+    typedef = typedef_tpl
+    typedef = typedef.replace('[typedef_entries]', '\n'.join(typedef_entries))
+
+    ####################################################################################################################
+    extern = """extern userpins_t userpins;"""
+
+    ####################################################################################################################
+    functionprotos_tpl = """
+// control functions for user pin [name], [desc]
+void userpin_[name]_set_high(void);
+void userpin_[name]_set_low(void);
+void userpin_[name]_set(enum_pinstate_t _state); 
+enum_pinstate_t userpin_[name]_get(void); 
+"""
+    functionprotos_entries = list()
+    for userpin in _userpins.entries():
+        functionprotos_entry = functionprotos_tpl
+        functionprotos_entry = functionprotos_entry.replace('[name]', userpin.name)
+        functionprotos_entry = functionprotos_entry.replace('[desc]', userpin.description)
+        functionprotos_entries.append(functionprotos_entry)
+    functionprotos = '\n'.join(functionprotos_entries)
+
+    ####################################################################################################################
+    functions_by_enum_tpl = """
+// return the user pin state set function by user pin enum
+typedef void (*userpin_state_set_func_t)(enum_pinstate_t _state);
+userpin_state_set_func_t userpin_get_function_set_by_enum(enum_pinnum_t _userpin_index);
+
+// return the user pin state get function by user pin enum
+typedef enum_pinstate_t (*userpin_state_get_func_t)(void);
+userpin_state_get_func_t userpin_get_function_get_by_enum(enum_pinnum_t _userpin_index);
+"""
+
+    functions_by_enum = functions_by_enum_tpl
+
+    return '\n'.join([includes, typedef, extern, functionprotos, functions_by_enum])
+
+
+def generate_userpins_source(_userpins, _pin_enum):
+
+    assert isinstance(_pin_enum, PayloadFieldEnum)
+
+    includes = """"""
+
+    ####################################################################################################################
+    instance_tpl = """
+userpins_t userpins = {
+[instance_entries]
+};
+"""
+
+    instance_entry_tpl = """    .state_[name] = PINSTATE_LOW"""
+
+    instance_entries = list()
+    for pin in _userpins.entries():
+        instance_entry = instance_entry_tpl
+        instance_entry = instance_entry.replace('[name]', pin.name)
+        instance_entries.append(instance_entry)
+    instance = instance_tpl
+    instance = instance.replace('[instance_entries]', ',\n'.join(instance_entries))
+
+    ####################################################################################################################
+    functionimpls_tpl = """
+// set pin [name] high and update userpins structure
+void userpin_[name]_set_high(void) {
+    [ioname]_SetHigh();
+    userpins.state_[name] = PINSTATE_HIGH;
+}
+
+// set pin [name] low and update userpins structure
+void userpin_[name]_set_low(void) {
+    [ioname]_SetLow();
+    userpins.state_[name] = PINSTATE_LOW;
+}
+
+// set state of userpin [name] and update userpins structure
+void userpin_[name]_set(enum_pinstate_t _state) {
+    if(_state == PINSTATE_HIGH) {
+        userpin_[name]_set_high();
+    }else{
+        userpin_[name]_set_low();
+    }
+}
+
+// get user pin [name] current status
+enum_pinstate_t userpin_[name]_get(void) {
+    return userpins.state_[name];
+} 
+"""
+
+    functionimpls_entries = list()
+    for pin in _userpins.entries():
+        functionimpls_entry = functionimpls_tpl
+        functionimpls_entry = functionimpls_entry.replace('[name]', pin.name)
+        functionimpls_entry = functionimpls_entry.replace('[ioname]', pin.ioname)
+        functionimpls_entries.append(functionimpls_entry)
+    functionimpls = '\n'.join(functionimpls_entries)
+
+    ####################################################################################################################
+    functions_by_enum_tpl = """
+// return the user pin state set function by user pin enum
+userpin_state_set_func_t userpin_get_function_set_by_enum(enum_pinnum_t _userpin_index) {
+[bodyset]
+}
+
+// return the user pin state get function by user pin enum
+userpin_state_get_func_t userpin_get_function_get_by_enum(enum_pinnum_t _userpin_index) {
+[bodyget]
+}
+"""
+
+    bodyset = """    switch(_userpin_index) {\n"""
+    bodyget = """    switch(_userpin_index) {\n"""
+    enumobj = _pin_enum
+    for idx in range(len(enumobj.value_list)):
+        bodyset += '        case {}_{}: return userpin_{}_set;\n'.format(enumobj.name, enumobj.value_list[idx], _userpins.entries()[idx].name)
+        bodyget += '        case {}_{}: return userpin_{}_get;\n'.format(enumobj.name, enumobj.value_list[idx], _userpins.entries()[idx].name)
+    bodyset += '    }\n'
+    bodyset += '    // this should never be reached\n'
+    bodyset += '    error_die_forever();\n'
+    bodyset += '    // but, just in case (if we neutralize the error function):\n'
+    bodyset += '    return userpin_{}_set;'.format(_userpins.entries()[-1].name)
+    bodyget += '    }\n'
+    bodyget += '    // this should never be reached\n'
+    bodyget += '    error_die_forever();\n'
+    bodyget += '    // but, just in case (if we neutralize the error function):\n'
+    bodyget += '    return userpin_{}_get;'.format(_userpins.entries()[-1].name)
+
+    functions_by_enum = functions_by_enum_tpl
+    functions_by_enum = functions_by_enum.replace('[bodyset]', bodyset)
+    functions_by_enum = functions_by_enum.replace('[bodyget]', bodyget)
+
+    return '\n'.join([includes, instance, functionimpls, functions_by_enum])
+
+
+if __name__ == '__main__':
+    userpins = UserPinList()
+    analogvariables = AnalogVariableList()
+    digitalvariables = DigitalVariableList()
+    switches = SwitchList()
+    commands = CommandList(switches, analogvariables, digitalvariables, userpins)
+    pin_enum = PayloadFieldEnum.get_persistent_list()['PINNUM']
+
+    print '\n' * 4
+    print '=' * 64
+    print generate_userpins_header(userpins)
+    print generate_userpins_source(userpins, pin_enum)
diff --git a/host/python/codegen/main.py b/host/python/codegen/main.py
new file mode 100644
index 0000000..e55c43f
--- /dev/null
+++ b/host/python/codegen/main.py
@@ -0,0 +1,152 @@
+from generate_analogvariables import *
+from generate_digitalvariables import *
+from generate_commands import *
+from generate_switches import *
+from generate_userpins import *
+from datetime import datetime
+
+
+def save_header_file(filename, contents, folder, is_template=False):
+    tpl = """// Auto-generated [istemplate]file: [filename]
+// Generation timestamp: [timestamp]
+
+#ifndef [preprocname]
+#define [preprocname]
+
+[contents]
+
+#endif // [preprocname]
+"""
+
+    preprocname = '_AUTOGENERATED_' + filename.upper().replace('.', '_')
+    file_contents = tpl
+    file_contents = file_contents.replace('[filename]', filename)
+    file_contents = file_contents.replace('[timestamp]', timestamp_str)
+    file_contents = file_contents.replace('[preprocname]', preprocname)
+    file_contents = file_contents.replace('[contents]', contents)
+    file_contents = file_contents.replace('[istemplate]', '' if not is_template else 'template ')
+
+    with open(folder + filename, "w") as f:
+        f.write(file_contents)
+    print 'file written to "{}"'.format(folder + filename)
+
+
+def save_source_file(filename, contents, folder, is_template=False):
+    tpl = """// Auto-generated [istemplate]file: [filename]
+// Generation timestamp: [timestamp]
+
+[contents]
+"""
+    file_contents = tpl
+    file_contents = file_contents.replace('[filename]', filename)
+    file_contents = file_contents.replace('[timestamp]', timestamp_str)
+    file_contents = file_contents.replace('[contents]', contents)
+    file_contents = file_contents.replace('[istemplate]', '' if not is_template else 'template ')
+
+    with open(folder + filename, "w") as f:
+        f.write(file_contents)
+    print 'file written to "{}"'.format(folder + filename)
+
+
+if __name__ == '__main__':
+
+    timestamp_str = str(datetime.now())
+
+    firmware_folder = '../../../micro/BPD-V01-FIRMWARE.X'
+    output_folder_sources = firmware_folder + '/generated/sources/'
+    output_folder_templates = './output/templates/'
+    output_folder_templates_commands = './output/templates/commands/'
+
+    # create list of variables used in code
+    switches = SwitchList()
+    analogvariables = AnalogVariableList()
+    digitalvariables = DigitalVariableList()
+    userpins = UserPinList()
+    commands = CommandList(switches, analogvariables, digitalvariables, userpins)
+
+    ####################################################################################################################
+    # generate the header file variables.h
+    filename = 'variables.h'
+    contents = ''
+    # analog variables
+    contents += generate_analogvariables_header(analogvariables)
+    contents += generate_analogalarm_callbacks_header(analogvariables)
+    # digital variables
+    contents += generate_digitalvariables_header(digitalvariables)
+    contents += generate_digitalalarm_callbacks_header(digitalvariables)
+    # switches
+    contents += generate_switches_header(switches)
+    # user pins
+    contents += generate_userpins_header(userpins)
+    # save to file
+    save_header_file(filename, contents, output_folder_sources)
+
+    ####################################################################################################################
+    # generate the source file variables.c
+    filename = 'variables.c'
+    contents = ''
+    # analog variables
+    contents += generate_analogvariables_source(analogvariables)
+    # digital variables
+    contents += generate_digitalvariables_source(digitalvariables)
+    # switches
+    contents += generate_switches_source(switches, PayloadFieldEnum.get_persistent_list()['SWITCHNUM'])
+    # user pins
+    contents += generate_userpins_source(userpins, PayloadFieldEnum.get_persistent_list()['PINNUM'])
+    # save to file
+    save_source_file(filename, contents, output_folder_sources)
+
+    ####################################################################################################################
+    # generate the template source file for the alarm callback list
+    filename = 'alarm_callbacks.tpl.c'
+    contents = ''
+    # analog variables
+    contents += generate_analogalarm_callbacks_source_template(analogvariables)
+    # digital variables
+    contents += generate_digitalalarm_callbacks_source_template(digitalvariables)
+    # save to file
+    save_source_file(filename, contents, output_folder_templates, is_template=True)
+
+    ####################################################################################################################
+    # generate the command header file commandstable.h
+    filename = 'commandstable.h'
+    contents = ''
+    # analog variables
+    contents += generate_commandtable_header(commands)
+    # save to file
+    save_header_file(filename, contents, output_folder_sources)
+
+    ####################################################################################################################
+    # generate the type definition header file datatypes.h
+    filename = 'datatypes.h'
+    contents = ''
+    # analog variables
+    contents += generate_commands_typedefs()
+    # save to file
+    save_header_file(filename, contents, output_folder_sources)
+
+    ####################################################################################################################
+    # generate the command table source file commandstable.c
+    filename = 'commandstable.c'
+    contents = ''
+    # analog variables
+    contents += generate_commandtable_sources(commands)
+    # save to file
+    save_source_file(filename, contents, output_folder_sources)
+
+    ####################################################################################################################
+    # generate the commands callback template files
+    for command in commands.entries():
+        if command.implement:
+            contents = generate_command_callback_template(command)
+            filename = 'command_{}.tpl.c'.format(command.name)
+            save_source_file(filename, contents, output_folder_templates_commands, is_template=True)
+
+
+
+
+
+
+
+
+
diff --git a/host/python/codegen/switches.py b/host/python/codegen/switches.py
new file mode 100644
index 0000000..38d92fa
--- /dev/null
+++ b/host/python/codegen/switches.py
@@ -0,0 +1,100 @@
+from entities.descriptors import SwitchDescriptor
+from firmwareconfig import FirmwareConfig as fwcfg
+
+
+class SwitchList:
+    """A class to define the list of switches of the board"""
+
+    # this class can be actually created only once
+    _ready = False
+
+    def __init__(self):
+        assert self._ready is False, "Class {} should be created only once!".format(self.__class__.__name__)
+        self._create()
+        self._ready = True
+
+    def count(self):
+        return len(self.vars)
+
+    def entries(self):
+        return self.vars
+
+    def _create(self):
+        self.vars = list()
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=1,
+                firmware_config=fwcfg,
+                name='SWITCH_VEOC_RETURN',
+                ioname='DOUT_375V_RTN_SWITCH_ON_OFF',
+                description='DU backbone ON/OFF return line control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=2,
+                firmware_config=fwcfg,
+                name='SWITCH_VEOC_DIRECT',
+                ioname='DOUT_375V_FWR_SWTCH_ON_OFF',
+                description='DU backbone ON/OFF forward line control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=3,
+                firmware_config=fwcfg,
+                name='SWITCH_12V',
+                ioname='DOUT_ISO_12V_SWITCH_ON_OFF',
+                description='DC-DC TDK 5/12V ISO ON/OFF control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=4,
+                firmware_config=fwcfg,
+                name='SWITCH_LBL',
+                ioname='DOUT_LBL_SWITCH_ON_OFF',
+                description='12V ISO LBL power ON/OFF control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=5,
+                firmware_config=fwcfg,
+                name='SWITCH_HYDRO',
+                ioname='DOUT_HYDRO_SWITCH_ON_OFF',
+                description='12V ISO HYDRO power ON/OFF control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=6,
+                firmware_config=fwcfg,
+                name='SWITCH_GLRA',
+                ioname='DOUT_GLR_A_SWITCH_ON_OFF',
+                description='12V GLENAIR-A power ON/OFF control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=7,
+                firmware_config=fwcfg,
+                name='SWITCH_GLRB',
+                ioname='DOUT_GLR_B_SWITCH_ON_OFF',
+                description='12V GLENAIR-B power ON/OFF control (high=ON)',
+            )
+        )
+        self.vars.append(
+            SwitchDescriptor(
+                enum_index=8,
+                firmware_config=fwcfg,
+                name='SWITCH_PWB',
+                ioname='DOUT_PWB_SWITCH_ON_OFF',
+                description='12V  POWER BOARD power ON/OFF control (high=ON)',
+            )
+        )
+
+
+if __name__ == '__main__':
+    switches = SwitchList()
+    print switches.vars[0].name
diff --git a/host/python/codegen/userpins.py b/host/python/codegen/userpins.py
new file mode 100644
index 0000000..48c2f0c
--- /dev/null
+++ b/host/python/codegen/userpins.py
@@ -0,0 +1,48 @@
+from entities.descriptors import UserPinDescriptor
+from firmwareconfig import FirmwareConfig as fwcfg
+
+
+class UserPinList:
+    """A class to define the list of user pins of the board"""
+
+    # this class can be actually created only once
+    _ready = False
+
+    def __init__(self):
+        assert self._ready is False, "Class {} should be created only once!".format(self.__class__.__name__)
+        self._create()
+        self._ready = True
+
+    def count(self):
+        return len(self.vars)
+
+    def entries(self):
+        return self.vars
+
+    def _create(self):
+        self.vars = list()
+
+        self.vars.append(
+            UserPinDescriptor(
+                enum_index=1,
+                firmware_config=fwcfg,
+                name='SWITCH_LED_D9',
+                ioname='DOUT_JP1_LED_D9',
+                description='Line IN/OUT not assigned. Free line available on JP1 jumper. Usable in output to turn on the LED'
+            )
+        )
+        self.vars.append(
+            UserPinDescriptor(
+                enum_index=2,
+                firmware_config=fwcfg,
+                name='SWITCH_LED_D10',
+                ioname='DOUT_JP2_LED_D10',
+                description='Line IN/OUT not assigned. Free line available on JP2 jumper. Usable in output to turn on the LED'
+            )
+        )
+
+
+if __name__ == '__main__':
+    userpins = UserPinList()
+    print userpins.vars[0].name
+
diff --git a/host/python/codegen/utils.py b/host/python/codegen/utils.py
new file mode 100644
index 0000000..44c57e8
--- /dev/null
+++ b/host/python/codegen/utils.py
@@ -0,0 +1,4 @@
+def mls(s, minlen, filler=' ', stop_on_longer=True):
+    if stop_on_longer:
+        assert len(s) <= minlen, "In function mls(...): string '{}' is too long {} (max is {})".format(s, len(s), minlen)
+    return s + filler * (minlen - len(s))
\ No newline at end of file
diff --git a/micro/BPD-V01-FIRMWARE.X/Makefile b/micro/BPD-V01-FIRMWARE.X/Makefile
new file mode 100644
index 0000000..fca8e2c
--- /dev/null
+++ b/micro/BPD-V01-FIRMWARE.X/Makefile
@@ -0,0 +1,113 @@
+#
+#  There exist several targets which are by default empty and which can be 
+#  used for execution of your targets. These targets are usually executed 
+#  before and after some main targets. They are: 
+#
+#     .build-pre:              called before 'build' target
+#     .build-post:             called after 'build' target
+#     .clean-pre:              called before 'clean' target
+#     .clean-post:             called after 'clean' target
+#     .clobber-pre:            called before 'clobber' target
+#     .clobber-post:           called after 'clobber' target
+#     .all-pre:                called before 'all' target
+#     .all-post:               called after 'all' target
+#     .help-pre:               called before 'help' target
+#     .help-post:              called after 'help' target
+#
+#  Targets beginning with '.' are not intended to be called on their own.
+#
+#  Main targets can be executed directly, and they are:
+#  
+#     build                    build a specific configuration
+#     clean                    remove built files from a configuration
+#     clobber                  remove all built files
+#     all                      build all configurations
+#     help                     print help mesage
+#  
+#  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
+#  .help-impl are implemented in nbproject/makefile-impl.mk.
+#
+#  Available make variables:
+#
+#     CND_BASEDIR                base directory for relative paths
+#     CND_DISTDIR                default top distribution directory (build artifacts)
+#     CND_BUILDDIR               default top build directory (object files, ...)
+#     CONF                       name of current configuration
+#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)
+#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)
+#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)
+#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)
+#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)
+#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)
+#
+# NOCDDL
+
+
+# Environment 
+MKDIR=mkdir
+CP=cp
+CCADMIN=CCadmin
+RANLIB=ranlib
+
+
+# build
+build: .build-post
+
+.build-pre:
+# Add your pre 'build' code here...
+
+.build-post: .build-impl
+# Add your post 'build' code here...
+
+
+# clean
+clean: .clean-post
+
+.clean-pre:
+# Add your pre 'clean' code here...
+# WARNING: the IDE does not call this target since it takes a long time to
+# simply run make. Instead, the IDE removes the configuration directories
+# under build and dist directly without calling make.
+# This target is left here so people can do a clean when running a clean
+# outside the IDE.
+
+.clean-post: .clean-impl
+# Add your post 'clean' code here...
+
+
+# clobber
+clobber: .clobber-post
+
+.clobber-pre:
+# Add your pre 'clobber' code here...
+
+.clobber-post: .clobber-impl
+# Add your post 'clobber' code here...
+
+
+# all
+all: .all-post
+
+.all-pre:
+# Add your pre 'all' code here...
+
+.all-post: .all-impl
+# Add your post 'all' code here...
+
+
+# help
+help: .help-post
+
+.help-pre:
+# Add your pre 'help' code here...
+
+.help-post: .help-impl
+# Add your post 'help' code here...
+
+
+
+# include project implementation makefile
+include nbproject/Makefile-impl.mk
+
+# include project make variables
+include nbproject/Makefile-variables.mk
diff --git a/micro/BPD-V01-GPIOTEST.X/main.c b/micro/BPD-V01-GPIOTEST.X/main.c
new file mode 100644
index 0000000..fef11b5
--- /dev/null
+++ b/micro/BPD-V01-GPIOTEST.X/main.c
@@ -0,0 +1,82 @@
+/**
+  Generated Main Source File
+
+  Company:
+    Microchip Technology Inc.
+
+  File Name:
+    main.c
+
+  Summary:
+    This is the main file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
+
+  Description:
+    This header file provides implementations for driver APIs for all modules selected in the GUI.
+    Generation Information :
+        Product Revision  :  PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.7
+        Device            :  PIC18F46K22
+        Driver Version    :  2.00
+*/
+
+/*
+    (c) 2018 Microchip Technology Inc. and its subsidiaries. 
+    
+    Subject to your compliance with these terms, you may use Microchip software and any 
+    derivatives exclusively with Microchip products. It is your responsibility to comply with third party 
+    license terms applicable to your use of third party software (including open source software) that 
+    may accompany Microchip software.
+    
+    THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER 
+    EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY 
+    IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS 
+    FOR A PARTICULAR PURPOSE.
+    
+    IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, 
+    INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND 
+    WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP 
+    HAS BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO 
+    THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL 
+    CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT 
+    OF FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS 
+    SOFTWARE.
+*/
+
+#include "mcc_generated_files/mcc.h"
+
+/*
+                         Main application
+ */
+void main(void)
+{
+    // Initialize the device
+    SYSTEM_Initialize();
+
+    // If using interrupts in PIC18 High/Low Priority Mode you need to enable the Global High and Low Interrupts
+    // If using interrupts in PIC Mid-Range Compatibility Mode you need to enable the Global and Peripheral Interrupts
+    // Use the following macros to:
+
+    // Enable the Global Interrupts
+    //INTERRUPT_GlobalInterruptEnable();
+
+    // Disable the Global Interrupts
+    //INTERRUPT_GlobalInterruptDisable();
+
+    // Enable the Peripheral Interrupts
+    //INTERRUPT_PeripheralInterruptEnable();
+
+    // Disable the Peripheral Interrupts
+    //INTERRUPT_PeripheralInterruptDisable();
+    
+    NOT IMPLEMENTED
+
+    while (1)
+    {
+        // Add your application code
+        
+        // just blink...
+        OUT_JP2_LED_D10_Toggle();
+    }
+}
+/**
+ End of File
+*/
\ No newline at end of file
diff --git a/micro/BPD-V01-GPIOTEST.X/mcc.mc3 b/micro/BPD-V01-GPIOTEST.X/mcc.mc3
new file mode 100644
index 0000000..8f29e9d
--- /dev/null
+++ b/micro/BPD-V01-GPIOTEST.X/mcc.mc3
@@ -0,0 +1,3932 @@
+<config configVersion="1.1" device="PIC18F46K22" coreVersion="5.0.2">
+   <usedClasses class="java.util.HashMap">
+      <entry>
+         <string>System Module</string>
+         <string>class com.microchip.mcc.mcu8.systemManager.SystemManager</string>
+      </entry>
+      <entry>
+         <string>INTERNAL OSCILLATOR</string>
+         <string>class com.microchip.mcc.mcu8.systemManager.osc.Osc</string>
+      </entry>
+      <entry>
+         <string>WDT</string>
+         <string>class com.microchip.mcc.mcu8.systemManager.wdt.WDT</string>
+      </entry>
+      <entry>
+         <string>Pin Module</string>
+         <string>class com.microchip.mcc.mcu8.pinManager.PinManager</string>
+      </entry>
+      <entry>
+         <string>RESET</string>
+         <string>class com.microchip.mcc.mcu8.systemManager.reset.RESET</string>
+      </entry>
+      <entry>
+         <string>EUSART1</string>
+         <string>class com.microchip.mcc.mcu8.modules.eusart.EUSART</string>
+      </entry>
+      <entry>
+         <string>Interrupt Module</string>
+         <string>class com.microchip.mcc.mcu8.interruptManager.InterruptManager</string>
+      </entry>
+   </usedClasses>
+   <usedLibraries class="java.util.ArrayList">
+      <ILibraryFile class="com.microchip.mcc.core.library.BaseLibraryFile" libraryClass="com.microchip.mcc.mcu8.Mcu8PeripheralLibrary" version="1.81.7"/>
+   </usedLibraries>
+   <tokenMap class="java.util.HashMap">
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="SWTXBufferSize"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="220"/>
+         <value>16</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISC"/>
+         <value>191</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG7H"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC"/>
+         <value>slave_mode</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS" alias="clock"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pinHiderKey"/>
+         <value>internal</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="soscPinHiderKey"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="flag"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISB"/>
+         <value>255</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="BAUDCON"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RE2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS"/>
+         <value>FOSC</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="MFIntOsc31.25KHzClockInHz"/>
+         <value>31250</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RD1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISD"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISE"/>
+         <value>7</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD" alias="POR or CLRWDT"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RC0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="order"/>
+         <value>-1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9D"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="UseHighLowPriority"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT" alias="TSR_empty"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE2"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE3"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="250KHz_MFINTOSC/2"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON"/>
+         <value>112</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="512"/>
+         <value>36</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS"/>
+         <value>32768</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="TRISA"/>
+         <value>63</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO" alias="ON"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="NOSLP"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="250"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="preemptiveHigh"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY" alias="NOPLL"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL" alias="idle"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR"/>
+         <value>occurred</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PRISD"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="preemptiveLow"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="systemClockValue"/>
+         <value>64000000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA6"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA7"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA4"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA5"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA2"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA3"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA0"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RA1"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomSoftwarePll"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR" alias="error"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO" alias="sleep"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB7"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB5"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="WPUB"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="RCIO6"/>
+         <value>7</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB6"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB3"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB4"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB1"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB2"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16" alias="8bit_generator"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RB0"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD0"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN" alias="ON"/>
+         <value>32</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="PBADEN" alias="ON"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="285"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CurrentPllString"/>
+         <value> (4x PLL)</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC6"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC7"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC4"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC5"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC2"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC3"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC0"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RC1"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE0"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RE1"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC"/>
+         <value>INTIO67</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG2L"/>
+         <value>31</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="IPEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="1MHz_HFINTOSC/16"/>
+         <value>3</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD7"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD5"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD6"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD3"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9"/>
+         <value>8-bit</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD4"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD1"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="ioc RD2"/>
+         <value>none</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX"/>
+         <value>PORTB5</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR" alias="no_error"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG" alias="ON"/>
+         <value>16</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="HFOFST" alias="ON"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="HSMP"/>
+         <value>3</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SREN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="FERR"/>
+         <value>no_error</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="enable"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="priority"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="8192"/>
+         <value>52</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="enable"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudRateErrorLabel"/>
+         <value>Error: 0.040 %</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG2H"/>
+         <value>60</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC" alias="synchronous"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="32"/>
+         <value>20</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="System Module" name="generateMain"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="DT1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN" alias="enabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS"/>
+         <value>not stable</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="BASE_ADDRESS"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="SPBRGL"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="flag"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI" alias="did not occur"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9" alias="9-bit"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXI" settingAlias="enable"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="4096"/>
+         <value>48</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="EUSART1_TXIISRFunction"/>
+         <value>TxDefaultInterruptHandler</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="16MHz_HFINTOSC"/>
+         <value>7</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="RESET" registerAlias="RCON"/>
+         <value>80</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="16"/>
+         <value>16</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="IESO"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF" alias="overflow"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="128"/>
+         <value>28</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB" alias="OFF"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="SPBRGH"/>
+         <value>3</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="did not occur"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS" alias="not stable"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="MULTI_VECTOR_ENABLE"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG3H"/>
+         <value>191</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI"/>
+         <value>did not occur</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB" alias="OFF"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX" alias="PORTC1"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="HFIntOscClockInHz"/>
+         <value>16000000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomIRFC"/>
+         <value>16MHz_HFINTOSC</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX"/>
+         <value>PORTD2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP" alias="ON"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX" alias="PORTB3"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="priority"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB" alias="OFF"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATA"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR" alias="error"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="priority"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC" alias="OFF"/>
+         <value>32</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="dt_pin_direction"/>
+         <value>out</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX"/>
+         <value>PORTC0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="occurred"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16"/>
+         <value>16bit_generator</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="64"/>
+         <value>24</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="ON"/>
+         <value>3</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD"/>
+         <value>POR or CLRWDT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG5L"/>
+         <value>15</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="16384"/>
+         <value>56</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="SBORDIS"/>
+         <value>6</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA0"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATD"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IDLEN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN" alias="ON"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="8MHz_HFINTOSC/2"/>
+         <value>6</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATE"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD" alias="OFF"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB0"/>
+         <value>IN_GLR_B_PG</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB1"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7H" settingAlias="EBTRB"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN" alias="ON"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pllMultiplier"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH" alias="lo_speed"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA5"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC"/>
+         <value>asynchronous</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA6"/>
+         <value>OUT_JP2_LED_D10</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA7"/>
+         <value>OUT_JP1_LED_D9</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Pin Module_RBIISRFunction"/>
+         <value>ISR_Pin Module_RBI</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA1"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="500KHz_MFINTOSC"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA2"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECLPIO6"/>
+         <value>13</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA3"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RA4"/>
+         <value>IN_HYDRO_PWR_FLT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="500KHz_HFINTOSC/32"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATB"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudprocessmode"/>
+         <value>easysetup</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO" alias="POR or CLRWDT"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT"/>
+         <value>TSR_empty</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL"/>
+         <value>idle</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="EUSART1_RCIISRFunction"/>
+         <value>RxDefaultInterruptHandler</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="WDT" name="wdtPeriod"/>
+         <value>131.07200</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="SOSC"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="LATC"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB"/>
+         <value>sync_break_complete</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG5H"/>
+         <value>192</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="TXSTA"/>
+         <value>36</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC7"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="INTCON2" settingAlias="nWPUEN" alias="disabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="2048"/>
+         <value>44</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP"/>
+         <value>async_noninverted_sync_fallingedge</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="4MHz_HFINTOSC/4"/>
+         <value>5</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="LVP"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="STVREN" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="FOSC"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE"/>
+         <value>EXTMCLR</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="TXREG"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="2MHz_HFINTOSC/8"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPD" alias="OFF"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECMPIO6"/>
+         <value>11</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PRICLKEN"/>
+         <value>ON</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="TO"/>
+         <value>POR or CLRWDT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Interrupt Module" name="IVT_NAME"/>
+         <value>IVT1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_LFINTOSC"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="ON"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP"/>
+         <value>not_inverted</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR" alias="no_error"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5H" settingAlias="CPB" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY" alias="PLL"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG7L"/>
+         <value>15</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD5" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE2" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP2MX"/>
+         <value>PORTC1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9" alias="9-bit"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_MFINTOSC/16"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="TUN"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA7" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN" alias="OFF"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR" alias="did not occur"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="INTIO7"/>
+         <value>9</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB7" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSC_USED"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST" alias="ON"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomFOSC"/>
+         <value>Internal oscillator block</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="1"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS"/>
+         <value>not stable</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="4"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="2"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="8"/>
+         <value>12</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB7" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC6" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTEN" alias="SWON"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC5" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="HFIOFS" alias="stable"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="baudRateComboBox"/>
+         <value>19200</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB6"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE1"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE2"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE3"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RE0"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF" alias="no_overflow"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC6" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD4"/>
+         <value>OUT_HYDRO_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD5"/>
+         <value>OUT_GLR_A_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD6"/>
+         <value>OUT_GLR_B_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD7"/>
+         <value>OUT_PWB_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD3"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD4" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="pllr"/>
+         <value>PRESENT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB7" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="SWRXBufferSize"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCI"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDOVF"/>
+         <value>no_overflow</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC0"/>
+         <value>IN_PWB_PG</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC1"/>
+         <value>IN_LBL_PWR_FLT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC2"/>
+         <value>IN_GLR_A_FLT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD3" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="SOSCO"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC5"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB6"/>
+         <value>IN_ALRMNEG1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB7"/>
+         <value>IN_ALRMNEG2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="1024"/>
+         <value>40</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB2"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP" alias="inverted"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB3"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB4"/>
+         <value>IN_ALRMPOS1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RB5"/>
+         <value>IN_ALRMPOS2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD0"/>
+         <value>OUT_375V_RTN_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD1"/>
+         <value>OUT_375V_FWR_SWTCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD2"/>
+         <value>OUT_ISO_12V_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RD3"/>
+         <value>OUT_LBL_SWITCH_ON_OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB6" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="packageId"/>
+         <value>TQFP44</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="scsTimer1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="System Module" name="CLOCK_FREQ"/>
+         <value>31.0 KHz</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CLKOUT_ENABLE"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="DTRXP" alias="not_inverted"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="SBOREN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC7"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH"/>
+         <value>hi_speed</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC3"/>
+         <value>IN_GLR_B_FLT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC4"/>
+         <value>IN_PWB_FLT</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC5"/>
+         <value>IN_GLR_A_PG</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="Custom Name RC6"/>
+         <value/>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE" alias="EXTMCLR"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="ADDEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRA5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB2" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS" alias="intosc"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX" alias="PORTE0"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SYNC" alias="asynchronous"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV" alias="190"/>
+         <value>24</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRB1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="PLLEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD7" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="MFIntOscClockInHz"/>
+         <value>500000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="250KHz_HFINTOSC/64"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BORV"/>
+         <value>190</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRC7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FCMEN"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="SPEN"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="flag"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9" alias="8-bit"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD6"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD7"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD5"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD2"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD3"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD0"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG1H"/>
+         <value>40</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRD1"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB3" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS" alias="not stable"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE"/>
+         <value>64</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF"/>
+         <value>16MHz_HFINTOSC</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="INTCON2"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP" alias="async_inverted_sync_risingedge"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="anselUserSetRE2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC2" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN" alias="NOSLP"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CurrentSystemClockInHz"/>
+         <value>64000000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="CustomHardwarePll"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC7" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC4" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="SCKP" alias="async_noninverted_sync_fallingedge"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="XINST" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="RCIDL" alias="bit_received"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS" alias="stable"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA7"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB" alias="sync_break_complete"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD0" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD6" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE1" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB5" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG4L" settingAlias="DEBUG" alias="OFF"/>
+         <value>128</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9" alias="8-bit"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECHPIO6"/>
+         <value>5</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC" alias="slave_mode"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD7"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS"/>
+         <value>not stable</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC3" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB3" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD0"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD1"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD2"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC2"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC3"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECLP"/>
+         <value>12</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC5"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD2" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA4" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC2" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG" alias="OFF"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC0"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RC1"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB5"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB6"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB7"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1" alias="OFF"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTB"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD1" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="PD" alias="sleep"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0" alias="OFF"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE0" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG4L"/>
+         <value>133</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB4" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RE3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD3"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD5"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD6"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RD7"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECMP"/>
+         <value>10</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="256"/>
+         <value>32</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA0"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="SENDB" alias="send_sync_break_next"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="CCP3MX" alias="PORTB5"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD3" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCGO" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC3" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX" alias="PORTC0"/>
+         <value>16</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="XT"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="EUSART1" registerAlias="RCSTA"/>
+         <value>144</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTC"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TXEN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0" alias="OFF"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="T1oscen"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0" alias="OFF"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="T3CMX" alias="PORTB5"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE2" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD2" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TRMT" alias="TSR_full"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="ExternalClock"/>
+         <value>1000000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOSEL"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="IRCF" alias="31KHz_HFINTOSC/512"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA6" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB0" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB3" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="HSHP"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD0" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELE" settingAlias="ANSE1" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA4" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD1" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB1" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA5" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG6H" settingAlias="WRTD"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="BOREN"/>
+         <value>SBORDIS</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD6"/>
+         <value>digital</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISE" settingAlias="TRISE0" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC4" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC1" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="CSRC" alias="master_mode"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="WUE"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB4" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="CK1"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1" alias="OFF"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2" alias="analog"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="BOR" alias="occurred"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELB" settingAlias="ANSB5" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB7" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB5" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="IOCB"/>
+         <value>240</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="ABDEN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="BRGH" alias="hi_speed"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB5"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="templateNameValue"/>
+         <value>eusart_noninterrupt</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB7"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRB0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RB6"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="LP"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="OSTS"/>
+         <value>intosc</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC2"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT0" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC1"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC3"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA3"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC4" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC0"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA2" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC5"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRC1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RC7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="BAUDCON" settingAlias="BRG16" alias="16bit_generator"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP3" alias="OFF"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD5"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC3" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA0" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRD2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB5" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCTUNE" settingAlias="INTSRC" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA5"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELD"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD4"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA6" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD4" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA7"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="CREN" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELE"/>
+         <value>7</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA4"/>
+         <value>input</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRE2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA6"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RA5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2" alias="OFF"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="USB_LOADED"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2H" settingAlias="WDTPS" alias="32768"/>
+         <value>60</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC5" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG6L"/>
+         <value>15</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR3" alias="OFF"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="FOSCClockValue"/>
+         <value>64000000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB4" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT1" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA5" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATD" settingAlias="LATD1" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX" alias="PORTD2"/>
+         <value>32</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR1" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA3" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="MFIOFS" alias="stable"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON" settingAlias="SCS" alias="INTOSC"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="System Module" registerAlias="CONFIG6H"/>
+         <value>224</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELB"/>
+         <value>14</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP2" alias="OFF"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATA" settingAlias="LATA3" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="RX9D"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RB1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="ECHP"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB6" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB4" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="MCLRE" alias="INTMCLR"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="eusartInterrupts"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG3H" settingAlias="P2BMX" alias="PORTC0"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE0" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB2" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="RESET" registerAlias="RCON" settingAlias="POR"/>
+         <value>occurred</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="LATE" settingAlias="LATE2"/>
+         <value>clear</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELC"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD7"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC0" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC7" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="iocUserSet RA0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="WPUB" settingAlias="WPUB6" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA1"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="RBI" settingAlias="order"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD3"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="INTIO67"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD2"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD5"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD4"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP0" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB3" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="RESET" registerAlias="RCON" settingAlias="RI" alias="occurred"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB0" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD1"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="FOSC" alias="RC"/>
+         <value>6</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD0"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB5" alias="disabled"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISB" settingAlias="TRISB1" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD7"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RD6"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT3" alias="OFF"/>
+         <value>8</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCI" settingAlias="order"/>
+         <value>-1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RB0"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA4"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA6"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="System Module" registerAlias="CONFIG1H" settingAlias="PLLCFG"/>
+         <value>OFF</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="customNameUserSet RA7"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC1" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR2" alias="OFF"/>
+         <value>4</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="IOCB" settingAlias="IOCB4" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELC" settingAlias="ANSC6" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG2L" settingAlias="PWRTEN" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="LFIOFS" alias="not stable"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA4"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="INTERNAL OSCILLATOR" name="LFIntOscClockInHz"/>
+         <value>31000</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA5"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="ANSELA" settingAlias="ANSA2"/>
+         <value>analog</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA3"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISA" settingAlias="TRISA1" alias="input"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE2"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA6"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="RE1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA7"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATC" settingAlias="LATC2" alias="clear"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="SOSCRUN" alias="enabled"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA0"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="TRISC" settingAlias="TRISC0" alias="output"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="Pin Module" name="trisUserSetRA1"/>
+         <value>disabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG7L" settingAlias="EBTR0" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="RCSTA" settingAlias="OERR"/>
+         <value>no_error</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="LATB" settingAlias="LATB2" alias="set"/>
+         <value>1</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="EUSART1" registerAlias="TXSTA" settingAlias="TX9"/>
+         <value>8-bit</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG5L" settingAlias="CP1" alias="OFF"/>
+         <value>2</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="INTERNAL OSCILLATOR" registerAlias="OSCCON2" settingAlias="PLLRDY"/>
+         <value>NOPLL</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.SettingKey" moduleName="Pin Module" registerAlias="TRISD" settingAlias="TRISD6"/>
+         <value>output</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="Pin Module" registerAlias="ANSELD" settingAlias="ANSD5" alias="digital"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.OptionKey" moduleName="System Module" registerAlias="CONFIG6L" settingAlias="WRT2" alias="ON"/>
+         <value>0</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.CustomKey" moduleName="EUSART1" name="useStdio"/>
+         <value>enabled</value>
+      </entry>
+      <entry>
+         <key class="com.microchip.mcc.core.tokenManager.RegisterKey" moduleName="Pin Module" registerAlias="ANSELA"/>
+         <value>47</value>
+      </entry>
+   </tokenMap>
+   <generatedFileHashHistoryMap class="java.util.HashMap">
+      <entry>
+         <file>mcc_generated_files/device_config.h</file>
+         <hash>455315f4857de718383343a0bc9f905e09ceac38bd97f903d8521ad636b9f4b2</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/pin_manager.h</file>
+         <hash>00552b3a6dcf3b2369ec5540c4af60a6fd00e7faca0714f31a78ba00e7ce2c62</hash>
+      </entry>
+      <entry>
+         <file>main.c</file>
+         <hash>87bbe9578cf7703cdbfd9af1caeeb4c11efd4c03fde69c03bbc26710a79b1ca5</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/eusart1.h</file>
+         <hash>7205c92f301e59df282c450e19b0897dce2f04189d8a277ea27e5bb11ee47a04</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/mcc.h</file>
+         <hash>6a533aa9e0ddece3e3e6bf1b248eceb8c9d66d717d82bc46645d9a7b61cdad45</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/eusart1.c</file>
+         <hash>cb493bc5a67535a19de1261a965b67360299a6d9ffa957aae47aa514bfa40011</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/device_config.c</file>
+         <hash>1a03314d224a4ddfcbee78607808e14e673be22bdfa19b5cdc5906eae36baa31</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/mcc.c</file>
+         <hash>45b531f895e931e1acd2ab0e2820c2169bbc55fb87d51df0f8be3768b07c8493</hash>
+      </entry>
+      <entry>
+         <file>mcc_generated_files/pin_manager.c</file>
+         <hash>b8814e96b138ca260b8ff6685d7a862c528f049fb7a5548867807e1181b8dcc9</hash>
+      </entry>
+   </generatedFileHashHistoryMap>
+   <mc3libFileHashHistoryMap class="java.util.HashMap"/>
+</config>
\ No newline at end of file
-- 
GitLab