13

Programming is obviously a major part of using an Arduino, and a considerable amount of it is very domain specific (e.g. using particular libraries, or working with particular hardware).

However, I suspect we're likely to see general programming questions coming up as well here (especially from inexperienced hobbyists). For example, we may see questions about general C/C++ syntax, scope, data types, etc..

I think there should be some flexibility to avoid alienating site users. However, we'll presumably need to establish a guideline which indicates what kind of programming questions should be considered off-topic, and potentially better suited to Stack Overflow.

What should that guideline be?

1
  • 1
    A real key to this one will have to be where the relevant expertise is most likely to be found. Forced migration from SO to here just because a tricky general programming or embedded question mentions arduino will be an issue to watch out for. May 1, 2014 at 23:10

9 Answers 9

12

Simple — A "generic programming problem" that does not need an understanding of Arduino hardware or its programming interface to solve belongs on Stack Overflow.

For example, trying to figure out why a programming loop is not terminating would be an issue for Stack Overflow. It doesn't matter if the program just happens to be for an Arduino application; trying to resolve generic issues ("how to program") are outside the scope of this community.

3
  • 2
    I would add to your post that if it's specific about the Arduino libraries (standard or imported) that it should probably be here. You don't need to know much about the Arduino hardware to answer, but it probably would get much better answers than the four views on SO that it would get with that many questions. Feb 20, 2014 at 22:26
  • 3
    After some thought, I respectfuly disagree. Although there is a healthy tendency to avoid overlap between stacks, this is one that our communit would benefit of. It's similar to the overlap between Ar.SE and EE.SE in which an Arduino question with some electronics design can be asked in either stack. For more details, please see my new answer down below: meta.arduino.stackexchange.com/a/161/46
    – Ricardo
    Mar 20, 2014 at 2:49
  • Hi, I don't think such a rule is viable, because people will not know whether their problem is Arduino-related or not. What we realistically can outlaw is questions about code which doesn't run on an Arduino. Jun 18, 2019 at 20:32
12

What I like most about our new Arduino SE network is that we are now free to ask whatever questions about Arduino we want.

I often felt very restrained about asking an Arduino question in EE.SE, fearing that it would be downvoted and closed. I don't feel like that anymore.

So, while I agree with Robert that programming questions may be posted on SO, we should avoid consider Arduino programming questions off-topic here. The OP should be free to choose where to post an Arduino programming question.

Given its high traffic and size, SO may now be the place to post a pure Arduino programming question, if you want an answer quickly. But, in time, I hope we can build enough momentum so that our site is the preferred one for all Arduino questions.

On the other hand, if the question has nothing to do with Arduino (ie. for loops, syntax), then I agree with the OP that we should move it to SO.

Update: After some thought, and a question that's been asked today, I changed my mind and wanted you all to think about it for a bit. Although there is a healthy tendency to avoid overlap between stacks, this is one that our communit would benefit of. It's similar to the overlap between Ar.SE and EE.SE in which an Arduino question with some electronics design can be asked in either stac. For more details, please see my new answer down below.

3
  • I disagree with "never," but I agree with the sentiment. For example: A question saying "I know how to declare an integer with the Arduino, but how do I work with decimal numbers?" or "What's a while loop?" etc. should be off topic here. However, a question about the Serial library for the Arduino should be on topic, IMO.
    – apnorton
    Feb 12, 2014 at 19:31
  • @anorton Agreed. It was indeed too strong. I've replaced "never" by "avoid".
    – Ricardo
    Feb 12, 2014 at 20:40
  • I agree with you, @Ricardo but I think that question that regards aruino specific programming. Such as arduino pre-assembler, library coding principles and such is in the domain of Arduino SE (even when the question is in part about syntax)
    – Faux_Clef
    Feb 18, 2014 at 12:28
4

I know we all agreed that pure programming questions belong in StackOverflow. But I was a little sad today that we had to put on-hold this question, Check to see if all the values in an array are larger than x and set them to zero. Here's what the OP claimed to argue against closing/migrating his question:

well , Im using it for and lcd connected to an arduino, but its ok u can deleate it I figured it out –

That made me rethink the issue. So I'm posting this new answer so you can also think about it.

In that particular case, the OP had a very simple programming question, that most of us here in Arduino.SE could have answered in less than 5 minutes. Granted, it was a pure programming question that, under current guidelines, should have been put on-hold and prepared for migration to SO. And one of the mods diligently have done so. As expected.

