In the meantime I've posted the same question to the Arduino sub-reddit
, and there's a bunch of very interesting feedback. I thought I share it here as well, might be helpful for other people designing Arduino-compatible devices1) USB-Serial
Some question of the choice of the FT232RL for USB-to-Serial. It's not clear whether it's a "bad" choice, but it's clearly "not as good as could be", because of people's experience with the newer Arduinos raised the bar: more people want USB-HUD experience (mouse/keyboard emulation). Because of that some people suggested either using the ATmega32u4 as an USB-to-Serial serial chip in addition to the core, or even just using the USB-to-Serial functionality in firmware of that chip. I got to look into that, it looks interesting idea (especially the latter), but don't understand the practicalities of it just yet.2) Choice of MCU
It was suggested to use other chips than the ATmega328P-AU that I'm going with so far. Either the ATmega32u4 as mentioned above, or if possible then an ARM Cortex-M4 instead like Teensy 3.1
. These look interesting too, though probably not at first, but as I gain more confidence and experience in designing these and the requirements of the different chips. The 328 is already proven on 3.3V, and for a start it would work "okay" for sure. Still, it's awesome how many choices there are now.3) PCB design
People commented that besides the "row-of-pins" arrangement like on the Arduino boards, there are other ways for breaking out the I/O in a more usable way (especially for a board that might be inside
another computer like this.
- More pads on the PCB surface for easy soldering to
- I/O+VCC+GND combo pins like some servos
- Break out additional lines from the mini-PCIe if available
These can be tricky, because the surface real estate is quite small (51x30mm altogether, and some of it is lost to the mandatory screws), so definitely cannot cater for everyone. Will need some more input on this, and likely more research on how others are doing this.
That's mostly it so far... I'm trying to figure out some more details about the PCIe connector (in particular whether I should use AC coupling capacitors on the USB2.0 lines coming in? and wiring the power lines for PCIe specs compliance and low noise.).