Skip to content

Commit

Permalink
Ftlab gdk101 Gamma Radiation Sensor Module support (#18390)
Browse files Browse the repository at this point in the history
* Support for GDK101.

* GDK101 driver rework

---------

Co-authored-by: PetrNovacek <39201428+r21m@users.noreply.github.com>
  • Loading branch information
Szewcson and r21m committed Apr 14, 2023
1 parent 36ae802 commit 4fdd1ad
Show file tree
Hide file tree
Showing 35 changed files with 425 additions and 2 deletions.
1 change: 1 addition & 0 deletions BUILDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ Note: `minimal` variant is not listed as it shouldn't be used outside of the [up
| USE_PCF8574 | - | - / - | - | - | - | - |
| USE_PMSA003I | - | - / - | - | - | - | - |
| USE_LOX_O2 | - | - / x | - | x | - | - |
| USE_GDK101 | - | - / - | - | x | - | - |
| | | | | | | |
| Feature or Sensor | l | t | k | s | i | d | Remarks
| USE_HIH6 | - | - / x | - | x | - | - |
Expand Down
1 change: 1 addition & 0 deletions CODE_OWNERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ In addition to @arendst the following code is mainly owned by:
| xsns_103_sen5x | @tyeth
| xsns_104_pmsa003i | Jean-Pierre Deschamps
| xsns_105_lox_o2 | @ACE1046
| xsns_106_gdk101 | @Szewcson
| |
| Libraries |
| |
Expand Down
3 changes: 2 additions & 1 deletion I2CDEVICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,5 @@ Index | Define | Driver | Device | Address(es) | Description
75 | USE_PCA9632 | xdrv_64 | PCA9632 | 0x60 | 4-channel 4-bit pwm driver
76 | USE_SEN5X | xsns_103 | SEN5X | 0x69 | Gas (VOC/NOx index) and air quality (PPM <1,<2.5,<4,<10)
77 | USE_MCP23XXX_DRV | xdrv_67 | MCP23x17 | 0x20 - 0x26 | 16-bit I/O expander as virtual button/switch/relay
78 | USE_PMSA003I | xsns_104 | PMSA003I | 0x12 | PM2.5 Air Quality Sensor with I2C Interface
78 | USE_PMSA003I | xsns_104 | PMSA003I | 0x12 | PM2.5 Air Quality Sensor with I2C Interface
79 | USE_GDK101 | xsns_106 | GDK101 | 0x18 - 0x1B | Gamma Radiation Sensor
1 change: 1 addition & 0 deletions tasmota/include/i18n.h
Original file line number Diff line number Diff line change
Expand Up @@ -934,6 +934,7 @@ const char HTTP_SNS_STANDARD_CONCENTRATION[] PROGMEM = "{s}%s " D_STANDAR
const char HTTP_SNS_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}";
const char HTTP_SNS_F_ENVIRONMENTAL_CONCENTRATION[] PROGMEM = "{s}%s " D_ENVIRONMENTAL_CONCENTRATION " %s " D_UNIT_MICROMETER "{m}%1_f " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}";
const char HTTP_SNS_PARTICALS_BEYOND[] PROGMEM = "{s}%s " D_PARTICALS_BEYOND " %s " D_UNIT_MICROMETER "{m}%d " D_UNIT_PARTS_PER_DECILITER "{e}";
const char HTTP_SNS_AVG_RAD_DOSE[] PROGMEM = "{s}%s " D_AVG_RAD_DOSE " %s " D_UNIT_MINUTE "{m}%d.%02d " D_UNIT_US_H "{e}";

const char HTTP_SNS_VOLTAGE[] PROGMEM = "{s}" D_VOLTAGE "{m}%s " D_UNIT_VOLT "{e}";
const char HTTP_SNS_CURRENT[] PROGMEM = "{s}" D_CURRENT "{m}%s " D_UNIT_AMPERE "{e}";
Expand Down
1 change: 1 addition & 0 deletions tasmota/include/tasmota_configurations.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@
//#define USE_HYT // [I2CDriver68] Enable HYTxxx temperature and humidity sensor (I2C address 0x28) (+0k5 code)
//#define USE_LUXV30B // [I2CDriver70] Enable RFRobot SEN0390 LuxV30b ambient light sensor (I2C address 0x4A) (+0k5 code)
//#define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code)
#define USE_GDK101 // [I2cDriver79] Enable GDK101 sensor (I2C addresses 0x18 - 0x1B) (+1k2 code)