But my thinking is that everybody lost a little with this behaviour:

  1. The OP didn't get his question answered. Instead, he was told his question doesn't belong here because of a guideline he doesn't even know about. For new users, it's common to interpret that as "you don't belong here", because he doesn't know all the context we are in.

  2. The OP has an Arduino board and will have plenty more questions. But now he's confused as to whether his questions are welcome here. So, we probably lost an active user because of a rule that we forced ourselves to follow.

  3. At least in this beta phase, we need the questions. It was an Arduino question, but we gave that up.

Rethinking the matter, to me the issue whether pure programming questions are on topic here is the same as an Arduino question that involves some electronics design posted on EE.SE. In that case, the question is on-topic on both sites, and it's up to the user to decide where to post it.

In summary, the new interpretation I'm proposing is that pure programming questions are on-topic here as long as they come from an Arduino context. These should not be migrated to SO. That's because everybody wins if it was posted here and we keep it here. We have the expertise to answer it, for sure, because they are likely to be about C++, the libs we are so familiar with, and other Arduino details that we are specialized at.

By keeping the questions here, we save the OP the trouble and ansiety of having his or her questions migrated. And one day, as our site grows, we will be able to answer those questions better than SO.

What do you think?

4
  • Mind you that I'm still against boat questions (e.g. "What is the best movie for Arduino users?")
    – Ricardo
    Mar 20, 2014 at 3:38
  • 1
    Despite being the one who closed the question, I'm inclined to agree. In fact, I probably would have left the question open if it had actually mentioned that it was for an Arduino project. What we want to avoid is giving people free-reign to use this site as a beginner's version of SO. As a side note, it's worth mentioning that the OP had already posted the question on SO, and someone had incorrectly advised him to ask here instead. It seems silly to keep the question in both places. Mar 20, 2014 at 10:10
  • See response here. cc @PeterR.Bloomfield
    – asheeshr
    Mar 20, 2014 at 13:25
  • 1
    +1 for "everybody lost a little with this behaviour:"
    – JRobert
    Aug 20, 2016 at 12:26
3

Personally, I don't think there's anything wrong with having some questions be on topic for more than one site. We can't assume people who program Arduinos have the programming experience necessary to determine beforehand if their bug that they are confused enough to ask about online is directly related to the Arduino architecture or not. Some people asking may never have done any programming that wasn't on an Arduino. I don't think we should set any criteria where only the experts can tell what site a question should go to. If there's an Arduino involved, it should be allowed.

2
  • I'm inclined to agree to a certain extent. Newcomers in particular should be given some leeway. Feb 13, 2014 at 9:45
  • +1 Sorry, I had not read your answer before, but it is basically the same I said in my new answer today, so we agree. Good! In my answer, however, I had the chance of discussing an specific case that came out today. Take a look if you have the chance as it illustrates your point as well.
    – Ricardo
    Mar 20, 2014 at 3:35
1

We should leave them alone until we get about half way through beta. Due to the site being in Private Beta, I don't think that we should move them yet, because it would make those questions un-accessible until the site goes into Beta (which at the minimum will be 1 week). Once we get going good, I think that we should determine what should be carried over to Arduino SE, and what would be considered duplicate based on what has already been asked on SO SE.

I do agree that we will need to do this, but now is not the time.

2
  • I think you might have misunderstood my question. I'm not suggesting we move anything from SO to Arduino SE. I was asking about the scope of Arduino SE, and how we determine what kind of programming questions are suitable to be asked here (as opposed to what would be more suitable on SO). Feb 12, 2014 at 19:49
  • Ahh, gotcha thx for the clarification
    – JVarhol
    Feb 13, 2014 at 0:20
0

Just adding to Robert's answer, one simple check would be to read a question excluding any mentions of Arduino and then seeing if it makes sense. If the question does make sense without any mentions of the Arduino platform, then it is a generic programming question. Otherwise, if the Arduino mention is critical to answering the question, then it is on-topic here.

Ex. Why is this loop not terminating on the Uno? would be off-topic as it is unlikely that Arduino's architecture would be causing an infinite loop.

