Call for a list of useful programming threads

Good day.

Following on from discussions in this thread I am calling for a list of useful threads (in the Programming section).

A couple of obvious candidates are the existing sticky threads:

Serial Input Basics

Planning and Implementing an Arduino Program

What is Scope?


Please reply to this post suggesting further similar posts that would be useful for quick reference.

They can be compiled into a "master sticky" here, and then the other threads de-stickied, otherwise the number of sticky threads will start to overwhelm the top of this section.

I suggest a heading, link, and brief explanation, eg.


Variable Scope and Lifetime

What is Scope?

A discussion of the use of variables in C++ programs, focussing on their scope and lifetime. Discussions will include local and global variables, and the use of the extern keyword.


We are particularly interested in reference posts - not one which just solve a particular problem for a particular situation.

Other possible topics could be;

  • Programming tips / pitfalls
  • How to get an assembler listing of your code
  • How to use interrupts

I'll throw open for discussion: Should this be limited to on-site posts? (ie. this forum).

There might be posts on other sites (eg. my post about Interrupts) that could appear in the list, even though it is off-site for this forum.

[quote author=Nick Gammon date=1457130565 link=msg=2646843]...

I'll throw open for discussion: Should this be limited to on-site posts? (ie. this forum).

There might be posts on other sites (eg. my post about Interrupts) that could appear in the list, even though it is off-site for this forum.[/quote] I think that it should focus on posts from this forum, but include links to off-site supporting material as well. Topics that originate here will help to insure it is about topics of interest to forum members.

At the risk of being arrogant or self-centred, may I suggest

Several Things at a Time

Planning and Implementing a Program

Python - Arduino demo

which are also already stickies

and

Stepper Motor Basics

I have some others that I may argue for, but I will wait until this is bedded in.

I don't have a problem with links to stuff on other websites as long as it is directly relevant - such as Nick Gammon's Interrupts tutorial

One that comes to mind is PighiXXX's Arduino Connection Diagrams

...R

Nick, I am just repeating a couple of suggestion I made in the Discussion about "What is Scope?" Thread.

I think you should now create the Sticky with the actual links in it so that we can see what the final result will look like. It could just be called "Useful Links". It would be easy to delete it if the concept does not work.

