liberatedsystems / RNode_Firmware_CE

RNode is an open, free and flexible digital radio interface with many uses
https://unsigned.io/rnode
GNU General Public License v3.0
51 stars 11 forks source link

Is the 2.4 icon supposed to be blank? #27

Closed FountainOfInk closed 3 months ago

FountainOfInk commented 3 months ago

Hello, I am using a LoRa32 V2.1_1.6 (no TCXO, sx1276 variant (868/915/923MHz)). I have noticed that the 2.4ghz icon is not present. However, with markqvist's firmware (i.e. the firmware installed via rnodeconf --autoinstall), this icon is present. Is this behavior intentional?

P.S. (Somewhat related)

Is there a conveinent way to convert the graphics in Graphics.h to bmp/png/whatever files? I am aware of https://javl.github.io/image2cpp/, but this requires knowing the size (the x and y dimensions) of each graphic in advance, which is not immediately obvious. It is possible to look at the drawBitmap calls in Display.h, but often it is not entirely possible to directly deduce the dimensions from that alone (or maybe I'm missing something obvious.)

In this image, the community firmware is on top, and markqvist's on the bottom. rnode_24ghz_focused

jacobeva commented 3 months ago

Yes, the lack of the 2.4GHz icon is intentional. To give some backstory, basically ages ago Mark intended on adding the ability to use the Wi-Fi chip on the ESP32 boards (like the one you have) as an interface, much like the LoRa modem on the board. However, this was never actually finished. When I performed the overhaul to add support for multiple interfaces (currently only multiple LoRa modems) to this firmware, I removed that icon as it was misleading, given that there was actually no code in place to allow for using the 2.4GHz modem. You're not missing out on a feature, don't worry ;)

With regards to your second request, I mainly just used image2cpp when doing work on the graphics (scaling them for the EINK display for the RAK platform). I don't have the original graphics, but I know who does. @markqvist, would you kindly upload all those graphics you produced somewhere so I can include them in this repository?

FountainOfInk commented 2 months ago

When I performed the overhaul to add support for multiple interfaces (currently only multiple LoRa modems) to this firmware, I removed that icon as it was misleading, given that there was actually no code in place to allow for using the 2.4GHz modem. You're not missing out on a feature, don't worry ;)

Ah, I see. Thank you for clarifying. Out of curiosity, where might one start if they wanted to start working on an esp32 2.4ghz modem implementation? This is a feature that seems very interesting and useful to me, but I am not very well acquianted with the layout of the RNode firmware source code.

jacobeva commented 2 months ago

Okay, firstly it's not going to be easy, so prepare yourself lol, but I will be here if you need me. If you need to contact me directly to ask about the implementation, you can always do so over Matrix (or if you want my LXMF address, just PM me on Matrix to get it).

To begin, you'll need to research ad-hoc Wi-Fi, which is what will need to be used by the Wi-Fi chip in order to route Reticulum packets. I don't even know if the Wi-Fi chipset in your board supports it (but it probably does I would say). I'd recommend you try creating an example arduino sketch where you mess around with it and try sending data from one board to another using it. Then, you can go ahead and create a class in Radio.cpp to actually begin integrating it into the firmware, and test it after :)

That's a general idea of what I think you'll have to do. I think it would probably also be possible to connect it to Wi-Fi networks and communicate using IPv6, but I would try the ad-hoc stuff first. It will be easier to implement. Plus I know nothing about IPv6 so I wouldn't be much help haha.

If you think you're up to the task, I can reopen this issue and assign it to you (for implementing a Wi-Fi ad-hoc driver).

FountainOfInk commented 2 months ago

Okay, firstly it's not going to be easy, so prepare yourself lol

Ahaha; I expected as much. I would like to take a look, but I don't entirely expect to succeed. After a brief look, it seems like the esp32 doesn't support ad-hoc wifi, but the ESP-MESH project looks interesting (though it seems to be an uncomfortably large dependency to introduce into a mostly self contained project.) I'll contact you on Matrix! :)

jacobeva commented 2 months ago

Hmm, maybe it is possible to do something here though? I wonder how ESP-MESH does it...

jacobeva commented 2 months ago

This is most likely how we can implement it.

markqvist commented 2 months ago

Please hold your horses on that one for a bit. I've been working on it for quite some time. The short version is that the obvious ways of going about it would fall so far short of the potential there is here, given the extra bandwidth available on raw 802.11 frames.

The way I am currently implementing it will really be quite a step forward, I think. I won't go into all the details here, but think of a fast and efficient, self-organising packet switching layer designed and optimised for Reticulum. Sort of like Ethernet and MPLS had a cryptographic little child together.

markqvist commented 2 months ago

Or, I mean, if anyone wants to go ahead and add it in basic RNode mode, but just over raw 802.11, just go ahead of course! Just wanted to give a fair heads-up that I do have something in the pipeline in that regard :)

jacobeva commented 2 months ago

I think we will leave this one in Mark's hands for now, and see where we end up. No use writing something which will be replaced soon anyway :)

FountainOfInk commented 2 months ago

Sounds good. :)