5
  • I posted an alternative answer to this question and I wanted you to take a look and comment. Basically I'm saying, why take the trouble of removing Arduino mentions to see if the question still makes sense? Why reflect so much to check if a Arduino programmming question is pure programming or not? Why not just answer it? We are certainly very capable of answering any Arduino questions, aren't we? Well, it's just food for thought.
    – Ricardo
    Mar 20, 2014 at 3:02
  • @Ricardo We are capable of answering a wide variety of questions ranging from software design, algorithms, data structures, electrical concepts, electronics designs and usage, etc.. Just the fact that we can answer them and that they happen to be in the neighbourhood of our actual purpose, doesnt mean we should. The wider scope we have, the more diluted the focus of the site becomes. How? A person who may come here specifically interested in Arduino, will not feel as comfortable on seeing questions on transistors and MOSFETs ...
    – asheeshr
    Mar 20, 2014 at 13:19
  • ... being interfaced to control an external device or somebody interested in a lighting a few LEDs will be lost on seeing a question on software engineering models being discussed. Why is this bad? The limited resources that we as a community have to solve such issues gets spread thin over multiple divergent fields of study, some of which may be so far off what we actually started with, that the site becomes a confused mix of multiple things.
    – asheeshr
    Mar 20, 2014 at 13:23
  • @Ricardo Think of this as it scales up, rather than at the present size and activity levels. While I realize my tone may be ominous, the fact is there are sites at present dealing with exactly this issue and I have been involved in the clean-up going on. Its a pain to sort out such messes later on (100-200+ off-topic posts), plus the gains that there may appear to be at present do not last beyond a certain point.
    – asheeshr
    Mar 20, 2014 at 13:24
  • Point taken. We can certainly keep the existing guidelines for pure programming questions. I just wanted to express my opinion after seeing that specific question closed.
    – Ricardo
    Mar 20, 2014 at 13:41
0

I am in agreance with @Ricardo's most recent answer. I think there is a lot of overflow between stack sites and what is most appropriate for one user is not necessarily most appropriate for another. Given this site is in beta, unless the question has nothing to do with an Arduino, it could remain here to benefit all users.

Even a generic question about data types or timers mean different things to dedicated AVR hobbyists, and Arduino aficionados ;^)

As someone who is relatively new to SO, I have posted questions on various sites, but my main three are the main site, Ask Different (Apple stuff) and here. I have asked an Arduino question (which was more based around analog electronics) so I asked in EE. Funnily enough, I went with a programming solution, so it could probably have been asked here.

Leave it up to the OP and unless they get it drastically wrong, move/close/hold it in that case. After all, there probably is a reason they chose to come here instead of somewhere else.

Coming back to "appropriateness" I mention above, and by way of example: where would a question about mechanical "bounce" be better placed?

  • Generically covering all bases, micro, electronics, programming, for my Arduino project (Ar.SE)
  • Programatically on main site
  • Electronically on (EE.SE)
  • one of the other programming SE sites

I would argue that here is just as appropriate as either of the others, mainly because on EE you would probably get steered for an analog solution. Any programming response is purely going to be about that, programming. Whereas here, at Arduino, you're going to get (hopefully) tried and tested solutions from other Arduino users which could include one or the other method, allowing a broader range of answers. Essentially, debouncing is either a programming or an electrical issue, but it still has a place here (IMHO).

0

I disagree with these two answers suggesting that "generic programming questions" should be off-topic. The thing is, it's very hard to define what's a "generic programming question" unless you already know the answer.

In Robert's example, "why a programming loop is not terminating" the reason could be that the termination condition is while(counter = 1), which would make it a generic C++ question. Or the reason could be that the user called a delay() function in a loop running in the interrupt context, which is unanswerable by a C++ programmer who doesn't know the implementation details specific to Arduino. And the asker doesn't know which one it is, else they wouldn't be asking.

You can't just decide that "generic programming questions are off-topic" and expect people to follow that rule, unless you explain them how they can tell it's a generic programming question. For example, you could say: "compile it on Windows, and if your code runs fine then it's an Arduino problem, otherwise it's generic programming error". Unfortunately, that won't work as Arduino code cannot run on Windows.

One group of questions we can reasonably define and forbid is the "my code does not compile" kind. avr-gcc is a well-known compiler supporting rather standard C++, so such questions would be 100% on-topic on SO. But I don't see much benefit for us in doing so.

-1

I don't think you should send people coming here to Stack Overflow. Users that would be attracted to this site are going to be new to the hobby, probably new to programming, and probably don't know up from down. Stack Overflow makes a point to be unfriendly to new users, low level questions, "things that everyone [should] knows", and presumes that you're pulling aside a senior coworker to waste his time, so you'd better make it quick.

If I wanted to encourage people into my hobby, niche, or product, I would not send them to such a place.

To quote Ricardo:

But my thinking is that everybody lost a little with this behaviour:

The OP didn't get his question answered. Instead, he was told his question doesn't belong here because of a guideline he doesn't even know about. For new users, it's common to interpret that as "you don't belong here", because he doesn't know all the context we are in.

The OP has an Arduino board and will have plenty more questions. But now he's confused as to whether his questions are welcome here. So, we probably lost an active user because of a rule that we forced ourselves to follow.

At least in this beta phase, we need the questions. It was an Arduino question, but we gave that up.

Regardless if you agree with my statement about Stack Overflow, this is a new user's takeaway when you say Nah bruh, go ask that somewhere else.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .