What is a Zipit Z2?
The Zipit Z2 Wireless Messenger was released in 2007 to be used by kids as a wifi enabled chat device. The Z2 originally came with it’s own application running on top of a Linux kernel. Soon after the device was released many people began to hack the device and get a new kernel and operating system to work on it. This page is intended to be an accumulation of information about hacking the device.
General Hardware Specifications
- Marvell PXA270 CPU @ 312mhz (overclockable)
- Marvell 802.11b/g Wifi (libertas driver)
- 32mb SDRAM
- 8mb NOR Flash Storage
- MiniSD memory card slot
- 2.8 inch QVGA color display
- 5V 2A DC Adapter Input
- Backlight QWERTY Keypad
- Headphone Jack
- Microphone and Remote control Jack (similar to Nintendo DS)
- 36 Pin Expansion (Hirose) Connector on back (see below for pinout)
- 3.7V 1230mAh Lithium Ion Battery Model ZWM2-1230LI (67mm x 60mm x 4mm)
IC / Parts List
Here is the list of chips seen on the Zipit2’s board. This list contains all the major chips, their complete markings, and available information. (source)
- NHPXA270C5 G7064572.1 0728 C312 – Marvell PXA270 cpu @ 312mhz
- 88W8686-NAP1 KKN1605.3 0703 B2P ES TW – Marvell 802.11b/g Wifi Chip
- MRVL W886 738P – assumed to be a Marvell chip that works with the 88W8686
- 7KJ41 D9HCX – two Micron MT48H8M16LFB4-8 IT 16MB SDRAM chips
- 640W18BD 5720B148 Z202125D – Intel 28F640W18 8 MB Flash (Datasheet)
- WM8750BG 76AP6HF – Wolfson Audio Chip
- ANA TI 68k A3RF – Texas Instruments BQ24035 Charging & Power Path IC (Datasheet)
- TPS 65021 TI77k – Texas Instruments Power Management IC (Datasheet)
- AER915 5650001 YuG07 32A – Suspected to be the Aeronix version of the P89LPC915
- LP53 – Texas Instruments Ultra-Low Dropout Regulator (Datasheet)
- LMS283GF05 – Samsung 320×240 LCD (Datasheet)
- 20374-R40E-31 – IPEX LCD Connector (Datasheet)
- PJ1-022-SMT-TR – DC Power Jack (Datasheet)
- Maxim DS28CM00 – Device ID ROM (I2C ID 0x50)
Expansion Connector
- Expansion connector plug (solder type for cable with housing): Hirose ST40X-36S-CV(80) (Old Part #) | Hirose ST40X-36S-CV(30) (New Part #)
- Expansion connector plug (SMT type for PCB): Hirose ST60X-36S (Old Part #) | Hirose ST60X-36S(30) (New Part #)
- Expansion connector Pinout (thanks jpb147)
Hardware Modifications
- 3.3V TTL Serial Mod
- Soft Keypad Mod
- ZipitBot
- Remote Control Pinout
- MicroSD Slot
- 16MB NOR Flash Upgrade (confirmed working)
- M58LR128KB85ZB5E (confirmed, obsolete)
- M58LR128KB85ZB6F
- M58LR128KB70ZB5E
- Z2 Breakout v1 | OSH Park Project
- Z2 Breakout v2 (mini) | OSH Park Project
- Nokia BP-4L Battery Replacement
- Possible 64 or 128MB RAM Upgrade:
Linux Distributions
- Easy Flash Script / Instructions
- OpenWRT
- openwrt-zipit (original/older) – github source | slug’s gmenu2x/jffs
- bleeding edge (openwrt-trunk, linux 4.4) – github source | bleeding edge repo | wiki
- IZ2JFFS – IZ2S that runs from stock internal flash
- Arch Linux
- Void Linux – Originally for Sharp Zaurus (OESF Forum, voidz github, voidz packages github)
- IZ2S (Buildroot based for Stock Zipit Z2)
- EZ2S (Based on IZ2S)
- z2sid (Debian Sid)
- z2lite (Buildroot)
- z2 Recovery OS (runs from internal memory)
- z2buntu (Ubuntu Jaunty)
- Rootnexus (Debian Sid/Lenny) (Wayback Machine)
- Sidetrack (Rootnexus Remix for Security/Penetration Testing)
- WejpOS (Buildroot)
- PlugApps – (Based on Arch Linux)
Kernel
- 3.x Kernel
- 4.x Kernel
Links
- http://linux.zipitwireless.com – Official Zipit Wiki (Wayback Machine)
- https://github.com/openwrt-zipit – OpenWrt Fork for Zipit Z2
http://www.chainxor.org/openwrt-zipit/ – OpenWrt Zipit Info- http://www.engine12.com – Slug’s Blog (Openwrt Zipit)
- http://macrofig.blogspot.com – Deeice’s Blog (IZ2S stuffs, misc Zipit)
- http://bealecorner.org/best/measure/z2/ – jpb147’s Zipit Info (hi-res photos, pinouts, etc)
http://www.hostwork.com/users/matt/zipitz2 – Wicknix’s Zipit info (z2lite & z2sid)- http://sweetlilmre.blogspot.com/search/label/zipit2 – sweetlilmre’s Blog (JTAG)
- http://www.notanon.com/ – Geordy’s Blog (misc Zipit info, hardware mods)
- http://www.russelldavis.org/ – RKDavis’ Blog (misc Zipit info, IZ2S/EZ2S)
- http://rayhaque.blogspot.com/search/label/zipit – Ray Haque’s Blog (IZ2S info)
- http://marex-hnd.blogspot.com/ – Marex’s Blog (u-boot)
http://justinbox.aresgate.net/html/make_page.php?n=zipitbot – Nulluser’s Zipitbot- http://zipitfan.wordpress.com/ – Fanoush’s Blog (u-boot keyboard support)
- http://uhrheber.wordpress.com/tag/zipit/ – Uhrheber’s Circuit Hell Blog (Zipit Bluetooth adapter)
- http://www.hunterdavis.com/ – Hunter Davis’s Blog (zipit, etc)
- Archive http://mendel.ugr.es/~ama/tmp/zipit/ – NeonLicht’s Zipit Page
GPIO List
Originally from here, updated by me
GPIO | Direction | Function | Name | Note |
0 | in | 0 | (A/C power detect, present = 1) verified | |
1 | in | 0 | (reads 0 while power button pressed) verified | |
2 | in | 0 | ||
3 | in | 1 | ||
4 | in | 1 | ||
5 | in | 0 | ||
6 | in | 0 | ||
7 | in | 0 | ||
8 | in | 0 | ||
9 | out | 0 | ||
10 | out | 0 | (right-hand LED, on = 0) verified | |
11 | out | 2 | PWM_OUT<2> | LCD Backlight |
12 | in | 2 | CIF_DD<7> | Expansion Connector Pin 30 (PWM Capable) |
13 | out | 0 | ||
14 | out | 0 | Wifi Power Toggle | |
15 | out | 0 |
|
|
16 | in | 1 | KP_MKIN<5> | Keypad |
17 | in | 1 | KP_MKIN<6> | Keypad |
18 | out | 0 | ||
19 | out | 0 | LCD Reset | |
20 | out | 0 | ||
21 | out | 0 | ||
22 | out | 0 | ||
23 | out | 2 | SSPSCLK | verified |
24 | out | 0 | Wifi Chip Select | |
25 | out | 2 | SSPTXD | verified |
26 | in | 1 | SSPRXD | verified |
27 | out | 0 | ||
28 | out | 1 | I2S_BITCLK | |
29 | in | 1 | AC97_SDATA_IN_0 | (probably a bug, configured as I2S_SDATA_IN by blob) looks like the z2app uses it as an ac97 codec |
30 | out | 1 | I2S_SDATA_OUT | |
31 | out | 1 | I2S_SYNC | |
32 | out | 2 | MMCLK | |
33 | out | 0 | ||
34 | in | 2 | KP_MKIN<3> | Keypad |
35 | out | 2 | KP_MKOUT<6> | Keypad |
36 | in | 0 | IRQ | Wifi IRQ |
37 | out | 0 | (headphone detect, present = 0) | |
38 | in | 2 | KP_MKIN<4> | Keypad |
39 | out | 0 | ||
40 | in | 0 | ||
41 | out | 1 | KP_MKOUT<7> | Keypad |
42 | in | 1 | BTRXD | Expansion Connector Pin 7 (Breakout Board Dock Detection) |
43 | out | 2 | BTTXD | |
44 | in | 3 | CIF_FV | Expansion Connector Pin 36 (breakout board relay control) |
45 | out | 0 | CIF_PCLK / SSPSYSCLK3 | Expansion Connector Pin 31 |
46 | in | 2 | STD_RXD | |
47 | out | 1 | STD_TXD | |
48 | out | 0 | ||
49 | out | 0 | ||
50 | in | 1 | CIF_DD<3> | Expansion Connector Pin 26 |
51 | in | 1 | CIF_DD<2> | Expansion Connector Pin 25 |
52 | in | 1 | CIF_DD<4> | Expansion Connector Pin 27 |
53 | out | 2 | CIF_MCLK | Expansion Connector Pin 21 |
54 | in | 3 | CIF_PCLK | Expansion Connector Pin 20 (breakout board 5V Regulator enable) |
55 | in | 0 | (app reads) | |
56 | in | 0 | (app reads) | |
57 | in | 0 | (app reads) | |
58 | out | 0 | LDD<0> | LCD |
59 | out | 0 | LDD<1> | LCD |
60 | out | 0 | LDD<2> | LCD |
61 | out | 0 | LDD<3> | LCD |
62 | out | 0 | LDD<4> | LCD |
63 | out | 0 | LDD<5> | LCD |
64 | out | 2 | LDD<6> | LCD |
65 | out | 2 | LDD<7> | LCD |
66 | out | 2 | LDD<8> | LCD |
67 | out | 2 | LDD<9> | LCD |
68 | out | 2 | LDD<10> | LCD |
69 | out | 2 | LDD<11> | LCD |
70 | out | 2 | LDD<12> | LCD |
71 | out | 2 | LDD<13> | LCD |
72 | out | 2 | LDD<14> | LCD |
73 | out | 2 | LDD<15> | LCD |
74 | out | 2 | L_FCLK_RD | LCD |
75 | out | 2 | L_LCLK_A0 | LCD |
76 | out | 2 | L_PCLK_WR | LCD |
77 | out | 2 | L_BIAS | LCD |
78 | out | 0 | ||
79 | out | 0 | ||
80 | out | 0 | ||
81 | in | 2 | CIF_DD<0> | Expansion Connector Pin 23 |
82 | in | 0 | (app reads) | |
83 | out | 0 | Charging Amber LED 0 = enable (confirmed) | |
84 | in | 3 | CIF_FV | Expansion Connector Pin 35 (breakout board relay control) |
85 | out | 0 | (battery charge enable? 1 = inhibit, 0 = enable (according to battery LED)) | |
86 | out | 0 | Expansion Connector Pin 32 (breakout board relay control) | |
87 | out | 0 | ||
88 | out | 0 | LCD Chip Select | |
89 | out | 0 | ||
90 | out | 0 | ||
91 | out | 0 | ||
92 | in | 1 | MMDAT<0> | (bidirectional) |
93 | in | 2 | CIF_DD<6> | Expansion Connector Pin 29 |
94 | in | 2 | CIF_DD<5> | Expansion Connector Pin 28 |
95 | in | 0 | bq24035 Charging IC STATUS 2 Input, verified | |
96 | in | 0 | (MMC card detect – both edges active) | |
97 | out | 0 | ||
98 | in | 0 | clamshell / lid detect, open = 1, closed = 0 | |
99 | in | 0 | bq24035 Charging IC STATUS 1 Input, verified | |
100 | in | 1 | KP_MKIN<0> | Keypad |
101 | in | 1 | KP_MKIN<1> | Keypad |
102 | in | 1 | KP_MKIN<2> | Keypad |
103 | out | 2 | KP_MKOUT<0> | Keypad |
104 | out | 2 | KP_MKOUT<1> | Keypad |
105 | out | 2 | KP_MKOUT<2> | Keypad |
106 | out | 2 | KP_MKOUT<3> | Keypad |
107 | out | 2 | KP_MKOUT<4> | Keypad |
108 | out | 2 | KP_MKOUT<5> | Keypad |
109 | out | 1 | MMDAT<1> | |
110 | out | 1 | MMDAT<2>/MMCS<0> | |
111 | out | 1 | MMDAT<3>/MMCS<1> | |
112 | out | 1 | MMCMD | |
113 | out | 1 | I2S_SYSCLK | |
114 | in | 1 | CIF_DD<1> | Expansion Connector Pin 24 |
115 | out | 3 | PWM_OUT<1> | Keypad Backlight |
116 | out | 0 | ||
117 | in | 0 | (bit-bang I2C/SCL, mode 1 = low, 0 = high/input) | |
118 | in | 0 | (bit-bang I2C/SDA, mode 1 = low, 0 = high/input) | |
119 | in | 0 | ||
120 | in | 0 |