Wednesday, April 13, 2016

Fish and Chips

The Irish pub near me does a decent fish and chips. I've been making a semi-regular Tuesday thing of that. On Saturday, went to see the show I lit, and at the end of curtain calls the producer came out and made me stand up to be acknowledged. That's neat. At my previous theater (the one I mixed shows at for over five years) they had a "nice" habit of giving special thanks to all the designers at the big opening night bashes. Except for sound. They never mentioned us. Once again, I'm reminded of how well I am to be rid of those people.

This week has been slow. I've been putting in a solid forty as I wait for the new hourly position (and the pay raise and benefits) to start up. Wouldn't bug me so much, the waiting, if they hadn't gone ahead and promised it. Four months ago. I want to stay there. I'm making the schedule work, and I can see retiring in that job. I mean, against the rather unlikely chance that WETA workshop will suddenly phone and tell me to catch the next flight down to New Zealand. But still being on the Temp Agency and still getting only a little over minimum wage is really starting to irk.

And that's the news from Lake Woebegone.*

Sometimes I think engineering is about knowing the right questions to ask. I've been complaining recently about black boxes in modern electronics. There's so much imbedded intelligence in everything now. Take the "humble" lithium polymer battery. You'd think you'd look at the chemistry, check out graphs of charge and discharge curves versus internal resistance and heat dissipation and so forth. Well, not exactly. Tucked beneath the foil jacket on any decent LiPo is thermal monitoring and overcurrent protection and a nifty little voltage monitor that won't let you bottom out the charge.

So it becomes a lot more about looking at lists, of truth tables instead of graphs, where digital switches will be thrown inside the black box when certain conditions are met. And not everything is documented, so this has a lot of what old-school programmers will call the Deep Magic or other Incantations; little tidbits of information passed hand to hand like secret rituals.

But then, a lot of engineering is about how to make use of existing solutions. You don't want to design a wheel every time you need to build a cart; you go out and find a wheel that someone else has already done the heavy lifting on, and compare the final tested performance of the thing against the requirements of your project.

And even when you are working down to raw materials, there are rules of thumb and working formulae and other places where someone has done the measuring and the tabulation and the algebraic manipulation and the empirical results for you, so you can apply an industry-standard calculation instead of having to sit around in a lab discovering melting points and so forth for yourself.


This is all sideways to my latest work on the Holocron. It occurred to me to take a closer look at the current draw. And there I hit a big snag. The rule of thumb for LiPo cells is maximum current draw is the same as maximum charging current; half the capacity (in milli-amp-hours), expressed as milli-amps. (A safer working value is .2 C) Well, that's fine; the cell I had in mind is a 2500 mAh battery, meaning I can draw up to 1250 mA off it, and two channels at 350 mA is only a little more than half that.

However. The design is that it will run stand-alone on rechargeable battery, or it will run from a USB port and charge the battery while doing so. And anything above 100 mA breaks the USB standard. (Sort of. It's actually rather complex. The USB standard permits current draw of 500 mA if negotiated by the device. But not all computers and certainly not all hubs can supply this safely. Off the standard, devices can and have drawn as high as 1.8 amps -- but this is nonstandard and unsafe.)

Even if I accept 500 mA as the cut-off, I can't power the LiPo charge circuit and still be able to push two 350 watt LEDs. And even if I shave the power requirements; run the LEDs at half the rated current and a 50% duty cycle, it still ends up exhausting the battery in a mere four hours.

So, yeah. Somewhere down the road I'm going to need or want a gadget that can push that 1-2 watts of LED, but the Holocron is not the appropriate project for it. Nor do I think it needs it. So I'm back to neopixels. Especially as I figured out the easy assembly for them; use the through-hole mode and simply bend the pins 90 degrees so they all face out in a wheel.

And here's the math there; 20 mA each (per channel, that is). At a single color and four of the units, the MCP73831 will handle them with a little bit left over to recharge the battery, and the draw is only a little over the 100 mA USB standard.

Of course some colors are best achieved through running two channels wide open. That would be 160 mA and I'd have to push the MCP73831 up to a 250 mA charge rate in order to ensure there is enough current. But that still beats trying to come up with 1400 mA.

And four neopixels worked fine in the first one.

The big trick in the Holocron -- all of the design, not just the electronics -- is to make it as cheap as possible and as easy a kit for the customer to assemble as is possible. So I'm happy to avoid needing surface mount components, but I'm willing to spend a little extra to keep from having either of us have to fiddle with hand-soldering micro-USB connectors.

And this applies in force to the programming. Yes, there are ways to provide computer control for customization. But even the best of these require dealing with drivers for a huge variety of operating systems and even if I could handle the programming I'm not up for the support. So the only user customization I can support with this go-around is on a primitive "VCR Programming" level; walk through menus with one button and change values with another one.

But I think I can do it within an 8-pin ATtiny, which means I don't have to play with a surface-mount component for the main CPU. It is tight, especially when I add a general-purpose "sense" pin (probably tied to a capacitive sensor, like I did with the first Holocron).

Now I just need time to Eagle out the new circuit board, and Inkscape the new design elements. Oh; I made one other bit of progress. I checked scale, and I'm happy staying with 4" outer dimension. Which means my already built and tested outer shell files can be re-used.

*It somehow feels deeply meaningful that Apple's spellcheck is still staggered by basic scientific and engineering terms but has no trouble with "Lake Woebegone." It also passes, without comment, "Darth Vader" and "Frodo Baggins."


  1. Could you "cheat" the USB current limit in the same way as external hard drives etc. using two plugs?

  2. That also, according to a number of articles I read, violates standard. The short form is that a USB "hub" is by standard provisioned with 500mA. If that hub is in the host computer, and nothing else (like an internal HD) uses it, technically you can suck the whole 500mA out.

    But all of these schemes, up to and including negotiating properly over USB for more power, require that the computer in question be relatively modern and properly manufactured. Designing for over 100mA may work on a dozen computers. It may work on 99. And on the hundredth, there will be magic smoke and an expensive repair (actually, more likely an internal fuse will trip. But either way, you have an unhappy end-user).

    Makes no real difference to my design, anyhow. To get the dual cree's working I'd need at least an amp -- and my charger circuit can't handle that, either.