Category: electronics


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.

Here is a good view of the area behind the LCD

Test fitting the 3.5mm jack

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.

The wires routed and board mounted

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.

Using helping hands to solder the 3.5mm jack

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.

3.5mm jack hot glued in place

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.

Mainboard locations for hooking up the serial converter

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.

The completed mod including the dongle

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.

This is what pops up when you 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.

Thanks to a hot tip from Hack a Day, I became the proud owner of a RFID reader for $10.  It is a Parallax branded part.  If you go to Radio Shack, you’ll probably find that it’s not marked down in the drawer but when you take it up to the cashier, it should ring up at $10. In the past, I’ve always disregarded the Parallax branded parts because I associated them with BASIC stamps which I am not to interested in since I feel like they are excessively priced considering an AVR can do all of the same stuff and more with a little fiddling.  Taking a closer look however, I see now that most of the accessories could be interfaced with any project.

On the front of the package, it has the RS part number which is 276-0032.  It is labeled “RFID Reader with tags”.  Below that it says:

  • 2400-baud serial output
  • Easy prototyping and integration
  • Includes two passive ransponder tags (yes it there is a typo on my package)

On the back side of the package it says:

  • Ideal for payment systems, inventory tracking and similar applications
  • 2400-baud serial output to a PC or other processor
  • 0.100 pin spacing for easy prototyping and integration
  • Includes 2 different passive transponder tags
  • Dual-color LEDs

Whatever the case, I opened up the package and found the reader and the two different RFID tags.  One is a donut-shaped ring that says “World Tag Unique RFID – Logistic and Industrial Transponder“.  The other tag is unmarked but appears to be a blank ID card that is ready to be printed.  I couldn’t find much info on that World Tag and there is even less on the blank card since it’s not labeled.  The only sensible thing to day here is to test it out and see what happens!

With a little help from the RFID Reader #28140 datasheet, I found that the ENABLE pin needed to be grounded to activate the antenna.  When you apply power, the LED turns green, then you ground the ENABLE pin and the light turns red.  This means the unit is ready to scan RFIDs.  I used a prolific USB-Serial adapter and booted hyperterm in a VM to capture the output of the device. I plugged a null modem cable into my serial converter so it would be easier to jumper down to my breadboard.  I wired pin 3 on the null modem cable to SOUT and pin 5 to GND.

The “numbers” that the device spits out seem to be a 12-byte ascii string of somewhat odd characters so what I get in HyperTerminal isn’t especially readable.  I did copy and paste the output into a hex editor though and it became a bit more coherent.  Reading the datasheet mentions that the first and last byte are start and stop bytes so that leaves you with 10 actual bytes of unique identifier string.  This works out to a WAY larger number of possibilities than I can comprehend(1.16252367 × 10 to the 24th to be precise).  A couple of interesting facts…  As long as I hold the card near the reader, it continues to spit out it’s string over and over.  When I pulled the tag away quickly, sometimes I’d only get a partial read but then it would usually start again at the beginning when I would put it back again.  Putting two tags near the reader at the same time seems to confuse it as I would expect.  It does fairly well in that regard though.

One thing to note is that I ran into some serious reliability issues as the voltage of my dying batteries dropped.  When they got down to three volts, the reader failed to function even though the indicator light was still bright as ever.  Plugging it into a wallwart did the trick though.

This is a bare bones reader.  What I mean is that ALL it does is read the tag and spit out the number over and over again.  It is up to whatever you plug it into to give the user tactical feedback of some nature that the card has properly been read.  IE, this reader doesn’t beep, blink, buzz etc, so they leave that part up to you.  There is also no inherent security in this device to speak of.  If someone could tap the serial line, they could obviously spoof whatever number can be read.  As far as cloning the tags, I’m not sure how it could be done but I’m sure it’s possible.  I DID try to scan various different tags I could find in my house with no success.  First one was an HID card.  I didn’t expect anything but it was worth a shot.  Also tried the rest of the cards in my wallet with no success (thankfully) and a few various inventory control tags.

Personally, for my own projects, this is a solution without a problem but these RFID tags are everywhere so it is an interesting study to see how they operate on some level.  If you want more information on this RFID reader, the datasheet is an excellent resource.  Extra RFID tags are available in low quantities from the Parallax store

Zipit serial board PCB picture

