How to get the best out of this forum

See also FAQ - Arduino Forum for general rules on forum behavior and etiquette.

Hello,

Welcome to the Arduino Forum.
This guide explains how to get the best out of this forum. Please read and follow the instructions below.

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 posts while we try to get you to tell us what we need in order to help you, which is frustrating for you and frustrating for us.

The people who try to help with your project are volunteers doing this for free in their spare time. If you follow these guidelines it helps us to help you and gets your project working quickly.

Without the correct information, it is difficult or impossible to give you the help you need.

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

Essentials

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

Choose the right category of the Forum

There are lots of different categories to choose from. Choosing the right one is important because not everyone who might be able to help you reads every category. Some questions might reasonably fit in to more than one category but please do not post the same question in two or more different categories. Also, if you have more than one question but the questions are all about the same project then it is usually preferable to keep the questions in one topic. Keeping them together helps get better answers as the answer to one provides the context for the next. Creating the same question multiple times or creating lots of different questions about the same project is against the forum rules and will incur the wrath of the moderators when they see it.

Hardware

We need to know exactly what hardware you have. We need to know what Arduino board (or other brand, such as ESP32) you are using and exactly what other hardware you are connecting it to. The more details we have, the easier it is to help.

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.

Code problems

We can only find problems in code we can see. Please supply your complete code in code tags <CODE/> 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 (<CODE/>) 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 120000 characters for a post. 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.

Schematics or circuit diagrams

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 of your project including how to upload an image.

General

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 due to 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.

Research

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 Center to try and find an answer to your question. You can also use your favorite search engine to find answers.

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, then have a read of this, admittedly rather long, tutorial How To Ask Questions The Smart Way and use the principles explained there to ask a really effective question here.

AI generated content

Artificial intelligence (AI) services such as ChatGPT are able to generate Arduino project code and answers for Arduino-related questions. As with other non-authoritative sources of information found on the Internet, this should be used with caution.

Questions about information provided by an AI

If you would like to ask for assistance with AI-generated code or information here on the forum, please clearly identify the source.

Using AI-generated content to provide assistance

When providing assistance, copy/pasting content without giving any thought to the information is irresponsible, regardless of the source of that information.

Please carefully evaluate AI-generated content for accuracy, relevance, and appropriateness within the context before using it to provide assistance. If you are not able to make such an evaluation, then please don't share the content here on the forum.

About us

Those of us answering questions have a wide variety of backgrounds and electronics knowledge, some through 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 and your project what you tell us. If you tell us your level of experience with electronics or microcontrollers, we can tailor our answer to your level of knowledge. We also don't know if you have problems with English or language or communication in general unless you tell us. We can be sympathetic about things we know about, but if you don't tell us we don't know.

More information

There is more information below.

Making your first post

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

Thank you.


Making your first post

1. Choose the right category

It is important to choose the right category 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 category so please take your time and post in a category related to your question.

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

Please only post in English in the English language categories. If your language is not shown then please use Google Translate and post in an English language category using English.

Forum categories

2. Make a topic

Once you have found the right category you can start your post. Click on New Topic

Starting a new topic

3. Write your post

Enter a title and a description of your problem:

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

For your first two posts, the right hand side of the post composer pane will show a welcome message. Once you have closed that message, you will see a preview of how your post will look once you have submitted it.

4. Publish your topic

When you are happy with your post click on + Create Topic to post it.

That's your first post completed.


Posting code and common code problems

Post all your code

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.

Format your code

Before copying your code for the forum, look in Tools on the menu bar of the Arduino 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.

Use code tags

Code should be be in code tags, these are the <CODE/> in the tool bar above where you edit your post, and correctly formatted, like this:

char message[][4] = { "hi", "bye" };

void setup() {
  //Serial.begin() configures the serial port
  Serial.begin(9600);
}

void loop() {
  for (byte x = 0; x < 2; x++) {
    Serial.println(message[x]);
    delay(1000);
  }
}

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


char message[][4] = { "hi", "bye" }; // <---- There's a box now

void setup() {
//Serial.begin() configures the serial port // <---- Some strange link
Serial.begin(9600); // <---- Indentation lost
}

void loop() {
for (byte x = 0; x < 2; x++) {
Serial.println(message[x]); // <---- There's a checkbox
delay(1000);
}
}


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 <CODE/>.
  • 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.

Minimal, Reproducible Example

The forum has a limit of 120000 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 Arduino 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. 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. 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 become a lot easier to see.

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.

Only ask your question once, in one category of the forum

We know you are anxious to get an answer to your problem, but re-posting the same question to multiple categories 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. It will be noticed.

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

Start a new topic; don't hijack an existing topic

You might see an existing topic related to what 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 topic isn't what you were looking for and you should create a new topic. There's no harm including a link back to the existing discussion if you think there's some relevance.

Don't bump!

Don't bump your topic 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. 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?'.

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.

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 create a topic in Jobs and Paid Consultancy - Arduino Forum 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 Jobs and Paid Consultancy - Arduino Forum. 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.

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.

DON'T SHOUT

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

Homework

We get a lot of questions from students wanting help with their homework. Such questions are generally one of two kinds: Questions by students who are obviously making a real effort but have got stuck; these get helpful answers. 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. 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 :heart:s as well.

It also helps if you click the :ballot_box_with_check: Solution button at the bottom of the reply that answered your question. This will make it easy for helpers to see that it is solved and for others with the same question to find the answer quickly.

Credits

Much of this tutorial has been inspired by or copied from the original forum instructions created by Nick Gammon.
My thanks to Ballscrewbob, Robin2 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.

Feedback

Please provide comments, feedback or suggestions for improvements for these instructions here.

Thank you.

37 Likes