Has anyone attempted to set up a 5th serial on A11 and 52 on the Due, as hinted at by the unofficial pinout diagram? I doubt anyone would ever need 5 concurrent serial connections, but if there's the option, then why not make the option available?

Has anyone attempted to set up a 5th serial on A11 and 52 on the Due, as hinted at by the unofficial pinout diagram?

hello DeltaEternal,

That may seem, at first glance, a good idea but you should also consider some ramifications like, for example, using pin 52 would limit to two the number of SPI slaves (by losing one Slave Select (SS)).


Sure, there are ramifications, but for those people who actually NEED the additional serial I/O and don't NEED the alternate use of those pins, then the ramifications could well be insignificant and would almost definitely be a better option than 'bit-banging' a serial port from scratch???

Therefore, I'll state that It is indeed entirely possible to kick the final serial port of a Due into life. You'd probably want to spend a good deal of time reading thru the SAM3X8E datasheet to get it done If you want it 'integrated' into the Arduino environment, then I would suspect you could add it in to the variant.cpp file and any other needed places. (That way, you should be able to 'reuse' quite a lot of the existing Arduino code).

Something that mildly irked me about the Due is the sheer volume of 'baggage'. The size of code downloaded for even the simplest blink example exceeds 10kB which is why I ended up throwing away (or rather - not using) the entire Arduino IDE and I now only use 'raw' GCC. (The equivalent of 'blink' code is now just under 0.5kB and over HALF of that is an almost totally empty 'ISR vectors' table. The only populated entries for 'blink' are: Stack, Reset and TC0/Channel0 - the other 58 vectors all point to a 'null' function).

It took a while to get the toolchain up and running and then it took a while to figure out how to switch the CPU clock to use the external XTAL and PLL to get it running at full speed, but the end result is worth it to me. It really helps me to with my understanding / learning about the CPU internals.
Since I now use the datasheet as my 'Master Reference' and not the Arduino reference, I'm free to embed exactly the features I want into my code. If I'd only used the Arduino reference, I'd never have found some of the valuable 'features' that I use (eg: The glitch / debounce filtering on PIOs).