diff --git a/app_config.h b/app_config.h
index d0cef16..99234fa 100644
--- a/app_config.h
+++ b/app_config.h
@@ -103,11 +103,41 @@ extern "C"
#define BLE_ADVERTISING_ENABLED 1
// BLE device name
+#define DEF_ELITE_DEV 0x00000000
#define DEF_ELITE_EDC_20 0x00020109
#define DEF_PULSE_E_LOAD_10 0x00070000
-#define DEF_ELITE_MODEL DEF_ELITE_EDC_20
+#define DEF_ELITE_MODEL DEF_ELITE_DEV
-#if (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
+#if (DEF_ELITE_MODEL == DEF_ELITE_DEV)
+#define ELITE_DEVICE_NAME "Elite-Dev"
+#define MAJOR_PRODUCT_NUMBER 0
+#define MINOR_PRODUCT_NUMBER 0
+#define MAJOR_VERSION_NUMBER 0
+#define MINOR_VERSION_NUMBER 0
+
+#define DEF_LED_COUNT 0
+#define DEF_LED_DRV_ENABLED 0
+#define DEF_APA102_2020_ENABLED 0
+
+#define DEF_ADC_DRV_ENABLED 0
+#define DEF_ADS8691_ENABLED 0
+#define DEF_BULTIN_ADC_ENABED 0
+
+#define DEF_DAC_DRV_ENABLED 0
+#define DEF_MAX5136_ENABLED 0
+
+#define DEF_SW_DRV_ENABLED 0
+#define DEF_ADGS1412_ENABLED 0
+
+#define DEF_FS_ENABLED 0
+#define DEF_FS_RTT_DIR 0
+#define DEF_GD25D10C_ENABLED 0
+
+#define DEF_BTN_ENABLED 0
+
+#define DEF_RTT_JSCOP_ENABLED 0
+
+#elif (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
#define ELITE_DEVICE_NAME "Elite-EDC"
#define MAJOR_PRODUCT_NUMBER 0
#define MINOR_PRODUCT_NUMBER 2
diff --git a/bmd380_peripheral.vcxproj b/bmd380_peripheral.vcxproj
index 4338378..d269a75 100644
--- a/bmd380_peripheral.vcxproj
+++ b/bmd380_peripheral.vcxproj
@@ -187,6 +187,7 @@
+
@@ -371,6 +372,7 @@
+
diff --git a/elite.c b/elite.c
index 9ef26b9..b4b3ddf 100644
--- a/elite.c
+++ b/elite.c
@@ -1,6 +1,8 @@
#include "elite.h"
-#if (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
+#if (DEF_ELITE_MODEL == DEF_ELITE_DEV)
+#include "elite_dev.h"
+#elif (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
#include "edc.h"
#elif (DEF_ELITE_MODEL == DEF_PULSE_E_LOAD_10)
#include "pel.h"
@@ -96,7 +98,9 @@ static void elite_instr_task(void *p_arg)
void elite_init(void)
{
-#if (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
+#if (DEF_ELITE_MODEL == DEF_ELITE_DEV)
+ p_instance = dev_init();
+#elif (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
edc.init();
p_instance = edc.p_elite_instance;
#elif (DEF_ELITE_MODEL == DEF_PULSE_E_LOAD_10)
diff --git a/elite_board.h b/elite_board.h
index f818b97..6ef3dd9 100644
--- a/elite_board.h
+++ b/elite_board.h
@@ -3,7 +3,8 @@
#define __BOARD_H__
#include "app_config.h"
-#if (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
+#if (DEF_ELITE_MODEL == DEF_ELITE_DEV)
+#elif (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
#include "edc20_io.h"
#elif (DEF_ELITE_MODEL == DEF_PULSE_E_LOAD_10)
#include "pel10_io.h"
diff --git a/elite_dev.c b/elite_dev.c
new file mode 100644
index 0000000..03b44cb
--- /dev/null
+++ b/elite_dev.c
@@ -0,0 +1,75 @@
+#include "elite_dev.h"
+
+#include "nrf_log.h"
+
+#if (DEF_ELITE_MODEL == DEF_ELITE_DEV)
+
+#define VERSION_DATE_YEAR 24
+#define VERSION_DATE_MONTH 5
+#define VERSION_DATE_DAY 30
+#define VERSION_DATE_HOUR 22
+#define VERSION_DATE_MINUTE 20
+static void cis_version(uint8_t *ins, uint16_t size)
+{
+ NRF_LOG_INFO("%s", __FUNCTION__);
+ uint8_t cis_ver[] = {
+ CIS_VERSION,
+ VERSION_DATE_YEAR,
+ VERSION_DATE_MONTH,
+ VERSION_DATE_DAY,
+ VERSION_DATE_HOUR,
+ VERSION_DATE_MINUTE,
+ };
+ extern ret_code_t le_data_upadate(uint8_t * p_value, uint16_t len);
+ le_data_upadate((void *)cis_ver, sizeof(cis_ver));
+}
+
+static void vis_rst(uint8_t *ins, uint16_t size)
+{
+ NRF_LOG_INFO("%s", __FUNCTION__);
+}
+
+#define MAGIC_NUM 0xFF00
+static void dev_mode(uint8_t *ins, uint16_t size)
+{
+ NRF_LOG_INFO("%s", __FUNCTION__);
+ struct __PACKED
+ {
+ uint8_t id : 4;
+ uint8_t : 4;
+ uint16_t magic : 16;
+ uint8_t opcode;
+ uint8_t param[];
+ } *p_ins = (void *)ins;
+
+ if (p_ins->magic != MAGIC_NUM)
+ {
+ return;
+ }
+
+ // TODO...
+ switch (p_ins->opcode)
+ {
+ default:
+ break;
+ }
+}
+
+const elite_instance_t pel_elite_instance = {
+ .cis_func = {
+ [CIS_VERSION] = cis_version,
+ },
+ .vis_func = {
+ [VIS_RST] = vis_rst,
+ },
+ .ris_func = {
+ [DEV_MODE] = dev_mode,
+ }
+};
+
+const elite_instance_t *dev_init(void)
+{
+ return &pel_elite_instance;
+}
+
+#endif /* !DEF_ELITE_MODEL */
diff --git a/elite_dev.h b/elite_dev.h
new file mode 100644
index 0000000..d3967b1
--- /dev/null
+++ b/elite_dev.h
@@ -0,0 +1,10 @@
+#pragma once
+#ifndef __ELITE_DEV_H__
+#define __ELITE_DEV_H__
+
+#include "app_config.h"
+#include "elite.h"
+
+const elite_instance_t *dev_init(void);
+
+#endif // !__ELITE_DEV_H__