diff --git a/Firmware/Olfactometer/Olfactometer.cproj b/Firmware/Olfactometer/Olfactometer.cproj
index bd8def2..170c70e 100644
--- a/Firmware/Olfactometer/Olfactometer.cproj
+++ b/Firmware/Olfactometer/Olfactometer.cproj
@@ -144,7 +144,7 @@
libm
- libATxmega128A1U-1.14.a
+ libATxmega128A1U-1.15.a
diff --git a/Firmware/Olfactometer/app.c b/Firmware/Olfactometer/app.c
index 1229e91..ad62c15 100644
--- a/Firmware/Olfactometer/app.c
+++ b/Firmware/Olfactometer/app.c
@@ -62,7 +62,7 @@ void hwbp_app_initialize(void)
uint8_t hwH = 2;
uint8_t hwL = 1;
uint8_t fwH = 2;
- uint8_t fwL = 2;
+ uint8_t fwL = 3;
uint8_t ass = 0;
/* Start core */
diff --git a/Firmware/Olfactometer/hwbp_core.h b/Firmware/Olfactometer/hwbp_core.h
index 515d930..ccdc8b5 100644
--- a/Firmware/Olfactometer/hwbp_core.h
+++ b/Firmware/Olfactometer/hwbp_core.h
@@ -114,6 +114,24 @@ bool core_clock_to_unlock(void);
/// It is mandatory that this function is the first of the application code.
+void core_func_start_core_V2 (
+ const uint16_t who_am_i,
+ const uint8_t hwH,
+ const uint8_t hwL,
+ const uint8_t hwP,
+ const uint8_t fwH,
+ const uint8_t fwL,
+ const uint8_t fwP,
+ uint8_t *pointer_to_app_regs,
+ const uint16_t app_mem_size_to_save,
+ const uint8_t num_of_app_registers,
+ const uint8_t *device_name,
+ const bool device_is_able_to_repeat_clock,
+ const bool device_is_able_to_generate_clock,
+ const uint8_t default_timestamp_offset
+ );
+
+/// Old initialization function. Use "core_func_start_core_V2()" instead.
void core_func_start_core (
const uint16_t who_am_i,
const uint8_t hwH,
diff --git a/Firmware/Olfactometer/hwbp_core_regs.h b/Firmware/Olfactometer/hwbp_core_regs.h
index 52f0728..7435cfb 100644
--- a/Firmware/Olfactometer/hwbp_core_regs.h
+++ b/Firmware/Olfactometer/hwbp_core_regs.h
@@ -25,6 +25,7 @@ struct CommonBank
uint8_t R_UID[16];
uint8_t R_TAG[8];
uint16_t R_HEARTBEAT;
+ uint8_t R_VERSION[32];
};
/************************************************************************/
@@ -50,9 +51,10 @@ struct CommonBank
#define ADD_R_UID 0x10 // U8[16]
#define ADD_R_TAG 0x11 // U8[8]
#define ADD_R_HEARTBEAT 0x12 // U16
+#define ADD_R_VERSION 0x13 // U8[32]
/* Memory limits */
-#define COMMON_BANK_ADD_MAX 0x12
+#define COMMON_BANK_ADD_MAX 0x13
#define COMMON_BANK_ABSOLUTE_ADD_MAX 0x1C
/* R_OPERATION_CTRL */
@@ -77,6 +79,7 @@ struct CommonBank
#define B_NAME_TO_DEFAULT (1<<3)
+#define B_BOOT (1<<5)
#define B_BOOT_DEF (1<<6)
#define B_BOOT_EE (1<<7)
diff --git a/Firmware/Olfactometer/libATxmega128A1U-1.14.a b/Firmware/Olfactometer/libATxmega128A1U-1.14.a
deleted file mode 100644
index dbf9a83..0000000
Binary files a/Firmware/Olfactometer/libATxmega128A1U-1.14.a and /dev/null differ
diff --git a/Firmware/Olfactometer/libATxmega128A1U-1.15.a b/Firmware/Olfactometer/libATxmega128A1U-1.15.a
new file mode 100644
index 0000000..545e330
Binary files /dev/null and b/Firmware/Olfactometer/libATxmega128A1U-1.15.a differ
diff --git a/device.yml b/device.yml
index 6524ffe..1567373 100644
--- a/device.yml
+++ b/device.yml
@@ -3,7 +3,7 @@
# yaml-language-server: $schema=https://harp-tech.org/draft-02/schema/device.json
device: Olfactometer
whoAmI: 1140
-firmwareVersion: "2.2"
+firmwareVersion: "2.3"
hardwareTargets: "1.0"
registers:
EnableFlow: