Produced by Big Data DigestSource: IEEECompiled by: xtNowadays, if you want to send data wirelessly, you have many options: Wi-Fi, Bluetooth, Zigbee, and cellular connections are some common choices.However, a relatively new protocol is gradually becoming popular: LoRa-based communication provides low-power, low-bandwidth communication over medium distances (2 kilometers to 15 kilometers)—its communication range depends on the clutter of the surrounding environment.The author of this article has built a bidirectional pager based on LoRa, let’s take a look together~LoRa originates from the rapidly developing Internet of Things and is a technology that connects remote sensors and embedded devices to a central node using spread spectrum transmission. The data transmission rate typically ranges from 0.3-27kb/s, with a maximum rate of 50kb/s: slower data transmission corresponds to longer transmission distances. The initial version of LoRa focused on machine-to-machine communication, but its extremely low power consumption attracted enthusiasts to develop other applications.Just as some people are always interested in trying new hardware technologies, I wanted to see if LoRa technology could be used for communication between humans. The data transmission rate is too low for voice functionality to be realistic, but how about a respectful device: perhaps I could make a bidirectional pager based on LoRa.Although my work as a hardware engineer includes antenna analysis, I am not very familiar with RF circuits. Therefore, the first step was to order two AI-Thinker Ra-02 LoRa modules and two ATmega328-based microcontrollers (i.e., single-chip microcontrollers), dig out my breadboard, and build a proof-of-concept design. Soon after, I was able to display strings of letters and numbers sent and received on the screen, using a 84*48 pixel LCD screen designed for Nokia phones.Of course, you can’t take a breadboard directly for field testing, so I designed a printed circuit prototype that replicated my breadboard design and included a battery and some control buttons.During the field test, it was the cold winter in Germany, and neither my partner nor I wanted to trek long distances outdoors, but we confirmed that communication was feasible over a distance of one kilometer. The severe cold also exposed an unexpected problem: one pager was powered by a nickel-metal hydride battery, while the other used a lithium-ion battery. The pager with the nickel-metal hydride battery had no issues in low temperatures, but the lithium-ion powered one rebooted the microcontroller due to voltage drop.This bidirectional pager uses LoRa’s low-power broadcast protocol, with an effective transmission range of 10 kilometers to 15 kilometers. An off-the-shelf LoRa receiver module is adapted to a custom PCB, along with a user-friendly display and navigation controls. A real-time clock module is responsible for tracking local time.Next, we need a more refined design.The most obvious upgrade is in the screen, where I used a 128*64 pixel resolution LCD screen. I also upgraded the microprocessor: I needed more computing power but still wanted to stay within the Arduino-compatible ecosystem, so I chose the Atmel SAMD21 Cortex M0, which can be driven by a series of “post-AVR (Automatic Voltage Regulation)” Arduino microcontrollers.I also replaced the AI-Thinker module with the more popular RFM95W receiver. The final design also includes a pager motor for silent mode, a 3-way navigation switch for operation, and an SD card adapter. Due to my experience in antenna analysis, most of the fine-tuning in the second iteration of the PCB was dedicated to ensuring the trace connecting the receiver to the antenna had the optimal 50-ohm impedance. The transmission line used a ground plane on the other side of the PCB, so after calculating the thickness of the PCB, I determined that I needed a 1mm wide trace. I also made additional adjustments to the way the ground plane connects the antenna base and the receiver module to achieve the best high-frequency performance.Additionally, I chose a fashionable black color for the PCB solder mask, which resulted in another unexpected outcome. The reflow oven I used for the surface mount components employs infrared heating, and during my first surface mount attempt, the black solder mask heated up faster than the green PCB boards I usually use. The result was solder joints showing classic overheating gold-brown stains—I became a victim of fashion!After adjusting everything and assembling it, I began testing the circuit board, at which point I realized there was a problem with the switch button control: when the power button was pressed, the voltage regulator began to apply 3.3V to the SAMD21 microprocessor.There is a safety feature where if the controller does not receive a confirmation from the processor within 2 seconds, it will cut off the power supply. However, the SAMD21 requires 2.5 seconds to respond! I had to check the controller’s datasheet and found the ultimate solution; a note in the datasheet indicated that the controller could be set to wait for 10 seconds by adjusting parameters. With the new switch controller in place, I used a heat gun to secure the new component in the appropriate position.The pager platform: an Arduino-compatible microprocessor controls the LoRa module, and users can connect any off-the-shelf peripheral device using the Arduino library that supports the I2C protocol, directly connecting peripherals through dedicated sockets on the PCB.Another small issue arose during testing: I had connected the data line of the onboard real-time clock incorrectly, which is used to track local time and is connected to the SAMD21 via the I2C protocol. After fixing this issue, my pager was officially completed, and I named it LoRaNicator.Because I am more interested in hardware design than programming, the entire system software is quite basic, merely responsible for text information exchange between users. I hope others might use LoRaNicator as an open-source platform to take advantage of this low-power, simply constructed communication method to create more complex applications. I am also trying to make the hardware expansion of LoRaNicator easier by providing a series of external pins for I2C devices, allowing it to connect to GPS units or other types of sensors.Related reports:https://spectrum.ieee.org/geek-life/hands-on/build-a-twoway-pager-with-loraVolunteer introductionReply with“Volunteer” to join us
People who click “View” have all become more attractive!