Dead Bug, Revisited

My previous dead bug attempts were just that, dead bugs … although the mounting method was successfull, it was really difficult to get the chip to stay put – the heat from soldering the connections melted the glue and the thing was sliding around.

So, I made up some PCB layouts for an SOT adapter, allowing me to solder the chip properly, and still provide something I can use easily in a breadboard. This is what I came up with:

tps61040 dc-dc converter switch mode power supply boost step-up

Not the cleanest example of my work, I admit to the fact it looks pretty awful. But it does work well. It is just a simple SOT-23-5 transistor pad layout, expanded to 0.100″ pitch pads. To the big pads, I solder the short side of a molex C-Grid pin header, and then solder the IC to its pads. The C-Grid pins plug perfectly into a breadboard. The whole thing is about the size of a nickel.

Ok, so now that I have the IC in a managable package, what does it do? The IC is a Texas Instruments TPS61040 step-up dc-dc converter. You feed it a low voltage (3 to 6v), and it produces a high voltage (3 to 28v). The IC contains almost all the parts of a switch mode power supply, including the switch itself.

switch mode power supply texas instruments tps61040

Add a hand wound inductor, a few caps and a schottky diode, and I have a complete SMPS. The 040 offers a few neat features, including analog and digital dimming support, automatic softstart to limit inrush current, open load detection, and very very low standby / no load currents. For my experiments, I decided to power eight white piranha LEDs at 50mA (the 040 can handle up to 400mA). My power source was two 1.5 volt alkaline batteries, connected in series.

I was able to run the leds for a few hours until my super cheap “Shazam” brand batteries gave out. I’m sure with a proper set of four NiMH batteries, the LEDs would run for a long time.

My next experiment will be to run a string of power leds using this converter… say four 2 watt jupiters (well, at 400mA, I won’t achieve quite 2 watts). I need to get a proper inductor and a larger output capacitor, to handle the much increased load.

Another hair-brained idea!

One of these days, I’ll get around to re-wiring my house, however there are a number of obstacles in the way … the largest being the 2ft of clearance between my crawlspace and my floor joists.

Along with plenty of 20a rated outlets to go around and ethernet glaore, one thing I’d like to have is music in every room, well, nearly every room. I’d especially like to have audio in the kitchen, work shed (attached), bedroom and dining room. The bedroom would be a special case, I’d like to have the audio system, and an additional thin/fat client for full AV usage.

My idea for the audio system revolves around using a linux server. Here’s the basic idea … each room would have a small LCD screen and some buttons (or maybe old pda’s?). So I’ll call that the interface, whatever it ends up being. Each interface will be able to select the source (perhaps four or five source channels, whatever I can get away with, plugging cheap sound cards into my linux box). If the source is digital, i.e. mp3, the interface should be able to pause playback, next track, previous track, random track. The interface would also need to present a pre-programmed list of Internet radio stations (my main source of music, I have a very small cd/mp3 collection). In the case of internet radio, the interface should let me select the previous station, next station, random station, play, pause, etc. When using a live source, cable, tivo, etc, I dont want to mess with an inter-device interface, so, the only option would be mute. For any source, the interface will also provide a local volume control.

MPG321 and the linux kernel modules apparently have support for multiple DSP audio devices, so a rather simple script should allow for a specific input (file or live) to be routed to a specific output. For mixing of sources, that is, two rooms want the same source, I plan to use a series of analog multiplexors, designed for just this application. These simple ICs can be controlled by the server, and connect specific analog ouputs to specific analog inputs. For example, a 8 channel mux arranged as 2×4 will allow a single stereo output to select from a choice of four inputs. So one IC is required for each stereo output, allowing each source channel to select any of the four sound cards as inputs. A similar IC setup would be used to allow the sound cards to share live-output sources (tivo, cable) as inputs, connecting their line-input to any live source available.

I’m not sure about distribution. I could either go with matching transformers, and send line level signals over cable to the room, and use local amplification… or, I could go with central amplification and just use some heavy speaker wire to drive speaker jacks in the rooms. My house isn’t huge, so there wouldn’t be any runs more than 50-70 ft, so inexpensive 14ga speaker wire should serve nicely … I’m not looking for killer sound while I’m stir-frying … just want to be able to hear the tv or shoutcast stream without having to blast my stereo at the opposite end of the house. The advantages I see of central amps, I can build up a big power supply using old computer psu’s, and drive inexpensive car-audio DC amps, one for each source. The server could control the power to the amps, turning off unused sources. Secondly, line level signals are really low voltage… trying to send them over a long run of wire seems to be asking for trouble … unless I use something expensive like RG58 or RG6. Local amplification also means I need to locate an amplifier somewhere in the room, and provide power for it … not that big of deal I suppose.

This project is a long ways off, but its something that keeps crossing my mind, so I figured I should write it down.


On the drawing board

My mental fire has too many irons on it… things are falling off the tracks left and right! So I figured it would be a good idea to write some stuff down, as a note to myself, and perhaps to interest of anyone reading this!

Project: Water Watcher
Problem: My reverse osmosis filter that delivers drinking water has some sort of problem, in that it continously consumes water, even when the production tank is full. My thinking is the auto-shutoff valve has failed. Well, I could get another asv but whats the fun in that. The filter system has a pressure sensor in it, which disables the booster pump (100psi output) when the tank reads full, but the water supply is not controlled. I’ve been manually turning the water supply on and off to the filter, as well as unplugging the pump when the water is turned off. The second, perhaps larger problem is, my filter drains its brine (waste) water out a tube through the side of my house, rather than going down the drain. In the summer, I collect this water and use it for filling watering cans. In the winter, the water likes to freeze in the drain.

Goals: Design and fabricate a microcontroller operated filter management controller. The first goal will be to monitor the outdoor temperature. When the outdoor temp is safely above freezing, enable filter operation. The second goal is to monitor storage tank pressure. When the tank reads low, enable filter operation. This is so easy, I’m not sure why I haven’t started it yet.

Goal number one; using as DS18B20 digital temperature transducer, monitor the outdoor temperature. A simple interrupt driven routine can sample the temperature every N amount of time. If the temperature is above freezing + 5 degrees (to account for any sensor accuracy problems), enable a register in the microcontroller, saying filter operation is allowed. When the temperature is below the set-point, disable filter operation. This should take five or ten lines of code.

Goal number two; using the pressure switch that is already part of my filter, sense the fluid level in the tank. The switch is normally closed, and opens when the storage tank is ‘full’. An interrupt driven routine will sample the state of this switch. When the switch is closed, an input pin on the microcontroller will read low, indicating the tank needs topping-off. The mcu can then set a register enabling operation of the filter.

The microcontroller in its idle loop, can monitor the state of the registers mentioned above, ANDing them together. When both registers are set to enable, the mcu will enable the booster pump and a solenoid valve (sprinkler valve) controlling the water. When either the temperature or pressure registers read disable, the AND will read a zero and filter operation will be suspended. Additional features could include a remote led status display, indicating filter status (temp high/low, pressure high/low, pump and water on/off). Another feature that would be handy is a change filter indicator, which times out every three months, indicating the need to replace the prefilters. I’m not sure how to do this, without including a real time clock, and that doubles the expense of this project. Of course, there are probably simpler means, like counting the oscillations of a 32khz crystal and just waiting for approximately three months worth of time to go by?

Project: Finishing the MAX1668 temperature sensing data logging clock.

I already have the clock and data logging working, but sort of lost interest when it came time to program some data analysis and reporting features, as well as make a PCB for the circuit, so the clock could be installed in an enclosure. So the clock has been sitting under my monitor shelf. Its kinda handy as it is, I use it as a desk clock and local temperature readout.

Goals; Add some menus to review logged data. Daily average temp readout for each channel. Daily and all-time min and max memory for each channel. Temperature trend indicator (rising / falling). Historical data like lowest recorded temp (what date, time and channel), highest recorded temp (date, time, channel).

Project: High end kitchen counter lights.

Goals; The lighting concept works… scaled up, the lights should provide ample light for task lighting. I need to build (or find) a power supply for the lights (~36v, 1a). I also need to start on the controller. Some features I want to have:

Using a capacitive proximity switch (qprox). Touching the fixture should change the state of the lights with light sensing intelligence. If the room is dark and you request the lights to turn on, they ramp up to perhaps 25% output, as a night-light mode. Another touch of the fixture would bring them to 100%. If the room is light and you request a turn on, they would ramp up to 100%. Additionally, if the room goes from light to dark (like the main lights were turned out at night), ramp down to 25% output and remain on for an hour or so, as a night light. If the main lights are off and the fixture is off, should the main lights come on, sense this and automaticly come up, ramping up to 100%. If the room is light, and the fixture is on, touching the fixture shall turn the fixture off. If the room has gone from light to dark and you touch the fixture with-in N minutes, the lights should turn off, after N mintues, if the fixture is still on and another touch is detected, ramp to 100% output.

All that sounds like a lot, but it should easily be handled by a microcontroller and maybe a few dozen lines of code, all those conditions are simple binary logic comparisons.

Well, that was a good start, got a few ideas down – still too many in the ‘ol brain, so there will be a part two shortly!

Welcome Back

Welcome back everyone… or at least, welcome back to myself.

I took the week between Xmas and Newyear off, and caught up on some non-electronics.

I have a few things in the skunk works, not that they’re really secret or anything, but I’m reserving a lot of details until the projects are farther along – hoping to write up some articles rather than just short posts in the blog.

For now, here’s a few pictures:

smps switch mode power supply buck converter step-down hv9910

switch mode power supply … this circuit is a buck converter or step-down regulator … it’s programmed to supply 500mA into a load (constant current regulation). With my load (seen below), I measured about 90% effiency.

warm white nichia jupiter luxdrive moon power led

four warm-white Luxdrive IO Moon leds, two watts each, using Nichia Jupiter leds (click for larger picture)

same leds above, lit up