diff --git a/avr/devices/n23/0BUILD b/avr/devices/n23/0BUILD
index dc4c439..bed977a 100644
--- a/avr/devices/n23/0BUILD
+++ b/avr/devices/n23/0BUILD
@@ -7,6 +7,10 @@
main
+
+ aqua_n23.xml
+
+
defs.asm
README
diff --git a/devices/nodes/aqua_n23.xml b/avr/devices/n23/aqua_n23.xml
similarity index 68%
rename from devices/nodes/aqua_n23.xml
rename to avr/devices/n23/aqua_n23.xml
index a164acb..0d0d4c3 100644
--- a/devices/nodes/aqua_n23.xml
+++ b/avr/devices/n23/aqua_n23.xml
@@ -8,7 +8,9 @@
-
+
+
+
diff --git a/avr/devices/n23/main/main-old.asm b/avr/devices/n23/main/main-old.asm
deleted file mode 100644
index 6cb705c..0000000
--- a/avr/devices/n23/main/main-old.asm
+++ /dev/null
@@ -1,476 +0,0 @@
-; ***************************************************************************
-; copyright : (C) 2024 by Martin Preuss
-; email : martin@libchipcard.de
-;
-; ***************************************************************************
-; * This file is part of the project "AqHome". *
-; * Please see toplevel file COPYING of that project for license details. *
-; ***************************************************************************
-
-
-
-
-; ***************************************************************************
-; Source file for temperature sensor node on AtTiny 84
-;
-; This is for the full system (i.e. not the boot loader).
-;
-; All definitions and changes should go into this file.
-;
-;
-; ***************************************************************************
-
-
-.equ clock=1000000 ; Define the clock frequency
-;.equ clock=8000000 ; Define the clock frequency
-
-
-
-.nolist
-.include "include/tn84def.inc" ; Define device ATtiny84
-.list
-
-.include "../defs.asm"
-.include "defs_all.asm"
-
-
-
-; ***************************************************************************
-; defines
-
-; ---------------------------------------------------------------------------
-; generic
-
-
-.include "common/utils_wait.asm"
-
-
-; ---------------------------------------------------------------------------
-; firmware settings including list of modules used
-
-.equ FIRMWARE_VERSION_MAJOR = 0
-.equ FIRMWARE_VERSION_MINOR = 0
-.equ FIRMWARE_VERSION_PATCHLEVEL = 1
-
-
-#define MODULES_TIMER
-#define MODULES_COM
-#define MODULES_COM_WITH_ADDR_PROTO
-#define MODULES_LED_SIMPLE
-#define MODULES_TWI_MASTER
-;#define MODULES_LCD
-#define LCD_MINIMAL_FONT
-#define MODULES_SI7021
-#define MODULES_STATS
-;#define MODULES_OWI_MASTER
-;#define MODULES_DS18B20
-#define MODULES_MOTION
-;#define MODULES_CCS811
-
-; ---------------------------------------------------------------------------
-; defines for values
-
-.equ VALUE_ID_SI7021_TEMP = 0x01
-.equ VALUE_ID_SI7021_HUM = 0x02
-
-.equ VALUE_ID_ADC = 0x03
-;.equ VALUE_ID_REED1 = 0x04
-;.equ VALUE_ID_REED2 = 0x05
-;.equ VALUE_ID_DS18B20_TEMP = 0x06
-.equ VALUE_ID_MOTION = 0x07
-
-.equ VALUE_ID_CO2 = 0x08
-.equ VALUE_ID_TVOC = 0x09
-
-;.equ VALUE_ID_REED_CONF = 0x81
-
-.equ VALUE_ID_DEBUG = 0x7f
-
-
-
-; ***************************************************************************
-; code segment
-
-.cseg
-.org 000000
-
-
-
-; ---------------------------------------------------------------------------
-; Reset and interrupt vectors (will be removed as soon as we can flash data over COM)
-
-; rjmp main ; Reset vector
- rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
- reti ; EXT_INT0
- rjmp uartBitbangIsrPcint0 ; PCI0
- reti ; PCI1
- reti ; WATCHDOG
- reti ; ICP1
- reti ; OC1A
- reti ; OC1B
- reti ; OVF1
- rjmp baseTimerIrqOC0A ; OC0A
- reti ; OC0B
- reti ; OVF0
- reti ; ACI
- reti ; ADCC
- reti ; ERDY
- reti ; USI_STR
- reti ; USI_OVF
-
-
-devInfoBlock: ; 12 bytes
-devInfoManufacturer: .db 'A', 'Q', 'U', 'A'
-devInfoId: .db DEVICEINFO_ID, 0
-devInfoVersion: .db DEVICEINFO_VERSION, DEVICEINFO_REVISION ; version, revision
-firmwareVersion: .db FIRMWARE_VARIANT_TEMP_WINDOW, FIRMWARE_VERSION_MAJOR
- .db FIRMWARE_VERSION_MINOR, FIRMWARE_VERSION_PATCHLEVEL
-
-firmwareStart: rjmp main
-
-
-; ***************************************************************************
-; includes
-
-.include "common/utils.asm"
-.include "common/utils_wait_fixed.asm"
-.include "common/utils_copy_from_flash.asm"
-.include "common/utils_copy_sdram.asm"
-.include "common/crc8.asm"
-
-.include "modules/basetimer/main.asm"
-
-#ifdef MODULES_TIMER
- .include "modules/timer/main.asm"
-#endif
-#ifdef MODULES_LED
-.include "modules/led/main.asm"
-#endif
-#ifdef MODULES_LED_SIMPLE
-.include "modules/led_simple/main.asm"
-#endif
-#ifdef MODULES_COM
- .include "modules/com2/defs.asm"
- .include "modules/com2/main.asm"
- .include "modules/com2/buffer.asm"
- .include "modules/uart_bitbang/defs.asm"
- .include "modules/uart_bitbang/main.asm"
- .include "modules/uart_bitbang/bytelevel.asm"
- .include "modules/uart_bitbang/packetlevel.asm"
- #ifdef MODULES_COM_WITH_ADDR_PROTO
- .include "modules/comproto/defs.asm"
- .include "modules/comproto/main.asm"
- .include "modules/comproto/addr.asm"
- .include "modules/comproto/msg_recvstats.asm"
- .include "modules/comproto/msg_sendstats.asm"
- .include "modules/comproto/msg_sysstats.asm"
- .include "modules/comproto/msg_memstats.asm"
- .include "modules/comproto/msg_pong.asm"
- .include "modules/comproto/msg_value.asm"
- .include "modules/comproto/msg_device.asm"
- .include "modules/comproto/msg_reboot.asm"
- #endif
- #ifdef MODULES_LCD
- .include "modules/com2/screen.asm"
- .include "modules/comproto/screen.asm"
- #endif
-#endif
-#ifdef MODULES_TWI_MASTER
- .include "modules/twimaster/main.asm"
-#endif
-#ifdef MODULES_OWI_MASTER
- .include "modules/owimaster/main.asm"
-#endif
-#ifdef MODULES_LCD
- .include "modules/lcd/main.asm"
-#endif
-#ifdef MODULES_SI7021
- .include "modules/si7021/main.asm"
-#endif
-#ifdef MODULES_DS18B20
- .include "modules/ds18b20/main.asm"
-#endif
-#ifdef MODULES_STATS
- .include "modules/stats/main.asm"
-#endif
-#ifdef MODULES_CNY70
- .include "modules/cny70/main.asm"
-#endif
-#ifdef MODULES_REED
- .include "modules/reed/main.asm"
-#endif
-
-#ifdef MODULES_MOTION
- .include "modules/motion/main.asm"
-#endif
-
-#ifdef MODULES_CCS811
- .include "modules/ccs811/main.asm"
-#endif
-
-; test
-;#include "modules/uart_irq/defs.asm"
-;#include "modules/uart_irq/iface.asm"
-;#include "modules/uart_irq/iface1.asm"
-
-
-; ***************************************************************************
-; data in SRAM
-
-.dseg
-
-programRamBegin:
-#ifdef MODULES_LCD
- screenCounter: .byte 1
-#endif
-
-programRamEnd:
-
-
-
-#ifdef MODULES_LCD
- sramTimerWriteStats: .byte 2
- sramTimerScreen: .byte 2
-#endif
-#ifdef MODULES_SI7021
- sramTimerSI7021Measure: .byte 2
- sramTimerSI7021SendTemp: .byte 2
- sramTimerSI7021SendHumidity: .byte 2
-#endif
-#ifdef MODULES_CNY70
- sramTimerCny70SendAdc: .byte 2
-#endif
-#ifdef MODULES_LCD
- sramPeriodicalLcdMark: .byte 2
-#endif
-#ifdef MODULES_DS18B20
- sramDs18b20Timer: .byte 2
- sramSendDs18b20TempTimer: .byte 2
-#endif
-
-#ifdef MODULES_CCS811
- sramCcs811Timer: .byte 2
-#endif
-
-
-; ***************************************************************************
-; data in FLASH
-
-.cseg
-
-
-
-; ---------------------------------------------------------------------------
-; timer list
-
-
-timerList:
-; SRAM variable/counter routine flags secs (0=don't start or restart)
-#ifdef MODULES_COM_WITH_ADDR_PROTO
- .dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart)
-#endif
-#ifdef MODULES_STATS
- .dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 9000 ; every 15m
-#endif
-#ifdef MODULES_LCD
-; .dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 20 ; every 2s
-; .dw sramTimerWriteStats, writeStats, 0, 100
- .dw sramTimerScreen, printScreen, TIMER_FLAGS_IF_ADDR, 50 ; every 5s
-#endif
-#ifdef MODULES_SI7021
- .dw sramTimerSI7021Measure, SI7021_OnTimer, 0, 300 ; every 30s
- .dw sramTimerSI7021SendTemp, sendSI7021Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
- .dw sramTimerSI7021SendHumidity, sendSI7021Humidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
-#endif
-#ifdef MODULES_CNY70
- .dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s
-#endif
-#ifdef MODULES_DS18B20
- .dw sramDs18b20Timer, Ds18b20_OnTimer, 0, 300 ; every 30s
- .dw sramSendDs18b20TempTimer, sendDs18b20Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
-#endif
-#ifdef MODULES_CCS811
- .dw sramCcs811Timer, CCS811_OnTimer, 0, 10 ; every 1s
-#endif
- .dw 0 ; end of list
-
-
-
-
-
-.include "main_all.asm"
-
-
-
-systemSetSpeed:
-.if clock == 8000000
- ldi r16, (1<
+
+ aqua_n24.xml
+
+
defs.asm
README
diff --git a/avr/devices/n24/aqua_n24.xml b/avr/devices/n24/aqua_n24.xml
new file mode 100644
index 0000000..8ca6a5d
--- /dev/null
+++ b/avr/devices/n24/aqua_n24.xml
@@ -0,0 +1,18 @@
+
+
+ AQUA
+ N
+ 24
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/avr/devices/n24/main/main.asm b/avr/devices/n24/main/main.asm
index 4ae432e..eb7cf59 100644
--- a/avr/devices/n24/main/main.asm
+++ b/avr/devices/n24/main/main.asm
@@ -1,5 +1,5 @@
; ***************************************************************************
-; copyright : (C) 2024 by Martin Preuss
+; copyright : (C) 2025 by Martin Preuss
; email : martin@libchipcard.de
;
; ***************************************************************************
@@ -69,7 +69,8 @@
;#define MODULES_LCD
;#define LCD_MINIMAL_FONT
#define MODULES_SI7021
-#define MODULES_SGP40
+#define MODULES_SGP30
+;#define MODULES_SGP40
;#define MODULES_STATS
;#define MODULES_OWI_MASTER
;#define MODULES_DS18B20
@@ -93,8 +94,10 @@
;.equ VALUE_ID_DS18B20_TEMP = 0x06
.equ VALUE_ID_MOTION = 0x07
-.equ VALUE_ID_CO2 = 0x08
-.equ VALUE_ID_TVOC = 0x09
+.equ VALUE_ID_SGP40_TVOC = 0x08
+
+.equ VALUE_ID_SGP30_TVOC = 0x09
+.equ VALUE_ID_SGP30_CO2 = 0x0a
;.equ VALUE_ID_REED_CONF = 0x81
diff --git a/avr/modules/sgp30/send.asm b/avr/modules/sgp30/send.asm
index 1ddc85a..3225e6a 100644
--- a/avr/modules/sgp30/send.asm
+++ b/avr/modules/sgp30/send.asm
@@ -17,7 +17,7 @@ SGP30_SendTVOC:
ldi r16, SGP30_VALUE_TVOC
rcall SGP30_GetValue
brcc SGP30_SendTVOC_end
- ldi r17, VALUE_ID_TVOC ; VALUE ID
+ ldi r17, VALUE_ID_SGP30_TVOC ; VALUE ID
ldi r22, AQHOME_VALUETYPE_TVOC ; VALUE TYPE
rcall Main_SendValueReport
SGP30_SendTVOC_end:
@@ -33,7 +33,7 @@ SGP30_SendCO2:
ldi r16, SGP30_VALUE_CO2
rcall SGP30_GetValue
brcc SGP30_SendCO2_end
- ldi r17, VALUE_ID_CO2 ; VALUE ID
+ ldi r17, VALUE_ID_SGP30_CO2 ; VALUE ID
ldi r22, AQHOME_VALUETYPE_CO2 ; VALUE TYPE
rcall Main_SendValueReport
SGP30_SendCO2_end:
diff --git a/avr/modules/sgp40/send.asm b/avr/modules/sgp40/send.asm
index 6c5cd8e..2799dc9 100644
--- a/avr/modules/sgp40/send.asm
+++ b/avr/modules/sgp40/send.asm
@@ -16,7 +16,7 @@
SGP40_SendTVOC:
rcall SGP40_GetValue
brcc SGP40_SendTVOC_end
- ldi r17, VALUE_ID_TVOC ; VALUE ID
+ ldi r17, VALUE_ID_SGP40_TVOC ; VALUE ID
ldi r22, AQHOME_VALUETYPE_TVOC ; VALUE TYPE
rcall Main_SendValueReport
SGP40_SendTVOC_end:
diff --git a/devices/nodes/0BUILD b/devices/nodes/0BUILD
index dfce8a3..8ac8966 100644
--- a/devices/nodes/0BUILD
+++ b/devices/nodes/0BUILD
@@ -14,7 +14,6 @@
aqua_n20.xml
aqua_n21.xml
aqua_n22.xml
- aqua_n23.xml
aqua_t03.xml