Radio Firmware Build Options #4658
Replies: 2 comments 1 reply
-
I've only just seen this post, but the answer to your question is in https://github.com/EdgeTX/edgetx/blob/main/tools/build-gh.sh For a Jumper TPRO V2 target, you could actually reduce your options list to just What I am more concerned about is
i.e. that you have no idea what the script is for, and what the bind option is for? 🤪 I'm assuming customised was a poor choice of words, as its not customised in any way, but is the standard Lua script used to interact with the ELRS receiver/transmitter module console. the RX/TX tells the Lua what to display, and the Lua passes the input from the transmitter to the RX/TX in order to update the display / perform a function. With the bind option telling the elrs RF to go into bind mode (with the assumption you also have a receiver waiting to bind).
However, this so-called "god mode" might be something other people are interested in... i.e. a "disable input" mode to prevent accidental changes to settings, etc... so it might be good if you put together a pull request for that, and maybe it can be turned into an official feature ;) |
Beta Was this translation helpful? Give feedback.
-
Thank you so much @pfeerick . I previously checked the build-jumper.py on the same directory but never thought to look the file you mentioned. I'll try it asap.
To be honest, I am actually an alien ui developer assigned to an unexpected project 😄 I am very much a 'Ok, just buy a dji and its controller' guy. I had no idea about what edgetx nor opentx was until I started to do this.
I prepared a very rapid and dirty implementation for input disablement but if I can organize it and fulfill the standards I will also be happy to contribute with this little feature 🌿 |
Beta Was this translation helpful? Give feedback.
-
Hello!
I am trying to build my own version of EdgeTX for a custom purpose and I use this custom version binary on a Jumper TPRO V2 radio.
Before continuing and describing the problem that I encounter, I think I should describe what I am doing on the source code:
I try to add a "God Mode" feature. The radio opens in "god mode off" state and this cause users to can not see any other page rather than the default main page. Buttons have no effect on the radio (just sticks) if god mode is not enabled. I did this by disabling the page transition parts on the visual side of the source code and add a key combination reading part to enabling and disabling this god mode feature. I have no any further manipulation on the source code.
Up to this part, actually it works without any problem. The problem is I also try to use the internal ELRS feature. I downloaded the customized lua script from the expressLRS and placed it in the right place on the sd card. I did all the prerequisites mentioned on the expressLRS documentation. I can open the "expressLRS" script as well without any problem. The thing is... I can use the "bind" option inside this script when I run for once. (as you can understand from my choice of words, I have no information about what is going on here and what is the purpose of this script). When I terminate(?) this lua script and try to run it again it sometimes open but sometimes not and stuck at loading state. I check the prerequisite bullets again but no problem at all.
Then I thought something about the firmware options. I thought that maybe I was building the edgetx in a wrong way. I flashed the original firmware for the jumper tprov2 and checked the firmware options on the settings. The firmware options on the original binary was like this : "crossfire, ghost, internalmulti, internalaccess, multimodule, luac, cli, passthrough". But when I build my own version and check the firmware options again it was as given "crossfire, ghost, internalmulti, multimode, luac, cli, passthrough".
So the "internalaccess" option was missing. (But I don't know of course whether this is the main problem or not. This is the only thing I could find unfortunately)
Then I checked the source code again and tried to figure out how can I add this feature to my version too. I found a cmake option called "INTERNAL_MODULE_PXX2" which leads to add "internalaccess" text to firmware options (This is a desperate way to solve a problem and analyze a code I know). I tried to generate a binary by adding this option too but then I faced with another problems. They were about some "not enough size" like problems. I solved them then again, another problems.
In the end, I decided to ask how should I build the edgetx.
Let me describe my pipeline:
I clone the code with submodules.
Creating a build directory and getting inside of it.
(Windows) Opening a MSYS Mingw64 terminal on there
Using the following command :
cmake -G "MSYS Makefiles" -Wno-dev -DCMAKE_PREFIX_PATH="C:\\msys64\\mingw64" -DSDL2_LIBRARY_PATH="C:\\msys64\\mingw64\\bin" -DPCB=X7 -DPCBREV=TPROV2 -DDEFAULT_MODE=2 -DTRANSLATIONS=EN -DJUMPER_RELEASE=YES -DLUA_COMPILER=ON -DENABLE_SERIAL_PASSTHROUGH=ON -DCLI=ON -DUSB_SERIAL=ON -DCMAKE_BUILD_TYPE=Release ../
Then;
make arm-none-eabi-configure
make -C arm-none-eabi -j4 firmware
(There is no problem with generating a binary. I can build it, using edgetx buddy to flash it to radio etc.)
Let me arrange my cmake option list for readability:
PCB = X7
PCBREV = TPROV2
DEFAULT_MODE = 2
TRANSLATIONS = EN
JUMPER_RELEASE = TES
LUA_COMPILER = ON
ENABLE_SERIAL_PASSTHROUGH = ON
CLI = ON
USB_SERIAL = ON
The current version of the options I use may look ambiguous.
After a long journey, I want to ask that: Which cmake options should be used in order to build the edgetx to generate a ... well working(?) binary. Or do you think I miss a point during the process?
I ask this because even I clone the repository again and do nothing on the source code but just building it with the process above, I encounter with the same problems (Maybe I couldn't describe the problem well but I want to build the code properly first and want see whether any other problem occurs). This makes me think that the problem is not about the manipulations I made on the source code but the way I follow.
Beta Was this translation helpful? Give feedback.
All reactions