Author Topic: Optical Delay Dynamic RAM (ODDRAM!)  (Read 2603 times)

wobbly, nali, Phil1977 and 4 Guests are viewing this topic.

Online Phil1977

  • Frequent Contributor
  • **
  • Posts: 415
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #25 on: August 06, 2024, 06:14:27 am »

In fact the allegedly UV LEDs I'm using are in fact visible to the naked eye, so clearly it's not a very good UV LED - whatever, it's what I've got in my parts bin, they get the job done!  As soon as the light hits the phosphorescent tape it glow very brightly in pale green.  However due to my own concerns that near UV wavelengths are potentially harmful I'm taking all efforts to reduce the raw emissions from the LED die from escaping directly into the room.
Most of these phosphorescent dies are best excited at wavelengths below 400nm - that´s exactly the wavelength of these barely visible near-UV-LEDs.

LEDs with smaller wavelength usually have worse efficiency and are more expensive. So from an engineering point of view you´ve choosen the right device  :)
Every time you think you designed something foolproof, the universe catches up and designs a greater fool.
 

Offline Haenk

  • Super Contributor
  • ***
  • Posts: 1183
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #26 on: August 06, 2024, 07:57:05 am »
Doh, I just tossed the perfect item for your building project:



Essentially a large round disc coated with light retaining material. The little horses had a blue-ish LED which could be activated by pressing down the horse, leaving a trail. Actually quite some fun.

(Obviously, I hope, this toy belonged to my daughter...)

The larges problem is to find the threshold between on/off light intensity.
 

Online Phil1977

  • Frequent Contributor
  • **
  • Posts: 415
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #27 on: August 06, 2024, 10:08:55 am »
I think about hijacking the idea and building an own ODDRAM drum.

I have a phosphorescent tape laying around here that I would like to glue around a cylinder that´s connected to a stepper motor.

The stepper motor should spin the cylinder to 60-120 rpm. I´m going to use a 395nm UV LED with a single focus lens so that it images itself to a small spot on the tape. Next to this I´m going to put a photodiode with a colimator and/or focusing lens.

The biggest disadvantage of the tape (or Haenks fairy disk) is it´s continuos nature. If I just make the LED light up as soon as the diode threshold is reached, the LED will feedback into the diode and will never turn off again.

I suppose this can be solved by modulating the LED with e.g. a 60 Hz- squarewave. The idea is that each time the modulation forces the LED to be off the feedback loop latches off again. Or, if a bit comes around that´s still lighting from the round before then it is expected to be refreshed during the on-period.

This way the single band should deliver 30-60 bits of storage, depending on the rpm and the modulation frequency. If it works it would be quite easy (and probably mesmerizing to look at) to build 8 or 16 tracks on the drum.

I´ll keep you updated!
Every time you think you designed something foolproof, the universe catches up and designs a greater fool.
 

Online jpanhalt

  • Super Contributor
  • ***
  • Posts: 3683
  • Country: us
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #28 on: August 06, 2024, 10:45:17 am »
I agree.  Like old tape recorders, you don't need discrete holes to write.  Pulsing collimated/focused leds and using a simple protocol, like start bit + data + stop bit, should work.  However, the TS's plan may have more appeal and be easier to understand by a particular audience.
 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #29 on: August 06, 2024, 12:31:59 pm »
@Phil1977, that's a great idea please do that!

@jpanhalt, my brain only works in digital, so that means microcontrollers and code. :). Phil's idea sounds like it could be done entirely in analog electronics, which is beyond me.  I can imagine what a 16 channel drum version would look like spinning around and I think most people would find it more impressive than my simple gears.
 

Online Phil1977

  • Frequent Contributor
  • **
  • Posts: 415
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #30 on: August 06, 2024, 12:43:48 pm »
I don't see it as a competition who has the better / more impressive ideas.

The bb-balls representing single bits are very hands-on and are for sure amazing. The great thing about these projects is everybody can build them with own priorities. And in the end all ideas that work are good ideas!
Every time you think you designed something foolproof, the universe catches up and designs a greater fool.
 

