Okay - Here is another metalworking project I did at Xerocraft. This one was done on the milling machine.
One of the tools that we were missing for the metal lathe was a boring tool that could be used to make precision holes, tapered holes, or holes that are larger than available drills. Tool holders that fit the KDK quick change tool post on our lathe are hard to find and pretty expensive, so I decided I would make my own.
Rather than go all out and create a holder that fits the dovetail on the tool post, I decided to go the easy route and create a holder that would fit into the 1/2" slot on one of the KDK tool holders and hold a 1/2" round boring bar.
The design is very simple. Its a block of aluminium (because that is what I had on hand, and its easy to work with). One side is drilled through with a 1/2" hole, and the other is milled to a 1/2" width to fit in the slot of the tool holder. The part that fits into the toolholder is slit to allow the setscrews that hold it in the toolholder to compress the hole in order to hold the boring bar. The photo above shows the boring tool as it is mounted for use. The shiny part is what I built.
I started by cutting a chunk of 6061 aluminium to the approximate size, then squaring it in the mill. Next I marked and drilled the hole for the boring tool, first with a center drill, then a small bit to establish a guide hole, and finally the 1/2" drill to fit the boring bar. I did not ream the hole to size because the precision is not needed for this purpose.
Next I mounted the block directly to the mill table using a 1-2-3 block and some strap/step clamps. I aligned the block to the axis of the mill with a dial indicator, then cut the steps for the part that mounts into the holder. I used successive passes to get to the desired depth. If I were to do it again, I would likely side mill at approximately the same depth to use more of the milling cutter.
I flipped the piece and aligned and cut the other side in the same way.
The final step was to mount a slitting saw with the same clamping setup, and cut a slit on the center line of the 1/2" width slot to the boring bar hole to provide a method for holding the boring bar.
When completed, the boring bar would slide into the hole at the appropriate depth and the 1/2" part would fit into the slot of the tool holder and get clamped into place. This holds both the block in place, and by compressing the slit in the center, holds the boring bar in place.
The photo below shows an example of the boring bar holder mounted to bore a hole on the lathe.
Tuesday, November 6, 2012
Sunday, November 4, 2012
Metalworking: Slitting Saw Arbor
Okay, so this is not an electronics project, but it is my blog, and lately I've been spending my hobby time doing metalworking projects at Xerocraft, Tucson's local Hackerspace.
We have a old Logan Lathe and a generic chinese Mill Drill that I've been using primarily to make tooling for the lathe and mill.
Its been a lot of fun reviving the love of machining that I learned from my middle school (called Jr High back then) metal shop class.
This project was to build a bushings that allow our R8 shell mill holder to be used for 1" arbor hole slitting saws (like the one on the picture above), or other side milling cutters.
There were two parts needed to use the arbor for slitting saws. Both started as a 1-5/8" diameter 1117 free machining steel rod.
The main bushing started as a solid piece of steel. I mounted it in the three jaw chuck on the lathe and faced both sides square and flat.
Next I center drilled it and drilled progressively large holes through the center in 1/8 increments starting with 1/4" and ending with this 7/8" reduced shank (aka Silver and Deming) bit.
Next I set up a boring tool in the boring bar toolholder I made on the mill, and bored the remaining 1/8" to get the hole to fit the tool with a very close fit. I did this by first boring to .995", then test-fit and bored a few mils more until I got the desired fit.
The next step was to coat it with blue dye and mark it for milling. I carefully mounted it in the vice properly aligned so I could mill it directly down the center line for the alignment slots that keep it from turning on the arbor under the milling forces. This required some careful setup, but was a it easy milling operation. I actually broke a endmill while milling this. The slotting operation in steel makes for a much heavier chipload that could not effectively clear out of slot. If you look closely at the picture above, you can see the very fine chips caused by the cutter cutting its own chips over and over instead of clearing them out of the slot.
I cut the slot a bit too deep and used the lathe to adjust the depth of the slot by facing off the excess material. Next I turned it around and faced the other size to get the length exactly right. That finished the first piece.
The second piece was done entirely on the lathe. First I mounted a small piece of the same 1-5/8" rod in the three jaw chuck and faced one side flat and square. I drilled a clearance hole for a 3/8" drill. Again with the same facing tool, I faced out a notch so the part fit perfectly into the top of the bushing.
Next I flipped the piece around and used a different tool to face out an indentation starting at the center hole to fit perfectly over the top of the arbor.
The two pieces fit together in two different ways depending on the width of the slitting or slotting saw used. If a thin slitting saw such as the one in the picture below is used, the concave side is used so the saw is held tightly on the arbor. If a thicker saw is used, the convex side is used to give support of the top on the bottom from the arbor, and on top from the machined piece.
The whole part goes together as shown below.
Tuesday, July 24, 2012
Project: OLS Logic Analyzer Hardwood Case
My Bus Pirate Case turned out so well that I decided to use the same approach to create a hardwood case for my Open Bench Logic Sniffer.
This is a open source logic analyzer with some pretty impressive specifications for the price. It can handle sample speeds up to 200 million samples per second with up to 32 channels, with varying numbers of samples based on the number of sampled channels, up to 16k samples for 8 channels.
16 of the channels are buffered 5 volt tolerant channels - these are the ones you see at the end of the board (and the only ones I've used so far). There are another 16 channels (unbuffered 3.3v) on the unpopulated headers on the board.
I spent $50 for mine at Seeedstudios.
There are several software solutions available that talk to it - including the open source Java SUMP toolset that I have been using. The hardware and software combination includes parallel and multi-step sequential triggering and adjustable pre-trigger storage.
Like the Bus Pirate, the OLS is a bare board, which puts it at risk of shorts from messy work surfaces with conductive things like paper clips and staples laying around. I had previously hacked together a case from leftover acrylic and MDF, but this one is much better looking and more functional.
I did much of the work for this at Xerocraft -- our new Tucson hackerspace, using the milling machine to cut the openings in the chunk of leftover maple.
See the previous post on the Bus Pirate case for detail on the steps involved.
In short:
- Cut an appropriate sized chuck of wood with a hand saw.
- Milled the cavity and USB opening with the mill at 600RPM with a 1/2" end mill.
- Squared off the opening with a chisel and sander.
- Rounded the corners and sanded a smooth shape with a belt sander.
- Stained with the stuff I had lying around
- Two coats of polyurethane with a light sanding between.
I marked the mounting holes with a transfer punch, then drilled and tapped the holes directly in the hardwood. I screwed the machine screws in using the spacers and cut the excess length from the bottom with a good pair of flush cutters, The screws with no hole got screwed in to the proper height to support the board from the bottom then cut off the same way.
I think it turned out pretty nice.
Sunday, July 8, 2012
Project: Wixtel adapter for IRXlate
![]() |
| Wixel Adapter board - middle layer in a three layer sandwich between the IRXlate board on the bottom and Wixel on top. |
Rather than run cable to it, I figured it was time to break out the Wixel Wireless USB Serial link that I got on sale at Pololu during their 2011 Black Friday sale.
It is easy enough to interface the Wixel to the 3.3v UART connector on the IRXlate, except for the fact that I did not route the power supply to the header, oops. I'll do that with a engineering change -- a fancy name for a wire under the board.
I needed to build an adapter board to connect the Wixel to the UART header on my IR output board. I could easily have done that with either my pcb mill, or by etching it, but once you've started working with custom manufactured double sided boards, its a bit hard to go back. At only $9.90 ($14 with shipping), a 5cm x 5cm PCB from SeeedStudios seemed like the way to go.
I only needed about half that size, so I decided to fill the rest with some other useful circuits and adapters. SeeedStudios allows PCBs to have multiple designs as long as they are only separated by silkscreen. I also ordered the 0.6mm width boards so they are easy to cut (as in with a pair of scissors).
I added a MCP1604 based boost convertor design using parts from my most recent Digikey purchase. This is a flexible design that incorporates a 20mm coin cell battery holder footprint and a four pin header with in and out voltages, ground, and the enable pin. Changing a few components will get me a convertor that can produce 3.3v, 5v, or many other voltages from a lesser voltage battery, either from the coin cell holder, or wired into the through holes on the board or the header.
I also added a linear regulator based supply that can take either or TO-92 or SOT23 sized regulator. Again it has a header for the breadboard connection, this time a double row with one row for output voltage and the other for ground. It is intended to plug into a breadboard power rail. The input side is connected to two 2.1mm coax power jack footprints, one on each side of the board. One is connected as center positive, the other as center negative. I will connect one or the other as needed, or just connect a battery to the appropriate through hole pads.
Basically this gives me ten boost convertors and ten linear regulars that can be built in various configurations for use in a breadboard, or in other designs. All for free with another board that I have an immediate need for.
The base wixel adapter is all routed completely on the top layer. Its a five pin header that connects to what is basically a 24 pin .600 spaced dip connector. On the back of the that board, I reused the 24 pin headers to add some additional SMD footprints that are wired to pins on the DIP connector. This will give me a bunch of extra SMD to DIP adapters from the nine PCBs that I don't need for the Wixel adapter purpose.
Not a bad payback from my $14. I ordered the PCBs from Seeed on 6/14 and received the completed boards on 7/1. That's a 18 day turnaround - not bad at all.
Scans of the board:
![]() |
| Top of Wixel Adapter "Panel" |
![]() |
| Bottom of Wixel Adapter "Panel" |
Project: IRXlate - IR Code Translator/Repeater
IRXlate is an infrared remote control extender and translator. The vision is to create a device that will both allow me to locate my A/V equipment any where I want, and also make my multitude of remote controls easy and intuitive to use.
It has always bothered me that when I pick up a remote control to turn the volume of the TV down, it is never the right one, or if it is it takes a while to find the correct volume control button.
Volume is just an example of course, but one that should resonate. Realistically, there are only a few components where a volume control makes sense, and it is reasonable to send the appropriate volume up or down command to each of those components. That's what IRXlate is designed to do.
The same thing works for the left, right, up down buttons, play and stop, etc. Some of these will require storing and making decisions based on the current device "state" - all of which I will eventually do in firmware.
The design is based on a PIC microcontroller (currently a 16F689). The input side is from a GP1U58Y IR detector that I had in my junk box. This is a 5V three terminal detector centered on a 38khz detection frequency. While the PCB footprint is laid out for that particular device, any of the similar detectors with the same pin layout will do the same job.
While working on the breadboard developing the circuit and writing the basic firmware, I found that the device is fairly unstable and sensitive to noise on the ground line as well as random light. That all went away when it was properly grounded.
The hardware is fairly simple. It consists of a discrete input board and output board.
The Input Board:
The input side, which is made up of the GP1U58Y with a bypass capacitor on the 5V power line, and a 5V to 3.3V translation circuit to adapt the 5V output of the IR detector to the 3.3V inputs on the microcontroller. The IR output has a 1k pullup to the 3.3V line, a 10k series resistor to the RA2 line on the microcontroller. The RA2 input is diode clamped to the 3.3V line to prevent it from exceeding the 3.3v input. The RC0 output line on the uC connects to an Error LED via a 470 ohm current limiting resistor.
The input board also has a microprocessor power supply circuit based on a SA57000-33 3.3V LDO regulator in a SOT23/5 package.
The 3.3v supply feeds the 16F690 uC, and a SST25VF010A 1Mbit SPI Flash memory that is used to hold the IR code translation memory. These complete the input board, except for the connectors for in-circuit serial programming (ICSP), a SPI header for debugging, a 5V power supply input, the UART connectors, and five IR output lines.
There is a footprint for a current limiting resistor and IR LED that can be populated for testing and debugging, but it is not generally intended to be populated.
The connections that go to the output board are on two .100 spaced headers - one with 8 connections - UART RX, UART TX, Ground, and five IR outputs (RC1 - RC5).
The second connector that goes to the output board is a 5V power input and ground connection on a 2x1 .100 spaced header.
The input board was designed to fit in a small box that I bought on sale from a surplus website -- I can't remember which one. For my usage, I just soldered a ten conductor cable salvaged from a modem cable directly to the board.
The Output Board:
The output board was designed to be the interface point to the actual IR emitters, the power supply, and the serial communications to the microprocessor. All of the wires are connected via screw terminal blocks.
It is a very simple design. It includes a 5V power supply based on an linear regulator (78L05). It has a polarity protection diode, footprints for input and output bypass capacitors, and an additional footprint for a electrolytic capacitor to handle extra power requirements of five simultaneous IR outputs if needed.
The UART rx/tx lines are routed to a 5x1 .100 header that has a pinout for the Pickit2 UART tool. Unfortunately I failed to route the power to the appropriate pins, partially because the output board has only 5V power, and the rx/tx signals from the input board are at 3.3v level. I ended up using my Bus Pirate for most of the debugging, and built a Wixel Adapter to allow wireless connectivity. At some point in the future I'm planning on wiring all my devices up to a RS-485 network - at which point I'll build another adapter with the same pinout and footprint.
The rest of the board is made up of five copies of a simple transistor booster on the IR outputs. Each has an NPN transistor pulling the sleeve of a 3.5mm jack to ground. The base of the NPN transistor is driven by the uC output. The tip of the 3.5mm jack connects through a limiting resistor to the 5V line.
Mounting:
As mentioned before, the input side was mounted in a IR case with a red IR transparent window in the front.
The output board will be mounted directly into the wall in a standard junction box. The photo above shows the completed output board mounted to a blank outlet plate that has been drilled with holes for the 3.5mm jacks. The board is mounted to a 1/2" piece of wood that is then mounted to the faceplate with screws to provide stability.
The Printed Circuit Boards:
![]() |
| IRXlate "panel" - Top |
![]() | |
| IRXlate Panel - Bottom |
For this project, I decided to order my first professionally produced board. Seeedstudio offers a very reasonably priced service to produce boards. This particular design required two separate boards - one for the input and one for the output. The input board size was determined by the size of the case. The output board size was determined mostly by the minimum space required by the five 3.5mm IR output jacks. The only limiting factor is that it mounts to a standard outlet faceplate and fits in a standard outlet box.
After designing the minimum dimensions for both input and output, I found that they would not fit into the 5cm x 10cm size because of the space needed for the IR output jacks, so I arranged them into the 10cm x 10cm size ($25 for 10 copies). I had quite a bit of unused space, which I filled with SMD adapters to break SMD footprints into standard headers for fitting onto a breadboard. The final "panel" ended up with:
- Input PCB
- Output PCB
- 3 x SOT23/5 to SIP5
- 1 x SOIC20 / SSOP20 to DIP20
- 2 x SOIC8 to DIP8
- 1 x SOIC28/SSOP28 to SIP28
- 1 x D2PAK to SIP4
The boards ended up very nice - double sided with soldermask and silkscreen. They are great to work with - especially for the small surface mount parts. Okay - so none of these are really small surface mount parts - in fact they are huge as surface mount parts go, but they feel pretty small when you are used to dealing with DIP packages.
I did make a few mistakes on the board:
- All of the TO92 parts - transistors and voltage regulators -- were reversed on the silkscreen. This was easy enough to work around - simply by soldering the parts on "backwards" from what was shown on the silkscreen.
- There also was one pad on the footprint for the 3.5mm jack that was covered by soldermask. It was an unused pin, so it really did not cause any harm.
- As mentioned before, there was no power routed to the UART header. Both of these have been fixed in the V1.1 board design that I'll reference here.
Firmware Development:
The firmware was originally hand written in 8 bit (16F) PIC assembly code for a 16F690 processor on a development board connected to a breadboard circuit. In that form, I started by analyzing the IR waveforms using my digital storage oscilloscope. That was not particularly easy to do, but let me get a basic capture and decode process written. The firmware captures the mark and space timings of up to 100 cycles in RAM, then analyzes the results to encode the NEC or Panasonic formats. If the format is not recognized, there is a debug mode that can dump the raw space and mark timings for development of additional protocol decoders. The encoders just do the opposite - split the encoded value into mark and space timings, then send them to the selected IR outputs.
The initial development was done just using the on-chip EEPROM for storage. It didn't take too long to figure out that I would need a lot more storage than that, so I added the Flash memory.
Partially through the development, I purchased an Open Workbench Logic Sniffer and things got much easier. Using this inexpensive 32 channel logic analyzer, I found it much easier to capture the input and output IR signals and write them in formats that I could easily use in the MPLAB debugger.
The firmware is specific to my requirements. The formats that it decodes and sends are the formats that my remote controls use (NEC and Panasonic).
I still intend to add some state specific logic, but I got to a point that I wanted to start using the device to make my life easier. I have two problems - first I didn't want to have to continually connect and disconnect the serial cables and use the ICSP connectors to load new firmware. Second, I was running out of available program memory.
I ignored the second one and went searching for a serial bootloader to solve the first problem. I still had a bit of memory left to work with. Too bad that after I found and adapted the tiny bootloader to the 16F689/16F690, I found out that they can only read and not write the program flash memory while running.
The answer to both problems was to switch to a pin compatible PIC with more memory that can self-write program memory. The 16F1829 fit that bill, so I bought one and soldered it onto a second input board to develop on. When I get the firmware adapted to the new processor, I'll just swap out the processor chip. That will be a topic for future blog post.
Friday, June 15, 2012
Fixing a Dell Vostro 1000 Power Supply: part 2
A couple of weeks ago, I posted about fixing my son's laptop that stopped charging the battery and running off of the A/C adapter. I had isolated it to one component on the motherboard that I thought was a capacitor and took off to find a schematic or at least the part value.
Turns out the part was actually a ferrite chip. That makes the measurements I made pretty worthless when I was assuming it was a bad cap. Anyway, thanks to a remarkably quick response from ghn on http://www.notebookforums.com/, I was able to find http://lqv77.com/downloads/ which had a schematic for the laptop. From that I found that the part in question (FL1) was a ferrite chip BLM41PG600SN1L. I found it on Digikey.com at 0.54 for quantity 1. Of course I bought 5 - they are cheap and worth having on hand for future designs and repairs. Well, that and about another $50 worth of parts that I had on my wishlist for future projects.
I decided since it was not completely clear that the capacitor PC134 (.01uf 25v Ceramic in a 0402 package) wasn't a problem, so I replaced that also.
My hot air rework station came in handy for this. I cleaned up the pads with some additional solder and flux to get it to flow, then removed the excess with desolder braid. Soldering the ferrite chip (a 1806 package) was a piece of cake. The capacitor - not so much. The 0402 package is really small, making it ridiculously hard to hold it in place. I really need to get some really good tweezers to work with parts that small, and maybe a syringe of good solder paste for reflow soldering.
After a bit of fumbling, I managed to get it tacked down, then used the hot air to reflow it. I cleaned up the excess flux with some alcohol.
I connected the battery, and power switch board, then plugged in the power. The charging light came on, which I counted as a success.
It took me an hour or so to carefully reassemble the laptop, which has worked perfectly ever since.
For details on the troubleshooting process, see my previous post
Turns out the part was actually a ferrite chip. That makes the measurements I made pretty worthless when I was assuming it was a bad cap. Anyway, thanks to a remarkably quick response from ghn on http://www.notebookforums.com/, I was able to find http://lqv77.com/downloads/ which had a schematic for the laptop. From that I found that the part in question (FL1) was a ferrite chip BLM41PG600SN1L. I found it on Digikey.com at 0.54 for quantity 1. Of course I bought 5 - they are cheap and worth having on hand for future designs and repairs. Well, that and about another $50 worth of parts that I had on my wishlist for future projects.
I decided since it was not completely clear that the capacitor PC134 (.01uf 25v Ceramic in a 0402 package) wasn't a problem, so I replaced that also.
My hot air rework station came in handy for this. I cleaned up the pads with some additional solder and flux to get it to flow, then removed the excess with desolder braid. Soldering the ferrite chip (a 1806 package) was a piece of cake. The capacitor - not so much. The 0402 package is really small, making it ridiculously hard to hold it in place. I really need to get some really good tweezers to work with parts that small, and maybe a syringe of good solder paste for reflow soldering.
After a bit of fumbling, I managed to get it tacked down, then used the hot air to reflow it. I cleaned up the excess flux with some alcohol.
I connected the battery, and power switch board, then plugged in the power. The charging light came on, which I counted as a success.
It took me an hour or so to carefully reassemble the laptop, which has worked perfectly ever since.
For details on the troubleshooting process, see my previous post
Friday, June 8, 2012
Project: Bus Pirate Case
I bought a Bus Pirate v4 with a recent PCB purchase from Seeedstudios Fusion PCB service. It is an awesome open device for debugging, prototyping and hacking hardware that was created by Dangerous Prototypes.
The Bus Pirate is sold as a bare board, which puts it at risk of shorts from messy work surfaces with conductive things like paper clips and staples laying around. I've decided I really like this device, so I figured I'd make a case to protect it.
It just so happens that I recently joined Xerocraft -- our new Tucson hackerspace. We have a milling machine that I have been working with, I decided to use it to mill a case out of hardwood.
I bought a small chunk of maple at a hardwood supplier and took it to the hackerspace to mill it out. I set the mill spindle to run at about 600 RPM (too fast burns the wood), and mounted a 1/2" end mill in a 1/2" R8 collet.
I cut an appropriately sized piece of the maple with a hand saw (which took some effort - this is some hard wood).
Next I manually milled a cavity of the appropriate size in the piece and cut a slot for the USB connection during Thursday open hours. This left me with a roughly shaped part, however, because of the size of the end mill I used, I had rounded inside corners instead of squared off corners that would fit the board.
I tried a few things to get the corners squared off - an oscillating tool with a basic plunge blade was the first thing I tried. It cut well, but was a bit too hard to control. I found that the best tool was a sharp chisel and a bit of patience.
I finished shaping it with a palm sander, then used a fine sandpaper to prepare it for staining. I used a bit of stain, then a couple coats of polyurethane to finish it.
Once it was dry and looking good, I drilled appropriately sized mounting holes for #4 machine screws all the way through the bottom of the case, then tapped the hardwood for the mounting screws.
I used four nylon #4 machine screws and nylon spacers to mount the board directly into the cavity. The screws I used are longer than I needed, but nylon is easy to cut cleanly, so I screwed the board in all the way and marked where they extended through the other side. I pulled the screws out one by one and cut them to size just a little shorter than the mark.
The final case is quite functional and I think a step above the usual project case in looks. The dark stained maple has a nice contrast with the red circuit board.
I was originally thinking I would put a clear acrylic top on the case, but I've found it is not really necessary. I may do that later, but for now, I'm very happy with the results.
I also printed a label with the pinout and pin assignments and stuck it on the bottom of the case for easy reference.
I think I'll make a similar case for my Open Workbench Logic Sniffer board next (another awesome Dangerous Prototypes project). I'll try to remember to take some photos at each step of that project.
I'm also planning on expanding a bit more about how I am using both the Bus Pirate and logic analyzer in future posts.
Saturday, June 2, 2012
Fixing a Dell Vostro 1000 Power Supply
My son has a Dell Vostro 1000 laptop that suddenly stopped charging the battery a couple of weeks ago. It would run okay from the battery until the battery ran down, but would not charge the battery or run from the power cord.
With the battery removed and the power plugged in, pressing the power button would start the fan and blink the charging light amber, but the laptop would not power up.
I tried a couple of power supplies (I've got several Dell laptops in various states of repair). They all produced the same result, and worked fine with the other laptops, so I ruled out a bad power brick and put it aside. My son managed to finish the school year by charging the battery in our Inspirion 1501 and running off the battery or using the Inspirion.
I finally got around to working on it today.
First I disassembled it using the very good instructions in the Vostro 1000 Service manual at: http://support.dell.com/support/edocs/systems/vos1000/en/sm_en/index.htm. Most of this was not new to me, having replaced the LCD display last year. As a backup for when I put it back together, I setup my webcam to record the whole process as I disassembled it. Too bad I didn't realize the reason the picture was fuzzy as I was setting it up was that I needed to focus the camera. I thought it was just my cheap EBay afterthought purchase webcam. It actually works pretty good when you focus it. Oh well, next time. I think I might set the webcam up so I can record what I am doing on my workbench more frequently. If can rig it to do time lapse or just to take pictures when I a button.
Anyway, I got it taken completely apart and then took a hi-res scan of the front and back of the motherboard. I find that with the scans I can map front and back to layers and actually trace some of the circuits when needed. It is also a good way to zoom in and look closely at the components, read markings, etc without using the magnifying glass and lots of light that my middle age eyes now require.
I started with the area of the board top and bottom around the power connector, looking for discoloration, and getting a feel for what the components are used for. I missed the problem on the first pass and moved on to check the components in the vicinity of the battery connections for the charging circuitry.
On my second pass, I concentrated on the tantalum capacitors (all fairly small surface mount packages), and saw the problem right away.
For reference, The silver thing in the lower left corner with the marking starting with "A75" is the power connector. Note the scorching in the upper right corner of the power capacitor right in the middle - looks like PC134 from the PCB markings. That capacitor looks like it is probably my problem. I think the hair that is right on top of it is probably not the cause of the problem, but it is a bit suspicious that it is right there. I sure hope hair is not that conductive, or with my dog I'm going to have some trouble.
FYI: I found out later that this part was actually a ferrite chip, PC134 is the tiny 0402 package capacitor next to it. Details of the parts and replacements can be found in part 2
I blew it out really good with compressed air can and took a look at it with a magnifying glass. Through the magnifying glass I could see that the solder connection on the right side (in the picture above) was completely cracked and separated from the board. I grabbed it with my tweezers and it came right off the board. Guess I won't need the hot air rework station for this one.
I tried measuring the capacitor and got nothing, looks like it is shorted out - reading at around 1 ohm (well, until I applied too much pressure with my test probe and send it skittering to who knows where). Now the problem is going to be finding the correct value of a replacement capacitor. I don't understand why all my 1206 resistors are labeled with a value, but the capacitors the same size or bigger are rarely labeled at all.
I'm posting a message to Dell support and an electronics/laptop forum or two to see if anyone can help out. I'm also going to look on Ebay to see if I can pickup another motherboard. Even a broken one would be a source for parts (assuming it is not broken in the same way). Even if I cannot get the parts I need from it, there are quite a few other parts that I can use in other designs - including some nice Maxim DC-DC converter controllers and battery charge controllers and of course all of the connectors.
I'll post more details when I replace the capacitor, clean all parts well and do some testing.
See details of the repair in part 2
With the battery removed and the power plugged in, pressing the power button would start the fan and blink the charging light amber, but the laptop would not power up.
I tried a couple of power supplies (I've got several Dell laptops in various states of repair). They all produced the same result, and worked fine with the other laptops, so I ruled out a bad power brick and put it aside. My son managed to finish the school year by charging the battery in our Inspirion 1501 and running off the battery or using the Inspirion.
I finally got around to working on it today.
First I disassembled it using the very good instructions in the Vostro 1000 Service manual at: http://support.dell.com/support/edocs/systems/vos1000/en/sm_en/index.htm. Most of this was not new to me, having replaced the LCD display last year. As a backup for when I put it back together, I setup my webcam to record the whole process as I disassembled it. Too bad I didn't realize the reason the picture was fuzzy as I was setting it up was that I needed to focus the camera. I thought it was just my cheap EBay afterthought purchase webcam. It actually works pretty good when you focus it. Oh well, next time. I think I might set the webcam up so I can record what I am doing on my workbench more frequently. If can rig it to do time lapse or just to take pictures when I a button.
Anyway, I got it taken completely apart and then took a hi-res scan of the front and back of the motherboard. I find that with the scans I can map front and back to layers and actually trace some of the circuits when needed. It is also a good way to zoom in and look closely at the components, read markings, etc without using the magnifying glass and lots of light that my middle age eyes now require.
I started with the area of the board top and bottom around the power connector, looking for discoloration, and getting a feel for what the components are used for. I missed the problem on the first pass and moved on to check the components in the vicinity of the battery connections for the charging circuitry.
On my second pass, I concentrated on the tantalum capacitors (all fairly small surface mount packages), and saw the problem right away.
For reference, The silver thing in the lower left corner with the marking starting with "A75" is the power connector. Note the scorching in the upper right corner of the power capacitor right in the middle - looks like PC134 from the PCB markings. That capacitor looks like it is probably my problem. I think the hair that is right on top of it is probably not the cause of the problem, but it is a bit suspicious that it is right there. I sure hope hair is not that conductive, or with my dog I'm going to have some trouble.
FYI: I found out later that this part was actually a ferrite chip, PC134 is the tiny 0402 package capacitor next to it. Details of the parts and replacements can be found in part 2
I blew it out really good with compressed air can and took a look at it with a magnifying glass. Through the magnifying glass I could see that the solder connection on the right side (in the picture above) was completely cracked and separated from the board. I grabbed it with my tweezers and it came right off the board. Guess I won't need the hot air rework station for this one.
I tried measuring the capacitor and got nothing, looks like it is shorted out - reading at around 1 ohm (well, until I applied too much pressure with my test probe and send it skittering to who knows where). Now the problem is going to be finding the correct value of a replacement capacitor. I don't understand why all my 1206 resistors are labeled with a value, but the capacitors the same size or bigger are rarely labeled at all.
I'm posting a message to Dell support and an electronics/laptop forum or two to see if anyone can help out. I'm also going to look on Ebay to see if I can pickup another motherboard. Even a broken one would be a source for parts (assuming it is not broken in the same way). Even if I cannot get the parts I need from it, there are quite a few other parts that I can use in other designs - including some nice Maxim DC-DC converter controllers and battery charge controllers and of course all of the connectors.
I'll post more details when I replace the capacitor, clean all parts well and do some testing.
See details of the repair in part 2
Thursday, September 3, 2009
Electronics Hobbyist Checklist
Time to document some of the mistakes I have made more than once so I won't ever do them again:
- Mirror the BOTTOM layer of the PCBs before milling them! I just finished a perfectly milled double-sided board. Too bad I forgot to mirror the bottom of the board (and did mirror the top of the board). Unfortunately now all its good for is a reminder not to do that again. From now on, I'm putting some text on the top and bottom of the board layout so I'll always know that the board is mirrored correctly before milling.
- Include the mounting holes in the board layout from the beginning so you don't have to move things later to accommodate them.
- Don't route on the top layer to parts that you cannot solder on the top unless you have plated-thru holes. If you're milling the board, you don't have plated-thru holes.
- Include test points on PCB designs where you need them. This is especially important when using surface mount components that you cannot clip a lead to. I use two .100 spaced holes and loop a spare lead through the holes to provide an easy place to clip a probe.
- Include jumpers in power inputs where you might need to measure current. Not necessary if you include a power switch (or cheap power jumper header)
- No matter how well you checked the solder joints and traces, use a current limiter on the power supply when you first connect the circuit. You MUST keep the magic smoke inside the devices or they will not work.
- Surface mount components = easier layout, more compact boards, and less holes to drill. It takes a little more practice and patience to solder them, but they really do have some benefits to hobbyists too.
- If possible, use a diode on the power input for polarity protection.
Tuesday, April 14, 2009
Electronics Calculator Released
This is not the usual post. Instead of hardware or even firmware, this one is about some electronics related software I recently wrote for my Nokia N810 Internet Tablet.
The N810 is a small touchscreen computer that runs a version of debian linux called Maemo. The hardware itself is very capable, and since I bought mine it has never left my side.
I immediately started using it for many electronic related tasks. I stored my PDF library of datasheets on the device where it is easy to look up a component without leaving the workbench or dragging over a laptop. If I don't already have the datasheet, I fire up the browser and go look it up. No need to write down the part number and walk over to a computer - I just look it up right there.
I also use a fantastic application called Xournal to make quick notes and drawings with the stylus. It is wonderful for quick schematic sketches ( that can later be exported as PDF files ).
I also found myself reaching for the N810 when I needed to do a calculation, but found the available calculators to be clunky for that purpose. I soon started using the many available javascript electronics specific calculators, but that was just a little too slow, and I usually thought there was a better way to do them.
Thus I started to create the Electronics Calculator for Maemo. I wrote it in Python because it is a very nice language that runs well on the N810, and it is considerably easier to develop and test in Python than in a traditional compiled langauge like C or C++. Java does run on the N810 (beta), but it is too resource intensive for me. It does have some major memory limits. Of course, I also wanted to learn Python. Gotta say I like it, but I digress.
The Electronics Calculator installs on the device and runs blazing fast. It is always there for a quick calculation or to figure out which resistor value I have on my prototype board.
Currently the calculator has tabs to calculate:
- Ohms Law calculations: Enter any two of Voltage, Current, Resistance, or Power, and calculate the other two.
- Capacitive Reactance calculations: Enter any two of Capacitance, Frequency, or Reactance, and calulate the other
- Resistor Codes: Select the color bands, Enter the three or four digit SMT resistor code, or the resistance value, and calculate all the rest.
- Capacitor Codes: Enter a capacitance value or 3 digit SMT code and calculate the other.
For details, see: http://electronicscalc.garage.maemo.org/
Oh yeah - its written in Python with the pygtk toolkit, so it will actually run on any platform that has Python, Pygtk, and the GTK+ toolkit. I actually build and test it in Windows. Its not easy to get all the pieces for the environment together, so I am going to see if i can use the py2exe tool to create a windows distribution for all you poor suckers that have not bought one of these excellent devices to run it on.
If you are using Linux, just go to the source repository and grab the current ohms.py file. You probably already have Python and GTK+ installed, so you can just make that one file exceutable and run it.
Sunday, February 1, 2009
Swimming Event and Heat Display
![]() | |
Both of my children are on a summer swim team, so it is pretty normal for me to be at a swim meet a couple of nights a week in the summer. Last summer, while I was at a meet at Pusch Ridge, I noticed a large LED display that showed the current event. That was pretty handy since most of the swim meet involves talking to friends, only to stand up to watch your children swim. That usually involves at paying attention to the current event and the announcer. At this particular meet, I was able to tell what event it was by just glancing at the sign. Naturally I said "I can build that!" and proceeded to start on a design
The one at the Pusch Ridge meet had two digits for showing the event number only. I figured the heat number would also be nice, so I added that to come up with a three digit display, with a permanently lit dash between event (2 digits) and heat (1 digit). I also decided it would be nice to clearly show a "Event" and "Heat" heading above the appropriate digits.
The fact that the display would have be hung around a pool, and thus water, led to the conclusion that it should be battery powered to avoid a shock hazard for the children. A quick calculation of the current draw of five high brightness LED's per segment for three 7 segment digits indicated that those batteries had better be rechargable.
The display may be exposed to the weather (summer is monsoon season in Tucson) meant I wanted a sealed case. The fact that I am a cheapskate led to building the case myself.
I started the design by digging through my junk pile to see what I had to build it with. The first thing I found was some 4511 BCD to seven segment LED driver ICs that I bought before I discovered the wonders of microcontrollers. This seemed like a great time to get rid of those. With three of those, I could forget about segment tables and multiplexing and get a nice bright display while driving them with simple BCD values that would make the microcontroller program a piece of cake.
I also found a PIC16F688, which seemed to have about the right amount of I/O to drive the BCD values and the latch enables on the 4511 with enough left over to allow external control.
I did not have anywhere near enough LED's for the project, which led me to search various suppliers for great deals. I needed 105 LEDs just for the digits (5 per segment x 7 segments x 3 digits), plus more for the backlight on the titles and the dash, so quantity discount didn't seem to be an issue.
After searching all the usual suppliers and googling cheap LED, I finally ended up on EBay where I got 200 5mm water clear high brightness LEDs for $7.98, including S&H (from China).
I also needed to drive my five series LEDs per segment with the raw power supply (nominally 12v) instead of the 5v Vdd that the 4511 and PIC chips got, so each segment required a transistor driver. I choose the 2N4401 because that is what I had the most of lying around, and its specs (Vce=40v and Ic=600ma) are more than enough to handle the job. I bought more from another supplier on EBay (this one in Florida) so I would not run out.
After toying with the idea of serial control or a wifi or bluetooth transciever (and comparing the relative costs of each), I decided on a IR or RF remote control. A bit more searching in the usual places and I was back on EBay bidding on a 4 channel RF receiver module and remote control ($6.60 + 5.00 S&H).
That gave me all I needed to put it together.
Construction:
First I used FreePCB to layout the drill and mill pattern for the front panel. I then used my PCB Milling machine to drill the 5mm holes to mount the LEDs and to cut the outline of the letters "Event" and "Heat" to be backlit. I used FreePCB because it produces files that I could easily use to mill and drill a piece of 1/8" hardboard. In retrospect, it probably would have been easier to print the layout, tape it to the board and drill and mill manually with a hand drill and dremel tool. After cutting it out, I painted the front side of the board flat black, then epoxied the LEDs in place on the back of board. I bent the LED leads so that each segment naturally formed a series connection, which I later soldered together.Next, I again used FreePCB to layout the PCB for the driver circuitry. The layout needed to fit within the available space inside the digits on the back of the display board - that determined the size of the board and the number of boards to use. Given that I needed at least two resistors per segment (one to control the current through the LEDs, and another to set the base current for each of the 2N4401 transistors), that meant 42 resistors. To put it another way, using surface mount components for the resistors would save a lot of board space and mean drilling 84 less holes. Seemed like a no brainer to make this my first board to use surface mount components.
I found that I still needed to break the logic onto two double sided boards to make it all fit. I put two digits (the event driver) on the first 3.25" x 3.25" board with the two 4511 latching seven segment drivers, and the associated transistor drivers. The other board (3.25" x 2.6") contains one digit driver, the microcontroller, the voltage regulator for Vdd, and the connector for the RF receiver module.
Each segment has the same circuitry -- a base current limiting resistor that drives the base of the 2N4401 transistor. The emitter of each transistor is grounded, and the collector is connected to the cathode side of a series of LEDs (5) via a series resistor. The anode side of each LED string connects directly to the positive side of the power supply.
An 8 pin SIP header on each board is used as a bus to relay the control signals between the processor and the drivers. The header contains the four BCD inputs, the two latch enable inputs for the 4511's on board 1, Vdd, and ground.
The bottom side of each board is primarily a ground plane (made a lot of sense because of all the grounded leads on the transistor drivers), with a few "jumpers" to route signals that could not otherwise be placed on the top layer.
I used 24 ga phone wire to connect all the appropriate LED segments to the driver boards (thats all the colorful wire in the photos). By using wire from a 25 pair cable, I was able to color code all of the segments so it was not necessary to trace as many wires while debugging the circuit.
The center dash, and the backlight behind the "Event" and "Heat" headings is hardwired to series current limiting resistors on the driver boards. They are not switched.
I built the case out of 1/4" MDF board, then painted it black and sealed it with several coats of outdoor urethane.
The display panel will screw into an inset in the case, then, when it is all put together and tested with its power supply and charger circuitry, I will use waterproof silcone sealant to glue on a clear plexiglass panel in front of the display panel. That should leave a completely sealed self-contained unit with only a single power connector penetrating the case (on the bottom where gravity will work against any leaks if it rains).
I wrote the software in PIC Assembly. It is pretty simple, detecting the four input channels from the RF unit to control event up, event down, heat up, and heat down. The seven segment latches are loaded with the BCD form of the new value by asserting the shared BCD digit bus and setting the appropriate latch enable for the 4511 chip.
The power supply will be based on rechargable NIMH AA batteries (10 * 1.2 volts = 12V). The batteries used are 2600 maH that should give at least 5 hours of run time at maximum draw. A charger circuit will be built into the battery charger.
To simplify the need to align the double sided boards on my milling machine, I laid out both of the boards at one time, and used the extra 1/2 X 6" space to layout a logic probe circuit (to be described in a later post)
The battery charger/power supply will be described in a later post. I'm in the final testing stages of the prototype design for that now.
![]() |
| From Vince's Electronics Blog |
Friday, November 14, 2008
Project: Function Generator and Frequency Counter

This project was based on an article published in Everyday Practical Electronics magazine for a very flexible high speed combination function generator/frequency counter.
I built it because I was having great difficulty tuning a breadboarded DTMF tone detector circuit with my oscilloscope. I was convinced the problem was the inability to lock the triggering circuit on the correct tone, so they solution was to trigger the scope with a stable continuous frequency. Funny - by the time I built the circuit, I had completely lost interest in the original DTMF detection circuit.
Research into function generators revealed them to be expensive, even used on Ebay, so I decided to build one based on the EPE Magazine article (PIC-Gen July 2000 issue)
I cheated and ordered the PCB from EPE Magazine rather than etching my own (did I mention I really hate etching PCBs?)
The final circuit is identical to that published in the magazine, so I will not detail that except to reference the excellent source article.
My changes relate to the case, layout of the connectors and front panel, and the LCD module I used.
The front panel is arranged differently only because I decided to buy a different case (cost), and that I wanted to add a BNC connector wired to the TTL output to use as an external scope trigger.
The LCD module is different because I simply used the one I had on hand from a previous bargain purchase from my junk box. This required some fairly simple modifications to the assembly code.
As constructed, the circuit provides a fairly stable output from less than 1hz to about 10 Mhz. I say fairly stable, because there is some wobble on the scope display, and the frequency count has a tendency to drift with no load.
It does stabilize a bit under load.
I suspect that most of my stability issues are related to noise from my haphazard unshielded wiring scheme. One of these days I need to make a concerted effort at shielding and routing wires to reduce the jitter.
The hard part for building this circuit was acquiring the parts. MAX038 is an awesome chip, but its pretty hard to find. I don't recall exactly where I found it, but I do remember it was priced in Australian dollars and shipped from Hong-Hong - pretty interesting for a part from a company based in Dallas.
Originally I powered the circuit with a pair of nine volt batteries on the assumption that doing so would reduce problems with 60hz noise from the power line causing instability.
In 2008, after I built my CNC PCB Milling Machine, I machined a custom PCB to create the required split positive and negative supply from a dual 12 VAC wall wart I had in my junk box. I cut the custom connector off the wall wart and soldered the wires directly to the power supply PCB rather than buy and wire up a power supply connector. The circuit is no less stable with the AC power supply than it was on batteries, and its a lot easier to deal with.

The main lesson I learned from this one is to create the front panel art BEFORE soldering all the connectors. I did not do that, and have been too lazy to take it all apart to do a proper front panel. I thought when I built it that I would remember what all the switches did, but a couple years away ruined that concept.
UPDATE 12/29/2010:
As requested in a comment from jman, I have posted the updated source code, listing and hex file to my CNC milling machine Google source repository. It can be accessed to browse at: https://code.google.com/p/cnc-milling-machine/source/browse/#svn%2Ftrunk%2Fpicgen
Project: Kit96 PIC Programmer
My next project after the ring warning device was another kit. This one was for a programmer that was capable of programming the most popular PIC microcontrollers from Microchip, such as the now-obsolete PIC 16F84.
I got interested in the capabilities of microcontrollers from articles in the excellent UK electronics magazine Everyday Practical Electronics. At the time (2001) the electronic edition was available for the ridiculously low price of $9.99 for a year. They also sold back issues on business card CD-ROMs dirt cheap as well. I bought a bunch of back issues and subscribed for several years. It is an excellent magazine. In my opinion, better than any of the American publications, and even now its hard to beat the price for the electronic edition ($18.99).
While it is possible to build simple programmers on a breadboard, I decided I wanted something with some decent software and more flexibility to add new chips. At the time, kit 96 was the best deal. I purchased the kit from Dontronics, and added a few parts (wall wart and ZIF socket) from Jameco.
The construction was soldering on a PCB, and was completely uneventful. The directions were well written and easy to follow and the programmer worked perfectly the first time I tried to use it.
The programmer worked well at the time, but suffers from issues with operating system compatibility with each new version of Windows, and timing issues as processors get faster and faster.
I have since purchased a Pickit 2 USB programmer from Microchip Direct. It is a much better deal now than any of the kits, and has support in the MPLAB development environment that no third party programmer can touch. It even has support for in circuit debugging, and software to function as a logic analyzer or logic level serial port (perfect for combined serial port/programming from a single header - like my soon to be posted Tourette's talking practical joke circuit). I understand the Pickit 3 is now available, but have yet to see any good reason to upgrade (although I certainly would buy that now if I was just getting started)
Anyone want to buy an assembled and tested Kit96 programmer cheap?
Links:
EPE Magazine
Dontronics
Microchip - Manufacturers of PIC microcontrollers
I got interested in the capabilities of microcontrollers from articles in the excellent UK electronics magazine Everyday Practical Electronics. At the time (2001) the electronic edition was available for the ridiculously low price of $9.99 for a year. They also sold back issues on business card CD-ROMs dirt cheap as well. I bought a bunch of back issues and subscribed for several years. It is an excellent magazine. In my opinion, better than any of the American publications, and even now its hard to beat the price for the electronic edition ($18.99).
While it is possible to build simple programmers on a breadboard, I decided I wanted something with some decent software and more flexibility to add new chips. At the time, kit 96 was the best deal. I purchased the kit from Dontronics, and added a few parts (wall wart and ZIF socket) from Jameco.
The construction was soldering on a PCB, and was completely uneventful. The directions were well written and easy to follow and the programmer worked perfectly the first time I tried to use it.
The programmer worked well at the time, but suffers from issues with operating system compatibility with each new version of Windows, and timing issues as processors get faster and faster.
I have since purchased a Pickit 2 USB programmer from Microchip Direct. It is a much better deal now than any of the kits, and has support in the MPLAB development environment that no third party programmer can touch. It even has support for in circuit debugging, and software to function as a logic analyzer or logic level serial port (perfect for combined serial port/programming from a single header - like my soon to be posted Tourette's talking practical joke circuit). I understand the Pickit 3 is now available, but have yet to see any good reason to upgrade (although I certainly would buy that now if I was just getting started)
Anyone want to buy an assembled and tested Kit96 programmer cheap?
Links:
EPE Magazine
Dontronics
Microchip - Manufacturers of PIC microcontrollers
Wednesday, November 5, 2008
Project: Ring Detector
This was the first project that I built from my own design for my own use.Basically its a simple ring detector with a flashing LED and a reset button. It plugs into a basic analog telephone line. When it detects a ring voltage, it starts flashing the LED and keeps flashing it until it is reset by pushing the reset button.
I built this because, at the time, I had a basic analog phone at work with voice mail. I didn't get many voice mail messages, so when I didn't remember to check for messages. This was my solution. When I was away from my desk and the phone rang, the light would flash until I reset it. I would reset it after I checked my voice mail - problem solved.
Version 1
The first version was built in a basic project box with on a pad per hole PCB that was designed specifically for the project box. I purchased this one from Jameco as I did most of my parts back then.
As you can see from the image, I used basically a point to point construction technique on this version. Most of the connections were made using the extra leads from the components, which I soldered to the pads of the other component to which it was connected. I also used copper tape to make some of the connections. This process was fairly easy to do, but did require a bit of planning for the layout of the components. This is the only project I built with this technique, so clearly I did not find it too impressive.
The Top side of this board shows the basic component layout. The two white wires shown were cut from the momentary reset switch. The four pin header with one pin removed was for the power (battery for this model. The two pin header between the four pin header and the two electrolytic caps connects to the LED mounted in the case. The other two pin header on the top left connected to the phone line (RJ11 jack).
The complete unit fit into the project box with a 9V battery provide power. I used this unit successfully for months until the battery ran out and I decide to upgrade.
Version 2
PCB Board Layout
Final Schematic
Board Parts Layout
The final ve
Basically this stuff is a special blue polyester film that you print a PCB pattern on using a laser printer. Then using a household iron, you melt the toner off of the film onto your prepared copper clad board. Then you etch the board using a chemical process. I used Ferric Chloride from the PCB kit I purchased.
The process was pretty easy, and resulted in a pretty good board, but I really dislike chemical etching because the chemicals are pretty nasty to work with and dispose of. Others apparently like it as a process, and it is hard to argue with the ease of use or the quality of the results that can be achieved.
Credit for the ring detect circuit based on the 6N139 optocoupler and 2N3906 transistor goes to the now defunct Home Automator Magazine. The addition of the flashing LED and reset circuit are mine.

Labels:
flash,
led,
optoisolator,
pad per hole,
ring,
telephone
Project: Jameco Capacitance Adapter Kit

Once I bought all those random capacitors in a grab bag (Jameco part 163213 - Schwab's 3lb combination), I needed a way to quickly sort them out into values when some of them did not have any readable values on them (especially the small ceramic ones).
I solved that problem by buying the part #158001 kit for a adapter to measure capacitance on a normal DVM.
The kit included a PCB, and all of the parts needed to build it (except for the case). The kit is produced by Electronic Rainbow as part CA-1. It does its job well. Basically the circuit uses a 74HC132 a schmitt trigger quad two input NAND gate to create a pair of oscillators, and uses the unknown capacitance to alter the duty cycle of the PWM output to the DVM so it shows a different DC voltage proportional to the capacitance. Honestly, I am still not completely sure how it works.
The kit accomplished its purpose well - it gave me a chance to bone up on my soldering skills and build something that helped me sort some parts.
Now this pretty much just sits in a drawer. There really is not much need to measure unknown capacitors outside of my grab bag situation. When you buy them with known values it is not hard to keep track of them, and there is really not much sense in taking the time to desolder small capacitors for scrap boards because they are not that expensive.
Subscribe to:
Posts (Atom)




























