Saturday, February 14, 2015

Transistor Tester

I had ordered a Transistor Tester a while ago on eBay. I have been having trouble reading the markings on some of my diodes and capacitors so I was hoping to find a measurement tool for them. I was shocked to find that kits of the OSS Transistor Tester circuit run around $15 - seems like a no brainer to buy one and try it out. I finally built mine today and I love it.

This particular one can be found by searching ebay for M168 Transistor Tester. You get no instructions in the kit but you can search for Karl-Heinz Kubbeler transistor tester and get instructions there if you like. In short, you plug something in, press the reset button, get some nice info, and then the display will shut off in a couple seconds.

Friday, January 02, 2015

perf version of IR Repeater

Michael did the tedious work of laying out this version of the IR Repeater with VeeCAD on a perf board. I finally got this version built and am excited to be testing it out. Michael has also done the layout for a printed circuit board so I hope to send away for that while the perf board version gets exercised.

The picture above shows the perf board in use. Instead of a micro USB cable I'm using a standard USB B cable for power. The picture below shows the completed perf board version.

I made a lot of mistakes in building it so it took me quite a long time to get this done. Most of the mistakes were due to getting myself confused from flipping the board over differently than I was thinking and soldering things incorrectly. I'm lucky I didn't burn out anything soldering / desoldering over and over. I moved a few things around based on late component changes that I made: PR1 and JP2 are completely different shapes in this than in the original specs I provided. Those changes also caused me to make some mistakes.

This is the underside of the completed board including a major mistake. I had the ground hooked up incorrectly on the RJ45 header: pin 5 instead of pin 4 - oops. I didn't catch this one until I started testing. I didn't hurt anything - the LEDs were just always on so it was pretty easy to spot quickly. Below is the corrected version.

There is one other major mistake that I made that I couldn't correct with desoldering: I was mistaken about what pin 1 on RJ45 was so I have the RJ45 backwards. Pin 1, at least on this SF breakout, maps to brown rather than white-orange. I tried to desolder and flip the breakout from the header but I couldn't get it off. I didn't want to redo the header connections so I ended up making a temporary RJ45 cable that just had all the wires backwards on the one side.
It isn't ideal that I ran wires on both sides of the board but I found that easiest. I really appreciate Michael's work laying this out - its awesome to have a compact version running with near-final connectors and a layout closer to what will be on the printed circuit.

Monday, December 15, 2014

baking IR Repeater

I've adjusted the IR Extender Mark 4 circuit now to fit the parts that I have easily available and to be powered by USB (5V). I want it powered by USB because I have multiple devices in the cabinet with it that have USB connectors on them and a couple of them are always on. Now that I'm happy with the circuit, I have it on a proto board in the cabinet and I've done a final mounting of the IR Receiver.

I had originally intended to put the receiver in the middle of the Wii Sensor Bar but I decided it would still be subtle on its own below the sound bar and much easier to mount there.

Here are the notes about what I've modified in the original Mark 4 circuit:
  • R1 changed to 470R
  • C1 removed
  • Z1 removed
  • Q1 changed to PN2222
  • C3 removed
  • Q2 changed to PN2222
  • R6 changed to 47R
  • R7 changed to 220R
  • LED1 replaced with 2 red LEDs
  • LED3 removed
I just need a single IR LED for my cabinet so that's why I removed LED3. On the other hand, I wanted a red status LED in the cabinet and one in the wall (on the IR Receiver end) to help if I need to do trouble-shooting later.

I'm now going to let things sit and bake for a few days. I've started learning EaglePCB to lay out a board so I can get one printed and get this into a proper case. EaglePCB is going to be a challenge.

Monday, December 08, 2014

IR Repeater Progress

The first prototype is now working for the IR Repeater. I'm using the IR Extender Mark 4 circuit powered by a 9V battery.  There is an extra fat wire connected to the circuit that isn't currently used; it is a USB cable that I'm hoping to use to power this rather than a 9V.  My next step is to build a copy of this on another breadboard and modify it to use only 5V instead of the 9 / 12V most other people use.

Above is the prototype in the cabinet in use.  I'll make it more subtle once I get it powered the way I want.  I intend to run the IR LED under the mat and have the breadboard closer to the hole in the rear of the cabinet.  You can see a blue wire going thru the rear of the cabinet and break into 2 to connect to the breadboard.  One of the bundles from the blue wire goes to the IR Receiver and the other connects to a red LED that can be used for trouble-shooting.  The blue wire is terminated in the wall via a CAT 5 connector.

Above is the panel behind the cabinet.  The wires there run to a panel behind the TV.  Behind the TV is another CAT 5 cable with the IR Receiver and indicator LED on.  You can see it hanging down below the sound bar in the picture below.  Once I'm happy with everything, I'll put the LED in the wall and the IR Receiver on the bottom of the sound bar so none of it will be noticeable.

