
LoRa Node
cernohorsky/LoRa-Node
Simple LoRa Node based on Arduino Pro mini with RFM95W module and PCB antenna.

A low power LoRaWAN Node
LoRaProMini is an open-source printed circuit board by foorschtbar, from the foorschtbar/LoRaProMini repository on GitHub, published under the MIT licence. It is a 2-layer board of 72 × 27 mm with 37 parts on 35 nets, routed with 281 tracks and 91 vias.
It is built around the ATMEGA328P-AU and RFM95W-868S2. Its parts include 8 resistors, 8 connectors, 7 capacitors, 3 ICs and 1 switch. It belongs with the radio and wireless and home automation and IoT boards and the AVR (ATmega, ATtiny) boards of this library.
A LoRaWAN sensor node, based on ATmega328P MCU (Arduino Pro Mini) and RFM95W/SX1276 LoRa Transceiver.

The module can be used:
LoRaProMini does not take care of the compliance with the duty cycle limitation. Please select only transmission intervals that are within the legal limits (1%/0.1%). Please also note that the interrupt inputs may cause additional transmissions if this function is activated.
:point_up: I still have a few PCBs left. If you are interested please contact me. Contact details can be found here: https://github.com/foorschtbar or visit my Tindie store:





MAC V1.0.3avrdude-F -v -c arduino -p atmega328p -P <COM PORT> -b 57600 -D -U flash:w:<FIRMWARE FILE>:iExample:
avrdude -F -v -c arduino -p atmega328p -P COM4 -b 57600 -D -U flash:w:firmware_1.0_config.hex:ifunction decodeUplink(input) {
var bytes = input.bytes;
var itrTrigger = (bytes[0] & 0x1) !== 0; // Message was triggered from interrupt (bit 0)
var itr0 = (bytes[0] & 0x2) !== 0; // Interrupt 0 (bit 1)
var itr1 = (bytes[0] & 0x4) !== 0; // Interrupt 1 (bit 2)
var bat = (bytes[1] << 8) | bytes[2]; // Battery
var fwversion = (bytes[3] >> 4) + "." + (bytes[3] & 0xf); // Firmware version
var temp1 = (bytes[4] & 0x80 ? 0xffff << 16 : 0) | (bytes[4] << 8) | bytes[5]; // BME Temperature
var humi1 = (bytes[6] << 8) | bytes[7]; // BME Humidity
var press1 = (bytes[8] << 8) | bytes[9]; // BME Pressure
var temp2 =
(bytes[10] & 0x80 ? 0xffff << 16 : 0) | (bytes[10] << 8) | bytes[11]; // DS18x Temperature
var mbStatus = "UNKNOWN";
if (itr0) {
mbStatus = "FULL";
} else if (itr1) {
mbStatus = "EMPTY";
}
return {
data: {
interrupts: {| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 4,7K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R3, R4, R5 |
| 3 | Conn_01x02 | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J1, J7, J8 |
| 2 | 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C3 |
| 2 | 2M | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R7, R8 |
| 1 | 0.1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C6 |
| 1 | 1000uF | Capacitor_Tantalum_SMD:CP_EIA-7343-43_Kemet-X_Pad2.25x2.55mm_HandSolder | C5 |
| 1 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C4 |
| 1 | 100nf | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C7 |
| 1 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R6 |
| 1 | 10M | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1 |
| 1 | 2.7M | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2 |
| 1 | ATmega328P-AU | Package_QFP:TQFP-32_7x7mm_P0.8mm | U4 |
| 1 | Antenna_Shield | Antenna_SMA_uFL:Antenna_SMA_uFL | AE1 |
| 1 | Conn_01x03 | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J2 |
| 1 | Conn_01x04 | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J3 |
| 1 | Conn_01x05 | Holes_1x05_P2.54mm:Holes_1x05_P2.54mm | J5 |
| 1 | Conn_01x05 | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J4 |
| 1 | Conn_01x08 | Holes_1x08_P2.54mm:Holes_1x08_P2.54mm | J6 |
| 1 | MCP1700-3302E_SOT23 | Package_TO_SOT_SMD:SOT-23 | U1 |
| 1 | RFM95W-868S2 | HOPERF_RFM9XW_SMD:HOPERF_RFM9XW_SMD | U2 |
| 1 | Resonator | Crystal:Resonator_SMD_Murata_CSTxExxV-3Pin_3.0x1.1mm | Y1 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_CK_RS282G05A3 | SW1 |
| 1 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP1 |
The 30 most common of 37 parts.
It measures 72 × 27 mm and has 2 copper layers, 1.6 mm thick.
37 parts, built around the ATMEGA328P-AU and RFM95W-868S2. 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 foorschtbar/LoRaProMini repository on GitHub, at the commit this page was made from: the board is pcb/LoRaProMini.kicad_pcb and its schematic pcb/LoRaProMini.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

cernohorsky/LoRa-Node
Simple LoRa Node based on Arduino Pro mini with RFM95W module and PCB antenna.


cernohorsky/LoRa-Node-Solar
LoRa Node based on Arduino Pro mini with RFM95W module and PCB antenna. Includes TPS63031 buck-boost convertor and MCP7381 LiPo charger prepared for solar panel. PCB has I2C pinheader and few GPIO pads.



dridri/bcflight
Raspberry Pi based drone flight controller and remote control

