- Sat Sep 10, 2016 9:17 am
#54808
Me neither to be honest. All of my devices are 1MB or more. But many have 512k devices. It was about 1MB devices you are correct but mmiscool took it a step further to include 512k devices in the support listing.
So you are more or less looking at a modular build process from which parts can be user selected exactly like fright titanic more or less thus the user invokes the build process and selects what he/she wants or does not want. Automated build for all.
Hrmmm this would take a lot of extra resources which would add a fairly large monetary cost to maintain if I am picturing things right in my minds eye. This not only would be a burden on time but a burden on the wallet as well if I am correct I don't know that our community is as large nor as generous or well off as say the LUA community which basically has been here for the duration. This would likely require a dedicated server with some horse power weather you host it at home or abroad there is a cost incurred. At home it costs are network traffic, processing power, ram, storage (would likely want to use a faster drive for best results ssd, raid0, 10k) alas there is the cost of electricity which is a decent chunk every month to run a decent server to support this tasking. Away from home hosted it can be pretty spendy for a dedicated server a nice monthly bill.
Just thinking from a practical standpoint however I am wrong many times.
So the most stripped version of basic that I could think of for a base would be this.
Basic with the following.
Math functions
String functions
Pin functions
Settings Page
File Manager
Serial 1 only no serial 2
No branches UDP branch, IR Branch, Vars Page, Editor Page(would need to upload your code) No SPI, No Websockets, No One Wire, No I2C, no libraries for just about anything this would be about as slimmed down as it gets and then have options to add these things as the user see's fit. Other things like thingspeak email weather etc are all technically special functions that would not be included in the base as well.
Start with a completely gutted version and build as the user see's fit completely modular I love the approach myself and it would be a totally workable solution to all things basic and would make it a lot more user friendly but the undertaking of such a task both in time and monetary tolls is fairly extensive if my estimations are correct but at the same time it would greatly improve the way things are done in the long run and be a worthwhile investment but surely I wouldn't expect this to happen overnight it would be an evolution rather than an upgrade thus taking time but for the moment you have options that can run the latest iteration of basic on all devices and still maintain stability for as long as a hardware limitation dependent on flash size does not cause issue. The base version would be the version that one would end up with as a result in the end even at current.
But if I am understanding correct what you want is a method of automated build so a user can define what is pertinent to their needs rather than the community or the developer. A method where you can visit a web page start with a fully stripped version and add things little by little to fit the needs and size of your module which eliminates any politics from decision making on what to keep and what gets thrown out hrmmm this is kind of what I had suspected originally.
It is possible this would have the negative effect from increasing the size of the firmware to make modular things possible adding bloat possibly and putting a small dent in the speed of operation as well I really cant say for sure maybe the opposite is true and it will make everything more efficient.
Elegant solution yes plausible solution yes but it is also a very large undertaking for a single person. And their may be costs incurred not only in time but also in monetary that will end this solution before it begins. Other things such as lack of knowledge on how to approach such a problem as it would require a fairly wide variety of programming knowledge to arrive at the end solution as well so being competent and efficient with a variety of programming to arrive with a clean end solution may also be part of the limiting factor. I know I personally am lacking in my ability to do so and believe many of us are this would require a team effort to be done in any reasonable time frame I would assume. Folks that can talk things out who are experts in each field would make such a transition a lot more smoother. It seems you have some experience in building why not reach for the next step and take on learning how to make this possible and contribute some time to helping development in this direction?
I believe you are capable as any bugs if you are modifying the IR branch or maybe their is more of a leap? What is the limiting factor to having you help make this a possibility? I love the idea and would like to see it too, but maybe the same factors that limit you from aiding in such a solution are the same limiting factors for others. It is important to determine these all of the things stated if we were to get serious with such a project and I really do believe a little help would go a long way. As great as basic is I am a bit confused as to why more developers have not jumped in to coordinate with mmiscool and help this thing along. I have tried to help not knowing C code was somewhat successful through deduction to arrive at helping find a bug that led to the html bug fix a rather annoying method I agree with mmiscool on that but a solution none the less was born out of this I will continue to further my studies and maybe some point down the path I take I too can help contribute to such an end goal. I am aware of other limiting factors such as little or no use of arduino or any mcu and a general over all lack of programming knowledge in any specific language I have to read and test repetitively before arriving at a workable solution. Some things that are possible I cannot envision how to make possible with the available functions. But talking it out with people has slowly but surely given minor improvements to my understanding doing in general has also helped.
Understand the end goal and then understand what is involved to make it a reality what steps need to be taken, what tools will be needed, what knowlege will be needed, is it practical, how can it be achieved. Just like any other goal we should ask questions and do so putting ourselves in the shoes of the developer and asking the questions I did. Actually there is likely more questions. It is a possible solution in the sense that it CAN be done as their is an example of it. However in order for it to be actualized we need to understand the scope of the requirements to make it a reality.