Questions about the Due

Why does the Due run on 3.3 Volts instead of 5 volts? I assume that it's because the microprocessor runs at 3.3 volts, right?

What is the over & under voltage range? That is, 3.3 volts + or - how many volts.

Suppose that I want to use a shield that runs at 5 volts? How do I adapt it to run on the Due?

Should I consider Arduino-compatible Due boards? They are less expensive, but would I save money or would spend extra money because they keep failing?

Has anybody built a Beowulf cluster of Due boards because ethernet shields are available?

The operating voltage is 3.3 V, +/-.3 V . . DO NOT EXCEED THIS VOLTAGE. many Arduino shields are dual voltage. Make sure that your shield will work at 3.3 V. Do not use any shield that is strictly 5 V. The shield voltage should come from the I/O reference pin from the Arduino board itself.

Repeat, Do not exceed this voltage for any I/O pin. you will damage your board.

A Beowulf type cluster would be extremely inefficient unless you just wanted to use it as room heater.

MorganS:
A Beowulf type cluster would be extremely inefficient unless you just wanted to use it as room heater.

I know that a microprocessor like a Raspberry Pi can be hooked up to form a Beowulf cluster. I understand the basics of the Beowulf cluster. I know that all of the Raspberry Pis are connected together with network cable. I suppose that an OS is required to control all of the microprocessors. For what purpose, then, is an ethernet shield on an Arduino?

If 2 or more shields are stacked on top of the Due, how is each one addressed?

The Due is a microcontroller, not a computer, it doesn't have the resources needed to
do this by many orders of magnitude.

Many years ago, I believe the magazine circuit cellar, had an article in it about using the 8051 microcontroller in the same manner. For the time they achieved some pretty impressive results. But that was many years ago. So it can be done.

Unfortunately compared to today's computers, it would take hundreds of Arduino due's to do the same task as one desktop computer. I don't think it would be viable. nor would it be cost-efficient.

You would be better off Buying 2 or 3 good desktop computers and interconnecting them instead.

alternatively, if you needed a microcontroller platform, there are much faster Platforms.

alternatively, if you needed a microcontroller platform, there are much faster Platforms.

Such as?

Macnerd:
alternatively, if you needed a microcontroller platform, there are much faster Platforms.

Such as?

INTEL GALILEO "400MHz 32-bit Intel Pentium".

INTEL EDISON "Dual Core Atom CPU @ 500MHz".

Raspberry Pi - Model B+ "700 MHz ARM1176JZF-S core CPU".

pcDuino2 "1GHz ARM Cortex A8 CPU".

Beaglebone Black - Rev C "AM3358 1GHz ARM® Cortex-A8 Processor".

there are others out there, but I don't want to spend the time looking up the specs . If you need a faster processor, do the research and find one that will suit your needs.

you could also link to an android or iPhone and use it To do all the processing work.

Are the powers-that-be at Arduino planning to transition to 32-bit controllers? There's the Due & the Edison & the Galileo & the Yun.

How are logic level shifters or whatever they are called incorporated into the Arduino board?

Time moves forward only, and progress moves with it. The 16-bit Microcontroller is going the same way as the 8-bit Microcontroller. It will be replaced with the 32-bit and sometime in the future maybe a 64-bit Microcontroller.

Arduino has incorporated a power reference pin, which can supply the proper voltage to a dual voltage shield. Otherwise output pins can normally drive 5V logic as long as it does not exceed the Current limit. For input pins, you need to use logic shifters for the due, to prevent it from being damaged.

However there are certain Microcontrollers that are 5V tolerant. Such as leaf lab Maple, and the panda II "discontinued". Both are Arduino shield compatible, with only a few exceptions because of pin designation. Both runs at 72 MHz.

you need to pay attention to the voltage requirements and current limits of the platform that you are using. This is not a new problem. it existed when they went from tubes to transistors, And it has existed ever since. As the speed of the microcontroller increases the voltage will decrease. it is just something you have to deal with.

For input pins, you need to use logic shifters for the due, to prevent it from being damaged.

Do they come on a shield or are they discrete components? Input & output pins?

Macnerd:
For input pins, you need to use logic shifters for the due, to prevent it from being damaged.

Do they come on a shield or are they discrete components? Input & output pins?

