Main Site Documentation

Fez vs Arduino


Hi, could anyone told me about main differences between fez and arduino?


Ardunio is 16 Bit at 16Mhz. Fez is 32 Bit at 160Mhz.


With WiFi. And it works in Arduino ide, python, c#, vb, and c++.

And you can debug and step through code using a USB cable.

Fiat vs Lamborghini?


It is 84mhz if I remember correctly.

Anyway, we need the official announcement


From sparkfun’s comparison guide:

Although there are rare exceptions, most ATmega microcontrollers running at 3V will be clocked at 8MHz, whereas most running at 5V will be clocked at 16MHz.

Arduino costs less and runs more real time. Fez tends to cost more (because of the processors and other components) and can be made to run real time, but it is not that way out of the box. Real time is only important if you have time sensitive applications. In most cases you could find a dedicated IC to perform those time sensitive application if needed anyways.

Most Fez devices has USB Host support, and a real USB Client device descriptors (i.e. you can make custom USB devices), as opposed to No USB host and only USB Serial Client Device for Arduino.

The intended purpose of Arduino is to teach embedded programming. Fez was designed for commercialization. Due this differing ethos, you’ll find that they have almost nothing in common. This isn’t to say that Arduino isn’t good for commercialisation, just that there are limits to what you can do.

Due to limitations in Arduino power, it is not very able to do direct TCP/IP. Such operations will always need to be offloaded onto another device. Fez however (depending on the device) has an internal TCP/IP stack. You’ve perhaps never had to deal with serial to wifi links before but let me tell you, being able to control your window size and ack packets is a blessing. Can’t really do Web or Cloud stuff without it. It’s possible, but hard. Also, Fez has enough memory (in the larger devices) to do SSL communication.


If we are talking about the FEZ, then we need to wait for the announcement to hear about the price.


I suspect that Elsa was originally asking generally about the Fez line of products, not specifically your new product called Fez. But it’s an important question to answer - @elsa can you confirm?


Yes, I was asking about the Fez line of products but It is interesting to know about the new product too.


One important feature of the FEZ line running NETMF or TinyCLR should additionally be mentioned: Threading ! (means the pseudo simultaneous execution of different tasks). On Arduino this feature has to be implemented by the programmer himself. On FEZ (NETMF or TinyCLR) it’s already implemented in the OS.


Both use a language that is C like, the arduino is compiled and translated to machine code. .net isn’t, it’s tokenized and pseudo compiled and then interperated at runtime.

Arduino is typically slower but much more efficient. There are very fast arduino boards as such as the intel Galileo and intel arduino 101 which can have multiple processor even. There are 32 bit arduino boards. Since it is translated to machine code it runs very efficiently and on a variety of low hardware processors. For about $4 you can run it on an esp8266 with built in wifi and make all sorts of little gadgets, say one that tells you when to water a plant or monitors an environment.

Fez (.net micro) is really based around a API set of .net, which is a an interpreted language and API set, I don’t know what has been done to optimize it compares to it’s big brother .net. Some instructions in the dot net set can take the processors attention for sever thousand prossesor instructions, hence people say it isn’t good for real time events. That’s true, and not true. If you use C sharp and avoid .net calls in the most critcal sections you can avoid most the pitfalls of .net. Since .net boards cost more, have more memory and more processor, they can support more of a user interface and are suited to talk to more things. It can need more hardware for some activities.

I use both for different things. I have a bunch of $4 arduino boards I can use as device monitors, they collect data, store it, and when report it. I have some very touchy equipment, that this is the best way to talk to. The .net board talkes to the arduinos and some directly and reprts to the user. I have a “tricorder” which does temperature monitoring, radiation monitoring, spectroscopy, infrared imaging, magnetic field, and atmosphere monitoring.

Most arduino boards would never be able to compile all the data and match it up and run a user interface most .net boards would be unable to talk to 15 different touchy instruments in real time at a price I could afford.

Personally I like programming the .net boards and the visual studio IDE. The arduino IDE reminds me of writing code in the 1980’s when compiler messages were cryptic and computers required rooms. When I have an arduino bug (usually because a manufacture changed specs) I often lose hair. On .net I can trace code and debug easily.


And that’s the biggest difference between the two. Although Arduino was for teaching Fez is easier to use… and teach.


On arduino its called co-rutine (multi thread sumulation and execute)