Go Down

Topic: Alternative controller (Read 997 times) previous topic - next topic



Till now, I've made projects only by using the Arduino microcontrollers. As we all know, these controllers are very flexible, easy to use, and simplistic, it doesn't bother you with the underground things.

I can say that I know C++ at a medium-high level, and I've reached a point where their capacities aren't enough(Arduino's). The ram is too little, also the clock and the serial speeds.
My current project requests me up to 200 MIPS, 32-48kb ram so it's a something.

The questions are:

1. Is it possible to have a different controller, powerful like those characteristics up there, have the possibility to migrate all the libraries and IDE from Arduino to that particular controller, and not writing another libraries for it? I just want the Arduino's flexibility and simplicity.
2. And if it is possible, what controller should I pick (i.e from Atmel)?
3. Does binding multiple Arduinos through the I2Cs increase the power processing (like having one coordinator, and multiple ,,receivers")?

Thank you,


Sounds like you want the ChipKit...

PIC32 microcontroller, 80MHz, fast, lots of RAM/FLASH, and uses the same IDE as the Arduino.


Quite good boards, never heard of them, 5 times more powerful than Arduino, but still not enough.
Surely isn't something int the market that has the power around 200MIPS? (I have to say, the code that I want to put in requires much calculations).

I'm satisfied even if the controller isn't placed around the regulator, resistors, ports, etc. I'm okay with that, I can build on my own the rest of board. As you know, I just want to be compatible with the Arduino's libraries and IDE.


The Arduino compatible bit is the hard bit.

There's plenty of high powered development boards around, but they aren't arduino compatible.  Things like the Pi, the beagleboard, etc.


So practically there's no alternative to Arduino's chips? Nothing? Not even the ATmel chips? (I mean the compatible ones)

and one more thing: if I have to move to a non-compatible platform, is there any possibility to convert the libraries or is it just useless?


The arduino IDE and associated libraries are designed around generating a standalone application be the only thing on the chip (besides the bootloader).  More powerful chips tend to be based around the ARM core, which is considerably more complex, and typically runs an entire operating system, like Linux.

The libraries tend to operate directly on the Atmel hardware, talking to peripheral registers.  However, they are just C / C++ code at the end of the day, so if you can program your desired device in C++ then you can in theory port a library to work on it.  The compiling side of things though won't be with the Arduino IDE, but with whatever the target device has implemented.  For some devices this could be running gcc directly on the target device itself (like the Pi).


I understand now.
I think for moment the best option would be the chipkit.

On the long term (like 1-2 years), do you think that DSPs would represent a good alternative? (I mean, they can run linux or a standalone application, it depends)

Thank you in advance :)


It all depends what you want to do.

A DSP is good at processing signals - after all, that's what it's made for.  For general processing, something more "generic" is best, like an ARM Cortex, or an ATOM, etc.

A third option is FPGA - great for very powerful single job operations.  This might be more like what you're after.  However, it's a completely different programming style - a Hardware Description Language.  You're effectively creating your own chip instead of programming someone elses.



... So tempted, in fact, I have just bought one!  :D


Hmm....I've googled now that you told me about this FPGA.

Looks very interesting, promising as well. Took me a while till I got the idea.

I'm not sure, but do you think that neural nets would fit the FPGA? I mean, these chips are FAST..

And if not, wouldn't be an idea to use at the same time a DSP and a FPGA? (just thinking as a future solution)

PS: What project have you build with the board?


The chip on that board has about 22000 macrocells (logic elements) so it can do some pretty complex things.  You can get top-end chips (costing 10 times as much or more) with hundreds of thousands of macrocells, so they can do even more.

Can a neural net fit in one?  I have no idea.  Probably.  They are pure logic.  If you can do it in logic, then you can do it in an FPGA.  You can link FPGAs together just like any other chip, so your neural net could be a real physical network of devices.

My board doesn't arrive until tomorrow, so I haven't built anything yet - I've tinkered with the software a bit last night, and I must say it's "interesting".  Verilog HDL is pretty straight forward, and the library of pre-built logic functions (or MegaFunctions as they call them) is pretty comprehensive, including all the 74 logic series and logic blocks to do most tasks.

My first project will be a blinky :)


Jul 28, 2012, 11:56 am Last Edit: Jul 28, 2012, 06:02 pm by RobertEagle Reason: 1
Sorry for my delay, a big one. I didn't have access to PC and by this I wasn't able to post anything.
When you' re ready, post here some of your projects:D

Anyway...this FPGA's will probably be used to work in tandem with the DSP's. Could be an idea for a so-called ,,spinal-cord" for a robot I may think. When it receives a specific code it'll know and do "that thing" faster.

Now, back to the present story, I continue having questions:
-Can I set the PWM frequency at a precise 32kHz(32000Hz)? My brushless variators work at 32kHz.
How can I set the timers? Through prescaling or directly modifying the microseconds interval? (at least this is what I have understood till now)

The problem is that I have used the timers for a short period and I'm a little bit of a newbie here, and I don't want to buy a product that doesn't meet my requirements.

Thank you,


up to 200 MIPS

Where does that number come from, and what does it actually mean?  Fifteen times faster than an Arduino (equiv to a 240MHz AVR) is different from "200 Dhrytone MIPS."  200MHz 8-bit processors are quite rare, and it's a bit of a "hole" in microcontrollers in general (BeagleBone and Rasberry Pi and such run at about 1GHz.)  But if you're only looking at trying to 32bit arithmetic or floating point 15x faster than an Arduino can do it, you might get by with things like the Due or ChipKit (About 80MHz clock, but with a full 32-bit wide CPU.)

Otherwise, you'd probably find the STM32F4Discovery an interesting board.  ARM Cortex M4 with floating point at "about" 150MHz...  No Arduino compatibility that I've heard of, though.


Jul 29, 2012, 12:34 am Last Edit: Jul 29, 2012, 12:36 am by RobertEagle Reason: 1
I'll be straight.

I want to develop a neural network that is big. It isn't necessary to go in the details (some sort of new stuff) but it's going to use a lot of the processing power.

As you also mentioned about the other controllers, for now I'm going to stick to a 32-bit processor because of it's arithmetic capabilities,and the board it's going to be the Maple rev.5. It features a 72Mhz 32-bit ARM M3, 20Kb Ram and 128Kb Flash.

The reason for this is because of what I have seen in the last days in the books (neural nets), I decided that a more powerful board (than my boundary) would just not justify for now so again the Maple would be a good choice.

Something to rectify?

Thank you,

PS: Ohh, and I wasn't looking for a 8-bit processor at all, with and exact frequency of 200Mhz. I was looking for something that is compatible with the Arduino library or at least to be emulated plus a more powerful chip. That's all.:)

Go Up