I hope I am not “stepping” on some sensitive issues or being out of line with this post / request.
I would like to make a contribution to this community and want to take a “deep dive” into the existing Thetis software and P2 associated firmware.
I know there is a repository on GitHub, however it is difficult for a newcomer to find some guidelines in deriving a “working set of code” that can be compiled from source with all the required dependencies and compilation platform recommendations.
There are many so called open-source projects on GitHub without the additional information which allows “newbie” contributors to pick-up the code and be able to successfully compile and deploy.
At the same time there are also some open-source projects which have great “entry” documentation – clearly defining all of the required build parameters and tools.
Is there a software contributors “welcome pack” so to speak that helps to get started with the OPENHPSDR project and specifically Thetis and associated firmware?
Some on the things that could be in this “welcome pack” are as follows; -
System architecture block diagram / flowchart
Here you would define the various functional modules and how they are linked to provide the system functionality.
From this visual guide – it would be instantly apparent which modules do what and at the same time any dependencies in relation to the complete system.
Current revision / work in progress / or desire for some novel coding to enhance operation could also be depicted in such a visual guide.
Having such documentation makes the open-source project “inviting” to new contributors – without the need to spend massive amounts of time to try to figure out how everything plays out – and then with guesswork.
One of the classic problems, and probably why there is lacking in such documentation is the fact that most open-source projects have organic lead developers – these people are brilliant and have the ability to visualize everything in their well-connected neural nets (their brains) – having to pause and create a flowchart to depict what’s going on and how it all comes together – is a major distraction for these brilliant coding individuals.
Not only does it slow-down their development (new code and improvements) but can hinder as well because it interrupts their organic way of thinking.
We are all different and operate in different ways.
For me personally, I find it invaluable (when developing software / firmware) to define everything in a functional flowchart.
In the process of doing this, it forces me to recreate all my thinking – in essence do a compilation in my head – forcing any “error messages” to be highlighted as I create the functional flowcharts.
Sometimes a concept seems to pop-up in your head and its easy to just create the code “on the fly” – but at the same time – if you take a moment and explore the concept “on paper” you engage additional thought processes and believe it or not, can make significant enhancement to the on-the-fly coding by simply forcing yourself to do on the spot documentation.
In some of my software development projects (paid work) I spend at least 70%+ of the entire project time on documentation system flowcharting before writing any code.
Code creation becomes easy using this approach.
Other developers in the group can “pick-up” and at the same time “hand-over” functional modules with higher success.
This methodology is invaluable when working in a group environment.
Open-source projects are also group environments – but sometimes we don’t have a big group, just a handful of organic coders that simply create excellent code on-the-fly.
After a while each member simply knows the “state of the system” and makes appropriate enhancements as required.
Imposing design / documentation procedures on these individuals can be destructive at times because it stifles their organic working mode.
There are always compromises which have to be made.
But, for what its worth, it would be great to have a more friendly documentation system to help welcome newcomers into the coding realm.
Perhaps this already exists somewhere in this community with Thetis and the associated Firmware and I simply have not come across it??
There is also the scale factor problem – if there is only one or two lead developers – it simply hampers their efficiency in spending time creating “welcome packs” for newcomers, but at the same time it dampens the desire for newcomers to enter the fold.
This is a fine line.
Making it easy for others to “enter” the coding group would bring new life and possibly make it easier – in the long term – for the existing coders and the community?
Some of the things that would assist are; -
IDE platforms for Thetis coding – visual studio most likely – but which version / any dependencies in the IDE or official recommendation?
IDE platform for FPGA – Quartus?
Compilation environment
Dependencies
System / modules flowcharts
Identify – work in progress – what’s the things that need to be enhanced / fixed / improved
Code-set / environment for a successful compilation of Thetis and firmware
Definition and any “heads-up” on the revision system – to ensure latest code is in play
Definition and any “heads-up” on code testing process – when and how it becomes fit for general release to community.
I am sure there are many more questions / suggestions – but these are the immediate ones that come to mind.
Sorry to anyone who might find this post “out of line” – that was not the purpose, I am simply trying to get to speed quickly and thought I should share some of the thoughts I had during this process.
