Decent documentation!

Is there any true documentation for Arduino s/w out there? The so-called documentation on the site is rather sparse- it does not even mention the 'struct' data type!

Welcome to the forum

The Arduino documentation is just that, ie documentation about the Arduino environment. Do you expect it to document all of C and C++ ?

2 Likes

It is harder to get to on the Main Site than before. Now there is a ton of what you don't want to get through before what is useful to you. It's like kids from Microsoft School invaded around 2018 and forked up simple and direct into near uselessness.

Do you know where the Arduino Reference Page is? It still has useful links to the Arduino Libraries.

Search for AVR LibC to find the Reference on the Standard Libraries like stdio used by the Arduino IDE.

It used to be easier. I quit providing links after it appeared that there was someone in Italy whose job it was to make them useless. This forum wastes so much screen space perhaps because the old format did not.

1 Like

At the very least, I expect the Reference section to include struct in the data types! And the struct pointer symbol is also not included. Why bother with a Reference section if it is not complete?
Further than that, yes; I would like a full reference or at least any deviations from full C++ to be documented. It seems unlikely that a UNO could support the full weight of the language- memory considerations alone.
Libraries are also vague in the extreme- you have to deduce from examples. What would be wrong with a full list of function calls and accessible variables?

Have a dig around here CPLUSPLUS

2 Likes

If you went down that route then the Arduino reference would end up being a C/C++ reference. I would go as far as saying that the Arduino reference should only describe the Arduino specific extensions/omissions to C/C++ and linking to general references to C/C++

As to libraries, then I agree that documentation is often sparse, but you should blame the library authors for that, not Arduino

1 Like

Join the Band. There's no union card either.

It's all Beginner Level in Arduino School.
The forum is a kind of school yard where they learn what some caution "that's not for beginners!" when pointers or bit logic gets mentioned let alone that Santa Ain't Real. Safe Spaces, Comrade!

I think that you kind-of misunderstand the purpose of Arduino; it's a environment for beginners and for them any advanced stuff is not needed; so the reference section does not cover that.

Not blaming anyone. Just feel that calling something a Reference with omissions and no indication that it is not complete helps no-one. It all adds to the 'amateur' feel- cut and paste from examples until it works...

So, a walled garden where there is a lot of functionality that is kept secret... They may not be beginners forever!

Yes- I met someone who went on a week-long course on C, and they managed to avoid indirection altogether. That takes skill. Perhaps.

The C Programming Language - concise and well written by inventor of the language with many good examples of language features

2 Likes

I agree. But by that time I think that they will have found other references that will cover the concepts of structs, classes, function pointers and whatever.

I am reasonably fluent in C++, at least in a PC environment. I have used other embedded processors that had limited C++ ability, but they always specified the limitations. Mainly memory space based. That seems a reasonable expectation for Arduino.

Sounds like you might be in a good position to offer to improve the current documentation.

6 Likes

since Arduino uses the C++ GNU compiler, there's no need for any Arduino link to repeat what other books/links already do. The Refence page describes utilities unique to the Arduino IDE, not language features.

Explainer: What is Arduino

Thanks! I am familiar with the GNU compiler (used it for 20 years or so). It would have helped if the Arduino reference page stated that...
Whilst the reference page does list some unique functions, most of it is a list of C elements. It is just not complete. Or say that.

You are forgetting the Audience that the Reference pages are aimed at. What good would it be to a beginner to know that the GNU compiler was being used ? Do all "Arduino" boards use the GNU compiler ?

The Reference page does not say what audience it is aimed at. It just claims to be the Reference. If it is truncated, or a precis, it would be nice if it said so. Remember, users are only a beginner for a while. The clue is in the name.
Arduino modules are not just for beginners to play with. At the price, they can be useful for a range of uses- and the range of libraries are great for fast development. However, the lack of documentation is a real barrier to knowing limitations and producing solid code.

most? what do you mean by C "element"?

anyone that wants to use an Arduino. how else would kyou know what arduino specific functtions there are

i believe yes, because those Aruino utilities are written in c and need to be compiled for each board