Jewelry Box: Arduino Board Upgrades
As with many projects that start as rough draft ideas, they tend to grow bigger than anticipated, before it’s done. This isn’t always a bad thing, but it means you’re never done, unless you can commit to one “final” design.
It’s All in the Family
Arduino Pro Mini

Initially, this was going to be in a small keepsake box, with the days counted in 7-segment displays. For such a simple task, the Arduino Pro Mini would have been ideal. It’s small in size, and more than capable of handling the RTC module input, and converting the counted days into individual numbers for each 7-segment display. The issue then is: when do you stop counting? 999 days? 9,999 days? At some point, the amount of days will surpass the count supported by the amount of 7-segment displays. Whatever came next, the Arduino Pro Mini would need to be capable of handling the design.
Arduino Uno R3

Is this really an upgrade? Slightly. It has the same specs as the Arduino Pro Mini, but a bigger form factor, or board size. The Arduino Uno R3 also provides header pins, making it easier to connect modules and components; additionally, built-in USB support. With the simplicity of using the Arduino Uno R3, “if it works here, it will work there, too” was the main factor. Building with the Arduino Uno R3, I could visualize the amount of cables that would be used by all components. As the design changed, the amount of cables leaving the board didn’t change. I2C components, for example, can connect to a small prototype board, and share the Serial Clock (SCK) and Serial Data (SDA) pins; same 2 cables for all I2C components. Similarly, power and ground would be 2 more cables. The TFT display uses 6 cables to digital pins, plus 2 cables for power and ground. In the end, it’s 10 pins being used on the board: 5v power, ground, 6 digital pins, SCK, and SDA. Both of the boards can support these requirements, with the Arduino Pro Mini being the slimmer option.
Arduino Mega 2560

Limitations are not always in connections, but available flash storage. Both predecessors support 32kB, while the Arduino Mega 2560 supports 256kB. Individually, each sketch worked for the components that I was testing. When it came time to include the TFT display libraries and sketch, it was more than can fit on the Arduino Pro Mini and Arduino Uno R3. Trimming the sketch and libraries as much as possible, I was still over by at least 12kB; there’s not much I can do to resolve this issue. The most viable solution is to move on to the Arduino Mega 2560. Quadruple in flash storage, I can provide other options to image displays, and messages to show on the OLED display. While the libraries and sketch remained the same, the Arduino Mega 2560 has more pins, and with that, different pin allocations for SPI and I2C connections.
Comparison Overview
Board Specs
| Arduino Pro Mini | Arduino Uno R3 | Arduino Mega 2560 | |
|---|---|---|---|
| Processor | ATmega328P | ATmega328P | ATmega2560 |
| CPU Speed | 16 MHz | 16 MHz | 16 MHz |
| Analog In/Out | 6/0 | 6/0 | 16/0 |
| Digital IO/PWM | 14/6 | 14/6 | 54/15 |
| Flash (kB) | 32 | 32 | 256 |
| USB | – | Type B | Type B |
I2C and SPI Pins
| Arduino Pro Mini / Arduino Uno R3 | Pin | Arduino Mega 2560 |
|---|---|---|
| A4 | SDA | D20 |
| A5 | SCL | D21 |
| D4 | CCS | D4 |
| D9 | D/C | D9 |
| D10 | CS | D10 |
| D11 | MOSI | D51 |
| D12 | MISO | D50 |
| D13 | CLK | D52 |