Offline MrAl

  • Super Contributor
  • ***
  • Posts: 1547
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #31 on: August 06, 2024, 02:50:05 pm »
Another thing already touched in the other thread is the ambient light. I guess you want to see the data with the naked eye as a visual effect, but with ambient light sources the project might fail miserably. What comes to mind for this is to use a camera and put the disc in a fully closed chamber. Show the camera image on a screen and you have your visual display of the memory.
Yes, again you're bang-on.  The problem I really have with doing this in a normally lit room is that glow in the dark plastic isn't very "contrasty" to the human eye in my experience.  The effect I'm hoping to demonstrate would simply be basically invisible to onlookers, which is a bummer.

So, I think that in all likelihood, this madcap idea will only have any chance of working when it's running in complete darkness.  But that's fine, all I have to do is make a video of it with suitable camera settings and use that to demonstrate it to people. :)

I'm flying by the seat of my pants here.  I love the input that EEVBlog Forums have been giving me on this project - it's really awesome to have so many keen minds to tap into.  Thanks to all of you.

Hello,

Two possible solutions to the onlooker viewing problem...

1.  Maybe a two-way mirror if the reflections inside do not agitate the phosphors too much.  You'd be able to see the bits, but the bits would not be able to see you :)
2.  Since you have to use a microcontroller to refresh the 'bits', you can drive a set of external LEDs to show the current states of the internal phosphors.  If you do not want to install all the LEDs that would match the internal 'bits', then you might use an LED or LCD display instead.  Microcontrollers are good for that kind of stuff.
« Last Edit: August 06, 2024, 02:52:44 pm by MrAl »
 
The following users thanked this post: wobbly

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #32 on: August 06, 2024, 06:56:53 pm »
@MrAl,

The real aesthetic novelty of this concept is that the phosphor is nice to look at.  Best way to do that is to run the thing in a fairly dark room.  Doesn't have to be pitch black because the tape I'm using is really quite bright.

Anyway, I've made a start on the chassis and I've mounted the main gear on it and I'm now planning how to mount the stepper motor.  Photos attached.

Super pleased with how the main gear turned out, it's flat, has good geometric consistency all the way around (still will need tweaking here and there though).  It spins very freely on its bearing and doesn't grind against the backboard.

The black oblong slot shape I've pencilled in underneath the gear is going to be a cut-out to allow the stepper motor shaft to poke through from the back.  It's position will be adjustable to allow better gear meshing.

Now, even though I'm not using the BB gun balls any more (because they are very weak), I did put some in the gear just for fun and to give a bit of an idea what is to come later.


« Last Edit: August 06, 2024, 07:07:00 pm by wobbly »
 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #33 on: August 08, 2024, 07:44:51 pm »
Build Progress:

Mostly mechanical stuff yesterday and today.  Chassis is mostly done, a simple affair crafted from the finest materials that can be found rotting in my garage.

Stepper motor and gear meshing adjustment works nicely, gears (unexpectedly) turn quite smoothly for the most part.

I have started to build the control circuit, using a plated-through double-side bit of perfboard of just the right size.  I have chosen an Atmel ATTiny2313 as the brain of the system.  Honestly it's overkill -- but it does have a 16-bit timer and an 8-bit timer which was my main concern.  I wanted to use a 16-bit timer to measure the 0-500 kHz output from the light sensor, and an 8-bit timer to provide the frequency drive for the stepper motor.  Plus this chip has plenty of GPIO and external interrupts and all that other lovely stuff!

I have decided to put the UV LED at top-dead-centre on the ring gear.  I think that aesthetically that is where people would expect new bits to be "born"!

I also want the "RAM ring gear" to be rotating in a CLOCKWISE direction.  This means that the light sensor needs to be placed immediately BEFORE the UV LED.  For my hardware that means that the sensor needs to be just to the left of the UV LED.

Legend for the photo called "BACK.jpg"...
  • "E" is the UV Emitter at top-dead-centre on the RAM ring gear
  • "S" is the light Sensor, just before the emitter
  • "H" is the axle Hub to reinforce the ring gear structurally and keep it straight and not wobble!
  • "M" is the stepper Motor mounted in its adjustable slots
  • "[PCB]" is the area where the control circuit will be affixed once it's finished.
« Last Edit: August 08, 2024, 07:53:12 pm by wobbly »
 
The following users thanked this post: jpanhalt

Online jpanhalt

  • Super Contributor
  • ***
  • Posts: 3683
  • Country: us
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #34 on: August 08, 2024, 08:17:00 pm »
Please keep the updates coming.  Fun read.

John
 
The following users thanked this post: wobbly

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #35 on: August 08, 2024, 08:23:31 pm »
The sharp-eyed will notice that I've mounted both the UV LED and the light sensor on the back of the ring.  This was a tricky choice, but I wanted to make the entire ring gear visible to the viewer without any ugly obstructions.

This poses an existential problem though - the UV LED and the SENSOR cannot occupy the same position on the Ring!  This means that the microcontroller MUST have some internal MEMORY state that exists in addition to and in parallel with, the RING!

OK, so a compromise has to be made for the sake of getting the project finished.  The sensor sits 2 bits earlier than the LED.  This means that my microcontroller has to maintain it's own tiny memory buffer of 2 bits worth of ring data in order to keep the ring refreshed.

Is that justifiable?  I think so...

If the ring was 100 bits instead of 40, then the distance between sensor and emitter would still be 2 bits.
If the ring was 1,000,000,000,000,000 bits instead of 40, then the distance between sensor and emitter would still be 2 bits.
So, it's immaterial, basically.

Later on, I foresee a slightly larger existential crisis, but I'll burn that bridge when I get to it.
« Last Edit: August 08, 2024, 08:52:10 pm by wobbly »
 

Offline PCB.Wiz

  • Super Contributor
  • ***
  • Posts: 1727
  • Country: au
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #36 on: August 08, 2024, 11:46:35 pm »
OK, so a compromise has to be made for the sake of getting the project finished.  The sensor sits 2 bits earlier than the LED.  This means that my microcontroller has to maintain it's own tiny memory buffer of 2 bits worth of ring data in order to keep the ring refreshed.

Is that justifiable?  I think so...
'That's ok as you already need a single bit detect and store before you decide to re-fire the LED or not.

If you wanted to, you could mount two leds on the rear, to show the content of that 2 bit shift register, which would mimic the front side.
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14555
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #37 on: August 09, 2024, 03:50:31 am »
One bit of external memory is needed anyway to get from detect the rewrite. If absolutely needed one could skip the 2nd bit of memory and just write the new data to the next available position and not the old position as it has been before. This would however drop the advantage of keeping the bits in the same state and getting a somewhat better SNR / lower error rate as constant bits don't get the rest from the old state.
 

Online Phil1977

  • Frequent Contributor
  • **
  • Posts: 415
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #38 on: August 09, 2024, 05:50:28 am »
But especially with the BB-bullets you could use the feedback of the excited BB to "latch" the excitation mechanism so that it stores this single bit by itself.

Why I mean:
- Put the BBs with sufficient distance so that light from one BB can not reach the other
- Use the detector photodiode directly to trigger the excitation LED. Put the in line radial to the wheel, so that no phase offset exists
- If a BB is not charged, the sensitivity threshold of the photodiode should be so low that it just passes the "read-write-head"
- If a BB is charged, it triggers the LED which instantaneously latches in on-state because light from itself and spontaneous fluorescence of the BB falls onto the photodiode.
- The latch is reset as soon as the BB leaves the sensing position. Probably the place between the BBs needs to be as black as possible to reset the latch.

Of course, the question if a bit is stored in a digital circuit or in a sensor latch is really purely academically - but why not ;-)
Every time you think you designed something foolproof, the universe catches up and designs a greater fool.
 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #39 on: August 09, 2024, 06:15:09 pm »
Bought some green phosphorescent powder off of the intarwebs.  It's designed for mixing into art supplies like paint, for creative people to use to adorn their cave walls.

It says you're supposed to mix it 1 part into 2 parts water-based paint or suchlike.  Optically clear polyurethane (PE) two-part epoxy resin is probably water based right?  Sure why not.

So I did that and it looks awesome!  Pic attached, the camera does not do it justice though.  It looks like that green rod Homer fumbles in the opening credits of the Simpsons.  It also decays slower than the crappy BB's I started with, but faster than the nice tape I also have.  So now I have a few different options for phos material.