I think it will be very important that only Moderators can add things to the list. There could be another editable Thread called "Suggestions for Useful Links" (not sure if it needs to be a sticky - but maybe this sticky could morph into it.

I don't think there is anything to be gained by distinquishing "programming" links from other useful links. Everything should go in the one list. There could be a "Useful Links" sticky at the top of every other section which are just links to the list in this section.

Thanks for taking the initiative.

...R

I agree that additions to the thread should be vested in the moderators. This should keep the thread conservatively edited, and especially added to.

Robin, I also agree with Several Things at a Time , Planning and Implementing a Program , and Stepper Motor Basics , but I feel that Python - Arduino demo lacks grounding Perhaps a preliminary post or thread that explains the basic role, need and advantage of a Python program is in order. But it doesn't seem to come up to the level of the other threads you listed, yet.

On the other hand, it seems to me that a 'ground-level' tutorial for Processing might be well received ...

(If you make the case that Python can fulfill Processing's role, I would be all fangs. er ... ears!)

The Python - Arduino demo is already a sticky.

It was not written to promote Python - simply to give a working example of PC-Arduino communications. I don't see that it needs any further "grounding".

By all means feel free to provide an equivalent using Processing.

I refuse to try Processing because they deliberately decided to remove the ability to use an external text editor.

My guess is that Python is more widespread than Processing.

...R

Robin2:
The Python - Arduino demo is already a sticky.

It was not written to promote Python - simply to give a working example of PC-Arduino communications. I don’t see that it needs any further “grounding”.

By all means feel free to provide an equivalent using Processing.

I refuse to try Processing because they deliberately decided to remove the ability to use an external text editor.

My guess is that Python is more widespread than Processing.

…R

Yep. Saw it and read it. _ thank you for posting it!

I probably came off too oppositional in my last post. I am not against including your Python thread. I just don’t think the case for it’s inclusion is as strong as the other threads you mentioned.

I wish I could post a proper Processing thread, but I will have to appeal to others for that. I don’t know, use or like Processing. Maybe it’s just the name, but I find that I prefer self contained devices, and do not find communicating with computer(s) to be that compelling (again, this is just me.) I would prefer to learn Python.

Your demonstrations of a time-based scheduler (many things) and over-all structure (planning and implementing), stand out in the Arduino world. It’s tough to rise to their level. I want a Python demo that does that. Is your’s that thread? I’m certainly not the decider about that, but I’m sure others will chime in. :-[ :-* :’(

But Many Things and Planning for sure.

____________________________________
(does that set the bar too high?)

How about "RTC basics"? Supposing that I wanted to create a thread, what would I do with it?

If we emphasize 'Basics', gimme a couple weeks ... or less.

ChrisTenone: I would prefer to learn Python.

That says all that I reckon is needed :)

...R

Robin2: That says all that I reckon is needed :)

...R

np (no prob)

LarryD: If locked, what is recommended process they follow to get help?

Who keep this up to date?

In my opinion a person with a question should start his/her own Thread. It would not be practical to provide endless advice on any of those "tutorial" Threads even if they were not locked.

In my opinion the Moderators should keep it up to date. I believe all that will require is adding another link to the page.


@LarryD, As a separate issue, do you have links to suitable tutorials for the subjects you have mentioned?

I don't believe the purpose of the proposed list (or this Thread) is to make a demand for a Tutorial to be written.

...R

LarryD's list points out several things we need to consider. First, some of the topics are already touched on if you do a search on this site. I'd add, for example, Stepper Motors and Encoders. However, both of those topics already exist as searchable topics. What I'd like to see is a list like Larry's, but with a link to a subheadings file that holds subheading links like you often see on document web sites. For example, A file with very broad topics like Larry's. Click on the "Encoders" link and you go to another file that has something like:

Introduction Mechanical Encoders Debouncing Software Hardware Examples Optical Encoders Examples Manual Machine-driven

The list above could then have more links that send you to previous-posted replies, web sites with good content, etc. It would be easier to expand and grow this organizational list than the "main" list itself.

The problem today is not finding information, it's finding the information that applies to your specific situation. That is, winnowing the wheat from the chaff.

Part of the problem here will be who is responsible for maintaining the list. The obvious answer is the moderators, but I can't imagine the time they spend now, let along placing something like this on them. I'm not sure what the viable solution is.

LarryD: I can also erase my post if need be.

I certainly had no intention that you should erase your post. It has lots of useful ideas.

econjack: However, both of those topics already exist as searchable topics.

My understanding is that this Thread arose because some people (including me) felt that there are getting to be too many stickies which mean you have to scroll well down the page to get to the new questions.

And I thought the suggestion was to put links to the stickies in a separate "Useful Links" sticky. Then the existing stickies could be released. A system like that would not impose any additional load on the Moderators after the initial setup.

I do appreciate the value of the sort of system @econjack has proposed but, as he said himself, it would entail a lot of work by somebody and I can't see it happening. I am certainly not volunteering to do it. I must also say I am doubtful if the people who use the Forum would actually use it. Those with the initiative to do so can probably find all they want with Google. There are others who seem quite incapable of doing any research.

I would not like to see the introduction of the simple system deferred while we discuss a more complex system. In any case the two ideas are not mutually exclusive. It would be great to have both.

...R

You're probably right, Robin. Perhaps a "Useful Stickies" at the top and be done with it.

aarg: How about "RTC basics"? Supposing that I wanted to create a thread, what would I do with it?

To answer this, and other comments, I would envisage:

  • Existing threads which are nominated here would be in the list if we reach reasonable agreement.
  • The list would be locked and thus only moderators could amend it.
  • The actual tutorials would not necessarily be locked (although they do tend to drift off into multiple pages if they are not).
  • New tutorials / references pages would be welcome to be written. In fact knowing they would be "featured" might provide an incentive.
  • I don't think the moderator load would be that great - occasionally changing the list would probably be quicker than looking up existing answer for newbies.
  • We need a balance between covering too little, and having so much that the list looks exhaustingly long.

To save multiple edits and revisions, if the authors of existing stickies, such as Robin2, would provide a summary (executive overview, if you like) of what their post is about, that could be part of the sticky.

BTW - my only problem with having things like hardware here is that it isn't relevant to this part of the forum, and having a list which can be read in multiple parts of the forum isn't easy to do. I did it in the "How to use this forum" sticky, by having a master post, and then other "pointer" posts which point you to the master. I used my knowledge of pointers to do this. ;)

If you have too many links you have to click through to get actual information, you will shed people on the way as they lose interest.

econjack: The problem today is not finding information, it's finding the information that applies to your specific situation. That is, winnowing the wheat from the chaff.

I agree , i normally use google with arduino in the search, i often find myself back on this forum, why can the search not be fixed ?

aarg: How about "RTC basics"? Supposing that I wanted to create a thread, what would I do with it?

Write one and see if others ask for it to be included.

The ones included here so far are on merit, they read well.

I would like to see also a short one on naming conventions, this may make other peoples posted code easier to read.

Also Library construction and use.

I realise that this is not a how to programme in C compendium but there are a lot of new programmers like myself who struggle with some basic stuff.

Thread started: Useful links - check here for reference posts / tutorials

Looks like a good start Nick.

I think your switches tutorial might fit under hardware. http://www.gammon.com.au/forum/?id=11955

Don't be shy, there are other topics you have written I think fit the bill also.

Edit Maybe this: External article, state matchine http://www.thebox.myzen.co.uk/Tutorial/State_Machine.html