Microcontroller Programing Languages, IDE, and ICE

Page 1 of 1 [ 6 posts ] 

iamnotaparakeet
Veteran
Veteran

User avatar

Joined: 31 Jul 2007
Age: 39
Gender: Male
Posts: 25,091
Location: 0.5 Galactic radius

31 Dec 2007, 11:28 pm

Which is the best and for what purposes?

I would like one that would allow me to build and simulate the programs without having the actual microcontroller. It would be a hobby, but also have the possibility of useful applications.

Factors in purchasing would be:

  • cost
  • runs on Windows 2000 or XP
  • which microcontrollers it supports


I'd like recommendations, experiences, etcetera.



jonk
Deinonychus
Deinonychus

User avatar

Joined: 17 Nov 2007
Age: 69
Gender: Male
Posts: 329

02 Jan 2008, 5:38 am

iamnotaparakeet wrote:
Which is the best and for what purposes?

I would like one that would allow me to build and simulate the programs without having the actual microcontroller. It would be a hobby, but also have the possibility of useful applications.

Factors in purchasing would be:
  • cost
  • runs on Windows 2000 or XP
  • which microcontrollers it supports

I'd like recommendations, experiences, etcetera.


I don't frequent this site much. Mostly for lack of time, not because I don't find it a great place (which I do.) You have my sincere apologies for my lack in that regard, because it means I may not know you as well as others do and may not read between the lines as well as I otherwise might. But this is a subject I like, so please forgive my ignorance.

I design and program microcontrollers as my day-job. It's work I absolutely love. But in reading the above, even though I have some 30+ years in this area (I built my own Altair 8800 in 1975), I'm not sure what to make of it. My immediate reaction was something like this:

What _are_ your cost limitations? Don't just say 'cost.' State the numbers. Be quantitative.

I know you wrote that this would be a hobby, with possible practical applications. But why this hobby and why you? Why do you care, at all, about micros?

Why did you ask about which microcontrollers were supported instead of just saying what your own preferences might be? (If you have them, that is.) Does it really matter that much to you, if it is micro X or micro Y?

Why not just write programs on the PC? It's easy, there are lots of language choices many of them free, and they "simulate" quite well given that the processor actually runs them in perfect simulation of an x86 cpu.

...

Enough of that. I don't mean to overwhelm you with questions. I am trying to prod you into saying something about yourself, what your likes are, what you want to learn about and why, what limitations in money and time do you really have and what kinds of things might push that envelope a little, and what motivates you to even ask this question... It's important to know who YOU are and what YOUR interests and skills are and what limits you, too. Otherwise, I would just point you in some random direction. (Details are important.)

Speaking of random directions, and just to provide some thoughts to push you a little, moving from lower levels to higher:

(1) You could use some free programs that exist right now to design your own CPU and supply it with your own program to run and the free software would simulate your cpu and let you see the logic lines toggle around as it did that. You could learn how to design cpus (not so hard, really) as well as program them.

(2) There are many FPGA boards available where you can program in VHDL or Verilog, placing not only your own cpu design but also a lot of other logic, all of which would run in real-time on a real system with real hardware you could interact with. These are CHEAP! Very cheap to buy, these days.

(3) There are hundreds, if not thousands, of cheap microcontroller boards you can buy that come complete with fully functional IDEs, JTAG debugging capability, C and C++ compilers as well as assemblers, etc. They are real, they run real programs, no need to simulate, at all. You can watch or interact, at your liesure. For example, Texas Instruments makes a $10 unit (it was $10 when I bought it, anyway) that plugs into the USB on your computer and works together with a nice IDE and debugger that makes coding and downloading into the device quite easy and there are literally hundreds of project ideas I could provide you with, on just that one simple unit alone.

And that's just the real stuff that really works. I mention that because... well, because ... why do you want to simulate, at all? With JTAG debugging, you can single-step through your code. In fact, there is nothing that a simulator will provide you that the JTAG debugger and IDE won't (well, almost nothing.) So why not the real McCoy? With the low costs (as low, as I said, as $10 or so), a free simulator might beat the price... but not by much.

Costs for really, really good microcontroller and FPGA boards vary. But they are usually targeted in three or four levels: the entry level $20-$30 price point, the mid-sized and decent $50 price point, and the souped up and fancy $100 price point. The FPGA systems are usually considered 'souped up' and run more in the $100-$200 price range for reasonably good stuff. The software for all of these can be free, too. So the cost for the hardware is often about all there is to it.

Now I'll tell you a little about me. I am primarily an embedded programmer. However, my deep, inner interests are in mathematics and physics and electronics -- I spend hours every day exploring something new in one of those areas. I took my education in physics and math, but found paying work in programming. Turns out, in the embedded (microcontroller) area, I help design and program various kinds of scientific and commercial instrumentation and because of that I get to select some interesting areas in math and physics to expand into, as well. And I get to work with physicists and learn from them as I go. All of which I love. In fact, because I'm not directly responsible for research, I get to have my cake and eat it. In other words, I get to enjoy my love in math and physics without having to turn them into work. For me, they remain the most fun hobbies I could imagine. If I'd stayed in physics or math and made a career out of them, they would have become a burden to me. As it is, I get to enjoy what I love for its own merits without the pressures of making an income from it. And the programming part gives me a semi-valid excuse to play there at times, too.

My first experience with a microcontroller was in building my Altair 8800 in 1975. I had 256 bytes ot static ram to start out. After paying more than a month's salary for some additional memory, I added another 8k of dynamic ram to that. However, I had to build those, as well, with hours and hours of soldering.... and then, a month and a half debugging it because the designers had made mistakes in it and it took me that long to learn enough to fix it. Just in time for a letter to arrive from them telling me, a bit late, about what to do.

I have written a BASIC interpreter, a C compiler, and a few other compilers, as well. I've designed a few small cpus for play, too, and tested them. All these things are lots of fun to me... to get all the details right and see them work well gives me some pleasure.

But I've also taught courses at undergrad level at a University and discovered that students looking into computer science have changed a lot from when I started out. In fact, I had several students come to my office and complain about the difficulties and tell me that they were debating about whether or not accounting would have been a better option for them! In my day, I can't imagine ANYONE pursuing computer science would have even been capable of thinking such thoughts, at all. It just didn't happen. Folks in computer science _came_ out of the science fields, like physics or math, in my day. Not infrequently _after_ getting a doctorate in their chosen field. They would never have been able to imagine 'accounting' as an option. Just not in the genes. But the field has become so much more accessible now, with PHP and VB and so on opening so many new doors for a wider range of personalities to seriously consider entering it. So I tend to ask more about personalities and guess less about them than I once did. Like I'm doing here.

What kinds of things motivate you in this area? What would keep you energized and going?

Jon



iamnotaparakeet
Veteran
Veteran

User avatar

Joined: 31 Jul 2007
Age: 39
Gender: Male
Posts: 25,091
Location: 0.5 Galactic radius

02 Jan 2008, 5:54 pm

jonk wrote:
iamnotaparakeet wrote:
Which is the best and for what purposes?

I would like one that would allow me to build and simulate the programs without having the actual microcontroller. It would be a hobby, but also have the possibility of useful applications.

Factors in purchasing would be:
  • cost
  • runs on Windows 2000 or XP
  • which microcontrollers it supports

I'd like recommendations, experiences, etcetera.


I don't frequent this site much. Mostly for lack of time, not because I don't find it a great place (which I do.) You have my sincere apologies for my lack in that regard, because it means I may not know you as well as others do and may not read between the lines as well as I otherwise might. But this is a subject I like, so please forgive my ignorance.

I design and program microcontrollers as my day-job. It's work I absolutely love. But in reading the above, even though I have some 30+ years in this area (I built my own Altair 8800 in 1975), I'm not sure what to make of it. My immediate reaction was something like this:


jonk wrote:
What _are_ your cost limitations? Don't just say 'cost.' State the numbers. Be quantitative.


Until I get a job my stepdad would be the one with the wallet. Free software would be preferable. I have around $30 of my own, but that's a displacement and not a velocity.

jonk wrote:
I know you wrote that this would be a hobby, with possible practical applications. But why this hobby and why you? Why do you care, at all, about micros?


I am interested in learning how to program and see the programs work in electronic circuits. My stepdad would like it for controlling an outdoor lighting display. I have once written in a line based language, but have since forgotten that. I would like to learn an object oriented language now, because they seem to be fairly useful. I can't say that would be preferable as a job though because I type very slow, but I would like to know and be able to use it for myself.

jonk wrote:
Why did you ask about which microcontrollers were supported instead of just saying what your own preferences might be? (If you have them, that is.) Does it really matter that much to you, if it is micro X or micro Y?


PICAXE and Parallax micros have been the ones I've seen so far online. RadioShack sells an introduction kit for $80, but I don't have that money and Poppy thinks, and I agree, I should know the software first. I am wondering what software packages there are that have a compiler and simulator. Also, for the language I would need an introduction and tutorial too. I don't have anything bought yet, I'm still considering. It doesn't really matter to me about which ones at the moment.

jonk wrote:
Why not just write programs on the PC? It's easy, there are lots of language choices many of them free, and they "simulate" quite well given that the processor actually runs them in perfect simulation of an x86 cpu.


Which ones are free? That is what I would like to do.
...

jonk wrote:
Enough of that. I don't mean to overwhelm you with questions. I am trying to prod you into saying something about yourself, what your likes are, what you want to learn about and why, what limitations in money and time do you really have and what kinds of things might push that envelope a little, and what motivates you to even ask this question... It's important to know who YOU are and what YOUR interests and skills are and what limits you, too. Otherwise, I would just point you in some random direction. (Details are important.)

Speaking of random directions, and just to provide some thoughts to push you a little, moving from lower levels to higher:

(1) You could use some free programs that exist right now to design your own CPU and supply it with your own program to run and the free software would simulate your cpu and let you see the logic lines toggle around as it did that. You could learn how to design cpus (not so hard, really) as well as program them.

(2) There are many FPGA boards available where you can program in VHDL or Verilog, placing not only your own cpu design but also a lot of other logic, all of which would run in real-time on a real system with real hardware you could interact with. These are CHEAP! Very cheap to buy, these days.

(3) There are hundreds, if not thousands, of cheap microcontroller boards you can buy that come complete with fully functional IDEs, JTAG debugging capability, C and C++ compilers as well as assemblers, etc. They are real, they run real programs, no need to simulate, at all. You can watch or interact, at your liesure. For example, Texas Instruments makes a $10 unit (it was $10 when I bought it, anyway) that plugs into the USB on your computer and works together with a nice IDE and debugger that makes coding and downloading into the device quite easy and there are literally hundreds of project ideas I could provide you with, on just that one simple unit alone.

And that's just the real stuff that really works. I mention that because... well, because ... why do you want to simulate, at all? With JTAG debugging, you can single-step through your code. In fact, there is nothing that a simulator will provide you that the JTAG debugger and IDE won't (well, almost nothing.) So why not the real McCoy? With the low costs (as low, as I said, as $10 or so), a free simulator might beat the price... but not by much.

Costs for really, really good microcontroller and FPGA boards vary. But they are usually targeted in three or four levels: the entry level $20-$30 price point, the mid-sized and decent $50 price point, and the souped up and fancy $100 price point. The FPGA systems are usually considered 'souped up' and run more in the $100-$200 price range for reasonably good stuff. The software for all of these can be free, too. So the cost for the hardware is often about all there is to it.

Now I'll tell you a little about me. I am primarily an embedded programmer. However, my deep, inner interests are in mathematics and physics and electronics -- I spend hours every day exploring something new in one of those areas. I took my education in physics and math, but found paying work in programming. Turns out, in the embedded (microcontroller) area, I help design and program various kinds of scientific and commercial instrumentation and because of that I get to select some interesting areas in math and physics to expand into, as well. And I get to work with physicists and learn from them as I go. All of which I love. In fact, because I'm not directly responsible for research, I get to have my cake and eat it. In other words, I get to enjoy my love in math and physics without having to turn them into work. For me, they remain the most fun hobbies I could imagine. If I'd stayed in physics or math and made a career out of them, they would have become a burden to me. As it is, I get to enjoy what I love for its own merits without the pressures of making an income from it. And the programming part gives me a semi-valid excuse to play there at times, too.

My first experience with a microcontroller was in building my Altair 8800 in 1975. I had 256 bytes ot static ram to start out. After paying more than a month's salary for some additional memory, I added another 8k of dynamic ram to that. However, I had to build those, as well, with hours and hours of soldering.... and then, a month and a half debugging it because the designers had made mistakes in it and it took me that long to learn enough to fix it. Just in time for a letter to arrive from them telling me, a bit late, about what to do.

I have written a BASIC interpreter, a C compiler, and a few other compilers, as well. I've designed a few small cpus for play, too, and tested them. All these things are lots of fun to me... to get all the details right and see them work well gives me some pleasure.

But I've also taught courses at undergrad level at a University and discovered that students looking into computer science have changed a lot from when I started out. In fact, I had several students come to my office and complain about the difficulties and tell me that they were debating about whether or not accounting would have been a better option for them! In my day, I can't imagine ANYONE pursuing computer science would have even been capable of thinking such thoughts, at all. It just didn't happen. Folks in computer science _came_ out of the science fields, like physics or math, in my day. Not infrequently _after_ getting a doctorate in their chosen field. They would never have been able to imagine 'accounting' as an option. Just not in the genes. But the field has become so much more accessible now, with PHP and VB and so on opening so many new doors for a wider range of personalities to seriously consider entering it. So I tend to ask more about personalities and guess less about them than I once did. Like I'm doing here.



What kinds of things motivate you in this area? What would keep you energized and going?


"NEED MORE INPUT" said Johnny Five...

The application to electronics is what interests me the most, but I would also like to be able to program just to have the ability. What would keep me energized and going... :scratch: :study: :idea: :coffee:

Kidding... I want to learn all I can and the more I know and am able to do the more fun it is and the more I can understand about other subjects in relation to this one.



jonk wrote:
Jon


Thanks Jon,

Ben.



jonk
Deinonychus
Deinonychus

User avatar

Joined: 17 Nov 2007
Age: 69
Gender: Male
Posts: 329

03 Jan 2008, 1:44 am

iamnotaparakeet wrote:
jonk wrote:
What _are_ your cost limitations? Don't just say 'cost.' State the numbers. Be quantitative.
Until I get a job my stepdad would be the one with the wallet. Free software would be preferable. I have around $30 of my own, but that's a displacement and not a velocity.

Okay. That's a fine answer. (When I was growing up, my dad was dead (car accident) and I lived in homes without walls and I had to work the vegetable and berry fields to have what I needed to eat and stay alive. In that time, ANY expense was too much. So I would scrounge a lot to do electronics, for example. I couldn't afford much, at all. You have the benefit of living in a time when there is so much more available and a family that keeps you fed and housed. I could have wished for as much.)

I think this means "CHEAP!" Now, for another question in this regard. Do you have much in the way of skills and tools for doing things like soldering on your own? Can you build stuff? Or do you need others to make it for you and just hand you a nice tool to play with? Also, are you interested in C only? Or can you handle assembly coding?

There are a number of cpu simulators around, by the way. But one of the serious limitations with most of them is that they do NOT simulate the peripherals on a microcontroller very well, if at all. They do simulate the instructions and can tell you what the registers say and you can step through the instructions (assembly, for example) one at a time and watch the effects on the registers. But they really cannot give you the kind of real information you need to apprehend well what it is like programming a microcontroller for something real. For that, you need to get your hands on something tangible and make it work. And for that, you need something that will allow you to fabricate things.

For example, to move towards an LED light show of some kind you will need the microcontroller, some resistors and maybe a capacitor or two, a power supply of some kind (which might just be one of the wall warts laying around from discarded equipment, years long since gone), and a soldering iron, some solder, some insulated wire, a wire stripper, etc. You might be able to replace some of that with a "proto board" which is kind of like a "quick release" thing that allows you to insert and remove parts and quickly wire them up without solder. And finally, you will still need some way to get your programs dumped into the microcontroller -- called a "programmer" -- and that thing usually costs at least those $10 I mentioned earlier, but sometimes more like $20-$50, depending on a lot of factors. You can build a programmer on your own, too. You can use some really cheap parts (like resistors, mostly) and an IBM PC parallel port connector ($3, probably), plus some wire and solder and make up something that can program certain microcontrollers. You will either need to use someone else's software running on the PC (if you wire up something that it was written to operate) or else write your own PC software to do it. To get started, if that path seems interesting, I recommend letting me recommend one of several options for you on the web and looking them over for yourself. You can ask me questions about them and then decide. That would be cheaper than buying up a ready-made thing and you wouldn't need to write software, since that is already done and out there. But you would need to wire up some stuff. So you would still need some skills and tools, laying about. Not too much to do, but some.

Are you willing to make something? Or would you prefer to buy a ready made, get-started-right-now, kind of thing?

To get an eye-full, enter "+DIY +microcontroller +programmer" into google (without the quotes shown) and see what pops up. Look some of the better ones over, refine your search, etc. For example, add +schematic to the search, if you want. That should give you an idea what you'd be up against, doing it yourself. Then take a look at www.olimex.com, for some ready made stuff that isn't too expensive. They have a reasonable reputation, too.

Let me know, then.

iamnotaparakeet wrote:
I am interested in learning how to program and see the programs work in electronic circuits. My stepdad would like it for controlling an outdoor lighting display. I have once written in a line based language, but have since forgotten that. I would like to learn an object oriented language now, because they seem to be fairly useful. I can't say that would be preferable as a job though because I type very slow, but I would like to know and be able to use it for myself.


Well, you can also download, for free, LTspice/SwitcherCAD III. It allows schematic entry and will simulate your circuits. It does NOT do digital microcontroller simulation, though. So don't get any ideas about that part. That software is at:

http://www.linear.com/software

Also, you can go to www.microchip.com and look for their MPLAB IDE software and download it, as well. That is free, too. And it will simulate their cpus, just fine. It comes free with an assembler, linker, and simulator. Also, I think there is a c compiler there you can try. It _may_ be limited in terms of just how big a program you can write, without paying them some cash. But I'm not positive about that. But I seem to recall that the size limitation is probably far bigger than you need at this stage of things, so I think you should be okay on that score. Also, Texas Instruments (at www.ti.com) has a C and C++ compiler plus assembler and so on, all nicely wrapped up in an IDE from the Norwegian IAR company. That software is for their MSP430 processor. If you look around their site, you can find it as a free download. It simulates, as well. And does a good job. Also, for free. There is, again, a size limitation but I don't think that will bother you, just yet. The nicer thing about the TI stuff (from IAR) is that it includes a real c++ compiler, so you can learn c++ if you want.

I will leave it at that point, for now. Once you think about and respond to the above, I will continue on.

Jon



iamnotaparakeet
Veteran
Veteran

User avatar

Joined: 31 Jul 2007
Age: 39
Gender: Male
Posts: 25,091
Location: 0.5 Galactic radius

03 Jan 2008, 12:35 pm

jonk wrote:
iamnotaparakeet wrote:
jonk wrote:
What _are_ your cost limitations? Don't just say 'cost.' State the numbers. Be quantitative.
Until I get a job my stepdad would be the one with the wallet. Free software would be preferable. I have around $30 of my own, but that's a displacement and not a velocity.

Okay. That's a fine answer. (When I was growing up, my dad was dead (car accident) and I lived in homes without walls and I had to work the vegetable and berry fields to have what I needed to eat and stay alive. In that time, ANY expense was too much. So I would scrounge a lot to do electronics, for example. I couldn't afford much, at all. You have the benefit of living in a time when there is so much more available and a family that keeps you fed and housed. I could have wished for as much.)


Wow that must have stank.

jonk wrote:
I think this means "CHEAP!" Now, for another question in this regard.


Cheap or free.

jonk wrote:
Do you have much in the way of skills and tools for doing things like soldering on your own?


I mainly have soldered wires together, but I don't really have much experience yet.

jonk wrote:
Can you build stuff? Or do you need others to make it for you and just hand you a nice tool to play with?


I can build circuits on a breadboard, but I have not really dealt with assembling projects via soldering/case molding/etc.

jonk wrote:
Also, are you interested in C only? Or can you handle assembly coding?


It wasn't C, it was a form of Basic I used before. I would be interested in learning C++ and have a book on it too. I have never dealt with Assembly language yet.


jonk wrote:
Are you willing to make something? Or would you prefer to buy a ready made, get-started-right-now, kind of thing?


I would be willing to create, but my skills are kinda meager.

jonk wrote:
To get an eye-full, enter "+DIY +microcontroller +programmer" into google (without the quotes shown) and see what pops up. Look some of the better ones over, refine your search, etc. For example, add +schematic to the search, if you want. That should give you an idea what you'd be up against, doing it yourself. Then take a look at www.olimex.com, for some ready made stuff that isn't too expensive. They have a reasonable reputation, too.

Let me know, then.


I might want the PCB prefabricated, but I could probably do the rest.

jonk wrote:
iamnotaparakeet wrote:
I am interested in learning how to program and see the programs work in electronic circuits. My stepdad would like it for controlling an outdoor lighting display. I have once written in a line based language, but have since forgotten that. I would like to learn an object oriented language now, because they seem to be fairly useful. I can't say that would be preferable as a job though because I type very slow, but I would like to know and be able to use it for myself.


Well, you can also download, for free, LTspice/SwitcherCAD III. It allows schematic entry and will simulate your circuits. It does NOT do digital microcontroller simulation, though. So don't get any ideas about that part. That software is at:

http://www.linear.com/software

Also, you can go to www.microchip.com and look for their MPLAB IDE software and download it, as well. That is free, too. And it will simulate their cpus, just fine. It comes free with an assembler, linker, and simulator. Also, I think there is a c compiler there you can try. It _may_ be limited in terms of just how big a program you can write, without paying them some cash. But I'm not positive about that. But I seem to recall that the size limitation is probably far bigger than you need at this stage of things, so I think you should be okay on that score. Also, Texas Instruments (at www.ti.com) has a C and C++ compiler plus assembler and so on, all nicely wrapped up in an IDE from the Norwegian IAR company. That software is for their MSP430 processor. If you look around their site, you can find it as a free download. It simulates, as well. And does a good job. Also, for free. There is, again, a size limitation but I don't think that will bother you, just yet. The nicer thing about the TI stuff (from IAR) is that it includes a real c++ compiler, so you can learn c++ if you want.

I will leave it at that point, for now. Once you think about and respond to the above, I will continue on.

Jon


Thanks, I'll check those out.

BTW I have the Visual Basic Studio.net 2003 and Eclipse IDE for Java, c/c++, would those be useable to program a microcontroller?



jonk
Deinonychus
Deinonychus

User avatar

Joined: 17 Nov 2007
Age: 69
Gender: Male
Posts: 329

03 Jan 2008, 4:18 pm

iamnotaparakeet wrote:
jonk wrote:
Do you have much in the way of skills and tools for doing things like soldering on your own?
I mainly have soldered wires together, but I don't really have much experience yet.

Okay. There are a number of ways available to make things. You talk, below, about maybe getting a board from a supplier and then building up from there. But let me mention other options, just to be complete and put some other ideas into your head for later on. Mostly, I'll talk about custom stuff which is made to your order. (But as I'm sure you are aware, there are boards that others design and make for you, too. Those only require you to order them. Which is why I don't need to talk about them that much.)

There is "point-to-point" wiring (or "rat's nest") where you just place parts on your bakelite board and wire from place to place, with short wires, soldered directly. It's workable, but there are so many other good options these days.

Also, there is "wire wrap" method which was once considered and used a lot by professionals for prototype boards. I still have my tools for that (it only takes one small hand tool and a wire cutter) and a bunch of 30 gauge wire I used. To do that, you buy wire wrap sockets that have extra long stems underneath, insert them into cheap phenolic/bakelite boards and glue them down at the corners to keep them from wobbling perhaps, place your parts in the sockets and wire-wrap from point to point. No solder involved. To do that, you just cut off a wire somewhat longer than the direct stetch required, use the wire wrap tool to strip the ends, insert the end into the wire wrap tool, place the tool over a pin, spin the tool around and lift it off. The wire is wrapped tightly on the pin and then you do the other end the same way. I still use it, at times. Works great. The reason it isn't used so much, these days, is that very cheap "board houses" exist now. And that's often better than wire wrap.

So.. There are board houses. You can get a cheap one-sided board done very cheaply. Even two-sided boards with plated through holes are cheap enough these days that many hobbyists use them. Costs vary, but expect to pay at least $20 or $30 to get one or more boards done for you. (Often 4 boards are about the same cost as 1.) If you are pretty sure about your design and layout, then you can send off for a board to be done and it will be very nice just soldering parts into it and then testing it out. The problems here are that you are usually responsible for laying out the board. That means you need some kind of drafting program that will let you place parts and route wires around. They also produce specialized files that you can download to some board house for production. Some of these programs are free, some aren't. Some board houses have their own specialty programs they want you to use, if you order boards from them, too. You would need to learn the rules and how to use the software, to use this option. So more learning. Also, you may need to drill your own holes, in some cases. Or pay the board house to do that for you (single sided, here... usually the 2-sided boards include hole-drilling, with plating through the holes for you as an option.) But the point here is that there is some learning curve involved, this path. It does save a lot of point to point wiring, though, and some kinds of designs really, really benefit from letting someone make the boards for you.

You can buy boards someone else has laid out for you, of course. And you can buy kits where the boards and parts are all included, but they didn't build and test them. Or you can buy completed kits, too. But you get the idea.

My own recommendation, but this comes from my own experience, is that you first download some of that software I mentioned before and start there. It's going to take some learning and that will be a pain. But there is no avoiding it, really. The good thing is that it is all free and learning one or two pieces will move you towards getting a feel for microcontroller development. If that makes you too frustrated, then you might as well quit right now. If you can't climb over that barrier, the rest ahead of you will just put extra nails in your coffin. Save yourself the anguish, then. Once you get past a few steps there and feel like you are ready, I'd recommend that you buy one "programmer" tool for some microcontroller -- completely ready to go. In other words, not as a board and parts. The reason here is that you just don't need the hassle of getting stuck because you did something silly in building it and have no idea how to figure out what it was. Better to let someone else worry about all that and get on with the business of learning to use the tool. Costs here would probably be in the $20-$30, sadly. But there is no helping that. If you feel you can supplement that with some convincing argument with your stepdad, you might consider going up to about $50, or so, and getting a really good programmer board that also includes a lot of good stuff like pushbuttons and LED lights and maybe even an LCD display or something fancy like that. All that gives you more that you can play with, without having to buy and build up the parts. And the prices _are_ very reasonable. Just tough for someone on a really tight budget. Buf if you can swing the money, getting a little extra will carry you a long way in having lots and lots of fun experimenting.

Of course, a board from someone just as you suggest later on here and adding parts and soldering them down works, too. If you need to save even a couple of dollars when possible, this may be your better bet. But you will need to find a supplier for the parts. So keep that in mind. And if you don't have a really good local supplier of parts (I don't, for example), you will wind up doing mail order and with the high gas costs these days the shipping costs are going up and frankly I wonder if you still wouldn't be cheaper off getting a built up system, when everything is figured in. If you were doing a lot of this, ordering parts would make more sense. But just getting started out, I would still recommend getting a completed programmer board or kit and worry about the rest, later on.

iamnotaparakeet wrote:
jonk wrote:
Can you build stuff? Or do you need others to make it for you and just hand you a nice tool to play with?
I can build circuits on a breadboard, but I have not really dealt with assembling projects via soldering/case molding/etc.

Well, cases add cost. Expect to pay somewhere from $4 to $20 for a single case. They are a must, if you want something convenient to just slug around and use, though. You may need some special drill bits, such as one that looks kind of like a stepped pyramid that allows you to drill varying sized holes into thin metal or plastic sides of a box, so that you can place jacks and cords and variable resistor bodies through the case. In other words, you may need some small tools for working with boxes to make them work well. (I didn't have access to such tools when I was growing up, so a lot of what I made was not nearly so pretty.) It's not hard to do, with some basic tools, though. Just takes a little practice to learn. And cases are available from Radio Shack and from Fry's electronics, for example. Other places, too. You can get sheet metal bending tools (not necessarily cheap) and buy flat sheets of metal and make your own boxes, too. Again, all this is a matter of what your stepdad has already laying about and what he's willing to consider for you. But there are lots of options here.

You need to consider what you have available, what you can reasonably add to what is available, and what that means for your ability to add things like cases and so on. When I was building, I used blocks of wood as a base. That was all I could afford to do, as small pieces of wood were findable for free. You could do that, too. But it's not nearly as satisfying as having a nice case, I have to admit.

iamnotaparakeet wrote:
jonk wrote:
Also, are you interested in C only? Or can you handle assembly coding?
It wasn't C, it was a form of Basic I used before. I would be interested in learning C++ and have a book on it too. I have never dealt with Assembly language yet.

Well, the main reason I bring this up is EVERY microcontroller manufacturer gives away their assembler programs. They are all free. So if you are handy with assembly language, you NEVER have to pay for a compiler. The IDE will be free, the assembler and linker and so on will be free. So you pay for nothing, ever. But if you want a c or c++ compiler, the way the market has worked out means that you usually get a limited version of it for free, but have to pay if the program size gets larger than some "line in the sand." Not always. But usually. For some microcontrollers, such as some of the ARM7TDMI varieties, you can use the free GNU c++ compiler tools and they work pretty well. But then the problem becomes the debugger tools, most especially if you use Linux (I know you said Windows, but I'm mentioning this for others.) A lot of the ARM JTAG ICE debuggers are proprietary in nature and it's not easy to work through the details of getting all that working well. I have had trouble myself there, so I hesitate to suggest you even try. So while the free GNU compiler tools are indeed free and indeed pretty good and not limited, there is a lot of various details to get right so the path has a high learning curve to it. For beginners, it is MUCH better to get a simple commercial system where the vendors have worked hard to make them easy to install and use and just live with the limitations they impose, when you aren't paying them money.

BASIC is available, of course. Parallax and PICaxe and a variety of others include specialized, BASIC-like, programming. Those are good options, if that is all you want. For most uses I'm involved in, I cannot use BASIC -- it's too slow and doesn't provide the kind of low level control I need. For people like me, it is c (almost never c++) often mixed with a little assembly coding. Sometimes, the situation demands 100% assembly, though that is getting rarer and rarer, these days. But I think that having experience with assembly is a must, with microcontrollers, for anything other than trivial programs. Early on, that won't matter to you. But later, it will. If you stay at this. So you might as well consider the idea of trying your hand at it. Also, c is good and well standardized. C++ has ... considerations ... for assembly, that go well beyond what I want to write about here and now -- but suffice it that using c++ in microcontrollers isn't too common, yet. At least, not in the smaller ones that aren't 32 bit types.

iamnotaparakeet wrote:
jonk wrote:
Are you willing to make something? Or would you prefer to buy a ready made, get-started-right-now, kind of thing?
I would be willing to create, but my skills are kinda meager.

Understood. My recommendation is that you get some free software tools, as I mentioned before, but expect to buy a programmer tool that also includes a few basic features within it that allows you to do some playing without having to actually build something. That way, you can get started right away. I happen to like, as a starter, that simple TI device that plugs into the USB connector. The reason is that it was once available at $10, may still be had for that perhaps, does NOT require a power supply because the USB does that for it, and comes with a nice IDE that can do assembly, c, and c++ immediately. The downside is that about the only thing on the unit that you can actually play with is an LED you can blink. There are LOTS of ideas I can suggest to help you learn, using only that one LED. But... well, at some point you'll want to do more and that TI unit is kind of limiting, in ways. There is another board that supports the Atmel AVR processor, that I have here and like, which is much bigger, needs a separate supply (included), and attaches via the parallel port (I think), but provides lots of switches and lights and so on. But it cost me $49, too.

iamnotaparakeet wrote:
jonk wrote:
To get an eye-full, enter "+DIY +microcontroller +programmer" into google (without the quotes shown) and see what pops up. Look some of the better ones over, refine your search, etc. For example, add +schematic to the search, if you want. That should give you an idea what you'd be up against, doing it yourself. Then take a look at www.olimex.com, for some ready made stuff that isn't too expensive. They have a reasonable reputation, too.

Let me know, then.
I might want the PCB prefabricated, but I could probably do the rest.

Agreed.

iamnotaparakeet wrote:
BTW I have the Visual Basic Studio.net 2003 and Eclipse IDE for Java, c/c++, would those be useable to program a microcontroller?

Not really. I think I've read that Eclipse is used for some embedded microcontrollers, but maybe I got that wrong. If so, you'd need to find and incorporate the specific tools needed for the microcontroller and not just use what you already have for Java and so on. And there would be a learning curve, there. But at least, not about Eclipse. You'll have to search on google, I think, to see if there are microcontroller tools running under the Eclipse IDE. I don't use it, though.

Jon