I had James etch the PCB for me since he’s set up a bit better for it thanks to a previously broken laminator I found somewhere.  To produce the board he used a laser printer to print on magazine paper, then he puts the printed surface facing a clean PCB and runs it back and forth through the laminator a couple of times.  Then he etches it.  He has a custom acrylic tank he made that has a fish tank bubbler and heater in it.  As you can see, the result is outstanding!  I’m waiting for my new Hakko 936 before I attempt to solder it up however.

I’ve been fighting with Kicad to design a tiny little serial converter for my Zipit.  The Zipit needs a serial converter because the outputs inside the Zipit don’t conform to the RS-232 voltage standards and they are unbuffered.  In other words, most RS-232 devices probably wouldn’t recognize them as they sit AND you could inject a voltage spike directly into the CPU if you decided to hot plug a device.  These serial transceivers have some level of resilience built into them that will protect against such spikes.  Some of the information I’m using in this project is coming from this page:

http://zipit2system.sourceforge.net/?page_id=82

I’m going to use a different chip than he does however.  I priced out the chip he spec’d and it was around $8.  Not sure why, there is nothing particularly special about it.  I chose a different chip for my project though.  I’m going with the Maxim MAX3221CAE in a ssop16 package which is ridiculously small and costs less than $2.  There are sixteen pins on the chip and it is roughly 6.3mm long.  This will be perfect because I am going to install my serial board inside the Zipit entirely.  Then I will use a 2.5mm jack to a DB9 cable or something similar to actually hook up to other devices.  The board I’m making will mount inside the lid behind the LCD screen.  Believe it or not, there is plenty of room back there.  My goal will be to make it so that no grinding or cutting is necessary but somewhere along the way I’ll need to drill a hole for the actual port anyways so no big deal either way.  I’d like to keep it looking as stock as possible.

Here is the schematic I designed(with help from James):

A flaw James pointed out with the other serial design is that the charge-pump capacitors were omitted.  This means that the output still may not have properly complied with the RS-232 spec with regard to voltage levels since those are part of the circuit that builds up the voltage.  I’m sure the other design works in most cases but it’s possible there are stubborn, older devices that could choke on it a bit.

Correction 6/25/2010: After looking at the datasheet for the Maxim 3223e, it appears to have internal charge-pump caps.  The chip is still much too large for my purposes but slightly easier to implement because it has fewer external components.

Anyhow, time to etch a board and see if it works.  Wish me luck.

Yesterday I started another little project.  I’m going to add a serial port to my Zipit Z2.  There are lots of good reasons to do this which I will further detail in another blog.  The Zipit Z2 technically has a serial port already on the motherboard but the outputs are not at levels that conform to RS232 standards so I need to add an RS232 transceiver to convert the levels properly.  The chip I’ve chosen is the Maxim MAX3221CAE.  This isn’t a standard dip that I could just throw on a piece of perf board and call it a day.  See, unlike other Zipits I’ve seen serial-modded, I want to fit the whole mod inside of the Zipit.  There just isn’t enough space for a big old dip anywhere in the unit.  My is to use a tiny surface mount 16-pin SSOP on a custom made paper-thin PCB.  Of course this leaves me with needing to design the board.  I’ve hand drawn boards before that use SMT’s but this one is just too tiny to be accurate.

A hand drawn PCB I made a few years back.

