Skip to the content
PCBKitNew board
2 layers49 × 62 mmFone, the printed circuit board in 3D

It's a cell phone. Going with a simple old school Nokia-style for this project.

Size
49 × 62 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
44
Pads
145
Tracks, vias
188, 22
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
3 Jun 2025
Updated
21 Sep 2025

Overview

Fone is an open-source printed circuit board by bestestdev, from the bestestdev/fone repository on GitHub. It is a 2-layer board of 49 × 62 mm with 18 parts on 44 nets, routed with 188 tracks and 22 vias.

It is built around the SIM7600G and W25Q128JVSIQ. Its parts include 6 connectors, 4 resistors, 3 capacitors and 1 IC. It belongs with the RP2040 boards of this library.

Main components

2

README

README.md

fone

A modern take on the classic Nokia cell phone experience, built with a Raspberry Pi Pico 2 running MicroPython. This project combines the simplicity and reliability of old-school Nokia phones with quality-of-life improvements for modern usability.

Overview

fone is a DIY cellular phone that captures the essence of classic Nokia devices while incorporating modern components and conveniences. The device features a minimalist design focused on essential communication functions: calls, SMS, and basic navigation, all powered by MicroPython for easy customization and development.

Hardware Components

Core Processing

  • Raspberry Pi Pico 2 - Main microcontroller running MicroPython
  • W25Q128 SPI Flash - 16MB flash storage for contacts, messages, and system data

Cellular Communication

  • SIM7600G Module - 4G/LTE cellular connectivity with GPS
  • Connected via UART (TX/RX) to Pico 2

Power Management

  • 3700mAh Lithium Battery - Long-lasting power source
  • TP4056 Charging Module - Safe battery charging via USB-C
  • MT3608 Boost Converter - Boost LiPo battery to 5v for use by the SIM module and Pico

Audio System

  • MAX98357A I2S Amplifier - Digital audio amplification
  • 1W 8Ω Speaker - Clear audio output for calls and notifications
  • GY-MAX4466 Electret Microphone - Voice input with AGC
  • ADS1115 ADC - High-resolution analog-to-digital conversion for microphone

Display & Input

  • 2.42" OLED Display (SSD1309) - monochrome, 128x64 resolution, SPI interface, low power consumption
  • ANO Directional Navigation and Scroll Wheel Rotary Encoder - Navigation, selection, scroll, and menu control
  • 3V Coin Vibration Motor - Haptic feedback and notifications

Features

Core Functionality

  • Voice Calls - Make and receive phone calls with clear audio
  • SMS Messaging - Send and receive text messages
  • Contact Management - Store and organize phone contacts
  • Call History - Track incoming, outgoing, and missed calls

Enhanced User Experience

  • Improved Text Input - Modern T9-style predictive text with encoder navigation
  • Menu Navigation - Intuitive interface designed for encoder and directional button control
  • Scroll Wheel Support - Rotary encoder provides smooth scrolling through lists and menus
  • Low Power Operation - E-paper display and efficient power management
  • Haptic Feedback - Vibration for notifications and user interactions

Additional Features

  • GPS Location (Stretch Goal) - Built-in positioning via SIM7600G
  • Battery Monitoring - Real-time battery level and charging status
  • Silent/Vibrate Modes - Customizable notification preferences
  • Basic Games - Classic Nokia-style entertainment (Snake, etc.)

Technical Specifications

Connectivity

  • Cellular: 4G LTE via SIM7600G
  • GPS (Stretch Goal): Built-in GNSS receiver
  • Storage: 16MB SPI flash memory (W25Q128)

Power

  • Battery Life: All-day usage with 3700mAh capacity
  • Charging: USB charging via TP4056 module
  • Standby: Ultra-low power consumption with e-paper display

Interface

  • Display: 2.42" monochrome OLED (128x64px)
  • Input: ANO rotary encoder with directional navigation buttons
  • Audio: Full-duplex voice communication
  • Feedback: Vibration motor for alerts

Software Architecture

  • Platform: MicroPython on Raspberry Pi Pico 2
  • Modular Design: Separate modules for cellular, audio, display, and input handling
  • Event-Driven: Efficient power management through interrupt-based operation
  • Extensible: Easy to add new features and customize behavior

Wiring Guide

SIM7600G to Raspberry Pi Pico 2

The SIM7600G module connects via UART and requires the following connections:

SIM7600G PinDescriptionConnectionNotes
VVCC5V from MT3608Requires stable 5V (up to 2A)
GGroundBattery -Battery ground
GGroundPico GND (Pin 38)Shared ground with Pico
TTX (Module transmit)GP1 (Pin 2)UART0 RX
RRX (Module receive)GP0 (Pin 1)UART0 TX
KPower KeyGP2 (Pin 4)GPIO for power control
SStatusGP3 (Pin 5)GPIO for status monitoring
Key Points:
  • Power: SIM7600G requires 5V via MT3608 boost converter for proper RF operation
  • Current Draw: Module can draw up to 2A during transmission bursts
  • UART: Cross-connect TX/RX (module TX → Pico RX, module RX → Pico TX)
  • Power Key: Pull HIGH briefly to turn module on/off
  • Status: Monitor this pin to check if module is powered and ready
  • Dual Ground: Connect both ground pins for stable operation

ANO Directional Navigation and Scroll Wheel Rotary Encoder

The primary input is an ANO directional navigation and scroll wheel rotary encoder, providing directional control, rotary scroll input, and a center-press button.

Encoder PinDescriptionConnectionNotes
ENCAEncoder A PinGP17 (Pin 22)Rotary encoder quadrature A
ENCBEncoder B PinGP22 (Pin 29)Rotary encoder quadrature B
SW1Center ButtonGP6 (Pin 9)Digital input
SW2Down ButtonGP5 (Pin 7)Digital input
SW3Right ButtonGP4 (Pin 6)Digital input
SW4Up ButtonGP19 (Pin 25)Digital input
SW5Left ButtonGP18 (Pin 24)Digital input
COMCommonGND (Pin 38)Common ground for all switches
Key Points:
  • Rotary Encoder: ENCA/ENCB provide quadrature signals for scroll wheel functionality
  • Digital Buttons: All switch pins (SW1-SW5) are simple digital inputs
  • Wiring: Connect the COM pin to GND and configure each GPIO pin as an input with an internal pull-up resistor
  • Active Low: Button presses and encoder transitions pull pins to ground (LOW)
  • Quadrature Decoding: Software tracks encoder A/B state changes to determine rotation direction and steps

Dual Analog Joysticks via ADS1115 ADC

Note: This component has been deprecated and replaced by the ANO Directional Navigation and Scroll Wheel Rotary Encoder.

The phone uses two analog joysticks for navigation and input, connected through an ADS1115 16-bit ADC for full 4-channel analog precision.

ADS1115 ADC Module:

ADS1115 PinDescriptionConnectionNotes
VDDPower5V (Pin 40 - VBUS)Module power supply
GNDGroundGND (Pin 38)Common ground
SCLI2C ClockGP21 (Pin 27)I2C0 SCL
SDAI2C DataGP20 (Pin 26)I2C0 SDA
ADDRAddressGNDSets I2C address to 0x48

Left Joystick (mounted upside down):

Joystick PinDescriptionConnectionNotes
VCCPower5V (Pin 40 - VBUS)Joystick power supply
GNDGroundGND (Pin 38)Common ground
VRXX-axis analogADS1115 AIN0Left joystick X
VRYY-axis analogADS1115 AIN1Left joystick Y (inverted)
SWSwitch buttonGP19 (Pin 25)Digital input with pull-up

Right Joystick:

