Usually when I modify something, I try not to ruin the aesthetics. It has to perform and look better(or the same) than before I start the project, otherwise I don’t want to do it. I think this mod has achieved that. With some help from a friend, I managed to design and build a surface mount serial level converter board that fits inside the Zipit Z2 behind the screen. It pops out of the Zipit in the form of a 3.5mm headphone jack that is stuffed up in one of the only spots it would possibly fit. From there, I built a short cable that turns the 3.5mm plug into a DB-9 for plugging into any standard serial hardware.
The mod is powered entirely from the Zipit it and will have an unnoticeable effect on battery life. The chip I used is the Maxim 3221 CAE 16 pin SOIC variant which also has some built in power saving functionality. This was the smallest chip that I could find that would do the job. The size of the capacitors on the board are not entirely critical but their function is. They help the IC boost the voltage up to the proper level for communicating with RS-232 devices. Without the caps, chances are that the converter will work for some devices and not for others because it will fail to fall within the RS-232 spec. I used .1uF surface mount caps in a 603 package. They are pretty tiny but certainly not unmanageable. There are plenty of tutorials out there on soldering surface mount components if you happen to be nervous about this. Here is the schematic.
Before we can put the board in, we need to crack the case so I put together this Zipit disassembly guide. After it was apart, I could see the space that I had behind the screen. It’s a surprising amount really. They could have made this thing a little thinner if they wanted to.
As I was I saying, the 3.5mm jack is stuffed in the only spot I could find for it. It’s where the LCD cable comes down from the upper half of the Zipit. I happened to salvage this headphone jack from a Sansa Shaker which is a great MP3 player for a baby. I had an extra one that was broken so I took the two headphone jacks out of it and gave one to my friend. rkdavis found a 3.5mm jack on Digikey that looks pretty similar to what I used. The space is very tight so the size of the jack is critical.
As you can see, that board fits perfectly in that empty square. I used a few dabs of hot glue to hold everything together and route the wires where I wanted them to go. I took care to mark the wires with Sharpie pen notches so I knew which wire went where. The wires I used are Kynar 30 AWG wire wrap wire.
After the wires were all routed, I stuck the LCD housing back together. I pulled all 7 wires through the same spot where the LCD wiring comes into the lower half of the unit. I used some Helping Hands to hold the headphone jack and solder tiny wires to it.
I used copious amounts of hot glue to make sure that headphone jack didn’t move. I also drilled the hole extra tight and crammed the jack into it so I don’t expect any movement at all. After this step, the hard part is done and there are only 4 wires left to hassle with.
I stuck the keyboard back together and put the motherboard back into the zipit it. Then it was fairly easy to solder the last four leads to these locations and put the bottom half of the case back together. Now that it’s done, it’s time to plug it into a serial port.
I’m using Hyper Terminal in Windows XP under VM Ware Fusion. The port settings are 115,200, 8 bits, 1 stop bit, no parity and NO flow control(very important). Here is what pops up when I first boot the Zipit.
If anyone wants to replicate what I’ve done, here is the PCB layout for Kicad. Feel free to comment if you need more assistance.
Now for that USB host mod …
If you are interested in buying your own Zipit to hack and you like the information on my site, please buy your Zipit using this link and support my site. You won’t find them anywhere cheaper than that anyways.
If you like the content on this site, please support it by using this link to order from Amazon. You know you were going to go there and buy stuff anyhow so why not help me pay the hosting bill.
very sweet. love the use of the phono socket and plug and it’s placement.
sweet, I am redoing my zipits with this mod, actaully i think i will still keep my rs232 shifter in cable form, but use the phono plug for tx/rx/and ground….
aliosa27: yes he has really been very creative with the placement and socket choice. it’s a great mod, much neater than the other options that “disfigure” the zipit.
I think it’s time for my zipit to be modded…I like the setup of this guide, it’s perfect.
Thanks! Let me know if you have any more questions about it as you tear into it. If you don’t want to go to the extent of putting an internal level shifter in your Zipit, you can also grab a Nokia DKU-5 cable off eBay that has the built in level shifter and stick a headphone plug on the end of it. I did my hack the way I did because I wanted to be able to use the Zipit as a serial terminal as well as using the serial port for debugging.
I have noticed there seems to be some confusion where the RXD pin is located. Is it the pad closest to the processor chip or a little further away and towards the speaker ?
I/we from the Propeller Forum would like to add a GPIO output pin to the serial interface (simulate DTR) so we can reset the prop chip and download code to it.
Has anyone found a GPIO pin? From the chip specs it seems that GPIO0 & GPIO1 should be free (pins U20 & U21) which are near the 32KHz xtal (pins Y21 & Y22).
Cluso99: GPIO0 and GPIO1 are used by the AC power and the Green power button so can’t really be used. there are a few others that you might be able though although i can’t remember their numbers off hand. but if you look in the pxa270 manual you should be able to find one or two you can use via their alt functions
Hi, very interesting-
How did you find the motherboard signals?
Do you know if CTS/RTS are also findable somewhere on the board? i need hardware flow control…
thanks,
GPIO 44 and 45 for CTS/RTS? for this serial port, were TxD/RxD on GPIO 43/42?
I’ve followed your lead and performed this hack as well. Though I’ve made a few changes to how I did it and it greatly simplified things. The 3.5mm jack already on the unit has ferrite beads that can be pulled to cut connection to the audio-chip so I did so then placed a small rs232 chip right beside the ARM processor, deadbug style. then used scotch tape to ensure insulation from the metal battery cover. works great!
Nice!! I considered using the existing audio jack but I wanted to see how far I could push the limited space. I didn’t even think of the deadbug approach but what did you do for the capacitors needed for the level shifter? Did you take any pictures?
After this serial mod, where can I find help to flash my zipit via serial?
My zipit is in an endless update loop and I wanted it flashed with openwrt anyway. Hope I can do it via serial.
Any help is much appreciated!
To my knowledge, you won’t be able to flash it via serial. You would need to JTAG it to get that capability. Here’s a link to some information about JTAGing a Zipit: http://sweetlilmre.blogspot.com/2010/08/zipit-z2-jtag.html
The blob bootloader has download and flash commands. I’d think download would have to work over the serial connection, but I’ve never actually tried it. Here’s some examples though.
http://www.heeltoe.com/weararm/blob_use.html
I tracked down the instructions for flashing over blob on the zipit via the serial port. http://marex-hnd.blogspot.com/2009/07/zipit-z2-bootloader-hacking.html