Following my disastrous testing I decided to try rescuing my WeatherPi version 2 PCB. In summary I'd designed the PCB wrongly, and the three IC chips had the wrong connections.
On the top of the PCB I had to break 3 tracks. I tried a mixture of tools from a drill bit, counter sinc, and eventually ended up with a scalpel blade. Working very carefully I was able to scratch away first the green coating, then the copper track, and to be safe some of the actual board material. I was surprised how thick the copper layer was.
On the bottom of the board I had to make 6 breaks. I'd tried to place as many tracks on the bottom side where possible so that I could see them when troubleshooting!
I carefully solder wires to the bottom of the board using the existing pins of the IC's and headers. I had started to use one of the unused header socket pins at the top of the board but then realized it was running at 5 volts rather than 3.3 volts. Hence why 3 wires run to one section and one to another.
I also attempted to unsolder the 40 pin header to replace with a 24 pin header but despite using a desolder iron and desolder braid, I could not release the header. In the end I gave in and resolder it again.
Once complete I checked there were no short circuits in the design and powered it up.
The Pi powered up and could see the three IC's, and also the temperature sensor.
So the PCB version 2 has been rescued but I don't think I'll use the other 9 boards. At this stage I think I'll work on the design and fix the issues and make another attempt at the PCB. Meanwhile I can work on the code to make it all work.
WeatherPi version 2 has been assembled and I have attempted to test. And that's when I hit some issues.
I'd assembled the board with new 40pin extended headers to fit to a A+, B+ or 2. Unfortunately my test Pi was an old style model A, and the 40 pin header get's in the way of the Audio port on the classic A. I tried it on a B+ that I have but the PC can't clear the USB and ethernet socket. Major fail. I'd soldered the extended header too close to the PCB rather than at the full extent.
Thankfully I came up with the idea of using an additional header to "stand off" the PCB from the Pi. This worked but left a 10cm square board hanging in mid air. Once populated with cables the entire thing tips over. Another reason the next version must have mounting holes for both forms of Pi.
Once I'd worked that out I turned on the Pi. I had a power light but nothing happening. I'd already tested the Pi and it was fully networked, but I couldn't connect. I gave in and connected a monitor to find it wasn't booting up.
To cut a very long story short I spent a very annoying two days trying to figure it all out. I discovered that despite spending 2 weeks on the PCB design and checking it for a further 5 days, that I'd wired up the IC chips incorrectly.
On the MCP23017 digital input output IC I'd wired up the i2c and power wrongly. Basically I'd wired up from the bottom upwards, but should have missed a pin at the start which is not used.
On one of the PCF8591 analogue chip I'd missed out an SCL connection for i2c. On both chips I'd mistakenly wired up the address pins to positive instead of negative. This isn't a big issue as the chips appear successfully on different port numbers. I'd also connected the VSS pin to positive instead of negative.At this stage I'm ready to give up.
The WeatherPi version 2 PCB has finally arrived from Seedstudio in Singapore.
I'm impressed with the "customer experience" from Seedstudio and they always seem to delivery 3 weeks after initial order.
10 PCB's came in at about £20. To have these produced in the UK would have cost about £50 for the first one
The PCB was populated in height order. Smallest components first working my way up to the tallest components :-
- Surface mount LED's, Resisters and switches (painful when using a soldering iron)
- IC sockets
- Jumper style headers
- Molex style headers
- 40 pin Header for connecting to Pi
- Finally the Analogue and Digital IC's, plus the DS18B20 temperature sensor
I've gone ahead and assembled it and these are my initial thoughts:-
- Needs mounting holes to match up with the A+, B+ and Pi 2.
- Needs mounting holes on each corner
- The I2c headers at the top of the board are the wrong way round. All my other PCB's have the "head board" of the header inwards. I had to switch them round to match up with existing i2c devices I have
- It was difficult to solder the 8 different 2 way headers for the analogue ports (on the left). Much easier to solder the 8x2 headers for digital inputs and outputs
Next step will be testing and initial power on!