There have been shields made to do this, but I have not seen one lately.
Your best bet is to do a search for "Logic shifters". spark fun carries them and I'm sure that adafruit carries them as well. make sure you get one that is bidirectional, they are the easiest to use.

OK. I have more questions.

The following is copied from "AnalogWriteResolution":

"analogWriteResolution()

Description

analogWriteResolution() is an extension of the Analog API for the Arduino Due.

analogWriteResolution() sets the resolution of the analogWrite() function. It defaults to 8 bits (values between 0-255) for backward compatibility with AVR based boards.

The Due has the following hardware capabilities:

12 pins which default to 8-bit PWM, like the AVR-based boards. These can be changed to 12-bit resolution.
2 pins with 12-bit DAC (Digital-to-Analog Converter)
By setting the write resolution to 12, you can use analogWrite() with values between 0 and 4095 to exploit the full DAC resolution or to set the PWM signal without rolling over.

Syntax

analogWriteResolution(bits)

Parameters

bits: determines the resolution (in bits) of the values used in the analogWrite() function. The value can range from 1 to 32. If you choose a resolution higher or lower than your board's hardware capabilities, the value used in analogWrite() will be either truncated if it's too high or padded with zeros if it's too low. See the note below for details.

Returns

None.

Note

If you set the analogWriteResolution() value to a value higher than your board's capabilities, the Arduino will discard the extra bits. For example: using the Due with analogWriteResolution(16) on a 12-bit DAC pin, only the first 12 bits of the values passed to analogWrite() will be used and the last 4 bits will be discarded.

If you set the analogWriteResolution() value to a value lower than your board's capabilities, the missing bits will be padded with zeros to fill the hardware required size. For example: using the Due with analogWriteResolution(8) on a 12-bit DAC pin, the Arduino will add 4 zero bits to the 8-bit value used in analogWrite() to obtain the 12 bits required."

Why does the "bits" value go from 1 to 32 when the DAC has a 12-bit value? What point is there in having a "bits" value greater than 12?

I'm asking because I read on the internet that an LED's brightness is linear, but the eye's response is not linear. I read about Gamma correcting the brightness of an LED to correspond to the eye's response.

The PWM default is 8-bits. In order to Gamma correct the brightness there would have to be jumps from 0 to 255. It wouldn't be linear from 0 to 255. There would be gaps. However, with 4096 brightness values, maybe the brightness would be more like the eye's response.

Basically you're working with either a 8 or 16-bit Unsigned integer. you can then type in the direct number value that you need without worrying about a binary number. And in my opinion, it's a waste of time and program space to try to work with a 12 bit binary number. the overflow is simply ignored. You should enter code to limit the value to either the highest possible value, or a value that is determined by you.

Macnerd:
Has anybody built a Beowulf cluster of Due boards because ethernet shields are available?

Why would you possibly do that? :confused:

Seriously, even when buying Due & Ethernet shield clone in China direct, you get "more bang for the buck" if you go with a cluster of Raspberry Pi's, specially now that the rPi 2 is out!!!!

Ralf

OK. I have another question. Do any of the Arduinos support floating-point values? I don't think that they do.

Of course they all do.

http://arduino.cc/en/Reference/Float

I can't decide between the Due & the Mega 2560. The Mega 2560 is an 8-bit processor. Is it 8-bits internally as well? The Due is a 32-bit processor & its clock speed is 5 times as fast as the Mega 2560. Are there certain things that the Due can do better than the Mega 2560 because it has a bigger & faster processor? Are there limitations to the things that the Mega 2560 can do because it has a smaller & slower processor? I think that the prices for both are about the same.

The Due has a more capable chip but many of those additional functions are disabled by Arduino. (Real time clock, Ethernet, watchdog, DMA...)

Some of the additional features useable on the Due are important to some people (CAN bus, dual I2C, 12-bit ADC, DAC...) If you're not sure if you need one of those, then stick with the Mega.

The Due has a more capable chip but many of those additional functions are disabled by Arduino. (Real time clock, Ethernet, watchdog, DMA...)
Do you know why they are disabled? What is "watchdog"?

Some of the additional features useable on the Due are important to some people (CAN bus, dual I2C, 12-bit ADC, DAC...) If you're not sure if you need one of those, then stick with the Mega.
I doubt if I would use the CAN bus.
I suppose that the Mega has one I2C, right? I think that the Mega has a 10-bit ADC, right? I think that the Mega doesn't have a DAC, right?