Yes, I know I have used part of that title in another blog but this is following that theme: there is life in the old dog yet. No, not me, the Arduino Uno!
The Arduino History – and missed opportunity
Several years ago, ATMEL produced the 8-bit ATMega328P. Hooray! Arduino used that chip in its later, 2010 onwards, UNO boards (originally they used ATMega8 chips). It was nice step up.
Around the start of 2016, ATMEL / Microchip (they merged in mid-2016) produced the successor to the 328P chip, cunningly called the 328PB (yes, it seems there was a 328PA too, for about 1 minute – all traces of it have disappeared). The 328PB was a logical evolution of the 328 range, not a revolution. But it was most certainly expected to find its way into a new Uno Rev 4 board at any time, given that it was very nearly pin compatible (two pins that are connected to GND and VCC on the 328P are now two extra GPIO pins) and the 328PB will run all code generated for the original Uno R3 328P perfectly.
As well as extra pins, the 328PB also offers an additional SPI, I2C, UART and gives us A6 and A7 (like the Nano) but all Analog pins are now true GPIO pins (on the Nano, A6 and A7 are only analog input pins). I’ll link to a document below so you can check out the changes in full.
And so the world waited. Before and during this time Arduino had split into two competing and litigious companies with little time to release any boards, let alone revisions.
So now, in 2019, the moment for Rev 4 has passed and in late 2016 the newly unified Arduino, merged from Arduino LLC and Arduino SRL and slowly started designing new 32-bit boards – quite a jump from the beginners’ boards that had introduced the microcontroller to millions, worldwide.
But we need not despair. The original 8-bit UNO 328P still has many, many uses and is ideal as a board to introduce beginners to computing, including C++.
Enter the UNO ‘Plus’
I’ve developed a simple, cheap 328PB PCB plug-in adapter for any Arduino UNO board with a DIP chip.
Now, most cheap, Chinese clones use the SMD version of the 328P, the 328P-AU and can’t be upgraded (easily).
But the good news is that you can get an Arduino UNO with a plug-in ATMega328P DIP chip for the price of a large cup of coffee (OK, this time with whipped cream and cinnamon, and possibly a cookie) and which you can then upgrade in no time at all. Yes, it requires some simple SMD soldering. 3 components! That’s it.
Can’t solder SMD TQFP chips? Get JLCPCB to assemble it for you. They are quick and reliable as you might have seen on my videos this year. They use the components available in the LCSC component store, so cheap too.
Basically I just wanted to see whether it could be done (that mountain was just there, waiting to be climbed) and it has, in some ways, exceeded my expectations.
It’s no quicker than the original 16MHz UNO 328P, but the extra SPI and I2C channels overcome some of the limitations of a single channel with modules that don’t play nicely together. And the separate serial is great. Now we can debug and use serial to communicate with other devices. And extra pins? Who doesn’t need extra pins?
The hardware is supported by the wonderful MiniCore software, written by “Hans” aka MCUdude – from Norway, allegedly. Link below.
MiniCore gives us the exact same facilities as the standard UNO with some extra bells and whistles – like accessing the new Serial1 from within the Arduino IDE.
It’s definitely what Arduino should have done themselves if they hadn’t been so busy with their civil war. Boardroom battles, hey?
All this is going to be in a video on my YouTube channel pretty soon.
Link: https://youtu.be/S_k_2sqmSxw (when released, Friday 1st Nov 2019)
I’ve got the hardware and software all up and running and I just need to try out a few things; but I’m not going to ‘test’ whether the additional I2C or SPI work. I rely on ATMEL / Microchip to have done that work already!
Differences between ATMega328P and 328PB
MinCore by MCUdude aka Hans