05 Oct 2015: Libre Laptop PCB 2 population and firmware success

PCB2 - which only has around 25 components - was successfully populated within a single day using the T870A IRDA solder station. The 0.3mm pitch 39-pin connector was however hugely troublesome, and, again, it was necessary to go round each of the 64 pins of the QFP STM32F072RBT6 applying a soldering iron to each and then test them individually for connectivity and neighbouring shorts with a multimeter.

Testing showed up two faults: firstly, the STM32F (which does not have proper "pin 1" marking) was rotated by 90 degrees. This was detected by noting that the temperature was well over 80 centigrade when power was applied. A replacement was put down instead. Secondly, it was discovered that analog power is indeed required in order to run the USB functionality. A jumper wire had to be added to provide AVCC-3.3v power. Also, there was an unnecessary pull-up resistor added onto NRESET, which causes the STM32F to remain permanently in "reset". Removal of this resistor was sufficient to cause it to go straight into operation (when floating), whilst also allowing reset to be performed by grounding the pin.

Missing from PCB2 is the 3.3v regulator, which is still on order with Digikey. Also, as the board is being tested independently, the BOOT pin operates off of level conversion (VREFTTL supplied by the CPU Card), so as a substitute for this, the (temporary) incoming 3.3v power from PCB1 is (temporarily) routed to VREFTTL. So, we have the red and black providing 5.0v power over USB, then the red/grey wire runs from the CPU Card board to the underside of PCB2 to provide 3.3v power. A purple wire runs from one of the SOT-23s in the bottom right corner over to VREFTTL, and then there are two further purple wires which are connected to BOOT0 and NRESET. The additional flying lead on the STM32F is for AVCC-3.3v

Once all this had been done, it was possible to put the STM32F into DFU mode, and to upload the previously-created usb-hid example which was created earlier from kuldeepdhaka's work. kuldeep has been maintaining an STM32F072 branch of libopencm3 for the past 18 months, and he is involved in rewriting the libopencm3 USB stack in the process.

Testing and firmware writing can therefore begin shortly, however a redesign of this PCB is definitely needed. It was not noted until actually attempting to fit the Keyboard connector that the STM32F is in the way! A redesign has the STM32F rotated through 90 degrees and moved just over 8mm to the left and 5mm further down. None of the connectors may be moved: their positions are predetermined by the hardware layout of the laptop. Despite the awkwardness this is an optimal design for the circumstances.