
Ikoka nano meshtastic device
ndoo/ikoka-nano-meshtastic-device
A Meshtastic device based on the Seeed Studio XIAO nRF52840 and EBYTE E22-XXXMXXS series LoRa modules. Pinout matches the Meshtastic xiaoble variant.

Compact 1 W Meshtastic node based on the nRF52840 ProMicro. Multiple configuration options, proper power-supply design, optional LCD, battery monitoring, and support for E22(M), Ra‑01SH‑P, and HT‑RA62 radio modules. Firmware compatible with FakeTec.
BirbMesh One is an open-source printed circuit board by KokoSoft, from the KokoSoft/BirbMesh-One repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 47 × 27.7 mm with 50 parts on 48 nets, routed with 491 tracks and 95 vias.
It is built around the E22P-868M30S, MT3608B and MIC841NBC5, with the MIC842NYC5, DSK26 and CL31A107MQHNNNE among its other parts. Its parts include 12 resistors, 8 capacitors, 7 ICs, 4 transistors and 4 connectors. It belongs with the radio and wireless and power boards of this library.
The goal of Birbs Meshtastic One Watt node project was to create an inexpensive and as small as possible Meshtastic node equipped with a 1 W radio module. An important aspect, from my perspective, is ensuring favorable operating conditions for the battery to extend its lifespan. The project supports multiple configuration variants, and the final functionality depends on the components you choose to solder. The core of the design is the energy‑efficient nRF52840 controller mounted on a ProMicro board. The project is pin‑compatible with xiaoWa_pcb and FakeTec, which means no custom firmware is required.
Key features:
The project was inspired by the ikona nano and xiaoWa_pcb. The former is based on the Seeed Studio XIAO BLE, which is significantly more expensive than the ProMicro and offers fewer available GPIO pins. Additionally, the board is large and includes connectors for the battery and solar panel, which I found unnecessary. A notable strength is the correct implementation of the power supply for the boost converter that generates the supply voltage for the radio module. Another benefit, in my opinion, is the integration of the converter directly on the PCB, which allows it to be controlled programmatically. This makes it possible to switch it off to save energy. It is a project worth recommending, and using the XIAO BLE may be a good choice for those who prefer not to rely on low‑quality ProMicro boards.
Initially, this project was created as an attempt to solve the power‑supply issue present in xiaoWa_pcb, which requires a connected battery for proper operation. The boost converter powering the radio module draws energy directly from the battery connector. Without a battery, the system is powered solely by the TP4054 charger IC, which has current limiting and built‑in protections. Although the charging current is configurable, it may be reduced to 1/10 of the set value under certain conditions, making it impossible to use the board with external power only. Using the inexpensive HW‑085 boost converter module is an interesting idea and certainly simplifies building the device. Unfortunately, it cannot be switched off to save power.


