Go Down

Topic: How to get the best out of this forum (full version) (Read 6945 times) previous topic - next topic


Oct 25, 2020, 06:17 pm Last Edit: Nov 16, 2020, 02:49 pm by PerryBebbington

Welcome to the Arduino forum. This version of the forum instructions builds on how to get the most out of this forum (short version) and provides more detail to help you get the best out of this forum and your project.

Those of us who answer questions on here want to help you but to do that we need certain information. Without the correct information it is difficult or impossible to give you the help and advice you need. The advice here is to help you provide us with enough information and detail about your project and your problem to enable us to give you a helpful, useful and most importantly friendly answer.

Being new here you might think this is having rules for the sake of rules, but that is not the case. If you don't follow the guidelines all that happens is there is a long exchange of message while we try to get you to tell us what we need in order to help you, this is frustrating for you and frustrating for us.

Preferred language
If English is not your preferred language there are sections in other languages

Below are some things we need which are often missed by people posting for the first time

Choose the right section of the Forum
There are lots of different sections to choose from. Choosing the right one is important because not everyone who might be able to help you reads every section. Some questions might reasonably fit in to more than one section but please do not post the same question in 2 or more different sections. This just wastes your time and ours as different people will be providing different answers in different places. For this reason it is against the forum rules and will incur the wrath of the moderators when they see it.

We need to know exactly what hardware you have. You can get support here for both genuine Arduino boards and for clones and other related hardware and boards such as ESP32.

If you are using something that is a non-Arduino product then it helps to have a link to its technical data sheet or a link to where you bought it. Don't assume we know all about whatever it is you have, there are far more things you can get help with than any one person could possibly know all about. The more details we have the easier it is to help.

Code problems:
We can only find problems in code we can see.  Please supply your complete code in code tags </> More about posting code and using code tags.. If you are using Arduino Create then you can post a link to your project (but keep in mind that not everyone uses Arduino Create).

Posting a snippet of code is generally useless. The problem is usually in another part of the program.

Before posting code please use Tools / auto format at the top of the IDE. It makes the code much easier to read and you will probably find it very helpful yourself. Once you've done that use edit / copy for forum.

Always use  code tags (</>) when posting code or compiler error messages.
Using code tags makes the code easier to read and easy to copy. Not using code tags means some of the code gets displayed with smiley faces and other stuff that should not be there. Be aware that there is a limit of 9000 characters for a post and if your code takes you above this limit then you can add your .ino file as an attachment. However it will be much easier to help you if you can write a short program that illustrates the problem you are having and post that.

Please don't post an image of code instead of the code itself, or an image of error messages instead of the error messages themselves.

It is very important to be clear about what is expected from code and what happens instead. Code ALWAYS works, that is the nature of code. Whether it does what you expect is a different thing altogether. We need to know what you expected the code to do and what happened instead.
More about posting code and common code problems.

The language of electronics is a schematic or circuit diagram. Long descriptions of what is connected to what are generally useless. A schematic is a drawing of what connects to what, please make one and photograph it. We don't mind if it's hand drawn, scruffy and does not use the correct symbols. Please don't post Fritzing diagrams. They may look nice but they are very easy to misinterpret

If you want to use computer software to create a schematic then you might like to try either Eagle or KiCad.
More about creating a schematic for your project.

Please try to avoid posting links to other sites where code or photos or schematics are hosted. Most of us will not follow such links, partly because of the risk that they hold malware or other unwanted content, partly to maintain everything on this site for the benefit of future users looking for an answer to a similar question and partly because we feel that if you want our help you should provide everything we need on this site not expect us to go hunting elsewhere for it.

TYPING IN ALL UPPER CASE is considered to be SHOUTING. It won't get you an answer any quicker, it will just annoy people.

Please do some research before posting. Most beginner problems have already been dealt with on the Forum so please use the forum search tool and the Arduino Help Centre to try and find an answer to your question. You can also use your favourite search engine to find answers too.

Be specific:
Please ask a specific question about the problem you are having so we can provide a clear, specific answer.

If you don't understand some of the advice that you get, please say so. Then we can explain in more detail.
If you want to know more about how to ask a question that is likely to get a really helpful answer have a read of this, admittedly rather long, tutorial How to ask questions the smart way and use the principals explained there to ask a really effective question here.

About us:
Those of us answering questions have a wide variety of backgrounds and electronics knowledge, some though working in electronics or computing, some through electronics or computing as a hobby, some both. Most of us are not trained as teachers so probably miss the finer points of how to teach and explain things effectively. We are not, with the odd exception, employees or representatives of Arduino.
Please also remember we are volunteers doing this for free in our spare time and are more inclined to help people who make it easy for us to provide help by providing the information we ask for.

