PCB versions, features and guidelines

From ZeroPhone
Revision as of 04:23, 13 August 2017 by Admin (talk | contribs) (In progress - front board)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page will be kept up-to-date with latest PCB revision. Currently, the information listed applies to ZeroPhone Gamma boards.

"Hacker Friendly" ZeroPhone PCBs

This is currently only version of PCBs - in the future, there will be likely many different options, and they are to be described here as they appear. This version of ZeroPhone PCBs is optimized for easy assembly by hand-soldering, as well as for the Chinese cheap PCB manufacturers' requirements. They also do not have any hard-to-get components, like ICs that you could only get on Digikey/Mouser/Farnell/etc., the components were chosen by how simple it was to get them on places like eBay, Aliexpress on Taobao.

For example, current ZeroPhone software is designed for use with a 1.3" 128x64 OLED screen, interfaced through SPI. Rather than adding an FPC footprint and all the capacitors and resistors (sometimes, even boost regulators) that are necessary for the panel, it's much simpler to add a 2.54 header for an OLED breakout board, and make it accept different kinds of displays while at it. It's going to be easier to solder it, since there's no need to solder an FPC with fine pitch and a handful of different passives, and a breakout is actually much easier to source for an unexperienced person, compared to sourcing a panel with an FPC. While this principle is not very compatible with mass manufacturing of ZeroPhones, it's a good choice of components for somebody that wants to assemble their own ZeroPhone independently and doesn't know much about sourcing parts from places that are typically more appropriate for sourcing.

Current Hacker-friendly PCBs are designed for "Pi Zero sandwiched between boards" design. The GPIO connections are done using the 40-pin GPIO connector - the back board has a 2x20 2.54 male connector, on which the Pi Zero is soldered, leaving some place for the front board's 2x20 2.54 female connector. This is both easy to solder and still leaving some modularity - although the Pi Zero being soldered means it's hard to split it from the back board (desoldering needles could help with that, but this is unlikely to be easily done by a heat gun). The back-front board interconnects are also done using 2.54 headers - the ATMega programming connections and the GSM modem audio are done this way. Moreover, the expansion headers are also 2.54 - single-row female 90-degree angled headers.

Hacker-friendly PCBs are optimized for cheap orders at Chinese PCB fab houses. For that reason, their dimensions can't exceed 10cm, as the maximum board size that can be used at most fabs without overpaying. Also, the tracks are kept reasonably far from each other, in order to avoid pushing Chinese fabs to their limits and increase yield.

The software currently used for Hacker-friendly boards is KiCad Stable 4.0.6. I highly advise you to use stable version of KiCad if you intend to contribute back to the project, since nightly build-produced PCB files are incompatible with stable, and stable version of KiCad is the version you can use for an open-source project like this if you don't want everybody to try and follow with the latest breaking changes that nightly versions can introduce.

Hacker-friendly PCBs are optimized for easier assembly - as a result, the minimum pitch used is 0.8mm, which still can be soldered using a soldering iron. All the SMD parts use KiCad HandSoldering footprints, and all 2.54 headers are through-hole.

Hacker-Friendly PCBs also have more modularity-related features. For example, keypad board features are as following:

Keypad board features:

  • has 25 buttons on the front and 5 more on the sides
  • is easily splittable from the front board (the desoldering is easier, as pins are split in smaller groups)
  • has all the pins on 2.54 grid, so a replacement keypad board could even be prototyped using some stripboard
  • is compatible with multiple footprints of side buttons available from eBay/TaoBao, making sourcing easier
  • has VCC, GND, I2C SDA and SCL available on a header, along with an extra GPIO - so that it's easy to develop your own keypad boards with extra features, using one of the various I2C-* enabled keypad controllers
  • has two pins for LED backlight, that are controlled by a transistor placed on front board (currently there's no backlight designed in ZeroPhone keypad board, as that can only be reasonably well done after a case with transparent buttons is designed).

Front board features:

  • is split from the back board, so it can be replaced with an identical front board easily
  • has a 6-pin socket for onboard ATMega programming, that's compatible with FTDI pinout and accepts both 3.3V and 5V programmers
  • has sockets that are compatible with most 6-pin, 7-pin and 8-pin OLED/TFT displays
  • has a socket that allows to add additional audio filtering

TODO: describe front and back board features