views:

363

answers:

7

This is not 100% programming related. But I think this is somewhat useful because it is addressing a minority in the SO community.

Microcontroller programming is one of the interesting areas in programming. I saw some topic here requesting the Resources for starting / learning / discussing about PICs.

Example topic

Since I have plenty of knowledge and experiences in this area I am thinking of publishing some resources that helps a novice to learn them from the basics. It will be not just a theoretical publication and will be based on example projects. I hope to start this over a new blog + forum so the users can dynamically interact with each other. I came in to this decision because I found very small amount of Sites that a novice can start learning and work collaboratively.

What do you guys think about this? Have you ever experienced such difficulty? Do you think you can get some use of that? What are the things you like to see on the site?

I would be thankful If you are not going to close this as NPR. I just want to do some service to other microcontroller lovers :)

+3  A: 

There are the excellent tutorials at www.mikrocontroller.net, but they are in German.

If you could create something similar for an English speaking community, that would be great.

bbuser
I have no idea about German language. I feel it is mostly targeted the users of intermediate level right? Not the novices, Isn't it?
Chathuranga Chandrasekara
From their site Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
tomjen
@Chathuranga Chandrasekara: There is information for beginners as well at www.mikrocontroller.net, especially the AVR-Tutorial. Some stuff is pretty advanced however.
bbuser
+6  A: 

There are already a few such tutorials on the net (e.g. this one from SparkFun), another one might be a valuable addition, but only if it is better or different in some way.

What will you offer that is a real improvement?

Some suggestions:

  • Don't assume I have windows
  • Have some side discussion of difference between various MCU and/or supporting electronics. Discuss some of the trade offs
  • You'll need a pretty general tutorial to suck people in, but the real value added might be in a specialized focus after the start
  • Build up to something useful and/or geeky cool
  • A unit on component integration (i.e. I can buy a Polar style heart rate receiver, and a MCU and a USB interface. How do I get them talking to each other so I can build an exercise data logger?)

What every you do, I'm looking forward to it (just learning embedded stuff in my spare time...).

dmckee
hmm.. Sparkfun tutorial seems to be a great one for novices.
Chathuranga Chandrasekara
+1  A: 

Maybe for the different ARM7 and CortexM3...? Here everyone asumes there is a lot of information, but it is spread all over the net and without any red line what so ever...

But if you take AVR there is quite a lot of stuff over at http://www.avrfreaks.net, and I guess that PIC has quite a lot as well.

Johan
+2  A: 

Yes! The more resources out there for helping with embedded software (microcontroller programming) the better.

It can be quite daunting to start with, especially if you've only written software for PCs or similar in the past. There are lot more constraints (e.g. on RAM and code space), and a whole load of things you need to know that don't apply to non-embedded software.

As others have mentioned here, there a number of websites that cover different aspects of this; some others are OnARM, for ARM processors, the related STM32 Circle, and Jack Ganssle's articles on his website and on Embedded.com.

Though embedded systems are an enormous market (just think how many such devices there are in your house, or in your car), my impression is that there is a lot less coverage of the subject on the web - and on Stack Overflow - than for non-embedded.

So, I look forward to seeing the fruits of your labour!

Steve Melnikoff
A: 

I have written many such examples myself but they are scattered and not organised and probably rarely read (one time the folks at avrfreaks borrowed something). StackOverflow might curb this but SO could in theory be used. Ask a question about boot code for an arm whatsit, then answer your own question with example code and text on how and why it works. The SO tags would be nice in that you could do a search on "boot" "arm" "embedded" and then one on "boot" "avr" "embedded", etc and get similar example programs for different platforms.

dwelch
A: 

Personally I would go more in the direction of creating an example archive of complete programs for specific microcontroller versions (in typical uses), instead of making yet another "general" tutorial. E.g. one of microcontroller x/y that enables a serial port, one that configures a few digital outputs (setting TRIS and friends), how to set up common frequency/oscillator options etc.

When I started with PIC, (very short PIC16, then PIC18 then 24F and now dspic), one of the main problems is that all the examples are either only fragments or describing very general principles.

A tutorial is no good, if it takes more skills to get the examples actually working than the tutorial teaches.

I usually couldn't find one single complete program for exactly my controller, or even for the slightly wider group (that only vary in number of pins and memory/flash).

The initial program was always the problem, but sometimes later I had the same problem (initializing a certain peripheral) all over again (e.g. the encoder) It is specially frustrating if is the first run of a new micro controller line, and you might not be 100% sure of your hardware.

Unfortunately that takes some coordination, from a forum, an user group or so, since nobody has all devices, and all variants to wire them up (e.g. different oscillator options).

Marco van de Voort
+1  A: 

Something else that's worth to take into account when targeting beginners, is to directly provide pointers to useful resources, such as suitable simulators/emulators, or even addresses/webpages where you can easily order a starter kit or even free samples of some chips.

For example, most semiconductor manufacturers provide free samples of their products, e.g. see microchip.com or atmel.com.

Ideally, an introductory course would be based on working with such a hardware simulator or emulator in the beginning, so that the project and all relevant experience may directly map onto a real device once the beginner is interested in moving his work onto a real chip, providing pointers to freely available resources, or very affordable starter kits can be very useful.

This would ensure that beginners can get started as easily and cheaply as possible.

none