Recommended Free Tools
The safest way to connect a Raspberry Pi Pico to a Nokia 3310-style display is to use a documented PCD8544 breakout module, not the bare LCD removed from a phone. A practical SPI0 example connects VCC to 3V3, GND to GND, DIN to GP19, CLK to GP18, D/C to GP20, RST to GP21, CE/CS to GP17 and the backlight to GP22. Those GPIO choices are an example, not a requirement. The original 3310 keypad is a row-and-column matrix, so it needs several row and column GPIOs plus a pin map discovered from the exact keypad assembly; it is not a device with one Pico input per button.
Before applying power, identify whether you have a labeled PCD8544 module or an original handset part. Their connectors, voltage requirements and pin names are different. The guide below gives a verified starting point for the breakout-module route and a safe method for working out the keypad wiring.
As an Amazon Associate I earn from qualifying purchases.
Choose the hardware path before wiring
Nokia 5110 and 3310 display listings often refer to a small carrier board as a 5110/3310 display. That board normally exposes the PCD8544 display interface through labeled pins such as VCC, GND, DIN, CLK, D/C, RST, CE or CS, and BL or LED. The carrier board makes the project practical because its pin labels and support circuitry are visible.
A bare LCD taken from an original Nokia 3310 handset is a different job. An original-connector reference lists reset, VOUT, ground, chip select, control/data, serial data, serial clock and a 2.8 V supply. That is not the same connector map as a third-party breakout. Do not connect a bare handset LCD using the breakout table, and do not assume that a breakout board accepts the handset connector’s 2.8 V supply arrangement.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
| Route | What you must identify | Difficulty and risk |
|---|---|---|
| PCD8544 breakout module | Silkscreen labels, documented supply and logic levels, and the module’s backlight connection | Lowest-risk route; the SPI signals are exposed and a known Pico example is available |
| Bare original handset LCD | Exact connector pinout, supply arrangement, VOUT function and logic requirements for that LCD revision | Higher risk; a phone connector reference cannot be transferred blindly to a carrier board |
| Original handset keypad | Every row and column contact on that particular keypad and its connector orientation | Requires continuity testing or a schematic; mappings from another Nokia model are only illustrations |
| Separate matrix keypad | Its own row/column labels and number of lines | Simplest keypad option when reusing the handset keypad is not essential |
The rest of the display instructions assume a labeled PCD8544 breakout. If your board has different labels, pause at the table and translate each signal by function rather than by physical position.
Parts and prerequisites
- Raspberry Pi Pico or a compatible Pico-series board with its pinout available.
- A Nokia 5110/3310-style PCD8544 breakout module with readable labels.
- Breadboard and female-to-male or male-to-male jumper wires suitable for the boards you have.
- A USB cable and a development environment for the Pico. A C/C++ project can use the Pico C SDK; the Pico C SDK documentation identifies release 2.3.1. A MicroPython project needs a PCD8544 driver that supports the selected SPI bus and control pins.
- A multimeter with continuity mode if you intend to reuse the original keypad.
- The exact board pinout printed or documented for your Pico variant. GPIO numbers such as GP19 are not the same thing as physical header positions.
Disconnect USB power while changing wires. Inspect the breakout’s documentation for its supply and logic requirements; some inexpensive boards label pins similarly while implementing their backlight or level shifting differently.
Wire a PCD8544 breakout to SPI0
The following is one working Pico SPI0 assignment used by a PCD8544 Pico example. It deliberately uses GPIO names, not physical header positions. Find the corresponding physical pins on your board’s pinout diagram before placing jumpers.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
| Breakout pin | Pico signal | Function | Important qualification |
|---|---|---|---|
| VCC | 3V3 | Module supply | Use the voltage specified by your module; do not substitute the bare-handset supply requirement. |
| GND | GND | Common reference | The Pico and display must share ground. |
| DIN | GP19 | SPI0 transmit/data | This is the example’s data pin. |
| CLK | GP18 | SPI0 clock | This is the example’s clock pin. |
| D/C | GP20 | Data-versus-command select | Drive it with a normal Pico GPIO. |
| RST | GP21 | Display reset | Drive it with a normal Pico GPIO or handle it as required by the driver. |
| CE or CS | GP17 | Chip enable/select | Different modules may print CE instead of CS. |
| BL or LED | GP22 | Backlight control in this example | Check whether your board includes a resistor or expects a different backlight arrangement. |
Power the module from 3V3 only when its documentation says that 3.3 V is acceptable. The table is a practical example, not an electrical guarantee for every board sold under the 5110/3310 name. If the silkscreen says SCE rather than CE, it is the same chip-select role; if it says LIGHT rather than BL or LED, treat it as the backlight role and verify the board’s polarity and current path.
Why GPIO numbers and header locations must be checked separately
GP19 identifies a GPIO function. It does not tell you which physical hole on a particular Pico carrier, clone or soldered header corresponds to that function. Locate GP19, GP18, GP20, GP21, GP17 and GP22 on the selected board’s pinout, then verify that adjacent jumper positions have not shifted because the headers are mounted on the opposite side.
Set up the display in software
Wiring alone does not initialize a PCD8544. Your program must configure SPI0, assign the data and clock pins, and provide separate GPIO objects for D/C, reset, chip select and, if used, the backlight. The driver then normally performs a reset sequence, selects the controller, sends commands, writes display data and releases chip select.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
- Choose SPI0 in the Pico SDK or in the display library you are using. Set its data-out pin to GP19 and clock pin to GP18 for the example wiring.
- Declare GP20 as the data/command control line, GP21 as reset and GP17 as chip select. Configure them as digital outputs.
- Configure GP22 as the backlight output only if the module’s documentation supports direct control from a GPIO. If the board has a fixed backlight circuit, leave that pin in the state the module specifies.
- Run the library’s PCD8544 initialization routine, including its reset and contrast or bias settings. Do not copy initialization constants from an unrelated LCD controller.
- Draw a small test pattern or text, flush the driver buffer if it uses one, and observe the display before connecting the keypad.
The Raspberry Pi Pico C SDK documentation is the appropriate reference for SPI and GPIO API names when you are writing a C or C++ application. The display guide commonly used for this controller demonstrates signal roles and a Raspberry Pi computer example, but its computer pin assignments are not Pico assignments. Use the Pico mapping above for the wiring and your chosen driver’s own API for initialization.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsWhat a successful first test looks like
- The display exits its reset state without a row of permanently lit pixels.
- A test pattern or text appears in the expected orientation after the program flushes its buffer.
- Toggling the backlight control changes illumination only if the module exposes a controllable backlight.
- The Pico remains connected over USB and does not reset when the display is initialized.
Reuse the original Nokia 3310 keypad safely
The handset keypad is a switch matrix. Pressing a key closes a connection between one row conductor and one column conductor. The Pico therefore scans combinations of outputs and inputs; it does not read a unique voltage or dedicated digital line for each key.
The 3310 teardown establishes the matrix principle but not a complete Pico-ready connector-to-key map. Connector order, row count, column count and contact orientation must be determined from your exact keypad assembly. A schematic for another Nokia handset can show how matrix labels are used, but it cannot serve as the 3310 pinout.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Map the keypad with continuity testing
- Remove the keypad from every powered circuit. Do not perform continuity measurements while it is connected to the Pico or a battery.
- Photograph the flex cable or contact board, including the connector’s pin-one orientation. Mark each exposed contact with a temporary number.
- Set the multimeter to continuity or its lowest resistance range. Keep the probes on two keypad contacts and press one key at a time.
- Record which pair closes for each key. Repeat every key and test combinations that look like the same row or column.
- Group contacts into rows and columns from the resulting pair list. A valid matrix has each key at one row/column intersection, although additional contacts, shielding or unused lines may appear.
- Check for shorts between neighboring contacts when no key is pressed. Dirty membranes and damaged flex cables can create false closures.
Write the result as a table before writing firmware. For example, your notes might say that a particular key closes R2 with C3; use your own measured labels rather than assuming that a contact called R2 in another phone is physically equivalent.
Connect the discovered rows and columns
- Choose one Pico GPIO for each row and one for each column, leaving enough pins for the display and any other peripherals.
- Configure rows as driven outputs and columns as inputs with defined pull-up or pull-down resistors. The exact polarity depends on your scan method.
- Drive one row active at a time, read all columns, then return that row inactive before advancing to the next.
- Translate each detected row/column pair through your measured key table to produce a key event.
- Add debounce handling: require a state to remain stable for a short interval or for several consecutive scans before reporting a press or release.
- If two or more keys can be pressed together, consider ghosting and masking. Diodes are not normally present in a simple phone membrane, so multi-key combinations may be ambiguous.
Do not connect an unidentified flex connector directly to Pico pins just to see what happens. A wrong supply, a shorted row or an unexpected conductive coating can damage the keypad or the microcontroller. If the keypad is not essential to the project, a separate generic matrix keypad with clearly documented row and column labels is the lower-risk alternative.
Keep display and keypad pin budgets separate
The example display consumes six ordinary GPIOs plus the SPI data and clock roles: GP17, GP18, GP19, GP20, GP21 and GP22. A keypad matrix then needs additional row and column lines. Before soldering, count the rows and columns you measured and compare that total with the GPIOs available on your Pico project, including any sensor, serial or debug connections.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
| Resource | Used by the example | Planning question |
|---|---|---|
| SPI0 data and clock | GP19 and GP18 | Can another SPI device share the bus while using its own chip select? |
| Display controls | GP20, GP21 and GP17 | Are D/C, reset and chip select available as ordinary outputs? |
| Backlight | GP22 in the example | Can the module’s backlight be driven as documented, or should it be fixed on? |
| Keypad matrix | Not established until measured | How many independent row and column contacts does this keypad actually expose? |
SPI bus sharing is possible in principle, but every peripheral must release the bus when its chip-select line is inactive and must tolerate the selected voltage and clock mode. For a first build, test the display alone, then add the keypad lines and scan routine.
Troubleshoot by symptom
The display is completely blank
- Confirm VCC is on the module’s supply pin and GND is common with the Pico.
- Verify that GP19 and GP18 reach DIN and CLK, not the reverse or a similarly named pin.
- Check that the software selects SPI0 and the same GPIOs used in the wiring.
- Confirm D/C, reset and chip select are connected to GP20, GP21 and GP17 respectively.
- Check the module’s contrast or initialization settings and run a minimal test pattern.
The display is lit but shows random pixels
- Check the data and clock connections for loose breadboard jumpers.
- Make sure chip select is asserted only while the driver is sending to this display.
- Verify that the driver uses the controller’s expected SPI mode and bit order.
- Inspect reset timing and ensure the reset line is not floating during startup.
The Pico resets or the backlight is unusually bright
- Disconnect the backlight and test the LCD logic by itself.
- Read the module documentation to see whether BL/LED already has a resistor or transistor driver.
- Do not assume a GPIO can safely source the backlight current. Use the circuit specified for that module.
- Recheck that no bare-handset 2.8 V connector assumptions were mixed with the breakout wiring.
One keypad key never registers
- Repeat the continuity test on that key and inspect the membrane for contamination or damage.
- Check that the measured row and column contacts were not swapped in your firmware table.
- Confirm the row is driven to the active level during the scan and the column input has a defined pull resistor.
Several keys register together
- Look for a short between flex contacts or a permanently pressed membrane dome.
- Add debounce and verify that your scan changes only one row at a time.
- Expect some multi-key ghosting when the original matrix has no isolation diodes.
When to choose a bare handset LCD instead
Use the bare-display route only when preserving the original phone hardware is a central requirement and you can identify the exact LCD revision and connector. You need a connector pinout that matches that revision, a documented supply and logic arrangement, and a driver that supports its controller and timing. The original connector reference’s 2.8 V supply detail is a warning to verify, not permission to power every handset LCD at 2.8 V.
If you cannot identify VOUT, control/data, serial data, serial clock, reset and chip-select functions with confidence, stop and obtain the display’s own documentation or choose a breakout. A carrier board with labeled PCD8544 signals is easier to debug, easier to replace and less likely to expose the Pico to an incorrect voltage.
A repeatable build sequence
- Read the display board’s silkscreen and record its exact labels.
- Confirm the Pico board variant and locate the physical header positions for the GPIO names in the example.
- Wire only VCC, GND, DIN, CLK, D/C, reset and CE/CS. Add the backlight after the logic test works.
- Initialize SPI0 and the PCD8544 driver, then display a simple test pattern.
- Power down and document the keypad connector orientation.
- Map every keypad contact with a continuity meter and create a row/column key table.
- Connect the keypad to unused GPIOs, implement one-row-at-a-time scanning and debounce, and test each key individually.
- Secure wires, strain-relieve the flex cable and retest after moving the assembly. Intermittent membrane contacts often appear only when the cable is bent.
This sequence isolates display power and protocol problems from keypad mapping problems. It also leaves a written pin map that can be repaired or reproduced without guessing which connector reference was used.
Quick Recap
Display and keypad decision checklist
- Is the display a PCD8544 breakout, or a bare original handset LCD?
- Do the module labels match VCC, GND, DIN, CLK, D/C, reset, CE/CS and backlight roles?
- Have you verified the module’s supply and backlight requirements?
- Have you translated GPIO names to the physical Pico header positions?
- Does the display work by itself before the keypad is added?
- Have you measured the exact keypad’s row and column closures instead of borrowing another Nokia model’s map?
- Are all keypad inputs biased with a defined pull-up or pull-down and debounced in software?
- Have you left enough GPIOs for the complete matrix and any other project hardware?
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

