It's ready! Time to run some tests and prepare for the release.
(Attachment Link)
This looks similar to mine oldest
release v0.0.1, beside of the added triggers from the DHO4000, linear interpolation and no UPA at that time.
Humorously in kindergarten, some teachers would say "Sharing is caring". It's nice to see many people are sharing how they made it, not just showing off. "mrisco" not only shared his process but also shares the methodology of doing it which is very valuable.
This is one of many reasons why opensource is usually the best choice. Even with the bad code, somebody can modify it and publish it further. Like a DSRemote which I ported for the DHO800/900 and somebody on this forum modified it to make it work better. However I didn't tested his modification yet.
Until now, no one joined the public modification of the firmware somewhere such as GitHub or so
I have published some work on my GitHub and I have plans to do more.
With my plans to rewrite, it primarily will work on a Orange Rigol system, which is fully open source (modified Debian which uses original Debian repositories) and it's better than Android (which probably will be supported much later). I need to port more drivers for the Rigol things, because now we have about the half of it - AFE, FPGA, touchscreen and right now I don't even remember what else I did.
Nobody will have to be familiar with the Linux, because it's intuitive GUI called Mate. There a lot of myth around Linux being hard etc. How hard is to flash SD card with a image from a single file? Turn it on and You have similar GUI scope app in front of Your eyes. Fighting with those myths is
very hard.
As we know the original source code for the App was not published. The reverse engineering takes time. norbert.kiszka said he might can do a new app. I think this confidence is from his findings of the API libs he found from the firmware. But it would take a lot of time for 1 person. If more people can participate, the process could be faster. Some people can do the API reverse engineering and publish API libs for Linux or Android, some can do the UI modification, some can do the testing and someone can even make a small pull-request for a small modification. The hardware is not too slow. It's just the firmware is just too buggy and inefficient. The extra hardware resources SHOULD BE used for user-defined scientific calculations.
Making everything from scratch is insanely time consuming. That's why my plan is to take .so lib and link it with the code written in C. Mostly I will have to rewrite Java part, which is UI mostly.
As I said couple times, I want to make a open source UI based on HTML+CSS+JS eventually plus any scripting language like a PHP or Python (I have many years of experience with PHP and making PHP code to have good performance). Even some settings management.
Waveform will be working as a video stream (just like Odysee or YouTube), so this will be efficient.
There is a one open source browser engine with a good enough license, which I can use to make it visible and usable like a regular app instead of web browser.
I don't have any plans to rewrite FPGA firmware (there are some problems with the stock one), because my knowledge around FGPAs is weak. Maybe I will come back with my tries to do some small hacks (in FPGA), but likely nothing more with it. Eventually somebody else with my help, because of my knowledge about the communication between the app and the FPGA.
Anyway, when I published months of my work as a open source, a lot of people was using it, but literally nobody supported it to make it going further. I went aboard for a quite long time and later I decided to do what Im doing right now.
(Fully) open source is much better, but most people can't do things for free for 60+ hours per week. A lot of code on GitHub (including my own s***t) is done after hours. Beside of a big open source projects (Linux, Debian, BSD, KDE, Mate and much much more) supported by a big corporations, which they have huge interest in it.
Coming back to my rewriting, I think to start it after releasing v0.4.2. In the meantime likely I will do about 1-3 more releases of this and I will switch completely to a new app, when it will be good enough for the normal usage.
I almost forgot to mention of possibility to do a switch 1.25 -> 2 GSa/s for the price of limited memory depth. I did it already in my mod as a hardcoded change, but to make it usable without source code is not easy. After mentioned partially rewriting, this will be much much easier to do.
If more people can participate, the process could be faster.
With the documentation for the API for the open source UI, that will be more than possible.
I think this confidence is from his findings of the API libs he found from the firmware.
A lot is going on at the app init, but at the beginning it will stay in the modified .so lib, so I will save a lot of time.
Later I can rewrite this too, to make it boot faster for a couple seconds. Five second per day can save 30 minutes per year.
API libs for Linux or Android
With the web based UI, there will be no need to do much. HTML, CSS and JS are parsed by a browser. Maybe somebody will like to do a "browser" by using existing code (browser engine), to make it work fast and on fullscreen (without typical web browser controls).
The hardware is not too slow. It's just the firmware is just too buggy and inefficient.
I would say it's way worse. With my changes on a Assembly level (done manually), some app parts are about 5 times faster. Those things can be even much faster after rewrite.
5 times faster, is not because Im good or something like that. It's because Rigol did everything to just make it work, because people will buy it anyway. They didn't said anything about performance or a increadible amount of bugs in their advertisements...
Current UI (Java and Android layouts) and Android itself are the reasons why I didn't tried to enable the dead code for the zone trigger. Implementing new things in the existing UI is a huge pain in the ...
And yet I hope the Corp. can publish more documents which can help not only itself for better reputation and sales but also buyers. Otherwise there are so many alternatives. Once people lose interests, people won't buy.
Open source firmware and hardware documentation increases sales a lot. But greedy companies knows "better".
Same thing with the piracy. Piracy increases sales, because this is a free advertisement. But most companies instead of making more or better products, they fight piracy instead (even Keysight with a copyright on their scopes documentation...), which in the end hurts legal users the most.
I also implemented license system, which is a nothing else than a copy protection (only one time thing, in the opposite of what some people think about it). I had other reasons than sales to do this. And exactly as I expected, after release with this thing implemented, sales went down very quickly. But there are other more important things than money.
Maybe make it return true only for valid cases, not always
That's the thinking I don't like. Maybe add a 10 another functions to make it 10 times slower than it is originally? Or maybe call a even slower script because it's easier?
In my mod, this function is not even called at all. I removed all calls to all Rigol license system functions for the better performance. Long time ago.
BTW. Who want's to have overclocked AFG to 250 MSa/s? This will give max frequency 80 MHz instead of 50 MHz as it is right now. Only reason why I didn't release it yet, is because of the calculations of the user input (frequency set in a multiple places), which I need to do.