Current sink and starter’s gun boost converter test

Background failures

I’ve had some problems getting DC power for the audio amp for the starter’s gun project.  I needed maybe 15V to get the output I needed, but didn’t want a battery voltage that high, so looked at boost converters.  I found some little (Chinese) boards for $2.50 on Ebay that took in 1.2V or more and put out what ever you wanted up to 30V or so, and said 4A max.  Should be fine, and I can’t even source the parts for that money.  I ordered some.

Running off one 3.7V 18650 Li-ion cell they put out 15V no problem.  The first surprise was that when I put it all together, the whole thing didn’t work.  Funny noises from the speaker, and the Tiny4313 wouldn’t even boot reliably.  It took a while to figure out I was running afoul of the current limit of the protection PCB in the cell.  (Worked fine with the unprotected 2P bench battery!)

While the design had been for one 18650, in desperation to get a prototype working, I put in 2 cells in series.  Sure enough, now the Tiny booted, no funny noises, and it played sounds, though not quite as loud as I expected.  I looked at the voltage out of the converter with a scope, and during loud sounds it dropped from 15V to ~8V!  WTH?!?  Going thru the doc more carefully, that was 4A max input current, and there are limitations of max output current at various output and input voltages.  Rats.

Very grudgingly, I decided to try a small 12V sealed lead acid battery.  Surely the boost converter will do what I need with that much voltage in.  But this time I’ll actually measure and qualify the boost converter at 12V in / 15V out.  Let’s see – I may need 2A (or a little more?) at 15V, so I need a resistor to provide that load.  Whoa – that’s 30 or 40 watts.  Using a 2W 10Ω resistor – and just at 1.5A – the resistor got really hot before I could even comfortably make measurements.  Sure would be nice if I had that high power adjustable current sink I’ve thought about making from time to time.  And that need brings us up to this yak-shaving project.

The current sink

Electronics

A current sink is basically a big honking transistor with a big honking heat sink, plus some electronics to let you control how much current it will sink.  I should be able to come up CurrentSinkSchematicwith that out of the junk box.  A little googling scored ideas that led to this as the final design:  (Bonus:  I figured out how to add an image to a custom library schematic symbol in Eagle!)

I found an N-channel MOSFET good for max 55V and 29A – sounds fine.  A 0.1Ω current sense resistor under it provides feedback thru an op amp listening to a pot for a reference voltage (and thus current).  I went with using the bench 2S Li-ion battery for the occasional use this device will get, as the spec sheet indicated the MOSFET wouldn’t turn on for many amps without > 3.7V on the gate.  A voltage regulator feeds the reference pot for stability.  The heat sink has a 12V fan, which runs fine (and quietly) on 8V.  A switch, an LED and a couple of resistors (for LED and pot range set) plus some connectors and it should work!

BoardFront1798It looked simple enough that I could get away with perfboard instead of making a PCB.  It took longer than I hoped, but it came out OK.  The lampcord is for the current to be sunk.  There’s a 2-pin 0.1″ male for power in and a 2-pin female for power to the fan.  The 0.1Ω resistor is across the bottom.  Its long left lead HoldingNut1803is to clip a voltmeter to for setting the current (0.1V/A).

The only mildly clever bit was using some gaffer’s tape to hold the nut in place while assembling it to the heat sink.  Worked well and pulled out easily.  I had to grind one side of the nut down so the hole would line up.

Heat sink

I’ve never really done any proper thermal management design, so the heat sink was new territory.  Fortunately, Dave has a simple intro to heat sink basics on EEVblog that got me started.  Thermal resistance of a heat sink in °C/watt makes perfectly good sense.  But who knows what the TR is of all the random stuff in the junk heat sink box?

I looked around in Digikey to get some ballpark numbers.  The heat sinks there ranged over 3 orders of magnitude – from 0.1 to 100°C/W.  Reasonably enough, the 100°C/W jobs were tiny fins you could glue to a DIP, and the ones at the other end were massive CPU coolers with fans and heat pipes.  The one Dave used was ~5°C/W with no fan.  If I could get to maybe 2°C/W with a fan, the 60C increase at 30W would hit ~85C – well within the operating temp of the transistor.  Might work!

FirstHeatSink1821To be conservative, I grabbed the biggest sink I could find, and peeled the old Pentium off the bottom.  Unfortunately, since it was designed for the large flat top of the processor, there were no holes in it to mount the TO-220 MOSFET.  Drilling thru the fins for the nut or screw head would be a pretty ugly task.  Maybe if I had a 1/2″ end mill – but I don’t.  I suppose there might be one at the space, but that has problems of its own.  Bummer.

WholeThing1808The next biggest was much smaller, but had fins that allowed drilling a mounting hole – sold!  Here it is attached to the finished device.  (The MOSFET is on the underside of the perfboard.)

On the to-do list is putting a temperature probe on the transistor and characterizing time/temperature/power curves with and without the fan.  Sure would be nice if I had that datalogger I’ve been thinking about making…

“Opportunities for improvement”

While the current sink was a junk box special, I did try to think it through.  For example, I wanted to be able to run with or without the fan.  But did I really need another switch?  Naw – the 2 pin connector would be fine.  Did it really need an LED?  Yeah, I could imagine accidentally leaving it on.  And I dry fitted the parts to make sure it would all go together.  But I still had 2 surprises – one electrical and one mechanical.

The main consideration in something like this is handling the power – and getting rid of the attendant heat.  I put some moderate effort into the heat sink to do that.  If it can dump 30 W or more, it should be fine.  The MOSFET is good for 29A, so current isn’t a problem.

Well, not for the transistor.  But what about that 0.1Ω current feedback resistor?  I’d like to be able to do 10 or 20 A.  But wait – at 10A that resistor will dissipate 10W!  With the 2W resistor I used, it’s only good for ~1.5A.  Boo.  I ordered some 20W 0.1Ω resistors to upgrade it some day.  0.1Ω resistors don’t usually manage to get very hot, but I guess this isn’t a usual application!

The mechanical issue was pretty bad, and I really should have seen it coming.  The only mechanical connection between the heat sink and the perf board is the MOSFET – or more accurately the 3 legs of the MOSFET’s TO-220 case.  To allow for some air flow past the transistor, it’s 1/4″ off the board – with only those spindly legs in between.  The pot – which is manipulated a lot – is screwed to the heat sink – so that’s not a problem.  But the power switch and the connector for the battery are on the perfboard.  And every time I touch either one, the board woggles around dangerously.

There’s a nice chunk of aluminum very near by, and I could drill and tap a hole for a screw.  But I don’t have much real estate left on the board, and if I used a plastic spacer I’m not sure how it would do with a hot heat sink.  I’m sure I’ll come up with something, but MechanicalSupport1824Bcatching it earlier would have been good.

Update (next day):  OK, this is crude, but it keeps the board a lot more stable, particularly when I operate the switch.  Good enough.

Back to the task at hand

BoostConverter1817Now to take a closer look at the little boost converter.  I don’t know how it works, but I wonder if a larger cap on the output would help keep the voltage from drooping?  Hmm – looking at the board, the larger cap in on the input.  Is that just another student error?  These things are usually exactly from the example schematic in the datasheet.  Let’s see…BoostDiag

Gee – it shows a 220μF on the output – and the board has a 220 on the input.  Pretty suspicious.

Ooh – a shiny thing to distract me!

Looking at the schematic, I realized I had no idea how this thing  worked.  OK – output cap, voltage divider on the output for feedback, some kind of enable, yeah, yeah.  And all the current that goes to the output goes thru the inductor.  Oh – except for what comes from that “SW” pin.  What does that do?  <checks block diagram in datasheet>

BoostSwPinHmm  – nuthin’ comes out of that pin.  All it has is a MOSFET to ground.  So all it does is … SHORT OUT THE INPUT AND OUTPUT TO GROUND!  WTH?!?  Oh, that’s what the diode is for:  it doesn’t short out the output.  But it still shorts the input to ground!  OK – thru the inductor, but still…

<light slowly comes on>  OK, as soon as the switch comes on (connects to ground), the whole input voltage is impressed across the inductor.  There’s no current spike – since the inductor “doesn’t want the current to change”.  But as the current slowly builds, it’s storing energy in the inductor.  When the switch opens, the current thru the inductor would drop, but there’s a big inductive spike as the inductor keeps the current flowing.  Where does it go?  (Thru the diode and) into the output cap!  Aha!

So what does that inductor-driven ripple look like?  And is it better/smaller with more capacitance across the output?  <hooks output to the new current sink and puts scope across the boost converter output>

BoostOutputCapsHere’s the output voltage (AC coupled, 20mV/div, 1μs/div) at 0.5A stock (left) and with another 100μF across the output.  <scratches head>  So maybe with more C there’s lower impedance to the high frequency component of the inductive spike, and we see it as a leading spike on output voltage?  I’m really not sure how it’s all supposed to work, but there’s a gut reaction that says those near-square waves from the stock config indicate that the inductor and stock cap are about ideally matched, despite the 220μF value in the datasheet example.

I suspect the tilt in the stock picture is the cap being discharged at constant current.  Let’s see:  Stackexchange says discharging a cap at constant current gives a rate of voltage change of I/C v/sec.  That’s 0.5A/100μF=5V/ms, or 5mV/μs.  Eyeballing the 2 slopes of the waveform (bottom is steeper), it’s maybe 0.25div vertical per div horizontal.  At 20mV/div, that’s 5mV; horiz is 1μs/div; so that’s about 5mV/μs!

SlopesHmm – so if I change the current load, the slope should change.  <goes back to bench>  Well that was interesting.  Here’s the output ripple at 100mA and 800mA.  Starts with the bottom flat and the top tilted, ends the other way (plus greater overall amplitude).  Slopes were the same around 300mA.  I have no idea what’s happening.

And then there’s the question of why the datasheet shows a 33μH inductor and the one on the board is marked 330…  Update:  Duh.  33*10^0.  Thanks, Michael!

Back to work

So why were we here again?  Oh yeah – does additional output cap make less droop?  And the original question:  how much current can the booster put out at 12V in/15V out?  Looking at the output voltage on the scope (DC coupled) when it’s dropped down to maybe 12V, touching an extra 100μF across the output does bump the output up by maybe 0.1V – not enough to do any good.

The output voltage really hits a wall as current increases above about 1A.  There are significant thermal effects in the booster, so it’s hard to get good measurements.  Output is still 15V at 1A, but by 1.2 or 1.3A output is down to ~13V.  By 1.5A it’s below 11V.  That’s not great news.  One amp is 15W DC in to my audio amp, and the amp isn’t 100% efficient.  I’m afraid that makes a max output of 10 or 12W – less than I’d hoped for.  But now I know.  Let’s see if it’s loud enough.

So the actual testing that started the current sink project was almost trivial once I had the tool.  But making the tool was fun.

Posted in Miscellaneous, Rf starter's gun | Tagged , , , | 4 Comments

Tiny85 dev/target boards

NewBoards1750Just a quickie, but it seems to delight me.  I finally got around to making up a little bunch of generic Tiny85 boards so I can knock out some simple projects.  They’re a lot like the I2C slave boards for the dollhouse, but have all the pins brought out and have a 6-pin ICSP header so programming is easy.  I laid out the board several months ago, but hadn’t gotten around to making any.

Of course, the first one didn’t work.  I’m pretty good about putting a mark on the PCB for Pin 1 on ICs and connectors, but I missed it for the Tiny on this board.  (It’s fixed now :)  No problem – the board is so simple I can reverse engineer it visually.  Let’s see – I always put a pullup on the RESET pin, and there are only two 1206 pad pairs, and that one is a jumper, so the pullup must be here – and that goes to the Vcc pin, which is pin 8, so the chip must go this way.  Done!  I put all the SMT parts down and reflowed it – and it looked about perfect.  A couple of minutes to hand solder the header, and it was time to test.

But it didn’t even get as far as running avrdude for a signature check.  As soon as I plugged it into the Arduino ISP, all the lights on the Arduino went out.  I held it to my lip, and the Tiny was fairly warm.  Not good.  Then I proceeded to make myself crazy trying to more carefully reverse engineer it visually.  Was the header layout backwards so the pins came out the back of the board?  Did I actually lay out that nice big ground pad wrong?

When I finally looked up the original Eagle layout files (like I should have in the first place!) it became frustratingly clear:  I didn’t put a pullup on RESET (it’s not really needed) – and those pads are for a cap across +5/Gnd, not a resistor!  And sure enough, my reverse engineering based on the non-existent pullup led me to put the Tiny in backwards!  Rats.

I made up another board (correctly, this time), and it worked first try.  Same for the next one, and the same for another set of 3 I reflowed all together.  So I had 5 working boards plus the bad one (now with an X on the back, since they all look very similar) as a continuous reminder of my sloppiness.  Guess I better fix it.  (The picture was taken before the fix.  Can you find the one with the Pin 1 dimple opposite all the others?)

Hmm – it really should just be a 5 minute job with the hot air station.  But did I fry the chip?  (Fires up the hot air.)  Eight minutes later, reusing the original Tiny, I had another working board!  To reward the board for surviving being powered up with the chip in backwards, I even replaced the wimpy green LED with a nice bright red one.  Now I not only have 6 boards at the ready, but no longer have the reminder dud staring at me.  (And I got to wipe that big X off the back!)

Applications

What will they be used for?  One of the first applications will be a beeper to remind me the hot melt glue gun is plugged in.  When I need it I plug it in and, having better things to do than watch the glue melt, walk away.  I usually come back a few minutes later to use it.  But sometimes it’s an hour.  And once it a while it’s many hours.  Ouch.  So one of the Tinys will wait until the gun is hot (open loop timing), and sound a piezo buzzer once.  A minute later, 2 beeps, then 3, etc.  That should work well.  (When I get around to making it.)

Another application will be making the house stereo amp more robust.  The dumb Sherwood RX-4109 that lives in the basement (always on) and drives speakers in the kitchen, living room and bedroom has a ‘soft’ power switch that defaults to OFF after a power cycle.  Since the music it provides is also my alarm clock, the priority of a fix jumped much higher on the list after I overslept the morning after a brief power outage shut it off.

I’ll decode the Power ON sequence from the Sherwood’s IR remote, program a Tiny to reproduce that signal to drive an IR LED taped to the front of the amp, and have the music startup script tell the Tiny to send Power On to the amplifier every time some music starts.  Overkill, but at least it should always come back after a power failure.  Since the music script is on the main PC, I’ll have to invent a channel to send a message to the home automation system which can in turn actually operate the IR sender Tiny.  Several steps, but it will be nice to not have the (upstairs) music fail after a power failure.

Another possible application will be at least doing initial datalogging to see how much power I can get from a small solar panel in a tree where I really want to put a camera looking at the house.  Solar (or possibly wind?) is the only way I can power it to take a picture every few minutes and radio it back to the house.  Doing this initial energy monitoring/logging has been on the list for oh, maybe 5 years.  Maybe these Tinys will let me make it happen.

But just having that little stash of Tinys there – each one eagerly awaiting its chance to serve – gives me a little delight each time I see it.

Posted in Tiny 85 stuff | Tagged | 2 Comments

Quickie 1-cell discharger

Wow – I wasn’t planning to make this.  But as I fantasized about just building a simple discharger while struggling with 1-cell problem on the big 18 cell discharge tester, it sounded too simple to resist.  I could get to a couple of analog inputs and ground with a mini-shield just on one side of an InUse1681Arduino.  (And I seem to like mini-shields.)  And a MOSFET instead of a relay would make it simpler and more robust.  It sounded so simple I just made it up on perfboard rather than laying out a PCB.

The extra juicy bit of simple was realizing that the Drain-Source resistance Rds was pretty constant, and for this MOSFET was in the neighborhood of what I needed for a current sense resistor.  If I put the MOSFET at ground and measured the voltage on the Drain, I’d have the current reading – for free!  And it doesn’t take a fancy 1% 0.1Ω resistor – as long as it’s a fairly constant value, a calibration constant in the code will deal with it.

LittleDischargerIt uses screw terminals to connect an external load resistor like the big discharger, but stayed very simple with just a single pair of clip leads for the single cell.  An LED on the Gate (really on the Arduino pin driving the Gate) to show when it’s discharging is nice.  The 1.1V internal reference on an Arduino (328P) is fine for the current sense, and just took tweaking a voltage divider to make a good fit for the voltage sensor.  Setting up for ~5V full scale gives me very good resolution for either 1.2 or 3.6V cells fresh off the charger.  By putting in an extra pin, it’s pretty unambiguous how it aligns with the Arduino header pins.  (OK, unambiguous on a Duemilanove, though not on a Mega.)

The code was pretty simple, and as it matured, I was able to steal some bits from the other discharger code.  The one open issue at the moment is to verify whether Rds is constant enough to treat as a constant for the current sense.  I guess worst case I can code up a piecewise fit for it.  (Done – see update.)  But the device is booked solid for a while testing some AA NiMH cells, so I can’t even get it to the bench for the calibration/linearity test.

Ever infected with the “Ooh – and with just a little change I could make it do something even cooler…!” bug, I thought about making up a PCB and having it as a giveaway tool for a class on battery tools and technology.  Like I need one more prep-for-a-class project on the list.  But if I were to do that, the choice of MOSFET becomes important.  I even ordered some nice ones with Rds of 20 milliohms or some such, but they’re not ideal for the Rds-as-a-current-sense-resistor bit.  It’s kind of interesting to need to select a part with resistance not too high but not too low, either!

PerfboardJoy1677Anyway, I’m surprised with how pleased I am with this little guy.  The fact that I can just throw it on an Arduino, and that I didn’t even have to make up a PCB means I’m not even sad it’s not Tiny85-based.  The fact that it’s completely junk box parts makes me smile, too.  This little bit of perfboard’s a winner!

Update 6/2/14: Here are the results of a current calibration on the bench (all in mA):

Actual    20   50  100  200  300  400  500  600  750  1000  2000
Reported  14   45   96  197  308  420  545  675  840  1200   1700
Corrected      55  100  189  288  387  498  612  739  1015

Between those observations and the datasheet, it looks like at Vgs of say 4.8V we’re at the edge of linearity of Rds at an amp.  The transistor got quite hot at 2A, so it looks like the practical upper limit is 1A.  The current calibration constant is 1.67mV/count, so we’re at the ragged edge of digitization problems at say 20 mA.  Let’s say a practical lower limit is 50 mA (and rocky at that).

CurrentCalibrationTaking the A/D count as Reported/1.67 and doing en embarrassing amount of manual cut and try in Excel, a final formula with corrections (A/D count=A):  (A+10)*1.48-(IF(A>400)then((A-400)*0.2); else 0)) gives a pretty good fit over the range of interest.  (Apologies for the Excel expression.)  Red is ideal, green is corrected.  Guess I better code that in (and test it again :( ).  Done.

Selection of a new MOSFET for building multiple units would like:

  • Max continuous Ids > 2A, Vds > 5V (trivial)
  • Rds(on) ~0.5 ohms  (requires finding suitable part)
  • Vgs of 4.5V fully saturates at 2A  (requires finding suitable part)

OK, now I’m pretty comfortable with the current calibration, know the device limits and what next steps might be.  I’m still really pleased with this little guy.  And it’s done!

Posted in Little Discharger | Tagged , , , , | Leave a comment

Battery discharger problem with 1 cell

UnderTest2The big battery discharger works well (or so I thought) except for the case of testing single 1.xV cells.  It just doesn’t work – reporting 0V often.  There’s even a comment in the code dated 2/15/11 (right under the V1.3 update comments) that it doesn’t work with 1.5V cells.  The comment was that the A/D returned 0 counts, and that it worked with 2 or more cells, and that I hadn’t looked for the threshold.

I had a bunch of NiMH cells I wanted to test and had forgotten about this problem.  After going thru 3 battery holders, I started to make better observations, and rediscovered this problem.  There are various debug prints commented out in the code, so it looked like it wouldn’t be too hard to figure out what was going on.  (Wrong.)

Setup1664To get a handle on what voltage the problem happened at, I hooked a 2.5K pot across my good bench Li-ion battery for a stable adjustable voltage source.  I put a good DVM across the main discharge leads (clear zipcord, R/B clips).  The discharger code displays the voltage across the main leads while waiting for a CR to start the test.  That should be a good test setup.

With the pot in the middle, the voltage on the DVM bounced all over the place – by several tenths of of volt.  After a bunch of head scratching and other test configurations – including using the (AC) bench scope while powering the Arduino with the 1xAA 5V supply, I’m fairly confident in the following observations:

  • There is a substantial – tenths of a volt or maybe much more – noise signal on the main discharge leads.  I think I saw it as a more or less a symmetrical sawtooth.
  • As I watched the “waiting” output voltage indication and played with the pot, there seemed to be a threshold around 2.1V.  I’d occasionally see values in the range 0<V<2.1, but never stable.  But that 2.1V indication was NOT at a pot slider value of 2.1V!  There’s something VERY wonky about the voltage indications at low values.  A few points: (Actual=pot set with leads disconnected, Reported = leads connected)
Actual V    0.06  0.11  0.65  1.0   1.4   1.5   4.0
Reported V  2.1   2.5   3.5   3.6   3.75  3.75  3.98
  • With the pot set for 1.40V (measured with the discharger leads disconnected), with leads connected, the DVM bounced between 1.41 and 1.82 (watching for a minute or so).
  • Hmm – that’s not consistent with the misbehavior:  With a AA NiMH cell fairly fresh off the charger and measuring 1.38V, when I connected the main leads to it, the reported voltage dropped instantly and consistently to 0.  With the leads floating, they showed ~4.1V.  The source impedance of whatever’s on those main leads is very unclear.
  • Scary question:  Does this mean all the tests I’ve done for the past few years (on higher voltage batteries) have produced inaccurate results?
  • HackedBoard1673For reference, here’s the board as it has been in service for the past couple of years.  From what I can see/reverse engineer, the voltage out of the mux (from whichever input lead) goes thru a 12K/1K voltage divider (0.077 of orig) to Arduino A/D input A0 which is referenced to an external (on the discharger shield) 1.88V zener (sourced from 5V in from the USB/serial connection).  That would give a theoretical max voltage of 24.4V for 1024 A/D counts.  (Reasonable for nominal 18V Nicads, which were the original max target.)
  • Continuing the theory, that would give a formula of (A/D counts) * (24.4/1024=.024) to get actual voltage.  The code has a comment with that as the “expected” value and a #define of 0.0263 as the working calibration constant.  For a 1 V input that would give around 38 counts on the A/D.  Not a lot, but unless the A/D isn’t working well, it shouldn’t give any weird threshold effects.

I’ve spent way more time than I should on what I thought would be a fairly quick fix, and am grudgingly pulling the plug for now.

Next steps

  • NextTest3Put a bench supply on the 1K/12K junction and watch the indicated “waiting” voltage compared to actual.  Yeah, I’m driving one side of the mux with that, but it’s thru 12K.  Hmm – seems to me the specs of the mux chip say no inputs > some V+ voltage.  I think that means I need to put at least as high voltage on the main discharge pins (which go to that V+ on the mux) as I’ll put on the mentioned test point.  (That jives with a vague recollection of strong requirement that the outer ends of a battery MUST be connected before any of the per-cell leads.)  Maybe a red LED to make that V+ about 1.7V higher than the test point?  That ought to do it.  Heck, even a Schottky should do it.  Next step after that depends on what we see with this (if I ever get time to do it).  But at least these notes will help me remember what I saw today.

There was a lot of daydream level consideration given to making up an even more “appliance” discharger, maybe for just one cell, probably with a Tiny85.  By using a 1:1 voltage divider with 1% resistors (maybe 4.7K?) and the internal 2.56V band gap voltage reference and 5V power from the fake FTDI cable, it should handle a fresh 4.2V lithium cell and give good resolution.  I even ordered some IRLB8721 MOSFETs with ~20milliohm RDS(on) for the discharge switch.  (Thanks to Adafruit for choosing that part!)  They’ll handle several amps, so keeping the external load resistor approach, it would handle most everything I’d be likely to throw at it.  If I just had time to build it…

A little later:  Oops – on 328P it’s a 1.1V reference.  Rats.

Posted in Discharge tester - PCB build | Tagged | Leave a comment

Working with recycled HDPE

This is just draft stuff – sort of so I might remember things I did.  Needs actual rewrite, pictures, more meat.  But at least I have a place to capture some efforts.

It really seems like scrap HDPE – like from milkbottles – should be a wonderful source of material for making stuff – if I could figure out how to work with it.

Some time ago I tried to melt sheets of HDPE from milk bottles into a sheet maybe 6″ square.  A few layers between sheets of silicone parchment on a cookie sheet with a flat piece of metal on top and an anvil to smush it in the over at what – 250? – for half an hour or something.  Results were poor – lots  of voids, poor adhesion.  Needs more pressure (force/in²) to stick.  Or maybe more active smushing/working.  I really thought I took pics of that, too, but can’t find.  Or maybe I just planned to take them.  I’ve seen several videos of people making flat stock from scrap, but most cut it up really fine before melting.  Seems like a lot of work.

Inspired by maybe a youtube of an Indian kid repairing plastic buckets on the street with a torch, scrap plastic and screen?paper clips?, I thought I should try some repairs.  Other videos showed others doing HDPE repairs, like on canoes and water tanks using similar methods.  There’s some skill to it that will come with exposure and familiarity with the materials.

Did a repair of a broken Rubbermaid laundry basket handle with hot air station.  Came out OK.  Some hardware cloth for reinforcement one place, wire in another.  Used milk bottle plastic for welding rod.  Not ideal – seems to have higher working temp and less soft than original.  It was easy to melt thru original, and when I did it was almost liquid.  The Milk Bottle HDPE (MBH) didn’t get that soft.  Made a smoothing tool and a poking tool – both quite useful.  I think cooling/wetting the smoother in water helped.  Thought I took pics, but can’t find.

Did a second almost identical repair with almost identical results.  Again used sheet patches of MBH over the very rough top of the handle.  Made it considerably smoother.  Took several minutes with a new Xacto knife to make it feel fairly nice.  Sanding would have made it smoother more easily, but not left a polished surface.  Maybe I could have flame polished it afterwards?  Meaning hot air probably rather than flame – but should try it with a torch as well.  If that worked, it would be faster and better.

Still looking for softer welding rod, I tried strips of plastic grocery bags.  Finally made a strip maybe 1″ wide, twisted quite tightly, then sort of fused while twisted with hot air.  Didn’t make nearly as nice a rod as I hoped – didn’t stick together well.  Anyway, it didn’t melt any better than the MBH, so nice try but no cigar.  I have an old dish drainer I should try to use for scrap.

I’d really like some softer stuff for welding rods, especially for those laundry baskets.  Maybe Rubbermaid stuff from Goodwill?

I’m considering fusing some MBH together for a bottom bracket for the 1/2″ PVC AA battery trickle charger tube.  Shapelock would work fine, but it’s infinitely more expensive than free MBH.  Actually, what I’m thinking of is using MBH sort of like Shapelock but at higher and harder to manage temps.  Yeah, I could make the whole bracket from wire, but plastic would be nicer.  Maybe just acrylic.  Or maybe shut up Jim, and work on what you’re supposed to be doing.

Posted in HDPE | Tagged , , , | 2 Comments

Protected: RF Starter’s gun project status

This content is password protected. To view it please enter your password below:

Posted in Rf starter's gun | Enter your password to view comments.

Car has music again!

It’s always nice when a little DIY work can save you $30,000.

The 6 CD changer in the Prius wouldn’t play the other day.  I noticed a CD partially ejected and when I couldn’t get the unit to eject it, pulled it out by hand.  It has never played or loaded or ejected a CD since, showing errors including “seek error”.   (The radio still works fine).  A little googling revealed that a jammed changer seems to be a common failure in the Prius, and that having Toyota replace it might run $1000.  The car has just about 100,000 miles, so I took it as a sign that it was about time for a new car.

I don’t know for sure what happened, but I suspect the “eject” DiscJammer1646button was hit accidentally, and the supports for the new GPS prevented the disc from ejecting fully.  Thwarted by the failed eject, the mechanism damaged itself and got stuck in an unrecoverable position.  But that’s just a guess.

I’ve long wanted a better aux input than the cassette tape spoof, but hadn’t found a cheap way to do it.  Google showed that others suffering from the jammed changer syndrome elected to add a third party input adapter, usually including an iPod interface that was actually integrated into the car’s audio controls/display.  I’ve never owned anything Apple, so that was uninteresting, but integration with the MultiFunction Display and steering wheel controls was very attractive.  With no music in the car, the $100 price tag for an adapter suddenly seemed less of a show stopper.

I exchanged a couple of emails with GTA with questions about the unit.  They were very prompt and provided completely helpful answers, so I would happily recommend them to anyone else considering such a purchase.  I ordered a GTA Car Kits adapter ($115), a beat up 4GB iPod Nano ($22) and cable ($1.45!) from Ebay and a few days later had new toys in the mailbox.  A youtube video from GTA showed how to tear the dash apart to get the old radio out.  Doable, but a big production.  Thankfully, they also provided a “shortcut” video that provided just enough access to get your hand in to plug in the cable by pulling only the glove box (trivial), the right center vent panel (no tools) and a wiring distribution block (one 10mm bolt).  Given those choices, I decided not to even bother trying to (remove and!) fix the changer.  The 3 CDs still in it will go with the dead car to the crusher.

Toyota_new_short - Copycanbus2 - CopyThe one 12 pin connector from the GTA adapter plugged into an open connector in the back of the changer (despite the fact that they sent a Y cable for those connectors).  Apparently the nav system is connected similarly.  I think the TX+/- are data for a CAN bus.  That discovery led to a rabbit hole of reading about CAN bus info and hacks.  There may be multiple such busses in the Prius, but an interesting one is accessible through the ODB-II connector.  Hey – I bet I could get a $12 ODB-II USB or bluetooth adapter and look at all kinds of stuff going around the car network – maybe even the text of song titles from the iPod!  And I’d been thinking about getting a cheap ODB-II tool just so I’d have it if I needed it for diagnostics.  But in a rare moment of restraint, I listened to the little voice that said “Let it go, Jim!”  I really don’t need more hardware to add yet another project to the list.

AdapterMounted1624RubberBacking1613Back to the task at hand, I decided to mount the GTA unit to the wiring distribution block.  Some inner tube rubber should keep it from slipping around.  The connectors for the iPod cable and a 3.5mm aux input jack were still accessible by just dropping the glove box.  Looks fine.

Grommet1633While the main glove box is always full of stuff, the top compartment is quite underused, and looked like a good location for the iPod.  Some closed-cell foam made a reasonable grommet for the cable as it exits a 1/2″ hole drilled in the side of the compartment.  Though not visible here, I did notch the corners to make it slightly more grommet-shaped and help it stay in place.

A gracious loan of a 30 pin Apple cable from Mike M let me start playing with the iPod a few days before the cable I ordered came.  Putting music on the iPod was an ordeal, though mostly of my own making.  In trying to use good old Winamp playlists with it, I formatted the flash, making it unusable with the GTA adapter.  Due to a parallel project repairing a square dance recorder, at one point the iPod had a Rockbox firmware directory on it.  Oops.  ITunes was unable to “restore” the iPod firmware despite several attempts.  Fortunately by installing iTunes on another computer I was able to get the iPod “restored” so it would once again work with the GTA adapter.  Of course that meant that I’d have to use iTunes to put music on it.

While I eventually made peace with iTunes, I swore at it a lot in the beginning.  I tried to create a login, but when it required a credit card, I gave up.  It said I could just drag and drop .m3u playlists in, but they came in empty.  I got some malware while installing a tool to convert .m3u playlists to Apple (that didn’t even work).  I eventually found a forum post saying .m3u playlists would work, but only if they had full paths.  After globally prepending “I:” to the file pointers beginning with just “\mp3\playlists…” the playlists imported to iTunes OK – and brought all the associated music files with them!  There was a bunch of time spent deciding on and cutting down playlists to limit the music to about 45 hours to fit the 4GB flash, but that wasn’t iTunes’ fault.  I’m still not comfortable with iTunes, but it got the job done.

NewCD1626With the iPod plugged in, sure enough it showed up as CD Changer 2!  Of course the original non-functional one still showed up (as CD1), but I could skip over it with the steering wheel Mode button (but only that way!).  Disc 1 shows up as “Hybrid”, and might play the audio from either iPod or 3.5mm jack (or both?), but discs 2-6 are Playlist 1 – 5.  The 6th playlist shows up in some places as “Disc 7″, but there’s no extension of the Disc 1-6 display.  While I’d told the iPod to “Shuffle 1 Playlist”, each playlist seems to play in order unless I touch the Disc Rand button.  Not a big deal.  And when I touch Title, another screen shows the actual track title!  I never found a way to name the playlists, though.

FinalHome1643Here’s the iPod in its final bubble-wrapped home.  It’s completely functional, sounds great, and is exactly the hands-off installation I’d hoped for.  And now that I have music again, it saved me from having to buy a new car!

 

Posted in Miscellaneous | Leave a comment

But I marked it so that wouldn’t happen!

MarkedConnectors1595Yeah, I use unpolarized connectors.  Good old 0.1″ headers are cheap, small, plentiful, and I’m pretty comfortable using them.  For the power/I2C bus in the dollhouse, they were an obvious choice.  But because they’re unpolarized (OK, unless you make them considerably bigger by adding a dummy pin and a plug) I’ve been extremely careful to mark every connector I make with whiteout: White sides go together.  I’ve even usually marked the +5V  pin as an extra caution  (though white-to-white is sufficient.)  But Murphy still managed to bite me.  Repeatedly.

Troubleshooting time

Something screwy is happening on the I2C bus in the Workshop 88 dollhouse. It sorta works, but especially the light sensors trigger erratically. It needs to be a lot more solid before we can claim it “just works”. Time for some troubleshooting.  Two obvious places to look are for electrically invalid signals on the bus and logically invalid messages between the nodes.

To make sure the electrical signals are good first, I wanted to look at them with a scope, but connecting grounds between the scope and the PC USB connection might introduce some noise.  So with the scope’s ground not connected, I looked at the DH ground with the scope probe to see.  There was what looked like a significant data signal.  Whatever’s going on, connecting those grounds isn’t a good idea.  (Bite #1.)

XprotolabScope1598OK – I’ve got this cute little ($20!) dual trace Xprotolab USB scope.  If I use that with a laptop running on battery, the grounds are completely isolated.  Surely that will give me good results.  The laptop’s battery isn’t great, but it should last long enough to make some observations.

Since I’d be connecting to the DH I2C bus repeatedly, I made up a nice little adapter with rings for scope probes or clip leads on a bit of perfboard and a “standard” 4 pin header to plug into the bus.  I was very careful to check and BreakoutAngle1585double check the pinout to mark the correct side white, and did a further step of independently figuring which the +5V pin was and then comparing that to a known working connector.  Looks good.  Fired up the DH so there would be continuous clocks and data, connected Xprotolab ground and CH1/CH2 to SDA/SCL and looked at the scope display on the laptop.

WTH?  (Bite #2.)  The signal on both channels is almost exactly the same – a pretty clean I2C data line.  (The clock line would look different, with regular clocks.)  But that’s impossible!  I reconnected just one scope channel first to SDA, then SCL.  Both were the same.  I did various combinations and always got crazy results.  Sometimes the signals would even be upside down (going negative from ground).  I’d had an arcane problem with that little scope before (trying to show Lissajous patterns in X-Y mode for the Glen Ellyn Library STEAM event).  Was it being weird yet again?  My head hurt and I gave up.

A little yak shaving…

I did take a little break to integrate the nice immediate I2C command sketch i2crepl from the I2C package I was using into the DH master code.  That gave me a tool to exercise  individual input and output nodes.  Very helpful for a confused DH with sensors triggering randomly.  But doesn’t help with looking at electrical signals on the bus.

Then there was another side excursion looking at buying a better scope.  My target had been a decent USB scope, but Dave at EEVblog made me consider a venerable Rigol DS1052E.  Rats – it doesn’t have a battery option, so no isolated ground.  Read a couple of threads on proposed hacks to run it on battery, including designing a new power supply from scratch.  Give it up, Jim.  Even if you decide to get a new scope, you won’t have it in time to work on the dumb DH.  (Interesting, but the wasted time was bite #3.)

I’ve also got a (cheap, little) USBeeSX logic analyzer.  I planned to hook that up to capture the actual I2C traffic (again using a laptop on battery) once I was convinced the signals were clean.  But I needed to see clean signals on a scope first.

Back to work

Putting the Xprotolab scope (and Rigol reviews) aside, I tried with a trusted bench scope again.  The DH also has a coax barrel connector to supply 5V power for “normal operation” mode.  I had a little 5V wall wart, and figured powering the DH from that would give me an isolated ground.  (Bad assumption, I think.  The unit is too light to have a transformer, so it’s probably just a big 250V cap dropping line voltage down followed by a regulator.  That wishful thinking was sloppy of me.)

I tried about everything I could think of, including finally boldly connecting the grounds (after measuring voltages first).  When I did that the DH went into looping mode, playing sounds that didn’t make sense.  Again, some times I’d see impossible signals – logically inverted, and going below ground.  Oh – and if I connected directly to the 4 pin connector from the Master Arduino, the behavior was different (and less baffling).  It’s biting me again!

IsolatedGround1602Feeling a little uneasy about the wall wart (and getting desperate), I looked around for another isolated 5V supply.  Hey – I think I picked up some cheap Chinese DC-DC 5V USB out converters.  <digs around a little>  OK sucker – just TRY to tell me that ground’s not completely isolated!

But the bizarre behavior continued.  Including inverted and negative-going signals.

Aha

Then I happened to look at the “hub” I’d been plugging my adapter into.  Hey wait:  looking at the side of the hub, both the female connector I’d been using and the one next to it showed white sides.  But the way the hub PCB was laid out, those should have been one white and one not.  And then it started to fall into place.

RootCauseHubB1586During its travels, the shell of one of the 4 female connectors on that hub had come off, leaving the pins still soldered to the PCB.  I found or made another female shell, and forced it on.  I’d painted one side of that shell white, but apparently was asleep when I put it on, and put it on backwards.  And that was the connector I’d been plugging in to!  So all the testing I’d been doing plugged into that hub (with white sides together) had been with the wiring reversed!  (When I plugged straight into the Arduino, the hub was not involved, and it behaved much better.)

Damn.  With the pinout (+5, Gnd, SDA, SCL)  reversed, the “ground” I’d been using was in fact SDA.  So with the Xprotolab scope, the pins I thought were SDA/SCL were in fact Gnd/+5V.  Both of those showed the same signal (DC shifted, but that’s hard to tell on the Xprotolab) compared to the real SDA as reference.  And it explained why some signals seemed inverted, or going negative with respect to the assumed ground (SDA).  I guess I’m just lucky I didn’t blow anything out (especially with that probably non-isolated wall wart supply!).

 Ah, sanity

Clock+DataWith the DC-DC inverter as supply, I reconnected the Xprotolab scope (with the adapter plugged in the right way this time!) and its display on the main PC.  It looked terrible.  Then I remembered I was going through a USB hub, and plugged the Xprotolab USB cable into its own USB port on the computer.  Much better – it’s completely clear which is clock and which is data.  And I looked at how it was hooked up and that agreed. :)

It still wasn’t great, and it was at the ragged edge of what that little scope could handle.  The screen shot above was at 32 μsec/div.  It looked a little better at 16μsec/div, but wouldn’t run at all at 8μsec/div (the fastest setting).  At a max of 2Msamp/sec (1M per channel), that’s only ~100KHz – which is the nominal I2C clock rate!  It’s not quite enough to see how clean the MasterI2Cshield1606waveforms are, but it does look a little rounded, especially the top corner of the rising edge.  The pullups on the I2C bus connector on the Arduino are 3300Ω.  Lowering them would presumably sharpen those corners.  (Hmm – looks like I put a switch in from A3-Gnd for future use.  I’d forgotten that!)

Clocks1612OK – let’s get a little better bandwidth look at this.  On the old clunker – but trusted – 5MHz Telequipment scope next to the computer, we see useful information.  With most of the DH nodes connected, the clock signal looks pretty good.  This says pretty definitively that lowering those pullups would be a good idea, but at least the bottom corners are all nice and sharp.  The data line, though much harder to sync on, looked similar.  There were some spikes on the high level – nearly a volt – but since that’s not where the logic thresholds are, it’s probably not a problem.  Probably.

The next steps will be looking at what’s happening at the messaging and software levels, but that’s for another post.  This one – about how much trouble came from one moment of inattention reassembling a connector so a mark was on the wrong side – is resolved.

Update 5/12/14: It’s not part of the I2C bus electrical questions, but just for a little continuity: I resolved the very flaky behavior of the DH.  Long story, but after reverse engineering the I2C lib I was using, I found additional read functions that returned status as well as data.  By checking the status of each read and ignoring the data on bad reads, it suddenly got much better.  I guess checking return values is right up there with not being asleep when you put connectors together.

Posted in Dollhouse, I2C bus | Tagged , , , , | Leave a comment

Bandsaw light

OldLight1514The bandsaw has needed a light since day 1 (which was a long time ago).  I did a quick and dirty – and not very effective – hack with a clamp-on lamp, but it was behind the saw, and didn’t illuminate where the blade was cutting.  I finally got around to making a good light.

There’s just enough clearance behind the blade guard for a couple of LEDs.  While I’d generally shy away from battery powered lights for a permanent tool like this, Li-ion 18650s from old laptops pack a lot of energy, don’t suffer much self-discharge, and will run a white LED, so they’re OK for a low-duty cycle use like this.  With 3 LEDs for 60 mA max, even if the used 2000 mA-hr cell was down to say 600 mA-hr, that’s still 10 hours of operation.  That’ll do.

I fretted about a constant current source for a while, but finally gave in to 47Ω resistors.  They give barely over 20 mA for a white LED with the cell hot off the charger, and still nice and bright near the end of the cell life.  And it’s quick and easy.  Parts1468I made up a little PCB for 3 LEDs and resistors, and fitted it into the blade guard.  But how to hold the 18650 cell?

BatteryHolder1489The W88 Cupcake 3D printer happened to be at the house (finishing up some prints for the Addison library gig), so I went for a printed holder.  I did the design in tinkercad (don’t say it) in maybe 20 minutes.  To my delight, it actually printed first try without the printer jamming.

BhCracked1494Even though all I wanted was a stub to keep the cell from sliding out (it was to be mounted vertically), I made the end full height to give the extruder a path between the sides to avoid a lot of strings.  I figured I could cut it down with a hacksaw after it was done.  Unfortunately, one side cracked as I sawed.

HollowSide1498From an end view, it looks like the slicer was able to fill the center of one side, but left the other hollow.  Of course it was the hollow one that broke.  I wasn’t very confident, but epoxied the broken side back together.  It didn’t hold against the stress of putting the cell in.  Nice try, no cigar.  But there’s always zip ties :)

Insides1507While cruder than I wanted, a zip tie (and some inner tube rubber) holds the cell in place quite well.  It has my standard 0.1″ female header so I can disconnect and charge it.  I’ll decide in a year or 2 when I have to recharge it whether I’ll haul the charger to the saw or replace the zip tie.  (The wires don’t come close to the wheel, despite appearances here.)

LightInPlace1477Here’s how it looks from the saw operator’s point of view.  It’s just about BackView1483perfect!  From the back it looks kind of unprotected, but there’s really not much happening where it’s mounted, so I think it will be fine.

Here’s the switch (and the slightly Done+Switch1509embarrassing zip tie).  It’s easy to reach, provides great light, and it’s done!  This is another one of those little things that keeps providing a little bit of delight every time I’ll use it.  Inspired by this, I think I’m going to replace that old clamp-on lamp on the drill press with some cleverly located LEDs next!

Posted in Miscellaneous | Tagged , , , | 1 Comment

Pollywogs/Recyclers Tom Pauer Hilton

TopFront1420This is some background and history of the Hilton Micro 75A Tom Pauer bequeathed to Pollywogs/Recyclers.  It lives at Arlene Klemp’s house and she graciously schleps it out when we have visiting callers for either/both clubs.

Bill Haynes complained about having to crank Tom’s Hilton way up for Recyclers on 4/11/14, so out of an abundance of caution, Back1424Phil graciously grabbed the MA-150 from Ebenezer and Bill used that for the C2 and C3A dances the next day without reported problems.

I brought Tom’s Hilton to Chi-Town last Monday and had Sandie try it.  She did a quick check with her computer and got good volume at a normal setting of the control.  But then she All1428remarked about the MA-150 that somebody had left it with the music volume cranked up unusually high, and Bill had been the last one to use it.  She drew a kind of immediate conclusion that there was probably something wrong with Bill’s computer – like its volume had somehow been turned down some.

I wrote to Bill and with appropriate apology asked if that might have been the case.  He replied that he had in fact checked his laptop, and that he didn’t notice anything unusual with the MA-150.  I’m not sure what to make of all that.

There is one other common component, though:  I think Bill used the same speaker (maybe a 2-driver Tom P special?) for all the dances.  If that speaker had a problem, it might have manifested by requiring both Hiltons to be cranked up higher than usual.

I checked Tom’s Hilton out as well, and had no problem getting lots of volume out of it with a half Yak.  I ran it pretty loud continuously for 45 minutes and didn’t notice any distortion or change in volume and it didn’t smell or feel unusually hot.

I don’t have a laptop I routinely use with Hiltons, and so can’t comment on how the music volume control level “feels”.  I did run the same audio source (a red iRiver IFP790) at the same output setting (40 – the max) with Ray Clow’s old Micro 75, and compared to that I think I have seen what Bill saw.  To get the same speaker volume, the music volume control on Tom’s Hilton had to be set considerably higher than on Ray’s, and with the controls both cranked up full I got a lot more out of Ray’s.  Unfortunately, that’s not a great point of comparison since Ray’s unit has an unusual history, having been rebuilt by me.  Voice levels/settings seemed fairly comparable between the two in informal testing with Tom’s old mic.

Tom’s unit has 2 places to put music audio in:  one marked Tape Music on the front and one marked Monitor All on the back.  I got a little more volume using the one on the back, but the music was brighter using the one on the front.  I think both the “inputs” above were really designed as outputs to record dances, and sort of accidentally work as inputs.  As such, it’s not surprising that they don’t work ideally, and I’ve heard that comment elsewhere including the nice hookup pdf here.  Hilton even makes “boosters” to address this issue.  What’s surprising is that Bill reacted as he did to a known “weak” input.

I considered building a booster transformer in, but decided not to take the liberty of doing that.  Another possibility would be making a custom block (no cables) with a transformer and RCA in and out that would plug directly into the Tape Music jack, fitting tightly against the Hilton.  A quick check indicates that the lid could close with it in place so it could just live there forever.  Yet another is a blob containing a transformer with RCA male and females on short pigtails that would at worst just live in the black bag/case for that Hilton.  I have not done neither of those (yet).

My overall take is:

  • There’s nothing wrong with Tom’s Hilton.  It’s an old unit whose workaround music input isn’t very sensitive and works best with a booster.  We should continue to use it as we have in the past.
  • We should still keep an eye on it for a couple of dances.  Having a spare Hilton for those dances would be a good idea.
  • It’s vaguely possible Tom’s/Polywogs/Recyclers speaker is questionable.

 

Posted in polywogs, Square dance | Tagged , , , , , | Leave a comment