BREAKING: the latest and greatest model and build guide in the QWERTY series is now here: https://www.buymeacoffee.com/ripplebiz/build-guide-qwerty-pager-sticklite-v2
This is a follow up to an earlier article here: https://www.hackster.io/scottpowell69/lora-qwerty-messenger-c0eee6
Please refer to this article for a background on this project as I will only be describing what is new in this article.
The Next IterationThe new messenger device is now based on the Heltec LoRa32 V2 development board, instead of the TTGO. There are a number of reasons, but the biggest one being that this board supports a deep sleep mode where the LoRa radio can remain listening for packets!
As a result, testing with the same battery, the old model could standby for about 8 hours on one charge, and the new model can now do about 48 hours. A huge improvement.
A summary of the differences are:
- Now uses Heltec board (with deep sleep mode)
- Does not use SD Card. (uses internal 'SPIFFS' storage)
- Better UI, now with Setup menus.
- Has separate 'screen on'/wake-up push button
- LiPo battery is mounted on outside, in a recessed area underneath.
The battery on the outside has a number of benefits, in that you can use any number of 1S LiPo batteries of varying sizes, and you can take a number of batteries with you, and swap them out if you are going to be away from a charger for many days at a time.
There are a lot of RC drone batteries which will be ideal, like the one I have put in the parts list. These are small, 'whoop'-style drone batteries, and are cheap and available at most hobby shops.
Assembly3D print the case from the STL files attached at the bottom of this article. The main shell has holes for mounting the Heltec board and the controller module for the keyboard. All the holes take M2 bolts.
I recommend doing the wiring/soldering first, before mounting the main Heltec board in place. You can solder the wires underneath so that they don't get in the way of the top cover of the 3D printed case.
EDIT: I have slightly redesigned the top cover, as I discovered a flaw in the original design that caused the Q10 keyboard to flex slightly as keys were pressed. Unfortunately this cases some keys to become stuck. The STL files have now been updated and this flex is now gone, thanks to a slight 'lip' that protrudes which you place keyboard over. (so that means, install the keyboard last)
Refer to the wiring diagram below for reference:
For the Heltec board, first unscrew the 4 screws that hold the OLED screen. The exposed holes should match exactly with the holes in the upper part of the 3D printed case. I found that just using the top 2 holes works best, to affix the Heltec and its OLED screen in place.
This is how I organised the various components, like the piezo buzzer and RTC clock:
Also note the main battery harness (red and black wires), which has a PH 2.0 connector on the end. The case has a hole on the left-had side which matches this connector size. Push the connector through, and keep in place with a small amount of CA glue.
I recommend leaving the mounting of keyboard itself until you have done the initial software setup, and verified that everything is working properly. Once you are satisfied, the keyboard is attached with two M2 screws at the bottom edge, with the two side tabs slotting over the left and right sides of the case. I recommend either a bit of hot glue on the side tabs, or if you are game, you can try carefully drilling holes to line up with the provided holes in the left and right sides of the case, which you can also use to bolt the keyboard down.
To finish everything off, mount the 3D printed top cover part.
Flashing the FirmwareThe firmware will be at the Ripple github page: https://github.com/spleenware/ripple
There are instructions on the site on how to flash the firmware onto the Heltec (ESP32) boards. You need to flash the 'RippleQwerty-HeltecV2-BB.bin' firmware.
SetupPower up the board, either with a USB cable or by attaching a LiPo battery. After the logo screen, you should see a 'Missing Key' screen. Press the ENTER key on the keyboard to continue.
This will cause a 256-bit ECC key-pair to be generated. The private key stays on the device and is never transmitted, while the public key is exchanged with other users, using the ExchangeKeys feature under Setup.
The next two screens should look like so:
Here you need to enter the unique ID you will be using among your group. This must be between 2 and 253.
Here you enter the display name you want to use (other users will see this).
The main/home screen is like below, and will list all the other users you have added:
The top/right shows current RTC clock time, and the battery voltage.
For all of the UI, there are 4 navigation key combinations:
- ALT+P = Up
- ALT+ENTER = Down
- ENTER = Select
- ALT+$ = Back
The top-most item above the contacts list is now Setup, and has a number of sub-menus:
Exchange Keys is like the previous version, and is for swapping contact details with other Ripple messenger users.
Identity is for setting/changing your ID or name. Note: if you change these you'll need to re-exchange your details with other users!
Storage is like so:
Radio is for custom LoRa radio settings (just frequency for now, still SF=10)
Set Clock is for setting the RTC clock module.
Handy for seeing how much of the internal storage you have remaining, and also for erasing data.
The conversations, and new message alerts are the same as the previous version, so please refer to the previous article about this.
Support
If you find this project useful and want to support the development, I now have a Buy Me A Coffee page here:
Comments