Git and Building (MB) SoftRF for T-Echo RSSI Test Receiver

156 views
Skip to first unread message

Neil Allison (ATS)

unread,
Dec 17, 2024, 4:57:29 AM12/17/24
to softrf_c...@googlegroups.com
Hello,
Please share any guidelines for setting up/configuring Arduino IDE with Git, in particular:
1. Where do you set up your SoftRF project directory so it is under Git version control - is it for example in the "portable" directory of the Arduino IDE installation?
2.  What portion of the Arduino IDE and libraries are included in your Git project?
I haven't found anything definitive with my Google searching but I imagine there are docs explaining the recommended directory structures and I look forward to you pointing me to them please.
Currently I am developing and building with Arduino IDE v1.8.19 on a Win10 machine but I could use an Ubuntu 18.04 or 20.04 box.
Earlier this year I cloned MB138 and created a build for the T-Echo that displays RSSI (RF_last_rssi) in the middle right box (navbox4).  It was a learning curve getting an Arduino install and all the necessary libraries to successfully build before I started my changes.  I "just" put the SoftRF directory in the Arduino directories as "C:\Apps\arduino-1.8.19\portable\SoftRF".  But this is a "dumb" copy of where I cloned the repo so is not under Git version control.  Now I want to rebase on the latest MB release and I wish to get my directories in order so both Git and Arduino IDE work.
My RSSI Measurement Branch
I use this build to test Flarm transmit performance of one glider at a time on the ground.  Often we don't have enough contacts with other gliders for the online range analyser to give a representative result and also need to measure installations on the ground when there are pilot reports of "Flarm not working".  If I measure a few known, or likely, good installations then I can compare the relative performance of suspect installations and could repair, verify and/or compare antenna changes or placements.
I'm familiar with radio, antenna and EMC measurements as well as the test transmission and reception features of PowerFlarm.  I have a signal generator, VNA and spectrum analyser I can use and thought a Flarm or PowerFlarm could be used as a field test receiver.  But, when SoftRF began supporting the new protocol I decided that the T-Echo would be a simple "field measurement receiver" that almost anyone could use.  The test procedure is
- Position the glider to test in a clear area away from other aircraft, vehicles, buildings etc (a DIY Open Area Test Site or OATS)
- Ensure the Flarm of the glider and the T-Echo have a GNSS position
- Check the T-Echo shows *only* 1 "ACFTS"
- Read the RSSI at, say 15degree azimuth intervals, around the glider at a range of 10 metres, or optionally 3 metres
- Plot the results on a polar chart (image of example attached)
- Compare with expected RSSI or other reference measurements.
Thank you for reading, I look forward to your development setup instructions.
Kind regards
Neil
--
Neil Allison
ZK-GRC_RSSI_test.png

VirusPilot

unread,
Dec 17, 2024, 7:03:49 AM12/17/24
to SoftRF_community
Hi Neil,

I have setup Arduino IDE on my iMac as follows: standard install of Arduino IDE creates an ./Arduino directory where the actually relevant libraries directory should be inside. In my case I am just putting a symlink e.g. of the local (git cloned) SoftRF Arduino project libraries folder (./GitHub/moshe-braner/SoftRF/software/firmware/source/libraries) there and eventually rename it depending on the project I want to compile. Inside Arduino IDE you have to add add the following two entries into the Additional Board Manager URLs:
Then you need to activate the appropriate board drivers, particularly the version that is used in the upstream project. For the T-Echo the version might not make a huge difference but for the T-Echo ist does.

I hope I did not forget an important point.

Best from Germany

Moshe Braner

unread,
Dec 17, 2024, 10:12:28 AM12/17/24
to SoftRF_community
I run the Arduino IDE on Ubuntu but I think it would work fine on Windows.

The IDE makes it painful to switch between versions of the "board support" (for the same board family, e.g., ESP32), if you have plenty of disk space then the "portable" installation of the IDE is the solution for that.  If you stay with one version (I use 2.0.3 - later versions make the binary too big to fit!) then a non-portable install is OK.  But your target is the T-Echo (nRF52) where the binary size fits with plenty of room to spare.  For that I use the Adafruit nRF52 board support version 1.2.0.