About you:
We only know about you what you tell us; we need to know your level of experience with electronics micro-controllers and computer, if we don't know then we can't tailor our answer to your level of knowledge. We also don't know if you have problems with English or language or communications in general unless you tell us. We can be sympathetic about problems we know about, but if you don't tell us we don't know.

More information:
There is more information in the replies below.

Making your first post
Now please go to the forum index, select the right section and make your first post.

Thank you.

Much of this tutorial has been inspired by or copied from the original forum instructions created by Nick Gammon.
My thanks to Ballscrewbob, Robin 2 and Idahowalker all of whom have provided a great deal of support and feedback, without which this tutorial would contain far more errors than it does and would be a lot less clear than it is.


Oct 25, 2020, 06:28 pm Last Edit: Nov 02, 2020, 09:44 pm by PerryBebbington
Making your first post

Choosing the right section
It is important to choose the right section and the right language so that the people most likely to be able to help you will see your question. Not everyone here reads questions in every section so please take your time and post in a section related to your question. If English is not your preferred language please post in the section for your language. If your language is not shown the please use Google translate and post in the English section in English.

There are English language sections for a variety of possible kinds of problems.
Please only post in English in the English language sections.

If English is not your preferred language then scroll down and choose from one of the other language sections.

Making a post

Once you have found the right section you can start your post. Click on NEW TOPIC

And enter a subject and a description of your problem

Don't forget to include code in code tags </> and a schematic of your circuit.

You can use the PREVIEW button to check you are happy with your post before actually posting or the SAVE DRAFT button to save and return to it later.
When you are happy with your post click on POST to post it.

That's your first post completed.


Oct 25, 2020, 07:04 pm Last Edit: Nov 17, 2020, 01:24 pm by PerryBebbington
Posting code and common code problems
Without your code, all your code, we cannot provide any answers about your code, other than the most vague and probably unhelpful of answers. One of the frustrating things about writing code is that a mistake in one place can produce an error in what seems like a completely different, unrelated place. This is a nightmare if you are new to writing code, but often easy to spot for anyone who is experienced in looking for such problems. It is for this reason we want all your code, not just the bit with the error or the bit you think is causing the problem.

