Build Guide

Everything you need to build your own DIY-Phone from scratch. No special equipment required.

Getting Started

Building a DIY-Phone takes about 2-3 hours of hands-on time. Here's what you'll need:

🔧

Basic Tools

Soldering iron, solder, wire strippers, small screwdrivers. Nothing fancy needed.

📦

Components

Order the parts from our bill of materials. Most ship within a week.

💻

Computer

To flash firmware. Works with Windows, Mac, or Linux. Arduino IDE or CircuitPython.

Bill of Materials

Complete parts list with links to suppliers. Estimated total: $80-120 depending on options.

Component Description Est. Price Source
SIM7600 Module 4G LTE HAT with antenna $35-50 Amazon / AliExpress
ItsyBitsy M4 Adafruit ATSAMD51 $15 Adafruit / DigiKey
TFT Display 1.3" 240x240 ST7789 $8-12 Adafruit / AliExpress
CardKB M5Stack Mini Keyboard $12 M5Stack / DigiKey
LiPo Battery 3.7V 2000mAh $8-12 Adafruit / Amazon
Custom PCB Main board (order 5+) $5-15 See PCB Guide
Misc Headers, wires, screws $5-10 Various

Download Full BOM (CSV)

Ordering the PCB

The custom PCB is what brings all the components together. Here's how to order one.

Download the KiCad Files

Get the latest PCB design files from our GitHub repository. You'll need the Gerber files for ordering.

Get Design Files

Choose a PCB Manufacturer

We recommend these services for hobbyist-friendly pricing:

  • JLCPCB - Cheapest option, ~$2 for 5 boards + shipping from China
  • PCBWay - Good quality, slightly higher price, fast shipping options
  • OSH Park - US-based, purple boards, higher quality, ~$15 for 3 boards

Upload Gerber Files

On your chosen manufacturer's website:

  • Upload the Gerber ZIP file
  • Select 2-layer board
  • Choose 1.6mm thickness
  • Pick your color (green is cheapest)
  • Order quantity 5 (minimum, and good for spares)

Wait for Delivery

Expect 1-3 weeks depending on shipping method. JLCPCB economy shipping is slow but cheap. DHL/FedEx is faster but adds ~$15-20.

Assembly Instructions

Once you have all parts, follow these steps to assemble your phone.

Solder the Headers

Step 1 Photo

Start by soldering the pin headers to the PCB. These will hold the microcontroller and provide breakout connections.

Mount the Microcontroller

Step 2 Photo

Seat the ItsyBitsy M4 onto the headers. Make sure the USB port faces the correct direction for your case design.

Connect the Display

Step 3 Photo

Wire the TFT display to the SPI pins. Use short wires to keep things tidy. The display will sit in front of the PCB.

Attach the SIM Module

Step 4 Photo

Connect the SIM7600 module. This is the largest component. Route the antenna wire to the edge of your enclosure.

Wire the Keyboard

Step 5 Photo

The CardKB connects via I2C (just 4 wires). It will slide behind the display in most case designs.

Add the Battery

Step 6 Photo

Connect the LiPo battery to the charging circuit. Make sure polarity is correct! Double-check before connecting.

Flashing the Firmware

Get your phone running with our open source firmware.

Option 1: CircuitPython

Easiest option. Drag-and-drop Python files. Great for customization and learning.

  1. Download CircuitPython for ItsyBitsy M4
  2. Double-click reset to enter bootloader
  3. Drag UF2 file to BOOT drive
  4. Copy our code.py to CIRCUITPY drive

Option 2: Arduino

More control, faster performance. Requires Arduino IDE setup.

  1. Install Arduino IDE
  2. Add Adafruit board support
  3. Install required libraries
  4. Open our sketch and upload

Troubleshooting

Display shows nothing

Check SPI wiring. Make sure CS, DC, and RST pins match your code. Try swapping MOSI/MISO if display is blank.

SIM module not connecting

Ensure antenna is attached. Check that your SIM card is activated and has signal in your area. Try AT commands via serial monitor.

Keyboard not responding

Verify I2C address (usually 0x5F). Check pull-up resistors on SDA/SCL. Run I2C scanner to detect devices.

Battery not charging

Check polarity! Verify charging LED. Some LiPo chargers need a minimum load to start. Try with phone powered on.

Still stuck? Ask the community for help!