Close
0%
0%

Skrypt

An Off-the-grid messaging system.

Public Chat
Similar projects worth following
A wearable ESP32 based hardware that can connected to a smartphone/PC and allows it to communicate with other device with similar hardware. Communication between the hardware and Smartphone/PC is via BLE. Sub-stations/Routers Could be introduced if needed.

The Skrypt is a small piece of hardware that enables communication between devices connected to similar hardware. The Skrypt is ESP32 based and has a small form factor. This allows for it to be hung around the neck or wrist. It simply connects to the device (PC / Smartphone) through BLE and serves as a portal for sending and receiving messages. Long range simplex communication is achieved with the LoRa RFM95W. 

The smartphone or the PC only need to have an application installed. All messaging, encryption, decryption and receiving is done on the device. It is battery powered. The Skrypt  could help communication in places where network reception is poor. Underdeveloped communities could benefit from its service. 

I will update this as the project progresses.

LoRaSleeve_PCB.rar

The complete LoRaSleeve design files.

RAR Archive - 260.36 kB - 03/18/2019 at 11:44

Download

  • 1 × ESP32-PICO-D4 Microcontroller
  • 1 × HopeRF RFM96W
  • 1 × Battery Evaluation, Demonstration Kits, Boards and Modules / Evaluation Kits, Boards and Modules
  • 1 × AP2112 Power Management ICs / Linear Voltage Regulators and LDOs
  • 1 × MCP73831 Power Management ICs / Power Supply Support