Where to put the libraries (or the "repo") is tricky.  There must be a way to tell the IDE where the libraries are, but I have not figured it out.  So I did this:
* install the Arduino IDE in its own folder as normal
* make a folder (anywhere) for your repo.  Clone the repo from github to there.
* find the folder software/firmware/source/libraries
* copy that folder (with all its contents) under the Arduino "sketch" folder
That way the IDE finds the libraries.  Alas that means two physical copies of the libraries.  If you have to make a change in a library you have to remember to make it in both copies.  Another option (thanks Nick - and I see VirusPilot made the same suggestion in this thread) is to create a symlink (inside the Arduino "sketch" folder) to the libraries folder which is elsewhere.  Must be a symlink not a Windows shortcut.  That is especially useful if you work on different projects with the same IDE installations, needing different sets of library files.  Either way, the source code lives in the repo folder and is under git version control.

Your method of using a T-Echo as a FLARM/SoftRF field strength meter sounds great.  Maybe I'll have to get my own T-Echo after all.  Or modify the T-Beam version to show it on the OLED, but that is hard to see in sunlight - can display it in the web interface.  Instead of having to do it while there are no other gliders transmitting nearby, could code it to use the existing "ID to follow" setting to tell it which glider to display the RSSI of.  (Just ideas, not implemented.)  On the T-Echo it is much more difficult to enter that setting, since it does not have the web interface.  Maybe can simply display the strongest RSSI seen in the last few seconds?  Assuming you are much closer to the glider being tested than to others.

And yes FLARM (and SoftRF) installations vary a lot in their antenna configuration and performance.  And some antennas turned out to be defective.

Vlad Belayev

unread,
Dec 28, 2024, 6:51:59 PM12/28/24
to SoftRF_community
Hi guys, 
I am coming back to this post as I am curious , has anyone been able to build SoftRF firmware in VS Code Platformio ? I really like how it handles multiple boards within the same project. All the board parameters are kept in platformio.ini and would be shared via Git . It allows build several different boards firmware from the same place , the code is already in VS code (presumably you are using VSC for coding?) In the past I was using Platformio with Meshtastic firmware and its very easy flow. Platformio creates a build in .uf2 format which also makes it easy with nrf52 boards by dropping that file in to its storage.
I thought, I would give it a go and spent last two days converting SoftRF into a platformio project. It seems I am close , but still feels its a mission impossible. Of coarse the structure of SoftRF is different and needs a lot of re-jigging. 
But on the other hand if the main SoftRF code isn't adopted for Platformio, its pointless to deviate from it so much.
I haven't used Arduino IDE for a while, but remember it being heavy on disk space usage and inability to specify folder where all the libraries go.
My main reason is to start building SoftRF code for Seeed T1000-E . I wasn't even sure if Arduino IDE has this board in the manager. But looks from the earlier post by @VirusPilot it has , just need to be pointed to the right board repository.
I will try Arduino IDE and will use symlink trick, thanks for that.

R. van Twisk

unread,
Dec 29, 2024, 5:37:46 AM12/29/24
to Vlad Belayev, SoftRF_community
hey should be a relative easy change, this is one way to do it : https://github.com/gereic/GXAirCom

I stopped developing with Arduino IDE after one project messing around with libraries that are all over the place and use platformio for my ESP type projects (for Raspberry PICO I use the SDK, which is great).
You can setup multiple targets and per target specify what libraries to use, should be very easy…

Ries


--
You received this message because you are subscribed to the Google Groups "SoftRF_community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to softrf_communi...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/softrf_community/6dbb2ae2-fdfe-41ca-bbe7-0b0335193f58n%40googlegroups.com.

Moshe Braner

unread,
Dec 29, 2024, 4:24:56 PM12/29/24
to SoftRF_community
Yes the Arduino IDE is not great, but I started with it, following Linar's instructions, and am too lazy to convert the code to some other IDE.  Too busy doing other things with the code!  If somebody makes the needed changes in the code, maybe I'll try PlatformIO (or something).  I've switched the compilation of OGNbase to another installation of the Arduino IDE on a different computer, because it needs a later version of the ESP32 board support library (to support the ESP32-S3).

Vlad Belayev

unread,
Dec 29, 2024, 5:00:41 PM12/29/24
to SoftRF_community
Thanks guys, 
I agree, it may be the way to go with Platformio, but its a hell of a task to convert existing code ( as I am finding out with SoftRF). 
GxAirComm is another good example, but we don't know  if Gerald started with Platformio or converted existing code. I have made some modifications to GxAirCom in the past and compiling the code works great. Again, GxAirComm doesn't support any rf52 based devices. and I needed that as an example for compiling for Seeed T1000-E.

