Contribution Priorities

From ZeroPhone
Jump to: navigation, search

This is an outline of contribution priorities for this project. It's maintained so that project contributors know which parts of the project they can help with, and so that they can find links to information concerning these issues.

pyLCI development

The GitHub Issues page for ZeroPhone fork of pyLCI lists issues that are yet to be solved, mostly basic architectural issues that need a rewrite of portions of the system. Those could use some help from Python programmers, or at least advice, like ideas on how to better implement certain things, info on libraries that can help solve those issues, etc.

Updating documentation

The pyLCI fork documentation is currently outdated. In the original pyLCI repo, it's done by Sphinx and hosted on Current version will need creating a new site (will be done this week), creating new and updating existing .rst files in the docs/ folder, cleaning dosctrings in python code (mainly in UI elements) and updating the setup instructions. This would make app development for pyLCI a lot easier, so it's a priority task

Reviewing ZeroPhone PCBs and working on PCB TODOs

Current ZeroPhone boards are available in GitHub repository. They're not yet the v1.0 revision, and the main reason for that is that the gamma revision boards haven't yet been tested and possible bugs haven't been fixed, and there are also some more things it'd be great to have that are not yet added. By now, there's been plenty of changes that the boards have gone through, and there'll need to be v1.0 sooner or later - but for that, more people need to revise the current boards, help by discussing and solving at least some of the issues listed in the ZeroPhone-PCBs GitHub repository, as well as open new issues when appropriate. You can read more about ZeroPhone PCBs on this page.

3D design

A ZeroPhone case needs to be developed. For that, it makes sense to use KiCad 3D export option - but it requires that all the component models are present. So, currently it's necessary to make all component 3D models before a suitable case can be made. After the 3D models are created, the resulting VRML board files can be merged into a ZeroPhone model, so that cases can be designed around it.

Moving project information to this Wiki

Currently, there's a lot of information about ZeroPhone scattered among Hackaday worklogs, comments, Reddit threads and GitHub repositories. This information concerns topics that warrant separate Wiki pages. Those topics are:

  • ZeroPhone hardware and software description
    • Hardware
      • CPU board capabilities (CPU, RAM, storage, interfaces)
      • Descriptions of carrier boards (front, back, keypad, Li-Ion holder board)
      • Extension ports
    • Software
      • Custom software used
        • pyLCI
        • Keypad controller firmware
      • Third-party software used
        • Debian
        • ESP8266-over-SDIO driver by ajlitt
  • ZeroPhone project priorities
    • Cheap open-source smartphone
    • A smartphone with basic features that work well, out-of-the-box
    • Repairability and modifiability
    • Education
    • Hacker-friendliness and empowerment of hackers
    • Respect for privacy
    • A way to promote open-source software and libraries, strengthening open-source software ecosystem
  • FAQ
    • Will it work with my cell provider? Will it work like a normal phone?
    • 3G modem addition
    • Why Raspberry Pi?
    • Why not Raspberry Pi CM?
    • Case plans
    • Similar projects and differences from them
  • Open-source-ness status of the project
    • Information about software components, links to their repositories and licenses
    • Information about hardware components with firmware blobs, their status, status of reverse-engineering efforts of those blobs and relevant links (if it's being done)
  • Bill of materials
    • Components used in ZeroPhone, their photos and short descriptions
      • Possibly, eBay/Aliexpress/TaoBao links (from user-verified sellers)
  • Guides
    • Sourcing ZeroPhone parts independently
      • Getting PCBs
      • Getting Pi Zeros
      • Getting Chinese breakouts
      • Getting connectors
      • Getting passives
    • Assembling a ZeroPhone
      • SMD part soldering
      • THT part soldering
      • Soldering breakouts to PCBs
    • Flashing an SD card with a ZeroPhone image
      • Same as flashing a Raspbian image
      • Windows: Win32DiskImager
      • Linux: dd
    • App development
      • App tutorials
  • List of Hackaday worklogs, grouped by topic:
    • Hardware worklogs
    • Software worklogs
    • Project status logs
    • Thought pieces
    • Misc
  • Links to similar projects

The parts highlighted in bold should be easy to write for new contributors to the wiki, using the information available on the Internet, in Hackaday worklogs and in GitHub repositories (such as board schematics).