Close

RAMdom updates

A project log for Incandescent RAM

Use lightbulbs to store data!

eric-hertzEric Hertz 11/27/2018 at 19:253 Comments

Bought a string of "holiday festive lights" from the dollar-store. $1, 20 bulbs, 120V. These may be darn-near perfect. 

My original experiments were with a 120V 100W bulb... This was measured to be ~10ohms cold, and calculated to be 144ohms hot.

I ran some other experiments on a couple 12V bulbs in my home... One looked to be ~0.1ohms cold, ~1.5ohms hot... that'd be hard to work with. Though, it heats and cools at a rate measurable with my multimeter, which is handy... about 3sec->cool.

But, those resistance values would be tough to measure with my old-relay-tech idea, nevermind the power per bit, WATTS/bit! Nevermind, also, the $/bit.

These festive bulbs are actually specified in the manual (!) ($1!) as 6V 0.48W. Math: 75ohms hot, 5ohms cold. These numbers are darn-near spot-on for the sims I'd been running.

But, of course, they're tiny in comparison, and have a comparatively tiny heat capacity, which makes measurements difficult, and means the refresh-circuit will need to cycle quickly. (No 'scope presently!)

Am-thinking of an AVR circuit to measure the characteristics... Which, then, is just a fancy logging ohm-meter with a synchronized "charger"... Heat the bulb, measure the resistance (inductance? thermocouple voltage?!) as it cools.

And then.., since that's essentially the refresh/read circuit, why not just implement the whole blasted rotating-drum multiplexer, and the write-select rotary-switch (2-pole!) and the write-complete circuitry (relayS, gateS) in the darn uC...

and then, yahknow, the stupid uC already has 512 Bytes of RAM, so who needs incandescent-RAM anyhow?

...

But that's an aside... I don't have relayS (mayyybe one) with me, so if I'mma do this, a uC is a good proof-of-concept, if y'all would believe it's doing what I claim and not just twiddling GPIOs from internal RAM...

...

Next thing:

Turns out this isn't really RAM at all... it's only 1/2RA-Memory; Writing is random, but reading is sequential-access.

This just won't do!

So, debating a new relay-circuit...

AND, I think if I implement Read and Write in the same circuit, separate from Refresh, then things will actually get cleaner/simpler.

Then write-complete-testing is no longer reliant on synchronization with the refresh circuit, which might remove quite a few gates and maybe a few relay/switch poles.

Duh.(?)

Discussions

matseng wrote 01/03/2019 at 11:18 point

"Am-thinking of an AVR circuit to measure the characteristics... Which, then, is just a fancy logging ohm-meter with a synchronized "charger"... Heat the bulb, measure the resistance (inductance? thermocouple voltage?!) as it cools." 

If you're just interested in the changes of actual value of resistance (and not the speed of cooling when turned off) wouldn't it be quite easy to just first measure the fully cold resistance with an ohm-meter.  Then switch over to current mode on the meter and hook it up to a variable PSU and start measuring the current thru the bulb at 0.1 volts - followed by incrementing in 0.1 volts up to the nominal bulb voltage?

Easy to plot a graph of that.

  Are you sure? yes | no

Eric Hertz wrote 01/15/2019 at 03:34 point

Hey Matseng. It sounds like a good solution to a different problem...

Here, for my incandescent-DRAM design, the idea is to read/refresh the resistance of one bulb (indicating its binary value) at a time, sequencing through many bulbs. This means that once a bulb is "written", it will only be refreshed, say, 1/5th of the time. Then it will be isolated from all power, while the read/refresh circuitry handles each of the other bulbs sequentially, until the cycle repeats.
This is similar to capacitor-based DRAM, except that where a capacitor holds a charge that slowly leaks when not powered, here a lightbulb holds a resistance that slowly decreases as the heat stored in the bulb's filament slowly cools when unpowered. 