View all 6 components

  • Resuming The Project.

    Taiwo01/10/2020 at 19:36 1 comment

    I stopped developing Skrypt for a while due to my quite demanding school activities. Now, I am free for a long time and ready to put all of my effort into this.

    PROBLEM FACED DURING PERIOD OF SILENCE.

    Although, I was not posting here about my progress with the project, I have been quite busy with the hardware. My intention when I started this project was to learn what is to be learnt in the course of the project. I have not been disappointed. My PCBs failed woefully due to a couple of thing such as 

    • Poor Tools
    • Poor PCB assembly skills
    • Poor Design 
    • Latency between ordering of materials and receiving them. 

    It took me a while to get the hang of SMT reflow and assembly generally. I am glad I can do quite a lot now (Thanks FLUX). I got better tools and learnt better design and PCB assembly skills during the period of silence and I am quite confident.

    It is quite apparent that I focused more on Hardware development than software/ firmware development during the period of "Radio Silence". This led to my decision to  adopt a ready to use open source hardware for software development. This and the fact that my inadequacies should not hinder people that want to continue the project possibly on their own hardware.

    CHOICE OF HARDWARE.

    After surfing for a while, I noticed that there are quite a number of  development boards that were designed for something like we are trying to achieve. I found a couple of TTGO LoRa based boards, Adafruit, Sparkfun and some other ones. What they all have in common is having an ESP32 chip connected to the LoRa chip on the same PCB. Nothing special. This coincided with the time when I was contacted by an official from  Digitspace who expressed their wish to sponsor the project.  Digitspace gave me a coupon and I spent the day perusing their huge catalog for an ESP32 LoRa Dev board and I found one with the name "LoRa 433MHz ESP32 OLED 0.96INCH BLE Wireless Module". It is basically a TTGO LoRa board that is well packaged and has a battery.

    In a nutshell, it fits the base-band feature of the intended device that I set out to build. If you need to get started very quickly with no problems of connections and soldering, this is a great way to go.

    Each box actually contains a pair. It is quite good for a quick start. Check out the store. LoRa 433MHz ESP32 OLED 0.96INCH BLE Wireless Module

    FIRMWARE DEVELOPMENT

    This is a quite a developing aspect of the project. I wrote a basic Arduino sketch that just transmits and receives as requested by the user via Bluetooth. Its is a quite simple code that simply

    • Listens for messages via the LoRa Chip interrupt pin
    • Displays the messages on the appropriate output console. 
    • Send messages it receives via Serial Bluetooth.
    • Set up an ID system for the device to know if the message is meant for it or not.

    Making the ESP32 perform these tasks is not the hardest thing to do. With the help of several documentations and (of course) example codes, I completed the code and it worked quite well. I tested it on my PC and it worked. Then It happened.

    The hardware is intended to be used with phones as well as PCs. I don't write android. At least not without the great help of the MIT App Inventor. So, I set out on a journey through the vast lands of the internet until I found BlueSPP.  BlueSPP was the perfect temporary solution to my problem due to the following reason. 

    • It has a chat like interface for communicating with Bluetooth devices
    • It stores messages 

    I settled for it as a temporary solution and it worked quite well. Here are some Screenshots of my phone running BlueSPP and communicating with Skrypt.

    This was the messages that were exchanged between my friend and I while testing the range of the device. we covered like one Km with a lot of huge buildings between us. To be honest , it could be better. It does not seem like the dev board contains an LNA and our test ground...

    Read more »

  • Change of project name.

    Taiwo07/16/2019 at 19:09 0 comments

    I received an email today stating that the project  name "LoraSleeve"  needs to be changed as it contains LoRa which is a registered trademark of Semtech. This and some other things were the contents of the email. I had to change the project name to something not "LoRa" to avoid the project from being removed from the website.

    So, here we are. Skrypt is the term that came to my mind immediately. Why ? I don't know myself. If another name pops up, I'll update appropriately. If you have a suggestion for a name, do well to  comment and we'll review it together.

    I have been a little busy these few weeks and I'll be back updating the project as it progresses. I have done some hardware tests with modules attached together and we seem to be on the right path. 

    There might be a need for an android application as I have been using BLE terminal apps and UART over USB OTG for my tests.

  • With Love from China.

    Taiwo05/24/2019 at 05:23 0 comments

    It took quite a while for the PCB to arrive from China. Who knew China is that far away from here. The overall build quality of the PCB seems okay but I noticed a little problem. The board was a little bit bigger than what I  had in my head  and  I added too much features for such low-power hardware.

    It was probably due to the fact that it is my 4th board (noob alert) and I am still struggling to get my dimensions well. Also because I was a little too ambitious. At the end, I decided to 

    • Reduce the number of buttons drastically and allow tweaking of parameters via Wifi/BLE.
    • Use ESP32 Wroom 32 for the next revision as they seem small enough for what I  intend and I have(finally) experience soldering and troubleshooting them.
    • Include a LNA and SMA antenna on the board without compromising its size. Probably a removable antenna or something similar.
    • Make a repeater with better specs and to reduce the transmission time and power required by LoraSleeve.
    • Find a way, if I can, to implement my own RFM96W on board. This does not seem very likely but who knows.

    One important reason for switching to ESP32 Wroom 32 is its availability on Aliexpress compared to Esp32 Pico D4. And Aliexpress (3 weeks) seems to ship faster to my place than Lcsc (still waiting).

    I am definitely not wasting 40 pieces of PCB (39 is okay). I will definitely populate at least one in the coming week ( when LCSC finally comes through)  and will get started on the software.

    I will make a log about the new schematic and layout soonest.

  • Ordering and Panelizing PCB

    Taiwo04/02/2019 at 06:26 3 comments

    I have known about JLCPCB for a while and thought of giving them a try for this project. The PCB is a small one and to save money I thought of panelizing the PCB. I'll have more PCBs for the same price. YAY. There was only one problem, I had no idea how to go about it. I went off to google and searched. I got a couple of cool options. Some easy and others not so easy. 

    After deliberating with google and very helpful guys on the HackChat, I settled for GerberTools (https://github.com/ThisIsNotRocketScience/GerberTools/releases). This awesome application has a cool GUI and quite efficient gerber Panelizer. I took me a while to  get the hang of it for I had dimensioned my board on the copper layer (yeah, who does that?). I finally got it to work by removing the dimension and using DirtyPCB's cam files on eagle after it turned out that the app was no fan of the .gbr format. Below is the result I got after panelizing

    Notice the absence of traces in the bottom layer. Thats a bug I hope the maker of the gerber viewer fixes. I displayed it quite well on JLCPCBs gerber viewer though. Well, I am sure the PCB is very well on its way down and will be available in a few weeks.

    NB. I'll update the PCB file again (Sorry)

  • Finishing Up and Cleaning Up

    Taiwo03/18/2019 at 11:37 0 comments

    CORRECTION AND CHANGES TO SCHEMATIC.

    It took a while for me to notice a "little" error in the previously posted schematic. I missed a pull up resistor for the buttons and misspelled some net names . Fortunately, I noticed it before starting the layout of the PCB. In my bid to correct the mistake, I thought it wise to review the components used with the device and made the following changes.

    • I removed the OLED in a bid to reduce the power consumed and since all that it display could be inferred by other means (via LED and the PC/smartphone itself).
    • I reduced the number of buttons to two.
    • I added another LED for power and connection indication.

    PCB LAYOUT.

    I began laying out the components on the board with the aim of making the  PCB as small as possible. There was a limit to its size as I used 0805 components for easy hand soldering ( I can't cope with smaller components ,YET ). I used the ESP32 Pico D4 chip for smaller size. The PCB measured 5 cm by 3.6 cm at the end.

    The new schematic and layout has been uploaded in the project page. Off to JLCPCB...

  • Let's Begin

    Taiwo03/14/2019 at 16:50 0 comments

    SO FAR...

    When I created this project page, I had no LoRa module at hand . I still don't, but I had to get started. I checked my stash of unused components, and found a pair of NRF24L01.

    An RF transceiver, that is not LoRa.

     I played around with its transmission and reception of  messages. I used Serial via the Android Arduino application serial console on both phones. It worked, not well enough, but enough to prove a point. 

    My Android development skill is close to non-existent, and I hope to use Thunkable to make an app that interfaces with the ESP32 Bluetooth and sends and receive message from the hardware.

    PCB DESIGN

    I began making the schematic diagram early this morning. The device was to have 

    • A small screen to display basic information like battery level, number of connections  etc.
    • A rechargeable battery 

    I  used 0805 components and the ESP32 Pico D4. The PCB layout is not complete and I thought I'd share the PDF of the schematic.

    This is the progress so far.

View all 6 project logs

Enjoy this project?

Share

Discussions

jithivk wrote 01/22/2023 at 14:01 point

This project seem to be removed from GitHub can u repost it

  Are you sure? yes | no

janheski wrote 04/26/2021 at 10:20 point

Very interesting project. I'm curious if it could use Helium Network to help forward messages?

I'm interested to figure out three options and to be able to switch which one I would like to use:

- Direct messages between devices (as You have already)

- Messages passed with Helium network using only LORA protocol

- Messages passed with Helium network using Internet

  Are you sure? yes | no

Matej Kovacic wrote 03/30/2020 at 22:50 point

Very interesting project. What is the range of the communication?

  Are you sure? yes | no

Bunplugged wrote 09/25/2019 at 19:02 point

Can you explain how the network is supposed to work? And are he messages sent with tcp/up or a different protocol?

  Are you sure? yes | no

ousama abushagur wrote 08/28/2019 at 18:37 point

How is the current status of this project? Also will you be able to support Lora mesh for relaying between users?

  Are you sure? yes | no

Taiwo wrote 01/11/2020 at 09:07 point

Yes, it will. I am working on a pretty basic implementation of that and will update everyone very soon. Thanks.

  Are you sure? yes | no

Samuk wrote 01/20/2020 at 01:17 point

Is there a reason you're not using https://github.com/sudomesh/disaster-radio ?

  Are you sure? yes | no

Andrey Ovcharov wrote 07/25/2019 at 08:45 point

I would like to ask about AP2122 chip. Datasheet says it has 150mA output current. Is enough for ESP32? No brownouts or sudden reboots?

  Are you sure? yes | no

Taiwo wrote 07/25/2019 at 12:53 point

I believe the part number in the components list should be AP2112. I have used the chip (AP2122) for some other boards. I did get brownouts. Lots of them. But I switched to a more powerful AP2112. I'll correct the schematic duly and will probably use an AMS1117 for the next revision of boards.

  Are you sure? yes | no

morgan wrote 07/25/2019 at 21:12 point

The AP2112k is a nice linear reg. I'm using it for a couple ESP32 boards, the -3.3 version can supply 600mA and has far better Voltage Dropout than the 1117 (~250mA vs 1.1V). I've also heard the 1117s have very bad current change response times, which might explain why my #ESProgrammer still has brownouts despite being able to supply 1A.

  Are you sure? yes | no

morgan wrote 07/25/2019 at 21:16 point

Oh also, the AP2112 has an EN pin, meaning you can *entirely* cut power to the ESP32 and any other devices on the 3.3V bus, rather than using the ESP32 EN pin.

  Are you sure? yes | no

Taiwo wrote 07/26/2019 at 07:42 point

@morgan  , The EN pin will make a pretty cool way of making the ESP32 switch off itself. Don't you think?

  Are you sure? yes | no

morgan wrote 07/26/2019 at 07:44 point

Yeah, @de∫hipu suggested it to me and I've started using it in all my designs. Works well.

  Are you sure? yes | no

Taiwo wrote 07/26/2019 at 07:49 point

How interesting would it have been if the AP2112k could supply 1A of current. Or is there a hack somewhere? @morgan 

  Are you sure? yes | no

x893 wrote 07/16/2019 at 16:26 point

Awesome project ! Can you explain situation with firmware and software for windows/android ?

Thanks

  Are you sure? yes | no

Taiwo wrote 07/16/2019 at 18:47 point

Thanks. I am yet to begin the android app implementation. For now, I use either a BLE terminal (android and windows ) and Uart over USB OTG on android. I have no skill related to android development and would love if someone could help in that regard. I am still trying to solve minor quirks with the hardware.

Thanks

  Are you sure? yes | no

wb8wka wrote 07/17/2019 at 01:56 point

Is the firmware source available and do you have the protocol documentation available? 

  Are you sure? yes | no

x893 wrote 07/17/2019 at 09:07 point

Hello,

Not understand about firmware for ESP32. What do you think about nRF52 + SX127X ? Or you need WiFi for communication with device ?

  Are you sure? yes | no

Taiwo wrote 07/17/2019 at 09:18 point

The esp32 firmware is a mess right now but I'm trying to fix it. I've been a little busy these days. nRF52 (and any other mcu with ble and usb) will work very well with the SX127X for the project . My own setup just happens to contain an esp32 because I have them in abundance and they are quite easy for me to program. The firmware does not use wifi for now (at least not Yet).

  Are you sure? yes | no

x893 wrote 07/17/2019 at 09:52 point

I have nRF52 + SX1276 module (RAK813 https://ru.aliexpress.com/item/32844878395.html) and can port ESP32 firmware to this module. Firmware for BLE UART ready from Nordic SDK. So if you publish (or send me directly) i can try to port.

  Are you sure? yes | no

Wo King wrote 07/12/2019 at 08:03 point

I am new to LORA so please be patient. Is there a restriction due to legally how many messages can be sent per hour?

  Are you sure? yes | no

kiu wrote 07/12/2019 at 09:13 point

Yes, there are legal restrictions (ISM Band usage) and depending on which LORAWan network you are connecting to, the provider has its additional rules and costs (when its a commercial network).

TTN is a good start: https://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300 and https://www.thethingsnetwork.org/docs/lorawan/duty-cycle.html

  Are you sure? yes | no

don.vukovic wrote 07/12/2019 at 04:45 point

Please reload  LoRaSleeve_PCB.rar, it seems to be corrupt.

  Are you sure? yes | no

Taiwo wrote 07/13/2019 at 23:13 point

Thanks, I will.

  Are you sure? yes | no

yusuf kehinde hussein wrote 03/31/2019 at 08:01 point

This is a cool one. 

  Are you sure? yes | no

Taiwo wrote 04/01/2019 at 11:15 point

Thanks

  Are you sure? yes | no

Taiwo wrote 03/07/2019 at 05:26 point

Thanks a lot.

  Are you sure? yes | no

Josh Lloyd wrote 03/06/2019 at 18:24 point

This is a very cool idea. One thing I personally think will be important is end-to-end encryption between devices. Especially if the relays are open source 

  Are you sure? yes | no

Taiwo wrote 03/06/2019 at 19:38 point

Yes, that's a good one.  I might have to learn a thing or two to implement that though.

  Are you sure? yes | no

Josh Lloyd wrote 03/06/2019 at 21:22 point

When you eventually get there I'd be more than happy to help.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates