I’ve been doing a lot of research and thinking about controllers for robots since my Windows PC decided to die on me (chipset fan failed). This and the fact that the ATOM and PIC microcontrollers don’t have any or not very good tools that run under Linux has gotten me to look at other microcontrollers.
Sometime ago I discovered MAKE Magazine and they have got a controller called the MAKE Controller Kit which uses an Atmel SAM7X processor. Unfortunately these kits are backordered until March. The specs are really nice - it’s fast, has lots of Flash for program storage and plenty of RAM. not to mention good Open Source tools to allow development and programming under Linux.
I am going to get one of these controller kits as soon as I can. Software tools are available for Windows, Linux, and Mac. and everything including the controller is Open Source. There also seems to be a very active community building around this controller, so support and such should not be a problem.
The MAKE controller kits are reasonably priced, so it would not be unreasonable to use more than one of them in projects. I am thinking of Walk 'N Roll here.
Has anyone else here gotten and used one of these MAKE controllers?
I never really liked the MAKE controller. I mean, the whole thing is essentially a development board for its Atmel processor. My main grief is its too large and horribly overpriced for what it is. The processor is an ARM7, which means it costs around $5. Hell, my $30 WiFi cards have a faster ARM9 with more RAM in them. The rest is some buffers, a 5V and 3.3V regulator, and screw terminals. I’d wager the total cost of the board is around $30.
The MAKE people are probably making a killing off the thing, which is fine. However, the projects people are using it for: controlling a stepper motor, blinking LEDs, etc. are projects best served by a PIC 16F84 or a BS2. There is no reason to throw an $150, 48 MIPs processor at this. And as far as the MAKE documentation, most of it is copied from the Atmel spec. sheet. This is not to say the processor isn’t useful, I’m sure it would be good for a midsized robot once moved to a smaller custom board.
As a board to learn ARM microcontrollers on, its okay but there are others which are better and cheaper. However, its being marketed as a board to use for general projects, which is just silly.
The MAKE controller board has a lot more stuff on it besides just the memory and microcontroller. You may have missed the walk through of what features the MAKE controller board has on it (not the application board). You might want to go and look at the info about the MAKE controller on the Makingthings site, especially the tour of features. It has an Ethernet and CAN interface also, as well as USB 2.0, and all of them are brought out to connectors on the application board.
I still think you are underestimating what is possible with the MAKE Controller. Sure, some people will use it for simple stuff, but that does not mean these types of things are all you can do with it. One of the purposes of the MAKE Controller is to make microcontrollers more accessible to more people, and I think it does this real well while still making its internals fully accessible to more experienced folks.
Remember, you are not limited by what the application board that comes with the MAKE Controller has. The controller was made to plug into any compatible application board, which includes those that might be designed by others.
For you, I, and most others here this is probably very true. However, there are users of all levels of experience out there, and maybe their first microcontroller project is to blink some LEDs or do some other simple task with the MAKE Controller. Heck, I remember the very first time I powered W.A.L.T.E.R. up and he started running around under his own control - that would not be a real moment of triumph for many others here, but it sure was for me.
I really don’t agree that the marketing of the MAKE Controller is silly at all. There are several different ways you can use the MAKE Controller besides writing your own programs for it from scratch. You might want to take a little closer look at it. Second looks at things have saved me from missing some real gems at times, including Alibre Design.
Okay, I was wrong about the Ethernet and CAN, since most ARM development boards have these, I assumed they were part of the microcontroller package. Anyway, for $150 you can buy an ARM board that runs Linux and has way more stuff on it. Here is an example: microcontrollershop.com/product_info.php?cPath=154_170&products_id=771 of what you might want to get if you were serius about learning ARM.
All the MAKE projects with the controller, thus far, have been stuff any real ARM board would use as the first couple of examples. In fact, most have much more advanced learning projects included. I looked at that Heavy firmware, and for all but the simplest things, I’m sure its not going to help. Honestly, if someone can’t program or do electronics and is unwilling to learn, they shouldn’t be getting this thing.
I’m not saying that the controller itself is bad, there is a place for low and medium power microcontrollers, just that for the price and with the lack of documentation and examples, it is a very bad deal.
If they were serious about a beginner micro, that was open source, they’d use an Arduino Stamp sparkfun.com/commerce/product_info.php?products_id=8164
since while that version is $40, they show on the web page how to make all the hardware from parts, so you can roll your own cheaper.
Why does the fact I am considering getting a MAKE Controller indicate I might not be serious about learning how to use ARM microcontrollers?
OK, this other controller has some plusses, like the fact it has more flash, has more RAM, and can run Linux. I was looking to see if it has I2C support, but I don’t see that indicated. The microcontroller on this board is still an ARM7 though. The IDE port isn’t really a big deal for me, although I could get a memory disk that will plug right into it.
You do not have to use their provided project software though. You can indeed write your own software from the ground up for the MAKE Controller. I still don’t get why you are so against the MAKE Controller.
I don’t agree with this assertion. I can do electronics and can program just fine in more than one language.
I guess you have missed a lot of the docs and such on the Makingthings site then. There is quite a lot of how to, tutorial, and other information, plus support forums for the MAKE Controller.
To each their own, I guess. I see potential in the MAKE Controller that you don’t see, which is fine. I am still in the process of researching things, so have not made a firm choice on which controller to get yet. I do appreciate the pointer to the other ARM7 controller, and if you know of any reasonably priced ARM9 controllers with decent features I would like to know about them. I am all for getting the most bang I can get for each buck I spend.
My comment about the unwillingness to learn was about the Heavy firmware, whose purpose is to make the MAKE controller a plug and switch type of device, so that it needs little to no actual programming. The only reason I brought this up was because you mentioned people don’t have to write code for the thing to make it work. I assumed you meant because there was this firmware image which had a bunch of preset projects and macros already programmed into it.
The MAKE controller is not marketed to help one learn ARM, it is marketed as a general purpose project micro. I doubt you will learn the ins and outs on the ARM7 architecture from the controller, since it simply does not come with the documentation or practical projects to help you do so. If you want to learn ARM, that’s fine, but you should pick up a real ARM development board from a company that sells ARM micros to product developers and comes with ample documentation support hardware and code. The MAKE how-tos section is lacking even a fraction of what one of these professional development kits come with.
My main point is that if you do decide to get a MAKE controller, you’re going to go through the simple projects and then get frustrated due to lack of features, lack of documentation, etc. This is because it doesn’t do anything really that well…
If you want the MAKE controller since you want a good general purpose microcontroller, there are better and cheaper alternatives. The PIC, AVR, and Adriuno are all much better for this purpose. Yes, they are less powerful, but for the vast majority of projects this is all you need. They also all have much better documentation. There are books about the PIC and AVR and the Adriuno’s webpage is far more complete than the MAKE controller’s. Suppose it did have the best documentation there was about general usage. Well, then you’d be where I was with the BS2, having to shell out far too much money for a project that should be able to use a PIC 16F84 for a few dollars.
If you want the MAKE controller to learn ARM, you should get something powerful enough to run embedded Linux so you have lots of flash, RAM, peripherals, and code to play with. The board I linked to was just an example that cost $150. On the page there were tons of examples of code, and links to documentation. The actual kit would come with hundreds if not thousands of pages.
So, the only role I feel it fills is that of a high power micro for the few cases were a dsPIC just can’t cut it but a full-blown embedded Linux machine isn’t needed. For this role the $150 price tag is a killer, since this is what you use a single ARM CPU for.
For many people this would be just fine because they neither want to learn to program it or they get the functionality they want from the existing firmware that is available. I am not one of these folks though, and I am quite able to write my own software, load it, and run it on the MAKE Controller. This controller can fill a wide range of uses, for many different levels of experience.
I can actually learn quite a lot just by looking through source code. I spent four years doing maintenance programming and most of the time I had to work on very old code. I had to analyze the code and figure out what it was doing and how before I could even think about starting to modify it.In most cases the original programmer had long since left the company and.or there was not a lot of documentation (if any).
There are a lot of other resources on and off the net I can use to learn what I can’t learn from working with a specific microcontroller, including the MAKE Controller.
Sure, I could go get a different ARM controller board, and probably pay a lot more to get the features I want However, I am on a fixed income and have to be careful how I spend my money. If I were going to go for a controller that can run Linux (and I am not convinced I need that right now), I could go for a Gumstix setup and pay about $300.00 to get the features I need, or I could pay about the same and get one of the Technologic boards.
I am looking at that controller you linked too and if it has I2C also, I will seriously consider it. I did not see I2C in the specification list, but could have missed it.
In the configuration the MAKE Controller is sold in, it may not do everything I want it to do. It is programmable though, and I am capable of breadboarding my own circuits and am always learning more about microcontrollers. I learn what I need to know when there is a need, from whatever sources I have available. I am quite capable of modifying existing code and/or writing brand new code from the ground up if needed to do what I want to do. Sure, I am just starting my learning curve on this path, but I learn pretty fast and can quickly apply new knowledge once I have a good understanding.
Please remember why I am starting on this path. I want to use a microcontroller that has good Open Source tools that run under Linux. I want to get away from proprietary Windows based tools as much as possible. I want something I can just tinker with sometimes. It does not really matter to me that the MAKE Controller’s documentation isn’t as good as it could be. In fact, I already found and fixed one problem in building the tiny firmware. I am working to find a solution to another problem I have run into in building the driver required by the sam7 utility.
I think the only money I have to shell out for the MAKE Controller is $149.95. Everything else seems free as far as I can tell. Firmware downloads are free and I would be able to download projects others have created for it also and use them or more likely modify them for my needs or even take parts of them and use them elsewhere.
Just because a particular project can be done using a less powerful microcontroller, does not mean it has to be done with that. Everyone, including me, has their own take on how to do things. I could be building towards a goal I haven’t even mentioned, where the MAKE Controller could fit perfectly.
Right now, I don’t see where I need a microcontroller that can run Linux. I see a time when I will get to a point where I want to have a full fledge Linux based microcontroller, but not right now. Having a lot of Flash and RAM would definitely be a plus for the future, but I think I can do a lot with what the MAKE Controller offers. I will likely even be able to contribute to the MAKE Controller data bank as I learn more about it and use it more.
I am still looking at this controller. If it also has I2C I may get one of these. However, I will also very likely still get a MAKE Controller.
I see where you are coming from, and I understand. However, I think your view of the MAKE Controller is a bit narrow and limited. I see more potential in it. That’s just my opinion though. Remember though, there are not currently good tools for PIC and dsPIC programming, if any, under Linux which don’t cost quite a lot to get full versions.
I hope you can see where I am coming from and understand my point of view also.
On our other thread there are a number of different programs. Not to mention I’ve got a PIC to work under Linux with the GNU PIC utils, Kwrite, and my programmer software, no IDE needed. There are Linux PIC simulators, IDEs, etc. too. Heck, the free MPLAB can run under Linux with a whole lot of work. I believe a link to the Microchip forum where that process is attempted is linked on one of our threads. I may even try this at some point if I feel I need and/ or want to. I really don’t see how you can say there are no good Linux PIC tools. While I’ll admit its not as plug and play as Windows, its not that hard.
However, if you want full Open Source support from the developer in your micro, look at Adruino. They have the Linux IDE code on the web page. arduino.cc/files/arduino-0007-linux.tgz They even tell you how to make the micro out of parts instead of buying their premade versions. I don’t see how more open this could be.
Anyway… Let’s end this here. If you really have your heart set on getting the MAKE, fine. However, I honestly think its a waste of your time and money because even if it does everything you can possibly imagine it will, you still will need to buy more of them if you intend to do many projects at once. This is what I refer to when I say you’d have to shell out more for additional projects. I tend to keep my older projects (well, the ones that work) together for awhile and just hate dismantling them for parts. I would seriously recommend sticking to a PIC microcontroller, at least for now. With a PIC you could throw a new microcontroller at every project and not really feel bad doing so.
One final note, the board I linked to was only a quick example, I’m sure you can google something better for the same price. Since you mentioned it is important, you can bit bang I2C on a BS2, so you can do so on any faster micro with a few free GPIOs. I can find the code for that if you want. If the device runs embedded Linux you can even dedicate some of the pins to this and assign them to run under the I2C module. I know since this is essentially what my WRT54GS does to run the SPI interface to SD cards. Yes, I know its MIPS vs. ARM and SPI vs. I2C, but the concept is the same. Also, PICs can run the same type of SPI “driver” arrangement since people have hooked dsPICs up to SD cards for added storage.
I just discovered all the GNU PIC utilities, but have not checked them out yet. I just installed them. I like to have everything integrated within an IDE if possible.
I found gpsim, which I think is a PIC simulator. The only IDE for PICs I have found so far is piklab, which isn’t part of the Gentoo portage tree. My current PC doesn’t have enough memory to run emulators, and I prefer to use native tools anyway.
I am talking about tools that run native under Linux, not ones that require running under wine or another emulator type environment.
I’ve looked at Arduino a couple of times. I don’t know if it can be programmed in C or not, but it seems to require using a language called Processing or Wiring. It is definitely an open environment.
I don’t have my heart set on anything at this point. I am still looking at options and such. I probably won’t be in a position to buy anything for at least another month, so I have a lot of time to look around. Right now, the only thing I am considering the MAKE Controller for is a new brain for W.A.L.T.E.R. and it has just the right hardware mix for him at present (including 8 ADCs).
I am still planning to build at least one of Pete’s boards too. We can get samples of PICs, which is a nice plus there.
While I know I2C can be bit banged, I am looking for true I2C support in order to be sure it is fully compatible with the Open Servo project.
I will keep researching to see what I can find for microcontrollers, including ARM and AVR. I am also looking at SPI and CAN as alternatives to I2C and am making sure any microcontrollers I want to use have the a common bus available. I may decide to use SPI or CAN just so I can learn about them and how to use them. I still have to get my Windows PC fixed so I can use some stuff, like my 3D CAD software.
Funny, I’m getting pretty serious about getting in line for one of these boards and was looking for some reviews when I found a link to this forum.
The Make controller looks way cool. I like the RTOS and TCP/IP libs. I’ve been all over the map on controllers and spent a lot of time rolling my own with TechArts boards (HC9S12) but having to write the RTOS, drivers, et al led to a complicated, fragile robot. I got a AtomPro and BotBoard just to convince myself I could make a robot again…
The ATOM/BotBoard combo makes for quick, robust robots but the lack of multitasking and network support (and BASIC in general) limits the ability of doing some really cool stuff (like web presence).
Soooo…has anybody used one of these yet? Sounds like they are getting some in soon…
PS - I don’t see the price as prohibitive. A BS2 and simple dev board is over $100 and you just can’t have a real RTOS and IP stack with 32 bytes of RAM.