Fun stuff to play with over the weekend!

« Last Edit: August 09, 2024, 07:17:07 pm by wobbly »
 

Online jpanhalt

  • Super Contributor
  • ***
  • Posts: 3683
  • Country: us
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #40 on: August 09, 2024, 07:20:12 pm »
I don't think common 2-part epoxy is water based.  Some polyurethanes are water cure (e.g., Gorilla glue), and they tend to form bubbles.  The usual polyurethane varnishes do not form such bubbles.  A 2-part polyurethane is probably the same as 2-part epoxy in not requiring water to cure. 

You may want a relatively thin coating as with a 2-part epoxy or polyurethane varnish.  The directions may specify water-based for safety reasons and to avoid VOC fears.  That does not mean the powder you have requires water to suspend it.  If it actually dissolves, then that's a different story.

What is the powder you found?  I will look it up.
 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #41 on: August 09, 2024, 07:43:41 pm »
I don't think common 2-part epoxy is water based.

You are likely correct.  But I will press on regardless, throwing caution to the wind!

For now though I'm staying with the Phos tape, because it is easily handled and removable.  Its performance is decent too.
« Last Edit: August 09, 2024, 07:56:54 pm by wobbly »
 

Online jpanhalt

  • Super Contributor
  • ***
  • Posts: 3683
  • Country: us
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #42 on: August 09, 2024, 07:58:01 pm »
A thinner layer or less concentrated layer will probably give shorter detection lifetimes.  Consider that, if your spots stay detectably on too long.
 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #43 on: August 09, 2024, 08:29:05 pm »
1 part glow powder plus 2 parts PU resin works pretty well...

 

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #44 on: August 10, 2024, 03:50:50 pm »
Quick update:

Stepper motor is up and running, and the gears move quite smoothly, despite being hand-cut on a scroll-saw!  UV LED is also ready (driven at 30 mA by a 2n3904 transistor in saturation).

Next steps are to install the phosphorescent tape on the main gear and the LED and light-sensor into the chassis back-board.  I'll need to make some wire extensions to make them reach far enough, that's my lack of planning!  :palm:  Then I need to configure the ATTiny2313 to have Timer1 take the signal from the TSL235R as it's input clock.

I'll need to have some way of gating the Timer1 counter to get accurate frequency measurements.  I think I might use Timer0 to perform two functions: 1) driving the stepper motor and 2) gating Timer1.  I think these two uses can co-exist if I am careful to manage the interrupts and whatnot.  It might be possible to simply have Timer0 running continuously and "piggy-back" the gating of Timer1 on top of the stepper frequency drive.  I'll think about this.
« Last Edit: August 10, 2024, 04:04:07 pm by wobbly »
 
The following users thanked this post: iMo

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #45 on: August 12, 2024, 06:19:38 pm »
A bit more progress...

I've used the PU resin and glow powder mixture to create the 40 data bits in the ring gear. Photo below.  Left it out in the sun for a while to charge up before I took the picture.  I'm very pleased at how it came out - it appears that each cell is able to store roughly the same brightness from a uniform light source (e.g. the Sun).

First I used post-it-notes to seal the bottom of each bit cell so the powder could be added without it falling through.
Then I put a little glow powder into each bit cell in the ring gear (actually not easy to do but I think I managed to do it fairly evenly).

Next, I filled up each cell with the PU resin using a dual-cartridge applicator and a static mixer nozzle.
Finally, I went back around the ring with a bit of stiff wire, mixing the contents of each cell into a uniform paste.  To my surprise this reduced the volume massively!  Each cell was only about 50% full at the end of this part.  I think the (extremely fine) glow powder must have a lot of air trapped within it.  Mixing in the resin expels the air apparently!

Also, doing this on the warmest day of the year wasn't a great idea, I could feel the resin curing as I was mixing the cells which had me worried for a minute, but it worked out OK.

We live and learn.  Anyway it came out great.  Later on I'm going to paint the ring gear matt-black to minimise unwanted reflections.

I've started on the firmware - the TX side of the UART is running to provide some debug output and to allow me to see what values the light sensor is receiving.

I've got some hall sensors incoming so I should be able to set up some means to do a power-on self-calibration sequence to find "bit 0" in the ring automatically.