To make sure that the wiring and connectors were going to work out I build this tester. It is very similar to the one I used in my initial sensor bar and IR Repeater tests but I'm using all of the wires needed for the IR Receiver and indicator LED here. I plugged in the powered side by the cabinet and the LED side behind the TV. The lights came on so I was happy. Note that there are reminants of a different circuit on this breadboard. All that was required for this test was the 9V battery and resistor.

Wednesday, December 03, 2014

Sensor Bar Mod

We need to modify our Wii Sensor Bar for the same reason that we're making an IR Repeater: the Wii is in a cabinet and I want to use ethernet cables for accessories.

I had read that the wires inside were lacquer-coated but I didn't know much more. The wires are stranded and appear to have some nylon running with them. I separated the wires, cut off excess nylon, and then soldered to Cat 5 cable that I put ends on to plug into the wall. I chose to use solid blue (pin 4) to connect to the copper colored wire in the Sensor Bar and solid brown (pin 8) to connect to the red-tinted wire in the Sensor Bar.

The cables are now ready for testing with the Wii. The resistance checks out and there don't appear to be any shorts so I don't expect trouble but I can't test on the Wii until tomorrow.

You pressed a button

The DVD player will actually be in a cabinet with solid wood doors - that is, no IR thru the doors and I'd like to keep the doors closed. The DVD player is used for Netflix, Amazon, etc. so we rarely have to touch it. I'd prefer to be able to point the remote at the TV so I need an IR repeater. It is only about $25 to buy a repeater but I thought it would be an interesting project and I have most of the parts around. Ultimately, I plan to use a 555 with some basic supporting components (IR Extender Mark 4) in the cabinet powered via the USB port from the Wii or DVD player. A wire will have to run thru the wall to the IR receiver which will be right below the TV. I had some doubts that the signal from the IR receiver would go thru such a long run with multiple connectors so I did a couple simple tests before building the Mark 4.

I used the very basic test setup from

When the code from that page is uploaded to the Arduino and then you press a button you see "You pressed a button" on the serial monitor. That worked as expected. It was nice to get validation that the remote was 38kHz - I assumed it would be because that's what I've read that most are these days but nothing is ever simple.
Between the cabinet and the TV, I've run 1 HDMI, 1 Component, and 2 ethernet cables. I don't actually need ethernet at the TV at the moment so I'm using 1 of them for the IR repeater. So there is a Cat 5e run of about 10 feet in the wall, 2 jacks / plugs, and then about 4 feet of cable at each end for connecting to the components.

I was pleased to read, "You pressed a button" in the serial monitor when I used the remote. The receiver appears to be plenty sensitive still as I don't have to be close or pointing the remote at the IR receiver.

I feel like it is safe to move on and build the Mark 4.

Monday, April 29, 2013

added static IP to Raspberry Pi to make it easy to find

I don't want to change the eth0 interface in the RPi to stop using DHCP because I like getting system config from DHCP. I don't want to set up DHCP reservations for my RPi because that's an extra step that doesn't provide any real advantage. To make my RPi easy to find, I've added this section to the end of the /etc/network/interfaces file.
auto eth0:1
iface eth0:1 inet static
With this I get a static IP address of that I know I can always use to find my RPi but I also get the benefit of DHCP on (such as DNS config).

Saturday, December 24, 2011

jslint config in sublime-jslint

I'm new to Sublime Text but I'm quickly becoming a fan. Based on Kelly's recommendation, I installed Sublime Text 2 and Sublime Package Control.

After doing some basic editing I decided to go get a jslint package. I installed sublime-jslint and ran it. Easy peasy but I got warnings because I like 2 space indents instead of 4 in my code and some node-specific stuff.

jslint:mystuff.js:5:12:'require' was used before it was defined.
jslint:mystuff.js:6:3:Expected 'winston' at column 5, not column 3.
jslint:mystuff.js:7:3:Expected 'service' at column 5, not column 3.
jslint:mystuff.js:9:1:'exports' was used before it was defined.
jslint:mystuff.js:10:3:Expected 'use strict' at column 5, not column 3.
jslint:mystuff.js:11:3:Expected 'var' at column 5, not column 3.
jslint:mystuff.js:12:5:Expected 'server' at column 9, not column 5.
jslint:mystuff.js:13:7:Expected 'winston' at column 13, not column 7.

I changed my user settings in the jslint package to add configuration options. The documentation from sublime-jslint had the info on how to configure it but it wasn't totally clear so took me a couple tries to get it right.

Here are the entire contents of my sublime-jslint.sublime-settings file:

"jslint_options": "--indent 2 --node"

Now when I use jslint (by clicking ctrl-j) I get nice results.

mystuff.js lint free!
jslint: ignored 0 errors.