Skip to content
72 changes: 72 additions & 0 deletions variants/ikoka_nano_nrf/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@ upload_protocol = nrfutil
lib_deps = ${nrf52_base.lib_deps}
${sensor_base.lib_deps}

[ikoka_nano_nrf_e22p]
extends = ikoka_nano_nrf
; E22P: integrated PA/LNA via DIO2. D7 = module power enable (not RXEN)
build_unflags =
-DSX126X_RXEN=D7
build_flags =
${ikoka_nano_nrf.build_flags}
-D SX126X_RXEN=RADIOLIB_NC
-D P_LORA_EN=D7
-D SX126X_REGISTER_PATCH=1

[ikoka_nano_nrf_e22_22dbm]
extends = ikoka_nano_nrf
; No PA in this model, full 22dBm
Expand Down Expand Up @@ -59,6 +70,20 @@ build_src_filter = ${ikoka_nano_nrf.build_src_filter}
+<helpers/ui/NullDisplayDriver.cpp>
+<../variants/ikoka_nano_nrf>

[ikoka_nano_nrf_e22p_30dbm]
extends = ikoka_nano_nrf_e22p
; limit txpower to 20dBm on E22p-900M30S. Anything higher will
; cause distortion in the PA output. 20dBm in -> 30dBm out
build_flags =
${ikoka_nano_nrf_e22p.build_flags}
-D MANUFACTURER_STRING='"Ikoka Nano-E22P-30dBm (Xiao_nrf52)"'
-D LORA_TX_POWER=20
build_src_filter = ${ikoka_nano_nrf_e22p.build_src_filter}
+<helpers/*.cpp>
+<helpers/sensors>
+<helpers/ui/NullDisplayDriver.cpp>
+<../variants/ikoka_nano_nrf>

[ikoka_nano_nrf_e22_33dbm]
extends = ikoka_nano_nrf
; limit txpower to 9dBm on E22-900M33S to avoid hardware damage
Expand Down Expand Up @@ -235,6 +260,53 @@ build_src_filter =
${ikoka_nano_nrf_e22_30dbm.build_src_filter}


;;; 30dBm EBYTE E22P-868M30/E22P-915M30 variants

[env:ikoka_nano_nrf_e22p_30dbm_companion_radio_usb]
extends =
ikoka_nano_nrf_e22p_30dbm
ikoka_nano_nrf_companion_radio_usb
build_flags =
${ikoka_nano_nrf_companion_radio_usb.build_flags}
${ikoka_nano_nrf_e22p_30dbm.build_flags}
build_src_filter =
${ikoka_nano_nrf_companion_radio_usb.build_src_filter}
${ikoka_nano_nrf_e22p_30dbm.build_src_filter}

[env:ikoka_nano_nrf_e22p_30dbm_companion_radio_ble]
extends =
ikoka_nano_nrf_e22p_30dbm
ikoka_nano_nrf_companion_radio_ble
build_flags =
${ikoka_nano_nrf_companion_radio_ble.build_flags}
${ikoka_nano_nrf_e22p_30dbm.build_flags}
build_src_filter =
${ikoka_nano_nrf_companion_radio_ble.build_src_filter}
${ikoka_nano_nrf_e22p_30dbm.build_src_filter}

[env:ikoka_nano_nrf_e22p_30dbm_repeater]
extends =
ikoka_nano_nrf_e22p_30dbm
ikoka_nano_nrf_repeater
build_flags =
${ikoka_nano_nrf_repeater.build_flags}
${ikoka_nano_nrf_e22p_30dbm.build_flags}
build_src_filter =
${ikoka_nano_nrf_repeater.build_src_filter}
${ikoka_nano_nrf_e22p_30dbm.build_src_filter}

[env:ikoka_nano_nrf_e22p_30dbm_room_server]
extends =
ikoka_nano_nrf_e22p_30dbm
ikoka_nano_nrf_room_server
build_flags =
${ikoka_nano_nrf_room_server.build_flags}
${ikoka_nano_nrf_e22p_30dbm.build_flags}
build_src_filter =
${ikoka_nano_nrf_room_server.build_src_filter}
${ikoka_nano_nrf_e22p_30dbm.build_src_filter}


;;; 33dBm EBYTE E22-900M33 variants
[env:ikoka_nano_nrf_33dbm_companion_radio_usb]
extends =
Expand Down
5 changes: 5 additions & 0 deletions variants/ikoka_nano_nrf/target.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ EnvironmentSensorManager sensors;
bool radio_init() {
rtc_clock.begin(Wire);

#ifdef P_LORA_EN
pinMode(P_LORA_EN, OUTPUT);
digitalWrite(P_LORA_EN, HIGH);
#endif

return radio.std_init(&SPI);
}

Expand Down