Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
    Marco Caballero
    Hello Ivaylo
    thanks for creating the chat room to discuss the crate
    So as mentioned in the issue I opened, I'm interested in this library since I work mostly in Rust and I'm interested in working with Lora
    (I'm a PhD student by the way)
    Given that there's no much information in the crate, I wanted to ask you
    is the crate working in any form?
    can you use it to actually transmit data using a Lora radio?
    Ivaylo Petrov
    Hello @Dash83
    Thank you for the interest in my project! I think I need to make this a little bit more obvious, but so far I am concentrated on parsing packets and thus currently it is not at all possible to create a packet that will be transmitted over the radio (I have mentioned this in the section Next steps).
    After I finish the part of JoinAccept, I can concentrate on this thing
    unfortunately I don't have all that much time to spend on this project, as I am working full time for a startup (Acklio) and it turns out that sometimes startups can take quite a bit of one's time :D
    as I have indicated in the github repository, this is a way for me to learn a little bit of rust and to hopefully contribute to something useful
    (I think Rust will be an important language for IoT :) )
    Ivaylo Petrov
    so if you need to use a library for creating your LoRaWAN packets soon (before new year), we can discuss how you can help with the development
    I hope that during the holidays, I will manage to spend a little bit more time on this and have at least most of the serialization functionality as well (although I can not promise anything...)
    Marco Caballero
    Hey Ivaylo, sorry for the late reply
    As you can imagine, I don't need to have the library working in 2017, but would definitely love to use it sooner rather than later.
    Regarding the actual communication with the radios
    I saw that your project is based off of LoraWan(Go)
    how do they communicate with the underlying radio, do you know?
    The Lora radio module I'm using is one of the so called "hats" for Raspberry Pi, that communicates with the rpi through GPIO pins
    so another option I'm considering is that if your library works for coding/encoding messages for Lora, and then it's just a matter of transmitting those bytes
    I could write my own Lora driver that uses GPIO to write into the radio buffers and set whatever registers is needed.
    but I definitely want to learn first what the community does in general first
    no point in re-doing work that might be available already
    By the way, do you know where I can find the LoraWAN protocol specification pdf?
    The links I've found are broken
    I would be keen to contribute to your library too, but I'm not at all familiar with the protocol at this point so I need some theoretical knowledge as well
    Ivaylo Petrov

    The library has the goal having the bytes for the packet to provide you an interface to read all the relevant information in an understandable way and the opposite - having desired values for all the of the fields, to generate the bytes for the packet. It does not try to obtain the bytes themselves from the hardware hat. This can be done on a number of hardwares using the semtech packet forwarder (can be found here). The packet forwarder sends UDP packets that contain JSON and inside the JSON are the raw bytes of the LoRaWAN MAC layer.

    If you want, you can write your own implementation that communicates with the GPIO pins - that will sure be interesting as well I think.

    The connection with LoRaWAN(Go) is inspiration, test data and clarifications how to read some of the fields (otherwise I need to perform tests to see this).

    As for the specification, the "official" way is to use the request link here

    Ivaylo Petrov
    Hello :)
    I just pushed a new version of the lib, where I added support for creating new lorawan packets. I also changed a little bit the structure of the code - nothing dramatic, just the code is now split into multiple modules. I hope that now the lib will be much more usable for you :)