logo elektroda
logo elektroda
X
logo elektroda

OpenBeken online building system - compiling firmware for all platforms (BK7231, BL602, W800, etc)

p.kaczmarek2 
GitHub logo in black and white.
OpenBeken, available at Github, features an automatic online build system for all currently supported platforms. This means that you don't even have to setup compiler on your machine in order to compile new binaries. Automatic builds are executed per every commit, including the commits in the Pull Requests. Here I will show you how you can utilize it to compile your own version of OpenBeken or maybe even to develop your own fork.

Main OpenBeken Releases
Main releases are available for everybody at the releases tab. Open our repository:
https://github.com/openshwprojects/OpenBK7231T_App
Go to releases:
Screenshot of the OpenBK7231T_App repository on GitHub showing the list of directories and version information.
In releases, you can find a table of all build binaries for supported platforms:
https://github.com/openshwprojects/OpenBK7231T_App/releases
See screenshot below:
Table of OpenBeken assets for various platforms and usage types.

Per-commit builds
Per-commit builds are available for every commit. Some of them are not available in a form of releases, and some of them may have been a release at some point but may have been removed by a developer.
First you need to see the list of commits, here:
https://github.com/openshwprojects/OpenBK7231T_App/commits/main/
Then, notice the green mark, click it:
Screenshot of a GitHub commit list for the OpenBK7231T_App project.
Then, on the screen below, click any "Details" link:
Screenshot of build results in Github Actions showing 9 successful checks.
Now you should be on build details page:
GitHub app screen showing build information for OpenBeken.
Click "Summary":
Screenshot of the GitHub Actions build process with the Summary section highlighted.
Scroll down to the bottom of the page:
OpenBeken build screen on GitHub.
This "artifacts" file contains all build binaries, download it:
List of binary files in OpenBK7231T_App_1.17.450.zip archive displayed in an archiving program.
As you can see, all binaries are here.

Per-Pull Request builds
Automatic builds are also available for each Pull request:
https://github.com/openshwprojects/OpenBK7231T_App/pulls
This way you can test experimental features before they are merged.
Please remember that if you open your first pull request, your build first must be accepted by administrator.
The method of accessing build files is very similiar, just click on "Details" anywhere in PR:
Screenshot of a GitHub Pull Request interface for the OpenBeken project.
Then follow the guide from previous paragraph.


Customizing your own build
The automated build system can be easily used to customize your own OBK build. For example, let's say you want to enable some feature in obk_config.h:
https://github.com/openshwprojects/OpenBK7231T_App/blob/main/src/obk_config.h
For example, if you want to enable HT16K33 driver:
Screenshot of an online code editor showing the obk_config.h configuration file with the OpenBeken repository opened on GitHub.
You can just change the #define of the feature you want to include and then use online build system (either setup on your own fork, or just create a PR to just get binaries) and you will get everything compiled for all platforms without even setting up one compiler on your PC.

Summary
Online Github builds are crucial for development of OBK. They allow us to quickly test compilation for all supported platforms and develop even without having a compiler on our own PC. That being said, testing on physical devices is also very important, but we'll cover it another time. I hope this tutorial can help you build your own OBK fork, especially if you want to just make some little changes and adjustments.

About Author
p.kaczmarek2
p.kaczmarek2 wrote 11822 posts with rating 9927 , helped 564 times. Been with us since 2014 year.

Comments

Add a comment
omniron 06 Feb 2024 02:54

Wow, that's an impressive tool! Like gitpod and tasmocompiler etc? Can this be used for a direct linked setup? Direct as in one tuya device logs into the soft AP WiFi of another and controls it without... [Read more]

p.kaczmarek2 06 Feb 2024 08:01

Thank you, I think it could be used in similiar manner, but it's still something dedicated a bit more for developers, while users can still use it as well. Direct setup is an interesting idea, but... [Read more]

omniron 06 Feb 2024 17:33

Yes, exactly, the goal is for instance to be able to power on the plug of the modem/router/APs when returning home (or waking up). After having it all turned off when leaving home or going to sleep. Tasmota... [Read more]

divadiow 26 Feb 2024 20:10

do *we* build our own bins on our own forks or is that something you have to do for each PR? [Read more]

p.kaczmarek2 26 Feb 2024 20:20

I think that in order to run a build on my repo, I need to confirm it first there: https://obrazki.elektroda.pl/4946848900_1708975168_thumb.jpg However, I think you can as easily just enable building... [Read more]

divadiow 26 Feb 2024 20:24

righto. How do you keep my PR out of the main releases? I'll have a go at setting up my own build system Added after 2 [minutes]: also. im sure you dont want to be approving PRs left right and... [Read more]

p.kaczmarek2 22 Mar 2024 10:28

It will not be released on the main tree unless I specifically merge it. To be honest, what worst could happen? I don't think that someone could run a really malicious code in the PR. Futhermore,... [Read more]

divadiow 22 Mar 2024 10:38

Yes. I understand more now since original questions. A voyage of discovery :) [Read more]

p.kaczmarek2 22 Mar 2024 10:40

The only thing to watch for which I didn't mention in the first post is that the build binaries seem to expire after some relatively longer amount of time. So, if you have a PR to get binaries for a... [Read more]

divadiow 22 Mar 2024 10:46

fair enough. I did imagine wanting an updated release that included "ENABLE_DRIVER_TMGN" for GN6932 perhaps at some point when more OBK changes generally had been made. [Read more]

p.kaczmarek2 22 Mar 2024 10:58

Do you know how to merge upstream (main repository) changes into the PR? It can be done via Github GUI. That way you can sync your branch to the main branch of the repository. [Read more]

divadiow 27 Mar 2024 09:54

ah. I don't think I do. I have wondered about changes made to LN-specific bits, like enabling drivers, that require a linked change in main project. Is this to what you're referring? [Read more]

p.kaczmarek2 27 Mar 2024 12:22

I am referring to a situation that happens when you make a fork (with a PR or not) and some new changes are added to the main and you want to merge those changes into your fork. This can be done easily... [Read more]

morgan_flint 14 Aug 2024 20:17

Hello! I've made a PR just to test a very small change, requiring your approval, as it's my first one, but it would have been better if I could have made the online build on my branch without disturbing... [Read more]

divadiow 14 Aug 2024 21:03

not sure I am certain of enough to be a great help. does this mean you want to kick off a build and download the zip of binaries off the back of your own PRs? If the change is small and in the... [Read more]

p.kaczmarek2 14 Aug 2024 21:36

Sure, I can enable it, but why do you need to remove a slash? [Read more]

morgan_flint 15 Aug 2024 19:51

The reason is that I had the errors I explained here . As there's already a slash in the address in OBK config (e.g. http://192.168.1.249:7231/ if using a local server set up as per these instructions... [Read more]

p.kaczmarek2 14 Dec 2024 01:28

I'm working on something interesting, guys. It's related to our online builds. Who can guess what's happening there? https://obrazki.elektroda.pl/8504856000_1734136132_bigthumb.jpg [Read more]