I have done a series of articles on how to make my Ripple LoRa pager. For those that just want to skip to the chase and get a gadget in their hands and start playing, then the T-Deck is for you. And now, I have ported the Ripple firmware to this hardware.
HardwareSetup
There is only a modest amount of soldering involved, or if you have the right connector, then none at all. This build requires adding a GPS receiver, for which the T-Deck has a 4-pin connector on the side. You just need to observe the pin order (these are labelled on the back of the PCB) and map the wires to the GND, VCC, TX, RX of the GPS. (NOTE: the TX/RX should be swapped, ie. TX -> RX, RX -> TX)
I opted to solder the GPS directly to the pins exposed on the PCB, rather than using the connector.
Connect a 1-cell (3.7V) Lithium battery to the connector in the lower-left. (NOTE: ensure the polarity is correct or you will fry the board!)
Flashing the FirmwareFirst, download the firmware.
NOTE: some people are reporting this link doesn't work. You may need to enable popups, if you are using things like ad blockers.
Turn on the T-Deck by sliding the power switch on the right-hand side downward.
You can use any ESP32 flashing tool to flash the firmware. I have a general guide here. NOTE: the T-Deck must first be placed into DFU mode by pressing down the trackball, holding it down the clicking the small reset button on the left-hand side.
Setup/ConfigurationYou should see the 'Powered by Ripple' logo appear for a few seconds. The initial screens show some basic help, like how to use the trackball to navigate, and how to access the 'Extras' menus in various screens (Shift+0).
For a fresh install you will be prompted to press the ENTER key to do a one-time generation of your public/private keypair, which get stored in the device.
Set your IDYou should be automatically taken the Set ID screen:
You must assign a unique ID in the range of 2..250 for yourself. You need to collaborate with your group and manage this yourself--there is no central server!
NOTE: for numerical input screens you can either type in the digits with the keyboard (use the 'SYM' key), or you can scroll up/down using the trackball.
Press ENTER to then go the Set Name screen:
After entering name, press ENTER. A reboot is then needed. (switch the power off then on, or press the small reset button on the side).
Initial BootYou will see the screen below, after the logo:
The device needs to know the current time, and gets this from the GPS satellites. You can skip this but, I highly recommend just waiting. For brand new GPS modules, this may take around a minute for the satellite almanac data to be downloaded.
(if this takes too long, double-check your wiring of your GPS module)
Radio ConfigurationYour group needs to use the same centre LoRa frequency and Spreading Factor (SF). From the Home screen, navigate into the Setup item, then scroll down to Radio:
The defaults are OK, but you may want to customise these:
Then press ENTER to go to next screen:
A reboot is then needed.
TimezoneThis is optional but I recommend setting your timezone, especially if some people in your group are using the Ripple Messenger Android app with a pager device. These will show GMT times if you don't do the timezone setup. In the Setup screen, select Timezone:
You can use the trackball up/down to select.
Adding ContactsThere is a special 'chat room' for exchanging keys with other users. Select Setup, then Exchange. You will be prompted for a 4-digit passcode, which can be anything, but one that you will all use. (NOTE: this is just for this session. You can pick a different passcode each time)
You will then be shown the Exchange screen menu:
When everyone is 'in', select SEND, and everyone will receive your ID/Name and public key. (public key is not displayed as it's way too long to display). When others do SEND, you should see it appear like so:
Scroll down to see the 'ADD' action. Press ENTER to add. You should then get this confirmation:
Repeat this for however many other users there are. NOTE: you can do this exchange at ANY time.
NOTE: I recommend rebooting the device after new/updated contacts!
Back at the Home screen you should see the new contact(s):
Just scroll to the contact, then navigate into (scroll right or press ENTER). The conversation screen will have the name in the title, and to the right is a 'WiFi'-like icon which shows if their device is currently reachable:
If the other device also has a GPS, and they have their GPS permission set to ALLOW, you will also see a rough bearing and distance to them!
Simply start typing to compose a message to send, pressing ENTER once completed. The text will flash while it is being sent over the mesh. If send failed, the text stops flashing and remains at the bottom (for retry just press ENTER again). If successful, the message goes up into the conversation screen:
Incoming messages can appear at any time, and shown left-aligned:
Long messages will automatically be scrolled horizontally. You can scroll up/down the conversation with the trackball.
You can access the extras using the Shift+0, for extra actions available for this conversation/contact:
When the screen is off (or in standby), incoming message previews are shown full-screen:
You can navigate right (or press ENTER) to jump straight into the conversation, or navigate back to the Home screen. If there are any new/unread messages, you will see counters next to the contact:
At the home screen, the extras menu (Shift+0) has some settings, and menus for other screens. NOTE: Not all of these are supported yet.
The GPS location [ALLOW/DENY] is to set the permission of whether others should see your location.
GPS Waypoints is for capturing locations and storing them along with a descriptive name. You can later send these waypoints in messages, or you can see a live bearing and distance to them.
I have uploaded the new firmware to the BuyMeACoffee page. The big new feature is Maps! The new version includes a tile-based map renderer! You now can also navigate the UI using the touch screen.
I have noticed that the T-Deck is very power hungry :-( This initial port doesn't have any power optimisations. I will have to do a lot of experimentation, and try to find what power savings can be taken advantage of.
Any feedback is welcome. I hope to refine this variant of the QWERTY pager, and take advantage of the colour screen more. For now, the UI code is almost identical to the other builds (for the 128x64 OLEDs), and have just scaled the various X/Y coordinates. For now, it's decent and fairly clean as far as UIs go.
I will be putting all bonus Ripple-related news, downloads, etc on my BuyMeACoffee page. Your support is much needed!
OK, that's it for now. Enjoy.
regards,
Scott Powell.
Comments