Silkscreen for skin-board position
torwag opened this issue · 3 comments
Hi,
in the present config, I really like the idea that two skin board can be added side-by-side. This allows to add a single board on the X pos, but keeps the access to buttons and LEDs open.
Since both areas are 180deg rotated I believe people might often confuse the correct position of the skin boards.
- One could change the pin positions to allow only one position to be valid. However, that would possibly disturb a general usage, where people expect a plain row of headers (e.g. using a bread board)
- One could add some silkscreen e.g. a big white area around Y8,Y7,Y6 and resp. around X6,X7,X8 right to the edges of the board and ask skin-board designers to do the same to indicate the right orientation.
- A totally different turn would be to use the rear side to add skin boards. If I understood correctly, the rear side is plain now (easier populating of components). Hence one could add skin-boards back to back with the pyboard. Esp., if the configuration is intended for long term usage, one could simply solder a skin board directly back to back to a pyboard. The silk screen area on the rear side should have enough space to indicate the right orientation (might be nice to think of what kind of infos could be squeezed into this side in addition). This method is different to compared to the existing "stack-up" methods. You loose a solid plain surface in case you use a skin, but then, the front side of the pyboard consist only of relatively slim SMD parts and makes already a rather slim front. LEDs and buttons can easily be accessed independently of any additional skin board. E.g. mounted in an enclosure front, LEDs and buttons can be easily access by openings in the enclosure front if needed.
What would be saved is the relatively large space created by header pins if one decide to solder boards simply back to back together. One drawback however would be a unintended pressing of the buttons in case someone operates the board upside down (e.g. to access the skin board) on a table. However, that might depend on the final height of the USB connector, the SD card reader and other components which might keep the buttons away from the table surface.
Yes, people can use the X position and still have easy access to buttons, LEDs, SD card and USB.
I think it would be best (and a good idea) to add prominent markings on the silk screen to show the orientation of the skin.
If we wanted to allow easy "plug and play" skins, like Arduino, then that would conflict with soldering them flat to the back side of the board. If we make the skins stackable then you can put them on the front or back. If we choose low-profile connectors, then that keeps it relatively slim.
FWIW the stackable nature of the digispark works pretty well. It can go above and/or below - if you have the right pins/headers soldered in.
The side by side is good too and it would be good if people made skins for side by side if they only needed the pins on one side.
For interconnection of many 'skins' we're bound to run into the same problem as the other systems - where a board wants to use the pins already used by another.
Making it easy to change involves cutting traces (typically) or using jumpers in some minmal set of useful configs - which adds cost to the board. Its hard to set policies to make this work...
A nice board made by the smartmaker people allows you to connect any I/O to any. I indicate it as an example :)
I wonder if it is possible to set any policies that might allow boards to interoperate minimally. I mean cutting the least number of traces. but I admit to not seeing a path here...
For a lot of skins, we just need power and I2C, and this bus can be used by more than one skin at one time. Thus skins would really be stackable.
If the skin needs SPI or other GPIO, then it would be difficult to make 2 skins compatible.
But having 2 skin positions I think goes a long way to help this problem. It means you can put a stack of I2C skins in the one position, and another more complicated skin in the other position.