Everyone who programs microcontrollers will sooner or later run into some problems along the way. More experienced people will first try to find a solution on their own. What if you’re a beginner and you don’t know what to do with your problem? It’s best to ask colleagues with more experience. How do you ask for help properly to increase your chances of success? I’ll give you a few tips.

It doesn’t work. Help!

Most often the problem is incorrect operation—whether of the program, some component, or a complete lack of operation. From my observations, it seems that beginners love to copy various tutorials from the internet without thinking. If one doesn’t work, I’ll try another. If not the second, then the third, and so on.

Without experience, we often don’t know why those tutorials don’t work for us. We aren’t able to assess whether the mistake is on the author’s side or ours. I’d boldly say that more often the mistake is on the side of the person reproducing the tutorial.

However, sometimes it may happen that the tutorial is outdated. Software and even libraries are constantly changing. The author of such a tutorial may not be able to maintain it for every new release of the libraries. It’s good if the tutorial provides the library versions. I do this with every described component.

What if, after searching through a few tutorials, we still haven’t achieved the expected result?

Time to ask for help

There comes a moment when you need to ask for help. Where should you ask?

You can use internet forums. They used to be a very popular place for discussion and still have many supporters. Every problem has its own separate topic, so it’s easy to search, ask, and help others. Before you start your own thread, you can quickly search to see if someone hasn’t hit a similar wall. I often browse forums myself, but unfortunately I don’t participate in them.

However, the form of an internet forum doesn’t quite fit today’s world. Facebook  and other Social Media have accustomed us to asking a question quickly and getting a quick answer. You could classify this as so-called instant gratification, which is incredibly addictive for humans. We need everything here and now. There’s no time to search through dozens of topics on a forum.

We ask questions quickly, without doing our own research, expecting immediate answers/help. This has its advantages, because if someone knows the answer, they can reply right away and the problem is gone. However, certain conditions must be met, which we forget about in this rush, thus lowering our chances of getting help.

What should you include in such a request for help on Social Media? I’ll list a few that I consider the most important.

Write what your problem is – RIGHT AWAY

I often see people who want to ask for help but don’t say what problem they have. Imagine that in our Facebook group SMT32 Polska someone asks:

Has anyone programmed the STM32F103C8T6?

or

Has anyone used the DS18B20 sensor?

Believe me, I see posts like this often in various Facebook groups. Something gets to me when I see this kind of “poke” for help.

What does this question tell us? Basically nothing specific. Maybe someone is gathering data for their master’s thesis about how many people in a given group wrote software for these chips?

Usually it turns out that it’s exactly this kind of “poke.” What kind of answer can they expect under such a question? Most often “Yes,” “No,” “Write what your problem is!” Later we hear how bad the Facebook group is because it nitpicks instead of helping.

If someone gets interested and asks what’s going on, only then does the real problem appear in the thicket of comments. That’s already too late! And what if the person who asked had time to respond only then? They might not answer a second time…

Additionally, such a description in a comment is in the wrong place. People scrolling their Facebook feed don’t see the essence of the problem, which is already in the comment, but only the “stupid” question and may skip the post. Facebook also doesn’t always show all comments by default after expanding. 

It ends with the problem description getting lost in a thicket of jokey comments.

Describe what you have on the table

Just writing that you’d like to use a sensor is not enough. We need to know what you have on the other side. There are lots of STMs and other microcontrollers. Some may have hardware or library bugs. It will also be easier to navigate the problem.

Write exactly which microcontroller and which board you are using. Maybe a breadboard? Maybe your own PCB?

Are you programming on registers, Arduino, or with other libraries? These are very useful pieces of information.

Write what is happening

This is probably the most important point and is strongly connected to the next one. Nothing annoys other people more than reading tea leaves. Write clearly what the problem is. A general sentence like

The sensor doesn’t work

is pointless. What doesn’t work about it? Is it not visible on the bus? Does it not return the correct ID? Or maybe there is some communication, but the returned values are wrong?

Such information will immediately guide the potential helper.

Write what you’ve done so far

I often see something like

I connected it and it doesn’t work

What and where did you connect? Write it down, and preferably paste a schematic of how you connect the chip. Often the mistake lies here. Perhaps you’re just missing some pull-up?

More than once it happened that someone with a problem connected to I2C2 while writing code for I2C1 🙂 Make sure you are using the same interface you are connecting to.

Also, when working on a breadboard, we can’t trust it 100%. Maybe some wire isn’t making contact. You must double-check several times that you have connected the circuit before you ask for help.

I’m following a tutorial and it doesn’t work

Which tutorial? Paste a link to the tutorial. Write what the results are. Something must be happening. Maybe there’s a discrepancy only at some step. Or maybe someone knows this tutorial and knows whether it works or doesn’t.

Post your code

The code you use is very helpful. If you can (and often you can), send a piece of code that has the problem. The best would be only the part where you sense a potential bug.

Don’t know where the problem might be? Post the whole project.

Just NOT IN A COMMENT on Facebook, but on Pastebin. The code must be readable to analyze it. Remember that a person who doesn’t know your code needs time to get oriented in it—especially if it’s written carelessly.

No experience? Admit it!

Don’t know what you actually did? Write explicitly that you’re a beginner and you don’t know what’s happening with your circuit.

Then other people will approach you without bitterness. Unfortunately, more experienced people often want everyone to be at their level and treat others accordingly. Writing that you’re a beginner will change their attitude from the very beginning. They’ll be more understanding and calmly explain what you need to check.

If you’re missing some basics – they’ll explain them or point you to the right place.

Summary

I haven’t covered the topic of “how to ask for help” completely. You could write books about it, and still every crisis situation is different.

Asking for help generally comes down to proper communication. A clear, detailed description of the problem and the troubleshooting steps is what increases your chances that someone more experienced will help you.

Respect your time and the time of others. Write immediately and specifically. We live in fast times, so when using fast media, a potential helper doesn’t have time to sit over your post, pulling information out of you by force.

Finally, I wish you as few problems as possible, and if they do appear, that you describe them well 🙂 You will certainly find helpful people in our group STM32 Polska on Facebook.

An example of thanking for help. A colleague communicated very clearly what problem he had and cooperated with many people helping. It really makes you want to help 🙂

Podobne artykuły

.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *