The new hardware is here! SDA is now officially a big boy project with it's own printed circuit boards! I got the PCBs from dirtyPCBs and they look just fine.
PCBs were designed in KiCad, I was working on them for a long time, so they mostly work. Mechanically it is a good fit in the case, but there still are some PCB bugs and I will go through them.
I am using two boards soldered together (kinda like iPhone X :D ). I went with this type of construction for two reasons:
- Volatility of the display market. Chinese sellers will eventually run out
of the right type of display with the right flex cable. If the display connector was on the board itself, it would be cleaner and neater, but I would need to re-design whole board for every type of display connection.
- I wanted all SMT components to be on one side of the board. This way I can do that without the need of big hole in the middle of the board.
This stacked PCB solution complicates the final assembly for a bit, but I think that its manageable.
Here are few of the mistakes I made on the first version of the PCB.
Do not forget to connect voltage reference pin to some voltage. I will read the datasheet properly next time. It was actualy easy fix on the prototype PCB, I soldered the Vref pin on the mcu to the analog voltage source pin that is right next to it.
I am still learning with KiCad DRC, short bodgewire fixed that.
SDIO is not SPI
The SDIO bus turned out to be quite different from the SPI. SDIO is the bus for quick communication with the SD card and it has its specifications that I did not read and so the SDIO is not working on the current PCB. Firstly my schematics was wrong (missing pull up and termination resistors) and I routed the SDIO traces carelessly over the board. I bodgewired it to the point where reads from the card were working about 20% of the times, that was not acceptable. I ended up rewiring the SD slot to use SPI for testing and I will be fixing it in the next board revision.
I got the hardware working in the end and that is what counts. I written drivers and base functions for SDA_OS to run on the new PDA and I will be using it for some time to test it. After the testing I will do second revision and if that works I will opensource the design.