Joystick PinDescriptionConnectionNotes
VCCPower5V (Pin 40 - VBUS)Joystick power supply
GNDGroundGND (Pin 38)Common ground
VRXX-axis analogADS1115 AIN2Right joystick X
VRYY-axis analogADS1115 AIN3Right joystick Y
SWSwitch buttonGP18 (Pin 24)Digital input with pull-up
Key Points:
  • Full Analog Control: ADS1115 provides 4 channels of 16-bit ADC precision
  • I2C Address: 0x48 (ADDR pin to GND), can be changed for multiple modules
  • Left Joystick: Mounted upside down, so Y-axis values are inverted in software
  • ADC Resolution: 16-bit (±32767) with ±4.096V input range matches 5V joysticks
  • Switches: Active low with internal pull-up resistors on Pico pins (3.3V logic)
  • Update Rate: ~128 SPS (samples per second) for smooth control

3V Vibration Motor

The vibration motor provides haptic feedback for notifications and user interactions.

Option 1: Direct GPIO Control (Recommended to try first)

For Low Current Motors (< 40mA):

Motor PinDescriptionConnectionNotes
+PositiveGP16 (Pin 21)Direct PWM control
-NegativeGND (Pin 38)Direct ground connection
Option 2: Transistor-Protected Control

For Higher Current Motors (> 40mA) or if direct control fails:

Motor PinDescriptionConnectionNotes
+PositiveGP16 (Pin 21) via NPN TransistorPWM-controlled output
-NegativeGND (Pin 38)Direct ground connection

Transistor Circuit (NPN - 2N2222 or similar):

Transistor PinDescriptionConnectionNotes
BaseControlGP16 (Pin 21) via 1kΩ resistorPWM signal from Pico
CollectorHigh sideMotor +Connects to motor positive
EmitterGroundGND (Pin 38)Common ground
Key Points:
  • Motor Specs: 3V, 12000 RPM, small coin-type vibration motor
  • Current Draw: Small motors (17-35mA) can connect directly, larger motors (60-105mA) need transistor
  • Pico GPIO Limits: ~16mA safe, ~50mA maximum per pin
  • Try Direct First: Start with Option 1 - if motor doesn't work well or Pico gets warm, use Option 2
  • Flyback Diode: Optional 1N4001 diode across motor (cathode to +, anode to -) for back-EMF protection
  • Control: PWM control via GP16 allows variable vibration intensity
  • Frequency: Typical vibration patterns: short bursts (100-300ms) for notifications

2.42" OLED Display (SSD1309)

The 2.42" monochrome OLED display provides the main user interface with a 128x64 resolution using SPI communication.

Display Module Connections:

Display PinDescriptionConnectionNotes
VCCPower3V3 (Pin 36)3.3V power supply
GNDGroundGND (Pin 38)Common ground
CLKSPI ClockGP10 (Pin 14)SPI1 SCK
DINSPI Data InGP11 (Pin 15)SPI1 MOSI (TX)
CSChip SelectGP9 (Pin 12)SPI chip select (active low)
DCData/CommandGP12 (Pin 16)Command mode control
RSTResetGP13 (Pin 17)Hardware reset (active low)
Key Points:
  • SPI Interface: Uses SPI1 on Pico 2 for communication
  • Monochrome Display: Black and white output with high contrast
  • Resolution: 128x64 pixels provides clear text and simple graphics
  • Fast Updates: ~10ms refresh time for full screen updates
  • Low Power: Efficient power consumption (perfect for phone standby)
  • Rotation Support: Software rotation for portrait or landscape orientation
  • Viewing Angle: Wide viewing angle (>160°) for clear visibility
  • Compact Size: 2.42" diagonal with minimal bezel

W25Q128 SPI Flash Memory Module

The W25Q128 provides 16MB (128Mbit) of non-volatile storage for contacts, messages, and system data, connected via SPI interface. This flash memory offers faster access times and lower power consumption compared to SD cards.

W25Q128 Module Connections:

W25Q128 PinDescriptionConnectionNotes
VCCPower3V3 (Pin 36)3.3V power supply
GNDGroundGND (Pin 38)Common ground
DCSPI Data Out (MISO)GP8 (Pin 11)SPI1 MISO (RX)
D1SPI Data In (MOSI)GP11 (Pin 15)SPI1 MOSI (TX) - Shared with display
SLKSPI ClockGP10 (Pin 14)SPI1 SCK - Shared with display
CSChip SelectGP7 (Pin 10)SPI chip select (active low)
Key Points:
  • Shared SPI Bus: Uses SPI1 shared with the e-paper display (SLK, D0 pins)
  • Separate MISO: Flash memory has its own MISO line (D1/GP8) since display is write-only
  • Unique CS: Each device has its own chip select (Flash: GP7, Display: GP9)
  • Power: 3.3V operation, low power consumption (4mA active, <1µA standby)
  • Storage: 16MB of flash memory with 100,000+ erase/program cycles
  • Performance: Up to 104MHz SPI clock, much faster than SD card access
  • File System: Can use LittleFS or FAT filesystem via MicroPython's VFS

MAX98357A I2S Amplifier and Speaker

The MAX98357A is a digital I2S audio amplifier used to drive the speaker for calls, notifications, and other audio feedback.

MAX98357A Module Connections:

MAX98357A PinDescriptionConnectionNotes
VinPower In5V (Pin 40 - VBUS)3-5.5V input range
GNDGroundGND (Pin 38)Common ground
DINData InGP20 (Pin 26)I2S Serial Data
BCLKBit ClockGP14 (Pin 19)I2S Bit Clock
LRCLeft-Right ClockGP15 (Pin 20)I2S Word Select
SDShutdownGP21 (Pin 27)Active-low shutdown control
GAINGain Select(unconnected)Default 9dB gain. Connect to GND for 3dB, VCC for 15dB.

Speaker Connection:

ComponentConnection
Speaker +MAX98357A Left/Right +
Speaker -MAX98357A Left/Right -
Key Points:
  • I2S Audio: Digital audio provides clear, noise-free sound.
  • Power: Connected to 5V for maximum speaker volume.
  • Shutdown Pin: GP21 controls the amplifier's shutdown mode to conserve power.
  • Mono Output: Although the module has L/R outputs, it's a mono amplifier. Connect speaker to either pair.
  • Gain Control: The GAIN pin can be used to adjust the amplification level if needed. Default (unconnected) is 9dB.

GY-MAX4466 Electret Microphone

The GY-MAX4466 microphone module with automatic gain control (AGC) is used for voice input. It's connected directly to one of the Pico's ADC pins.

Microphone Module Connections:

Microphone PinDescriptionConnectionNotes
VCCPower3V3 (Pin 36)2.4-5.5V input range
GNDGroundGND (Pin 38)Common ground
OUTAnalog OutGP28 (Pin 34)Connects to ADC2
Key Points:
  • Direct ADC Connection: Simplifies wiring and reduces component count.
  • Analog Pin: Uses GP28, one of the Pico's three dedicated ADC pins.
  • Power: Runs on 3.3V power provided by the Pico.
  • AGC: The MAX4466's automatic gain control adjusts for varying sound levels.

Battery Level Monitoring

To monitor the battery level, a voltage divider is used to scale the battery's voltage (3.0V-4.2V) down to a range the Pico's ADC can safely read (0-3.3V). The reading is taken on the now-available ADC pin.

Voltage Divider Circuit:

ComponentConnectionNotes
Battery +Resistor 1 (R1) - e.g., 100kΩConnects to the positive battery terminal
R1 + R2GP26 (Pin 31) & Resistor 2 (R2)Center point connects to Pico's ADC pin
R2GND (Pin 38)Connects to ground

A 1:1 ratio (e.g., two 100kΩ resistors) is simple and effective.

Pin Connection:

DescriptionConnectionNotes
Voltage SenseGP26 (Pin 31)ADC capable pin (ADC0)
Key Points:
  • Voltage Divider: Essential to prevent damage to the Pico's ADC.
  • Resistor Choice: Using identical resistors (e.g., 100kΩ) creates a simple 1:2 divider. The actual voltage is 2 * adc_voltage.
  • ADC Reading: The software must read the analog value from GP26 and multiply it by the divider ratio to calculate the true battery voltage.

[Development in progress - setup instructions coming soon]

Parts

18
QtyValueFootprintReferences
4100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R4
20.1ufCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C3
2MountingHole_2.2mm_M2MountingHole:MountingHole_2.2mm_M2HOLE1, HOLE2
11ufCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2
12.42_OLEDConnector_JST:JST_PH_B7B-PH-K_1x07_P2.00mm_VerticalJ3
1External_Battery_BoardConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ2
1MAX98357AConnector_JST:JST_PH_B7B-PH-K_1x07_P2.00mm_VerticalJ5
1Micrpohone_ModuleConnector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_VerticalJ4
1Motor_DCConnector_Wire:SolderWire-0.1sqmm_1x02_P3.6mm_D0.4mm_OD1mmM1
1Navigation_ModuleConnector_JST:JST_PH_B8B-PH-K_1x08_P2.00mm_VerticalJ6
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1SIM7600GConnector_JST:JST_PH_B7B-PH-K_1x07_P2.00mm_VerticalJ1
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU1

Questions

How big is the Fone PCB?

It measures 49 × 62 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Fone use?

18 parts, built around the SIM7600G and W25Q128JVSIQ. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Fone KiCad files?

From the bestestdev/fone repository on GitHub, at the commit this page was made from: the board is pcb/fone.kicad_pcb and its schematic pcb/fone.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fone design in my own project?

Its repository states no licence, so its author keeps all rights: ask bestestdev before reusing the design.

Similar boards

  • 2 layers69 × 68.7 mmSGW-01 V1.0, the printed circuit board in 3D

    SGW-01 V1.0

    ymhtwe/SGW01

    ESP-IDF based IoT gateway for solar pump monitoring and control using SIM7600 4G modem and Modbus RTU.

    133 parts
  • 2 layers101.8 × 57.8 mmSc64v2, the printed circuit board in 3D

    Sc64v2

    Polprzewodnikowy/SummerCart64

    SummerCart64 - a fully open source N64 flashcart

    96 parts1.2kGPL-3.0
  • 2 layers42 × 67 mmLalboard, the printed circuit board in 3D

    Lalboard

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    65 parts993
  • 2 layers181 × 97 mmOpenDeck r3.1.2, the printed circuit board in 3D

    OpenDeck r3.1.2

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    262 parts960Apache-2.0
  • 4 layers82.6 × 82.5 mmJumperless2, the printed circuit board in 3D

    Jumperless2

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    208 parts914
  • 4 layers65 × 30 mmIcepi zero, the printed circuit board in 3D

    Icepi zero

    cheyao/icepi-zero

    An ECP5 FPGA Dev Board in a Pi Zero form

    163 parts869
  • 4 layers102.9 × 96.7 mmPicoGUS chipdown, the printed circuit board in 3D

    PicoGUS chipdown

    polpo/picogus

    Emulation of ISA sound cards and CD-ROM on Raspberry Pi Pico (GUS, SB/Adlib, MPU-401, Tandy, CMS, Panasonic CD-ROM) with USB mouse/joystick support

    99 parts805
  • 4 layers74.5 × 70.3 mmNest mini v2-drop in pcb, the printed circuit board in 3D

    Nest mini v2-drop in pcb

    iMike78/nest-mini-drop-in-pcb

    Drop-in PCB replacement for the Google Nest Mini v2 with ESP32-S3, ESP32-P4 and optional ESP32-C6. Inspired by Onju Voice and Home Assistant Voice PE.

    229 parts628CERN-OHL-S-2.0