Agree, with Mosche , it is something for another day or work on it in the background. For now I am switching to Arduino IDE 2.3.4 and will try to compile Linar's code first. That should work. Then switchover to MB and start thinking on changes needed to support T1000E.
It is good that you also working towards ESP32-S3 , because that would be also good device to use.
Thanks

Nigel Bray

unread,
Dec 29, 2024, 7:34:08 PM12/29/24
to SoftRF_community
I've just gone through the emails and performed a build with the exisitng Arduino-IDE instructions.

I made some notes on the steps taken as below.


I kept two files to record the results. 

The Output from the IDE: 


and an image_info of the main binary file.


The binaries were flashed to my device Board set as "ESP32 Dev Module" for a T-Beam v1.1 and it came back to life as MB150..

Moshe Braner

unread,
Dec 29, 2024, 7:46:23 PM12/29/24
to SoftRF_community
Glad it's working for you now, Nigel.  And that you're documenting what you're fixing up, so others can learn how to do it.  Thank you!

Note:  (I'm posting it here for everybody to see, in case anybody else runs into similar problems.)  Your postings were delayed to appear here, because Google flagged them for moderation.  I don't know why, and I can't do anything about it, other than approve them when I notice that there are pending messages.  (Google does not notify me???)  Check your Group membership, and how you send the posting, maybe there is something about it (email address mismatch?) that causes Google Groups to flag it.  Looks like your Group membership is via some sort of email address mapping server.  It may instead need to match your Google login email address?  Try joining the Group with your Google account email address.  AFAIK the email address will not be visible in your postings.  If anybody wants to contact you (or any person posting here) privately, in the Google Groups web interface, they need to click on "..." and then "Reply to author".

Vlad Belayev

unread,
Dec 30, 2024, 5:09:03 PM12/30/24
to SoftRF_community
Thanks for the tips so far. The symlink trick seems working.
I have the below flow.
In Documents\Arduino I created a folder for each project for example SoftRF-MB 
Inside this folder I created a symlink like this. ( This symlink name has to be "SoftRF")

mklink /D "SoftRF" ...\Documents\Projects\SoftRF-Mosche\software\firmware\source\SoftRF

Then back in root Documents\Arduino created another symlink:
mklink /D "libraries" ...\Documents\Projects\SoftRF-Mosche\software\firmware\source\libraries

The destination \Documents\Projects\SoftRF-Mosche is Git controlled, so will always stay in sync with GitHub.

I have  question, which version of Adafruit nRF52 I need to have installed to compile SoftRF-MB150 for T-Echo?
I have started with 1.6.1 but was getting error ( related to Adafruit TinyUSB). I now gone down to 1.5.0 which got rid of that error, but now getting different ones related \TFT_eSPI libraries
Thanks.

Moshe Braner

unread,
Dec 30, 2024, 5:53:31 PM12/30/24
to SoftRF_community
See at the end of:

Yes that's an old version.  I haven't "upgraded" because there has not been a need, so far.  Currently I am working on using the FAT file system in the T-Echo's flash memory for storing the settings, that may require upgrading some libraries, we will see.

Vlad Belayev

unread,
Dec 30, 2024, 6:34:50 PM12/30/24
to SoftRF_community
Got it. Thank you. Thought I have seen something about it. 
BTW, tested MB151 on T-beam, works fine , settings can be saved as text file. That's a great add on.

Nigel Bray (SoftRF)

unread,
Dec 31, 2024, 10:15:11 AM12/31/24
to SoftRF_community
Hello,

I found that you can "File -> Open" to point to the SoftRF.ino wherever it is from with the IDE instead of creating the first link.  I found that second link to (or local copy of) the Libraries is needed.

I updated some notes on the Steps to build SoftRF_MB for T-Beam .

Best regards Nigel

PS: As a test, I am updating this after logging in to the groups web page instead of replying from my non-google email in case it avoids the step of needing moderation Moshe described. 

Moshe Braner

unread,
Dec 31, 2024, 10:25:58 AM12/31/24
to SoftRF_community
Yes this message got through without moderation.

Yes you can "File / Open" the .ino although having a shortcut/link may be more convenient.
Reply all
Reply to author
Forward
0 new messages