My plan, here, was to determine how long I could go between refreshing the bulb's (hot=1) value before it cools too much that a hot bulb can no longer be measurably-discernable from a cold bulb. This would, essentially tell me *if* it's possible (with these bulbs) and how many bulbs I could refresh sequentially.

The idea, then, is to heat a bulb and measure its resistance as it cools, thus determining how long the bulb can go unpowered and still read "1." Which, of course, is a bit tricky since resistance-measurement usually implies applying some current, which would keep the bulb warmer longer. 

But, here, it's mostly just a matter of proof-of-concept... if my refresh circuitry is too slow, remove a few bulbs so it has fewer to cycle through...

There are, however, a few other characteristics I'm not sure about... I ran this experiment, by-hand, with a larger, much-higher-wattage bulb, which literally took about three seconds to cool to the point that it was no longer clear, by measuring its resistance, whether it had been powered three seconds prior. 

Handy for proof-of-concept, as I could literally power it off, then fumble with my meter's leads, and still get some useful data-points. 

However, a very unexpected discovery: The bulb's resistance went *up* briefly, after power was removed, when it clearly should've begun cooling. I don't know why, maybe the filament *resistance* went down as expected, but the filament may've also acted as an inductor, forcing current into my meter. Or, maybe the dissimilar metal interface with the bulb's metal base caused a thermocouple-effect, injecting voltage into my meter. And, of course, there's also the possibility the meter's current had some effect (on an 8W bulb?).

Regardless of the cause, this or other/similar effect may exist in my new, much smaller bulbs--whose heat/whatever capacity is far too small/short-in-duration for me to measure with equipment on-hand.

As, presently, I don't have the equipment, either, to actually build prototype[s] of my relay-based read/write/refresh circuit-design, I'm working with simulation-models which don't seem to include these unexpected effects... So, it stands to reason real-world bulbs may differ slightly from ideal models, just as real-world capacitors leak differently or have different series resistances. The thing about lightbulbs, however, is that as far as I'm aware they've seldom any reason to be specified (in datasheets, etc.) in such detail. (similar problem with relays, but we're not there, yet). 

Thus, I thought maybe it would be useful to do some characterization of the off/cooling-time effects, e.g. with an AVR.

But, the fact is, the measurement circuit, itself, likely will play a major part in all of this. E.G. my relay-based measurement circuit injects some current (enough to power a relay!) through the bulb, albeit *very* briefly, which will cause even an OFF=0 bulb to warm up a bit. Plausibly more than whatever an AVR/ADC-based resistance-meter might inject constantly throughout a much longer series of measurements.

And, regardless, the measurement techniques, currents, durations, periodicity, etc. are so different that, realistically, I think it's really just a matter of giving it a try, and modifying things like threshold/calibration resistances, refresh frequency/duration, and even the number of bulbs being sequenced, based on how it functions in "the real world." Maybe a tiny "glitch" occurs immediately after the bulb's power is cut, but e.g. by the time three other bulbs have been refreshed, that glitch may've long-since dissipated. Or maybe the measurement-current applied three refreshes later will be *slowed* by inductive-effects (just imagined), which wouldn't've been accounted-for by my original plans for this AVR-meter.

I'd say it's a bit of a crapshoot, I might be able to simulate the relay-circuit's loading/injection characteristics, somewhat, with an AVR-based circuit... Or just do some worst-case measurements to make sure it *can* work... 

Or I can just put 'er on the ol' backburner 'till building (and testing) prototypes is more feasible. 

I got here as a tangent to a tangent to a pre-necessity to continuing-on with #Floppy-bird, which is just waiting for my return!

But, I'm always interested in stirring back-burner pots! Thanks for the ideas!

  Are you sure? yes | no

Eric Hertz wrote 01/15/2019 at 03:47 point

Had another thought, largely-inspired by your comment, thanks...

If the "glitch" is inductive or thermocouple "injection", the effect on a series 5mA=on relay-coil would probably be negligible, whereas the effect on a resistance-meter using a 1uA measurement-current would be tremendous.

Good call.

And great to hear from yah, been a while!

  Are you sure? yes | no