Code should be be in code tags, these are the </> in the tool bar above where you edit your post, and correctly formatted, like this:
Code: [Select]
int a = 3;
void setup() {
  // put your setup code here, to run once:

void loop() {
  // put your main code here, to run repeatedly:
  if (a < 8) {
  // Do stuff

If you don't use code tags then it ends up like this:

int a = 3;
void setup() {
// put your setup code here, to run once:

void loop() {
// put your main code here, to run repeatedly:
if (a < 8)// <-----------< Where did he come from?
// Do stuff

Before copying your code for the forum look in Tools on the menu bar of the IDE and select auto format. This will format the code correctly. If you prefer Ctrl+T will do the same thing. Once formatted you can copy and paste your code with code tags:

There's more than one way to add code tags, you can:
  • Paste your code in the box where you are editing your post, select all the code and click on </>.
  • In the Arduino IDE under the 'edit' menu there is 'copy for forum', this puts your code on the clipboard with code tags added ready to paste into your question.

The forum has a limit of 9000 characters per post, which means that you can't post a program longer than this directly. In this case you can attach the ino file to your post or, if you are using Arduino Create, you can post a link to your project.

However, consider that the longer your program the harder it is for anyone to understand it and help you, for this reason consider writing a short program that illustrates the problem and post or link to that instead. You are more likely to get help with a short, easy to understand program than with a long, complicated one. For more about this see How to create a Minimal, Reproducible Example.

Error messages
When you compile your code the IDE will check for certain problems with the code and generate error messages to indicate any problems it finds. If this happens then we need to see the error messages as well as the complete code, as the error messages offer clues to what the problem is, often the error messages indicate exactly what the problem is if you understand how to read them. If you have error messages then in the bottom right hand corner of the IDE there will be a button 'Copy error messages'. Click the button and paste the result into your question, don't forget to add the code tags.

Common mistakes with code and posting code

Posting a screenshot of code or error messages. A screenshot is useless, with a screenshot it is impossible for us to paste the code into the IDE and test it. Please post your code and error messages, not an image of them.

Only posting the part of the code you think has the problem. Often code problems are not in the place they might obviously seem to be, often a mistake in one place shows up as a problem elsewhere. The only way to see this is to see all the code. Also be aware that some mistakes cause a cascade of multiple errors, if this happens deal with the first one and see if the other disappear.

It is essential that every opening bracket has a corresponding closing bracket so you should check that every { has a corresponding }, every ( has a corresponding ) and every [ has a corresponding ] before you post your code. In the IDE if you place your cursor next to any bracket of any kind the IDE will draw a rectangle round its partner, if there's no corresponding bracket, or there is a corresponding bracket but it's not the one you expected then you have found your problem. Also, if you use Auto Format (Tools > Auto Format or Ctrl-T) your code will be tidied up and missing brackets of all kinds should be come a lot easier to see.


Oct 25, 2020, 07:23 pm Last Edit: Nov 26, 2020, 08:15 pm by PerryBebbington
Forum rules and netiquette

The instructions above are to help you make a successful post, 'successful' meaning you get a useful and satisfactory answer to your question. In order to keep the forum working smoothly there are some rules that apply to everyone, breaches of which can lead to suspension or being removed from the forum altogether. Here are the forum rules.

Only ask your question once, in one section of the forum
We know you are anxious to get an answer to your problem, but re-posting the same question to multiple sections of the forum causes duplicate effort, and divides the focus on your problem. You'll get a better answer if everyone can discuss it in one place. Asking the same question multiple times is called cross-posting. Cross-posting is very annoying to people trying to help you. If you cross post the moderators will delete your extra posts, and you will get a warning. Save all the hassle, and just post the question once and be sure to post in a relevant section of the forum. It will be noticed.

If you aren't sure what section to post in (Programming Questions, Electronics, etc.) make a guess. Don't cross post "just in case".

Start a new question, don't hijack an existing question
You might see an existing question similar to the one you want to ask and think about tagging your question on the end. Please don't do this; if the existing question is just what you were looking for and the answer helps you then there is no need, otherwise the existing question isn't what you were looking for and you should post a new question. There's no harm including a link back to the existing discussion if you think there's some relevance and there's no harm in including some thanks at the end of the existing discussion if you find it helps you. Don't forget to give some Karma too.

Don't bump!
Don't bump your thread after an hour. Because of the different time-zones the person who knows the answer may be asleep, or away for the day or maybe on holiday (we do have holidays!). Maybe after a couple of days but even then think about whether you have provided enough information and asked a question that can be answered. You could even ask us 'what else can I provide in order to get some help?'.

People are trying to help
If someone asks for more details, they are probably trying to visualise what you are attempting to do. Don't fob them off with responses like "that's irrelevant". Do remember that just as you might feel you don't have to provide this or that piece of information we do not have to provide help. We like to see schematics and reasonable quality photos of your project, as well as your properly posted code. The more detail about your project, the better the help you will get.

Getting help from a particular person
You might have read answers from a particular person and think that person would be the best person to help you. You can bring your question to someone's attention by using @ followed by their username, for example @username. If you do this they will get a notification. Please do not send a PM (private message) to someone you don't know asking a question; most will ignore you, some will reply suggesting you post on the forum.

Commercial projects
One thing really guaranteed to ensure you don't get help is to tell us you can't provide all the information because it is commercially confidential. If it's commercially confidential then you should consider paying someone to help you and ensure a confidentiality agreement is in place with them. If you want help with a commercial project then post in 'gigs and collaborations' and indicate what your terms are, including how much your budget is. This is a hobby forum, not a place for free help with commercial projects.

Ready written code
Ready written code for every possible application does not exist, including for your application. Asking for the code for what you are trying to do will not get you anywhere, other than possibly some annoyed replies. You either have to write your own, which we are here to help with when you get stuck, or you can pay for someone else to write it for you. If you want someone to write code for you the place to ask is 'gigs and collaborations'. If you neither want to learn to write code yourself nor pay someone else to do it for you then this is probably not the right place for you.

Keep your signature short
A signature should be preferably one line, and relevant. A signature that links to some unrelated-looking site (like football competitions) is likely to get you banned as a spammer.

Be polite
A little courtesy and politeness goes a long way. Even if you think a question has been asked before, or you don't see the point of it, try to answer politely. Remember a lot of the posters with high post counts see the same questions every day, and they may get a bit terse if you appear not to have tried very hard to help yourself in the first place. You will find that if you respond in a friendly way, people will stick with you and you will almost certainly get your problem solved. Personal insults, rudeness and offensive language are not acceptable and will result in a ban. Stick to the topic.

We get a lot of questions from students wanting help with their homework. Such questions are generally one of 2 kinds: Questions by students who are obviously making a real effort but have got stuck; these get helpful answers, and questions from students who are obviously not making any effort at all and just want someone to do their homework for them; these usually get a lecture about students having to do their own homework and make some effort and not expecting the rest of the world to do everything for them. By all means post homework questions when you are stuck, but make sure you've put some effort in first.

Thank people who help you
Those of us who answer questions on here are doing so for free, out of community spirit, please thank people who provide helpful answers and don't forget to give Karma as well.

It also helps if you go back to your original post and add something like [resolved] to the title when you have got an answer you are happy with.

Much of the advice about forum rules has been taken almost word for word from Nick Gammon's original forum instructions.

Please provide any feedback or comments here

Go Up