How to get the best out of this forum


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


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


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.

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

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 </> 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 </> 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

void loop() {
  for (byte x = 0; x < 2; x++) {

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); // <---- There’s a checkbox

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.

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 ‘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.

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


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.


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

Thank you.

How to get the best from this forum feedback and comments
Question [Heating Pad]
Object measurements
Receive data from Arduino in Python
Bluetooth + Serial Monitor = Trouble?
Error: 'init' is not a member of 'U8GLIB'
Automatic Chicken Feeder
MPR 121 for Daisy Seed, Sensor not found
How to add bus in arduino
Oled display stuck with logo
Concatenate Char* and uint64_t
Please corect this code
How to get the best out of this forum (short version)
Expected primary-expression before 'client' with WiFiEspClient client
MPU-6050 calibrating problem
detachInterrupt() not working?!
Dual H-Bridge L293D and 90 rmp 12V motor
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
Compass and GPS fail
Requesting for help in my program ,pleas help me out
How to add ON/OFF button in blynk
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to get the best out of this forum
How to use this forum - please read.
Can Somone Help Me Please!
Double run setup
What is the best way to snub a bipolar stepper motor coil
Arduino quiz with LCD
Arduino uno Loadcell "if statements error"
Why aren't my servos moving?
Arduino pozyx multitag positioning
Add arduino read data from sensors
Arduino RPM Light using OBD2
Stepper motor random direction change
I2c master and slave in the same board
DRV8825 arduino
RC Kart Using MDDS30 and Arduino Uno V3
ESP8266 D1 Wifi board, can't find the port on MAC OS
Arduino e workshop4
Redefinition of 'RF24 radio' error message on compilation
Sensing the signal and put delay based on RPM and then OUTPUT
List the forum sub-categories as an actual list
Seven segment LED for cathode
DS2413 1-Wire 2 GPIO drive relay
Serial moniter not working with hc-05 bluetooth module
Seven segment LED for cathode
Duetimer incompatible with FastLED?
12V Relay Drive circuits conflicting with AnalogRead of Battery
Seven segment LED for cathode
Jai fait ce code pour commander un palan electrique a distance a laide du app inventor et arduino .. ma seul probleme c est que le module relais ne fonctionne pas bien avec le programme
Seven segment LED for cathode
Create array and how to pass to a routine
Need help with schoolwork, appreciated
I have a problem with programming tilt sensor
Using SPI for IO Expander
2 Ultrasonic Code with if
How do I reset variable after song finishes playing?
Having trouble getting two wheels to work
Relay does not switch off although Arduino sends the signal
Code for random alarm in 6 hour shift Arduino uno
How to control pump relais via mqtt and sensor data
Ironman Helmet with servo and sound help
Determine the average of several sensors
Help with program, can't figure it out!
Display stays blank after uploading
Encoder on PIN A2-A3
Interrupt on nano and detach
When Yelling at The Sound Sensor the Speaker Plays?
I can't solve this error in verification mode
Help with PID Control Project
Servo motor won't work right
LED's not lighting up unless bridged
Problem with Serial.print frozen my sketch
Using Nextion displays with Arduino
7 Segment Display not working right
BLDC Motor Controller with Arduino, keeps broken
Relay resets the atmega328p
I need help with my lcd selector system!
Looking for help on a stepper sketch
Pause code while keypad value not given
Expected ',' or ';' before 'LiquidCrystal'
Controlling 8 BLDC motor with arduino
Adding rotary dip switches
The system is getting stuck after a while
Error Compilling Screen tft LCD 2.8 + Sensor
Uint8_t trigger meaning
My LED strip doesn't want to light up
How to make 2 pins do the same thing?
Serial communication problems 2
10 button controls
NRF24 and arduino 2560
Freenove Tracking Line
Raspbian+arduino 1.8.13+nano don't work
Expected’,‘or’,‘before long’ error
Expanded scale on a LCD bargraph?
Error message byte 2
DT6-1A-01 I2C Arduino UNO code (seat occupancy detection)
Common ground and why you need one
CoinSlot and CoinHopper , COIN CHANGER CODE
Arduino mega to esp8266 communication via TX RX
Senior project assistance
LCD screen for Arduino UNO onlys shows a row of white boxes on top row
Cd player controller
Cd player controller
Probleme envoie d'une requete Arduino shield ethernet
Capteur de distance bouton actif ou inactif
How to add ON/OFF button in blynk
SD data logger fails
Arduino& python serial
Timing with using millis()
Need Intro Project Help!
'microsecondsToCentimeters' was not declared in this scope
Issues using Arduino micro to control volume keys
How to get the best out of this forum
Servo control on ESP32 S2
How to get the best out of this forum
Help, running 2 if statement on 1 click
How to Serial Communication
Gardenpump problem - problem solved! Sorry - logic mistake: need to use long int or unsigned int
DF mini player integrating with arduino uno
How to get the best out of this forum
Unable to change ESP32-S2 Power
</> Marlin 2.0 does not compile while I define Display
DHT22 NODEMCU problem uploading
Please corect this code
DHT11 gives only 0% humidity en 0°C
People counter keeps counting
Arduino codings
Sending an int = 1 from quest 2 to an esp32 through Bluetooth serialport is not working
Automatic door handle sanitiser
How to port this to esp32 (Captive Portal)
NAN value a BIG problem
NAN value a BIG problem
NAN value a BIG problem
MAX30100 vs MAX30102 vs MAX30105
Stepper mottor plus ultrasonic
LED crossfade White to Orange
NAN value a BIG problem
Cannot get data from arduino json UDP