Above: Pro Mini XL (right) shown next to a Pro Mini 328p clone (left).
(Note: An early development Pro Mini XL shown with ATmega 1284, without crystal osc. or reset switch.)
In the beginning
My first attempt at another Pro Mini became what I’ve come to call the “Pro Mini XL.”
When compatibility is a key for ease of use, it makes sense to simply traverse a microcontroller family tree, if you can.
The ATmega family members above the 328p that stood out to me were the 644p, 1284p and 2560.
Upon initial investigation, the 2560 was immediately taken off the table.
At 100 TQFP pins, it would simply never fit.
A Pro Mini-sized board only leaves approx. 13mm between the right and left hand side edge pins.
And even the smaller 64-pin QFN package of the 2561 at 9mm² would be too tight to route around.
I didn’t want the extra expense of moving to a 4-layer board, mainly because I had a lot of 328p Pro Minis to replace.
The 644p looked more promising in it’s 44-pin TQFP and QFN packages, but only when compared alone.
For the same sized package (12mm² TQFP or 7mm² QFN), the 1284p was simply superior in every way.
Benefits
You can play your own game of 328p vs. 1284p spec sheet summary “Top Trumps” and note the differences.
Those that mattered the most to me were:
- 4x the Program Memory
- 128KB vs. 32KB
- 8x the SRAM
- 16KB vs. 2KB
- 4x the EEPROM
- 4KB vs. 1KB
- One extra UART
- One extra 16-bit Timer
Moving to a larger package, had the natural benefit of more programmable I/O pins to wiggle (32 vs 23).
Upon further investigation, some other notable benefits that peaked my interest were:
- One extra interrupt pin
- Two extra analogue ports
- JTAG interface
And all this was purely additive to the 328p’s features (low power, PWM, WDT, QTouch, etc.) without forfeiting any of note.
But.
Would it fit?
Limitations
All this extra memory and added features came at a size cost.
Or at least it did, way back when the 1284p was first released!
Although my initial back-of-the-envelope calculations showed that 12mm TQFP pads would “likely” fit between approx. 15mm pin-to-pin through holes, the devil is (as always) in the details.
You can see from the photo above that the 1284 in a TQFP is almost half the size of the whole PCB itself!
Underneath that chip is a veritable spaghetti-junction of tracks and vias to try to route everything in and out.
And I didn’t manage to route every pin.
But even forfeiting as much as 8 pins (and some admittedly useful chip features) was still worth the benefits of extra program memory, etc. in my mind.
I ended up having to stretch/bend/throw-up on some PCB design constraints that I usually set in stone.
Things like routing into keep-out areas and on the outside of edge pins, just to name a few.
I’ve not encountered any issues with “flexing” them yet though.
Filtering caps should be much closer to the chip and I’d like more of them too.
But, of course, the 800Lb gorilla in the room is the lack of an on-board regulator.
I thought long and hard about this one whilst examining many of my existing project PCBs.
In the majority of cases, I was handling project power elsewhere, usually in some sort of distribution board.
Once a project had grown in size and scope, I rarely tapped anything off of the 328p Pro Mini’s regulator anymore.
So, in the end, I bit-the-bullet and abandoned trying to fit one and the Pro Mini XL was born:
Summary
- 8 unrouted pins.
- 25, 26, 32, 33, 40, 41, 42, 43.
- Compromised design constraints.
- No on-board regulator.
- Fewer filtering caps.
Improvements
Pad size is a problem; everything is much bigger than I think it needs to be.
Decreasing TQFP pad size by half might enable me to get some more pins/tracks routed.
The same goes for the crystal and reset switch.
Better part selection might help too.
I do prefer crystals over resonators, mainly for the extra accuracy and better temperature stability.
But the part and it’s pads are humongous!
I might respin a version with a comparably tiny ceramic resonator to see what other extras I can then fit.
This could enable a voltage-selectable (3.3v/5v) regulator and associated passives to be routed.
We’ll see.
I suppose I could go for a few 0603s instead of the 0402s.
Initially, I hated having to solder 0402s by hand (with a microscope and a judicious amount of coffee!).
But with lots of practice, a fine-point iron and solder wick/flux as my BFFs, I’ve gotten better.
Then I switched to hotair and paste and haven’t looked back.
I could also go for a QFN footprint instead.
The ATmega 1284p is available in a 7mm² QFN package.
But then you’ve got the thermal pad to worry about and all that lost routing room underneath it.
I also didn’t want to go double-sided, if I could avoid it.
Might not matter though…
Summary
- Decrease/custom component pad size?
- Better part selection?
- Add a regulator? (Optional power LED?)
- 0603s where helpful?
- QFN package instead of TQFP?
Epilogue
As a quick test, I plugged a freshly fabricated Pro Mini XL into an existing 328p Pro Mini daughterboard I’d made.
The board features a custom radio board socket, ICSP pins, ATSHA (for encryption) and external SPI flash (for FOTA updates).
I then added an RFM69HW and SI7021, the latter making use of the added power pins next to the I2C, and there I had a long-range wireless, temperature/humidity sensor with encryption and FOTA support.
However.
At this point, the 32-bit world was beckoning...
Over to you…
So that’s where I am with the Pro Mini XL right now.
- What do you think?
- What would you have done differently?
- What other components or features would you liked to have seen?
- How important is an on-chip regulator for your projects?
- How do you handle project power distribution?
Please let me know and I'll join you in the comments.
Thanks for reading!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Very nice write up and thanks for posting. I am in the process of designing an ESP8266 custom board and it was informative to read about your challenges and solutions. Personally I like the idea of your XL version. I have only had one application that broke the 328's memory limit, it would be nice to play with and find an project for it. Keep up the good work.
Are you sure? yes | no
Thanks Peter - I really appreciate the encouragement!
I’d also love to hear more about your custom ESP8266 board when you’re ready to share.
I’ve not ventured much into the world of wifi with all things ESP8266/32s/etc. yet, but am definitely curious to learn more.
Are you sure? yes | no