There are three possible ways to power the radio module:
To properly power the radio module and minimize energy loss, power must be taken from the switching circuit that selects power between USB voltage (VBUS) and battery voltage (VBAT). On the schematic, this point is labeled VDDH. This ensures that neither the battery nor the charger IC is loaded when device is powered from USB. You must route wire from the indicated point on the ProMicro board to the VDDH pad.
Image created using a photo from the nrf52840‑promicro repository by sasodoma.
Optionally, if you want to supply 5 V externally (through connector J1) without using USB socket, connect the VBUS pad as well.
If you prefer not to draw high current through the questionable‑quality components on the ProMicro, you can build your own voltage‑switching circuit. To do this, solder components Q1 and D1. You must also connect the VBUS pad to allow powering the radio from USB.
If you want to minimize soldering and always use the device with battery connected, you can use this compatibility mode. Short the JP1 jumper on the bottom of the PCB. The radio will be powered directly from the battery, which will load the charger IC too.
High‑power radio modules require a 5 V supply to operate at full output power. This voltage is provided by a boost converter. If you are ordering an assembled board or are comfortable with soldering, the best solution is to build the converter using the MT3608 IC. Populate components L1, U4, D3, R11, R12, C7, and C9.
Alternatively, to avoid soldering small components, you may use the HW‑085 boost module. In its default configuration, it cannot be disabled to reduce power consumption. However, the project allows adding power control: cut jumper JP7 (shorted by default) and solder Q3, Q4, and R13.
[!NOTE] If you plan to use a radio module that does not require 5 V (e.g., HT‑RA62) or do not need full transmit power, you may omit the boost converter.
Based on my experience with Meshtastic networks, using an 868 MHz SAW filter significantly improves reception quality, though they have low power tolerance. Cavity filters, on the other hand, are large and expensive. In Europe, the E22P‑868M30S module appears to be an ideal solution, offering a built‑in receive‑path filter and high transmit power.
The module supports a wide supply range of 3.3 -- 5 V. Full transmit power requires ≥5 V, so a boost converter is necessary. If full power is not required, you may omit the converter and short VIN to VOUT. The supply voltage will then equal the battery voltage or approximately 4.7 V when externally powered.
The T/R CTRL (RXEN) pin is controlled by SX126x DIO2. The EN (TXEN) pin is controlled by nRF P0.17.
This module is a cheaper alternative to the E22 series, offering 29/31 dBm output power. However, it does not include a TCXO. To achieve full power, 5 V must be supplied to the VCCPA pin, requiring a boost converter and shorting pads 1–2 on JP6.
[!IMPORTANT] The modules documentation states: "In the default BOM configuration of the Ra‑01SH‑P module, PA is powered by the 3V3 pin of the module, and the VCCPA pin can be left floating."
This module is powered from the ProMicro EXTVCC 3.3 V rail. No boost converter is required. Short pads 2–3 on JP6 to connect DIO2 to TXEN.
The monitoring circuit uses two comparators with hysteresis. U1 (MIC841H) asserts reset when battery voltage drops below 3.6 V (~20% charge). Reset is released above 3.7 V (~30%).
U2 limits the maximum charge level. When voltage exceeds 4.05 V (~80%), the PROG pin of the TP4054 charger is disconnected.
To enable charge control, remove the charging‑current‑setting resistor from the ProMicro.
Image created using a photo from the nrf52840‑promicro repository by sasodoma.
Charging current is set by resistor R8.
Comparator thresholds are configured using the resistor divider R2–R5. Capacitor C1 filters voltage fluctuations during radio transmission to prevent unwanted resets.
If you do not want hardware‑level reset and charge control but still want battery‑level monitoring in software, install only R1 and R2.
To control charging from firmware:
R8 to set the desired charging current.JP5 or install Q2.| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 100nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C2, C4, C5 |
| 3 | 300k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R10, R11, R13 |
| 3 | DSK26 | Diode_SMD:D_SOD-123F | D1, D2, D3 |
| 3 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP1, JP3, JP5 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R6, R9 |
| 2 | 22uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C7, C9 |
| 2 | 47uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C8, C10 |
| 2 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1, Q4 |
| 2 | PTH | Connector_PinSocket_2.54mm:PinSocket_1x01_P2.54mm_Vertical | TR1, TR2 |
| 1 | clipboard:d1cf45a4-5c72-4374-9351-7f510c0c975f | ||
| 1 | 1,6M | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R8 |
| 1 | 23,2k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q3 |
| 1 | 39k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R12 |
| 1 | 470nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1 |
| 1 | 68,1k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R4 |
| 1 | 768k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R5 |
| 1 | 866k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1 |
| 1 | BSS138 | Package_TO_SOT_SMD:SOT-23 | Q2 |
| 1 | Battery | Connector_JST:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_Horizontal | J2 |
| 1 | Conn_01x02_Socket | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | LCD1 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1 |
| 1 | Conn_01x05_Socket | Connector_PinHeader_1.27mm:PinHeader_1x05_P1.27mm_Vertical | J4 |
| 1 | E22P-868M30S | BirbLib:E22P-868M30S | U5 |
| 1 | FXL0420-2R2-M | Inductor_SMD:L_Changjiang_FXL0420 | L1 |
| 1 | HW-085 | BirbLib:HW-085 | U8 |
| 1 | MIC841N | Package_TO_SOT_SMD:SOT-353_SC-70-5 | U1 |
| 1 | MIC842N | Package_TO_SOT_SMD:SOT-353_SC-70-5 | U2 |
| 1 | MT3608B | Package_TO_SOT_SMD:SOT-23-6 | U4 |
| 1 | Ra-01SH-P / HT‑RA62 | BirbLib:Ra-01SH-P | U7 |
| 1 | Reset | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP7 |
| 1 | SolderJumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP6 |
| 1 | User | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW2 |
| 1 | ~ | BirbLib:ProMicro-all-pins_smd | U6 |
It measures 47 × 27.7 mm and has 2 copper layers, 1.6 mm thick.
50 parts, built around the E22P-868M30S, MT3608B, MIC841NBC5 and MIC842NYC5. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the KokoSoft/BirbMesh-One repository on GitHub, at the commit this page was made from: the board is BirbMesh-One.kicad_pcb and its schematic BirbMesh-One.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

ndoo/ikoka-nano-meshtastic-device
A Meshtastic device based on the Seeed Studio XIAO nRF52840 and EBYTE E22-XXXMXXS series LoRa modules. Pinout matches the Meshtastic xiaoble variant.

YuriySm/Ikoka-NanoX-Meshtastic-Device
Small 1W LoRA on Seeed Studio XIAO nRF52840 PCB for Meshtastic (fork of Ikoka Nano)



DevCyclonekitten/Bambu-A1-Klipper
A repository about the development of modifying a bambu labs a1 printer to run on klipper

fallingdowncat/40-Keyboard-with-STM32-Bluepill
Smallest keyboard format possible with cheap STM32F103C8T6 microcontroller

CyberSaiyanIT/why2025-badge
Cyber Saiyan community has designed and developed a special gadget for WHY2025. The badge was designed to recall the dragon spheres, and is an updated version of RomHack Camp 2022 badge, both in term of design and…

kinggh0stee/WellD
ESP32-C6 Zigbee well monitor — reads a 4–20 mA pressure transducer and DS18B20, reports water level, temperature, and battery to Zigbee2MQTT with OTA update support