//#define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one
// #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code)
Expand Down
4 changes: 4 additions & 0 deletions tasmota/language/af_AF.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "te laag"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pomptyd oorskry"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "Gemiddelde Stralingsdosis"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_AF_AF_H_
4 changes: 4 additions & 0 deletions tasmota/language/bg_BG.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "твърде ниско"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "превишено време за помпане"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "средна доза радиация"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_BG_BG_H_
4 changes: 4 additions & 0 deletions tasmota/language/ca_AD.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "massa baix"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "temps de bomba excedit"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dosi mitjana de radiació"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_CA_AD_H_
4 changes: 4 additions & 0 deletions tasmota/language/cs_CZ.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "průměrná dávka záření"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_CS_CZ_H_
4 changes: 4 additions & 0 deletions tasmota/language/de_DE.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "zu niedrig"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "Pumpzeit überschritten"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "durchschnittliche Strahlendosis"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_DE_DE_H_
4 changes: 4 additions & 0 deletions tasmota/language/el_GR.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "μέση δόση ακτινοβολίας"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_EL_GR_H_
4 changes: 4 additions & 0 deletions tasmota/language/en_GB.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "Average Radiation Dose"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_EN_GB_H_
4 changes: 4 additions & 0 deletions tasmota/language/es_ES.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "muy bajo"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "tiempo de bomba excedido"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dosis media de radiación"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_ES_ES_H_
4 changes: 4 additions & 0 deletions tasmota/language/fr_FR.h
Original file line number Diff line number Diff line change
Expand Up @@ -1190,4 +1190,8 @@
#define D_NEOPOOL_PH_LOW "Trop bas"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "durée pompage expirée"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dose moyenne de rayonnement"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_FR_FR_H_
4 changes: 4 additions & 0 deletions tasmota/language/fy_NL.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "gemiddelde stralingsdosis"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_FY_NL_H_
4 changes: 4 additions & 0 deletions tasmota/language/he_HE.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "מינון קרינה ממוצע"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_HE_HE_H_
4 changes: 4 additions & 0 deletions tasmota/language/hu_HU.h
Original file line number Diff line number Diff line change
Expand Up @@ -1192,4 +1192,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "átlagos sugárdózis"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_HU_HU_H_
4 changes: 4 additions & 0 deletions tasmota/language/it_IT.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "troppo basso"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "tempo pompa superato"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dose media di radiazioni"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_IT_IT_H_
4 changes: 4 additions & 0 deletions tasmota/language/ko_KO.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "average radiation dose"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_KO_KO_H_
4 changes: 4 additions & 0 deletions tasmota/language/nl_NL.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "te laag"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pomptijd bereikt"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "gemiddelde stralingsdosis"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_NL_NL_H_
4 changes: 4 additions & 0 deletions tasmota/language/pl_PL.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "czas pompowania przekroczony"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "Średnia Dawka Promieniowania"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_PL_PL_D_H_
4 changes: 4 additions & 0 deletions tasmota/language/pt_BR.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "Muito baixo"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "tempo da bomba excedido"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dose média de radiação"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_PT_BR_H_
4 changes: 4 additions & 0 deletions tasmota/language/pt_PT.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "Muito baixo"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "tempo da bomba excedido"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "dose média de radiação"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_PT_PT_H_
4 changes: 4 additions & 0 deletions tasmota/language/ro_RO.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "doza medie de radiație"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_RO_RO_H_
4 changes: 4 additions & 0 deletions tasmota/language/ru_RU.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "средняя доза облучения"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_RU_RU_H_
4 changes: 4 additions & 0 deletions tasmota/language/sk_SK.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "priemerná dávka žiarenia"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_SK_SK_H_
4 changes: 4 additions & 0 deletions tasmota/language/sv_SE.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "genomsnittlig stråldos"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_SV_SE_H_
4 changes: 4 additions & 0 deletions tasmota/language/tr_TR.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "ortalama radyasyon dozu"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_TR_TR_H_
4 changes: 4 additions & 0 deletions tasmota/language/uk_UA.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "середня доза радіації"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_UK_UA_H_
4 changes: 4 additions & 0 deletions tasmota/language/vi_VN.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "liều bức xạ trung bình"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_VI_VN_H_
4 changes: 4 additions & 0 deletions tasmota/language/zh_CN.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "平均辐射剂量"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_ZH_CN_H_
4 changes: 4 additions & 0 deletions tasmota/language/zh_TW.h
Original file line number Diff line number Diff line change
Expand Up @@ -1189,4 +1189,8 @@
#define D_NEOPOOL_PH_LOW "too low"
#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded"

// xsns_106_gdk101.ino
#define D_AVG_RAD_DOSE "平均輻射劑量"
#define D_UNIT_US_H "uSv/h"

#endif // _LANGUAGE_ZH_TW_H_
6 changes: 6 additions & 0 deletions tasmota/my_user_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -701,6 +701,12 @@
// #define INA3221_MAX_COUNT // change the number of devices to search for (default 4).
// // Both settings together allow to limit searching for INA3221 to only a subset of addresses
// #define USE_PMSA003I // [I2cDriver78] Enable PMSA003I Air Quality Sensor (I2C address 0x12) (+1k8 code)
// #define USE_GDK101 // [I2cDriver79] Enable GDK101 sensor (I2C addresses 0x18 - 0x1B) (+1k2 code)
// #define GDK101_SHOW_FW_VERSION
// #define GDK101_SHOW_STATUS
// #define GDK101_SHOW_VIBRATION_STATUS
// #define GDK101_SHOW_MEAS_TIME


// #define USE_RTC_CHIPS // Enable RTC chip support and NTP server - Select only one
// #define USE_DS3231 // [I2cDriver26] Enable DS3231 RTC (I2C address 0x68) (+1k2 code)
Expand Down
4 changes: 3 additions & 1 deletion tasmota/tasmota_support/support_features.ino
Original file line number Diff line number Diff line change
Expand Up @@ -885,8 +885,10 @@ void ResponseAppendFeatures(void)
#ifdef USE_LOX_O2
feature9 |= 0x00080000; // xsns_105_lox_o2.ino
#endif
#if defined(USE_I2C) && defined(USE_GDK101)
feature9 |= 0x00100000; // xsns_106_gdk101.ino
#endif

// feature9 |= 0x00100000;
// feature9 |= 0x00200000;
// feature9 |= 0x00400000;
// feature9 |= 0x00800000;
Expand Down
Loading

0 comments on commit 4fdd1ad

Please sign in to comment.