/LORA-QWERTY-Communicator

A tidy and feature-packed LORA QWERTY communication device based on a Blackberry Q10 keyboard, a nRF52840 and a 2.7'' Sharp Memory LCD

Primary LanguageC++MIT LicenseMIT

LORA-QWERTY-Communicator

A tidy, versatile and feature-packed LORA QWERTY communication device mainly based on a Blackberry Q10 keyboard, nRF52840, SX1262 and a 2.7'' Sharp Memory LCD (LS027B7DH01). I created this because I wanted to practice a little and put some components that I had laying around to good use. The system had to have a low power consumption and outdoor usability, hence the component choices. The SX1262 draws 4,6mA in RX mode and the nRF52 can poll the keyboard while also drawing little power. Without optimizing anything I got 12mA. This can be further reduced by turning off some sensors. The unit can monitor its own power consumption and battery charge status via a BQ27441 Lithium Fuel Gauge.
finished devices

Some words about the memory LCDs: I got fake ones from Ali and only one out of three works properly! One consumes 20mA instead of ~400µA and one had some dead pixels after some days of usage (seen on the pictures). They are not that much cheaper (~25 vs ca 32$), so avoid them and only get genuine SHARP displays from digikey or so.
There is a passive piezo buzzer (9032 type) and a vibration motor ("10x4mm" look on Aliexpress) for notification purposes. A BME280 can be soldered for altimeter functionality. A DS3231M RTC is supposed to keep time (the wires on the images are for optional backup battery connection). A MPU9250 9-DOF IMU was included to act as a tilt-compensated compass or for air mouse functionality. A GD25Q16CE QSPI flash (apparently optional, not required by the bootloader, works with mass storage TinyUSB test sketch) and an µSD card slot for storage of for example chat history or sensor values. An optional GPS module can be connected to the exposed connector at the top of the device. I used a BN220 which fits into the enclosure if you use an appropriate LiPo cell. All I2C sensor are on one I2C bus and are optional. They do not need to be populated. Time and altitude can just as well be fetched via GPS. The connector for the Q10 keyboard is a Hirose BM14B(0.8)-24DS-0.4V(53)

open devices
open devices 2

The repository contains the EAGLE PCB design files, gerber, pick and place and BOM files, Solidworks design files and .STL for a perfectly fitting enclosure and an Arduino test sketch to test most of the system components. The enclosure lacks inserts for the pushbutton and slide swith. This I will add in the future. You require 4 2mmx10mm plastic screws to hold it together. The resulting device has a thickness of only about 13,5mm.
While the hardware is confirmed working (only one minor bug had to be fixed in the prototype - conflicting I2C addresses), the firmware part is very raw and has yet to be developed. Unfortunately I lack time desperately for such hobby things at the moment. What I had in mind for this device is mainly something like an encrypted "apocalypse" LORA communicator, maybe even based on Meshtastic. It can also communicate with other BLE devices and acquire, log and share sensor data or act as a USB or BLE HID keyboard. The test firmware is based on the Adafruit nRF52 core v1.0.0. In order for the device to be programmable via the Arduino IDE, the Feather nRF52840 Express bootloader has to be flashed, which I usually do via a J-Link and the Arduino IDE ("Burn Bootloader"). The bootloader can be activated at any time double-pulling the reset pin low. In a future revision there should also be reset button for that purpose, now there is at least a test point. The variant files for the Feather nRF52840 express need to be modified as well before programming the board. They are provided with the test sketch together with a readme.

bottom
top
schematics