The stepper is a 200 steps per rotation type.  And I have just realised that I've made a blunder with the small driving gear.  6 teeth does not divide 40 teeth nicely.  So I'll have a non-integer number of steps per bit position.

I might remake the small gear to have 8 teeth which should fix that ((200/40) * (40/8)) == 25 steps per bit without microstepping, which seems pretty good.  Microstepping would possibly make things smoother and quieter.
« Last Edit: August 12, 2024, 06:33:57 pm by wobbly »
 

Offline Kleinstein

  • Super Contributor
  • ***
  • Posts: 14555
  • Country: de
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #46 on: August 12, 2024, 07:01:43 pm »
For the memory speed the time scale of the decay of the glow intensity is an important parameter. Before overwriting a cell one would have to wait for the old light to decay to something like 50% or ideally even more. There is a chance the glow powder may be a bit on the slow side.
 
The following users thanked this post: wobbly

Online jpanhalt

  • Super Contributor
  • ***
  • Posts: 3683
  • Country: us
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #47 on: August 12, 2024, 07:05:04 pm »
What the approximate half-life for the glow when you used long exposure to the Sun?
 
The following users thanked this post: wobbly

Offline PCB.Wiz

  • Super Contributor
  • ***
  • Posts: 1727
  • Country: au
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #48 on: August 12, 2024, 11:44:38 pm »
The stepper is a 200 steps per rotation type.  And I have just realised that I've made a blunder with the small driving gear.  6 teeth does not divide 40 teeth nicely.  So I'll have a non-integer number of steps per bit position.

I might remake the small gear to have 8 teeth which should fix that ((200/40) * (40/8)) == 25 steps per bit without microstepping, which seems pretty good. 
Microstepping would possibly make things smoother and quieter.

You can fix that in SW, as there is room to do so.
You need > 40/6 = 6.666666667 turns of small gear for full 40 rotate, which is 200*(40/6) = 1333.333333 steps for full rotate or = 33.33333333 steps per bit.
If you group sets of 3 as Step 33+33+34, repeating, that will average 33.3333, with no accumulating errors, and a small absolute error on any given dot.


 
The following users thanked this post: wobbly

Online wobblyTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: gb
Re: Optical Delay Dynamic RAM (ODDRAM!)
« Reply #49 on: Yesterday at 07:23:51 pm »
Update:

In addition to the arrival of my ordered Hall effect sensors, I have also acquired a very painful shoulder injury (yay!), which is going to slow down the development of this project's hardware slightly (although thankfully, the mechanical stuff is almost finished).  Once the wood, nails and paint part is finished, then the rest is software which should forge ahead at full steam!  I have a good idea of the final mechanical form and it's quite straight-forward.

So tonight, I wired up a Hall sensor (https://www.bitsboxuk.com/index.php?main_page=product_info&products_id=3392) on a breadboard and measured it's performance on my scope. Picture below.

Sensor works like a champ.  It shows no sign of problematic noise when I slowly turn the ring gear by hand.  And the hysteresis pattern is nice and wide.  I'll place the sensor just ahead of the "zero" bit so the CPU can calibrate itself during startup.

In the photo, the hall sensor is held temporarily in place with blue tape, and a small neodymium magnet is blu-tac'd into the gear teeth just to the right of the sensor.  The sensor's output is shown on the scope in the background.

Thanks to Kleinstein, jpanhalt and PCB.Wiz for your comments:

I am going to make a new 8-tooth gear rather than fix it in software, because I like making stuff on my scrollsaw and I don't like software kludges.

Regarding the "halflife" of the glow material - I can't measure that accurately right now for many reasons, but I will do so in a scientific manner and share the results with you all at a later date (maybe the weekend hopefully?).

This glow powder is quite amazing actually.  Last night at about 2am I awoke and saw that the ring gear sat forlorn on my bench was almost entirely dim.  So I grabbed my flashlight and hit 4 of the bits from point blank range with a very short blast of bright light.  Immediately, the small room was subtly illuminated with a faint green glow!

Four hours later I could still tell which 4 bits they were!  Not scientific at all but fun to know.

I am optimistic about a good result from this project!  Stay tuned.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf