The PCB v1 has been in use for a while now and some support code has been written to remap a few of the default Adafruit pins to get a second UART etc.
During the course of this I had many new ideas and have modified the PCB substantially. It's almost ready to be fabbed as v2 now, here's a 3D render of the new look.
NOTE: Circuit boards called "walls" can be soldered at right angles to the main PCB on the four edges, these have access to all the backplane signals so can have active electronics and connecters to facilitate IO, or just be blank to form the sides of a box. These walls are designated as per the cardinal points of a compass, N, E, W, and S.
With all four walls in place and the addition of a top PCB the design is essentially "self enclosing".
The "stackplane" is now three Arduino-style socket strips, one is 22-way with most of the logic signals and two are 3-way that mostly carry power.
The expansion bus has been extended to include most of the backplane signals. The expansion module now sits at the same height as the Adafruilt CPU module. Normally this expansion module would be used for small functions that don't justify an entire stackable daughter board, such as an RTC or micro SD card. It could also be used for IO like a serial port or more STEMMA-QT/QWIIC interfaces as it has some access to the west and east walls and even the south wall if it is designed in an L shape.
There is now hardware decoding for six slave select signals, one for each wall, one for the expansion module, and another for the backplane. Thus up to six devices can share signals such as the SPI interface. Alternatively up to 16 stackable and addressable boards are allowed for and each such board can provide a vectored interrupt with a protocol for this being largely defined.
Two STEMMA-QT/QWIIC connecters have been added, this is fast becoming a standard so it makes sense to include them. I always planned to have a quad buffered interface for this and still will, but these two connecters allow the use of STEMMA-QT/QWIIC modules right off the bat.
Another addition is dedicated pins on the debug header, these can be used as scope triggers or for other high-speed measuring. Also internal data variables can be bit banged out these pins and read on a scope. Code has been written to do this. Naturally a standard ICE debugger for an ARM can be used as well and I have plans to design a debug board with some useful features.
Finally both the debug and expansion headers allow for the direct plugging in of a common 0.91" OLED I2C serial display, either for debugging or general UI purposes.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.