For this project, I need to be much more accurate and make a much smaller board to fit the limited space I will have.  This is where I need a software package like Kicad.  Kicad has many different libraries of existing components built into it already and 1000’s more available via packages on the net.  Kicad is NOT straight forward though.  Even if you’ve used something like Autocad or Mastercam in the past, this program has it’s own set of funny conventions that make little sense.  I’m going to give you a short rundown here of the steps I’m using to make my board.  My list will be incomplete and may not work for you but it’s meant to just be a general outline of the steps you need to go through to get a board made.  My friend James was kind enough to sit down with me for a couple hours and walk me through this program so my list here is made from memory and from notes I made during that short training from him.

  1. Open up Kicad and create a new project.  Give it a name and ignore the warnings.
  2. Now that you have the main window open, add your devices to the board.  The device tool near the top of the right-hand toolbar.  After you’ve selected the device tool, click somewhere with the cross-cursor.  Chose “by lib browser”, find your component and then hit the “x” to close that dialog.  The cursor turns into the component.  Now click somewhere to place it.
  3. After you’ve placed it, you can change the placement and orientation by putting your mouse over it and pushing “r” to rotate or “m” to move it.
  4. After you’ve placed your components, push the “add wire” button below the device button.  Draw in all your wires and make sure you don’t have any goofy junctions.  Save your drawing!
  5. Now hit “Netlist generation”.  It’s in the top menu near the right-hand side.  Hit netlist, generate it and save it.
  6. Right click on every component you placed and annotate it.  Stuff like IC1, IC2, C1-C10, R1, etc.  Giving the parts values is not a bad idea either.  It may help later or if someone else needs to modify or view your drawing.  There is an auto-annotate function but it’s not my preference.  Save again.
  7. In the top menu, push the “Run CVpcb” button.  It’s orange and near the middle.  In this dialog, you need to associate every component with a package type.  This can be challenging if the type of package you need doesn’t exist as a default.  Save that before exiting.
  8. Run PCBnew, ignore the warning.  Check the measurement units on the left side.  Pick inches or mm.  Turn on the rat’s nest below the measurement tool if it isn’t on already.  Click “read netlist” on the top of the screen near the middle.  Click “read current”.  Now your parts are stacked in a blob in the corner.  Draw a box around them with the pointer and move them towards the middle of the sheet.  Click “ok” on the dialog.
  9. Zoom in and mouse over the blob of components.  Hit “m” and move components off the stack one by one.  As you move them, hit the “r” button to rotate them into place.
  10. Route your tracks.  Right click to end.
  11. Select the PCB edges layer and draw your PCB.  This can also be the first thing you do.
  12. You should now have a printable board.  I’ll report back when I do but it could be a while.

I realize this list may have small discrepancies or may be flat out wrong.  There are several tutorials online that explain it better than I do but mine is just to give you a really quick overview of what it will take to actually draw a board with this tool.  Please email me or comment if you see any glaring errors.  I will be on my way now to rip my hair out after using this incredibly complex and confusing piece of software.

My 1960's Nutone vacuum tube intercom

I have a 1960’s house that I purchased from the original owner. As a result I have the original Nutone intercom which is vacuum tube based and works really well considering it’s almost 50 years old. When I bought the house, the intercom didn’t work so I popped it off the wall and took a look at the tubes. You can’t tell if they are good or bad by looking at them but I wrote down the model numbers and went on eBay. I found all the tubes I needed for about $15 shipped. When they arrived I popped them in and it worked perfectly but being a 50 year old intercom, it only would receive AM radio. As nostalgic as that is, I like techno and electronic music. I noticed that the intercom had a switch that said radio or phono. I pulled the unit off the wall again and looked for the phono input and couldn’t find it. Finally I crouched down and looked up. There it was on the bottom of the unit. Since my stereo system is on the wall directly behind the intercom, I soldered in a nice piece of Canare coaxial cable with an RCA end on it and dropped it down the wall and put in a plate. Now with the switch set to phono, I hooked up to the tape recorder output on my stereo and have a CD player or airtunes pumped through the whole house. That’s how I’ve had it set up for the near four years I’ve lived here.

This has been great but from time to time I’ve noticed something missing out of the music so I tasked my friend James with building me a small two channel mixer that could fit inside the wall plate. He’s been on a roll lately of designing and cooking circuit boards for various projects and trying to perfect his techniques so I figured this would be a good, easy little project to hone some skills with. The board looks fabulous! It’s higher quality than many electronic devices I’ve opened up over the years even which is kind of scary really. It has a 78XX  series regulator for the positive side of the op amp and a 79XX regulator for the negative side of an op amp. The gain is fixed but there is a potentiometer that adjusts the attenuation on the output side. It works on 12-18VAC.  The PCB was made with the laser printer toner transfer method using glossy paper cut from catalogs that came in the mail and a cheap Scotch TL901 laminator.

Front side of the two channel mixer

Back side of the two channel mixer

He gave me the finished product and I hooked it up to test for a bit. When he had it and built it, he was testing with a 15vac wall wart so when I plugged in my 18VAC wall wart, it wasn’t being loaded down much (maybe 20mah) so there was really no typical voltage drop. That being said, it was putting almost 20 volts into the circuit and essentially running parts of the circuit at peak capacity. He suggested that I should use a lower voltage power supply.  I stopped in at a local goodwill the other day and found a 12VAC 300mah wall wart for $1. That was one problem.

The other problem was apparent when listening to it because it was distorting the audio. I handed it back to James and he took the circuit home for troubleshooting. He found that the filter caps on the output side were slightly undersized.  This was causing the negative power regulator to oscillate.

He sent it back my way with larger filter caps and I plugged in my new power supply.  Now it’s good to go and ready for installation.

Powered by WordPress. Theme: Motion by 85ideas.