Many many thanks to Adafruit and Sparkfun for providing the schematics for the boards. Without these schematics, my design would probably have taken many more iterations to get right. As it stands, my first board that I designed for the Cortex M0+ ARM chip works out of the box.
Why the Cortex M0+? It is also known as the SAMD21 series of chips, and it is a very popular choice for hardware companies for providing a mid-level chip that is more powerful than an Arduino but less powerful than something like a Teensy. I had also worked with ARM before (M4!) and I was reasonably familiar with the process of programming it as compared to using a PIC-based chip.
This project was launched because I saw that Adafruit didn't break out all the pins on the SAMD21, which I wanted for experimentation, but Sparkfun's design didn't provide all the nice bits of circuitry (lipo charging/USB firmware) and was packaged in a size a little too large for my taste.
So I blended the best aspects of both boards into one which I call the M0 Plus Breakout Board, read as "MO". It features LiPo charging circuitry, a small footprint, USB/SWD programming, and Arduino compatibility. A blink sketch took up 3% of the total space in the chip.
The edges are a little too sharp for my liking and I would probably round them off in a later redesign. However, this board is not meant for plugging into a breadboard (though you can rubber-band it to one).
The main purpose of this project is to produce a breakout board so that I know that my routing works and to experiment with the M0+ chip before I integrate it into a project.
This is the layout of the new board. A lot of unnecessary vias were removed simply by rerouting.
I might also want to change the M0+ package to one that is more amendable to soldering via hot air because I find that it is more convenient. Adding an LED to the data line will also be useful to tell if data is being transmitted and if the board is powered.
Schematics and the board layout will be provided later when the board's design is finalised.