If you rub old fashion hand soap bar on aluminium like a crayon, then heat it from the other side, you know you are annealed when the soap turns black.
Apparently there is another way using soot from a dirty oxy acetylene burner. Let the soot go all over the aluminium. Then as you carefully heat it , the soot cooks off and disappears just at the right temperature for best annealing of the aluminium for workability. Saw this on another YT
For the test tape, I would recommend encoding a grey code. This is similar to binary counting except only one bit changes at a time. It's used frequently in things like encoders. Hope that helps!
5:45 You used my cnc video! So awesome. And yes, the tape drive on that 1980's cnc lathe goes in both directions. We had a malfunction with the machine and had to reload the system data, which is like reformatting and installing the operating system. While doing this, the does several reboots and controls the tape drive automatically backwards and forwards. We only use the tape drive for this system restoration, for day to day operation we send gcode to the machine using serial over ethernet with a special board that talks to the machine as if it was a tape drive.
If the radius of the clock hole in the tape is half of that of the data holes, the surface of the clock hole will be not half of the data holes, but a quarter! So one fourth of the light will be passing the clock hole.
With the high impedance you need to keep the distance between the photo diodes and the amplifier as short as possible AND use shielded cable such as RG175 coax or shielded audio cable. Separate each channel to prevent cross talk, Your motor is very NOISY (electrically) and needs filtering and isolation from the photo amps. Everything to prevent stray "squiggles" from other sources than the light and diode circuit. You may want to add a small aperture both sides of the paper tape over the diodes for better isolation of the holes in the paper. Especially the timing holes. Light coming at the paper at an angle will cause problems. Try to collimate the light source to a near normal angle with the paper through each aperture with a fairly thick non reflective material. This will require a lot brighter light source to compensate for the loss in collimating. Great project !!!
The tape had a lot of side to side tracking motion as it was going through the reader. Tape guides before and after the reader would help, and would improve your signal from the clock track.
For the "test tape" I'd recommend a gray-code sequence, where only a single bit changes from one to the next (excl the clock/tractor hole), and cycle through all 256 possible codes. Alternatively just do a simple count from 0-255.
15:01 I'm a retired Airframes Mechanic. You cannot make that sharpe of a corner in 6061 that thick no matter if you anneal it. You need curved corners to avoid cracking. Since most times the brakes we had did not have shoes with curved toes we offset the shoe, and added thin pieces of 2024 to help round the corner during the bending process.
I think you need to replace the slotted piece that lets the light through to the tape with one with a series of holes, one for each line on the tape. The hole in this masking plate for the clock row needs to be smaller than the separation between the holes or there will always be light spilling on to the sensor. Otherwise you will be fighting the inconsistent threshold between full light and about 50% light. Without using a comparator circuit, this will be a problem.
The design I have here (light -> wide mask -> tape -> individual hole mask -> photodiodes) is exactly how Bendix does it with the G15. I copied their design almost verbatim, so I don't think a fundamental design fault in the physical construction is the problem here. Most likely, it's not enough light (I have just 2W total here) combined with some alignment and biasing problems. Also, I'm pretty sure I have one bad photodiode, which isn't too surprising since they are now nearing 50 years old.
Awesome! Great to see this coming together. A couple of suggestions, if they might be helpful: First, it might be nice to wire the variable resistor as a 3 terminal potentiometer rather than a two terminal rheostat. I'm not sure if the resistor (or your supply) can handle the dissipation, but doing this will provide a much lower impedance voltage source to the motor rather than a high impedance current-source-like supply. This will tend to cause the motor to run at constant speed (back EMF = Vsupply) rather than constant torque (K_t * Isupply = torque). It should handle variations in friction better. Second, I am not sure the reflector is going to do the signal quality any favors. We really want a collimated beam or a point source for this. That way the hole shadows have nice sharp edges along the paper tape movement direction and produce nicer signal edges. To the extent that the reflector is a mirror, it produces an image of the lamp filaments at a different distance from the tape. To the extent that it's a diffuse reflector, it spreads the reflected filament images sideways. Both will smear the shadow edges. I get that you need lots of light, but I'm not sure whether the light quantity will make up for the reduced light quality. Have you considered a linear filament lamp? A 12V 10W automotive dome light bulb might be perfect. For instance a "6411 lamp". It has a linear filament just about as long as the tape width, and so you could place it quite close to the tape and oriented vertically without blurring the hole edges in the tape direction, and probably wouldn't need a reflector at all.
Maybe look at a different style of bulb? I think that a long festoon bulb (with a single long filament as wide as the tape) would give a more even illumination.). At the moment I suspect that you are expecting light to go round corners to get from a filament, through the clock hole and into the detector.
I just suggested him the same without reading your comment. I expected he will use a festoon bulb, because it just seems like a perfect fit and an obvious choice for this purpose.
That tape you were using has some BASIC program on it. 40 IF B > 57 OR B < 48 THEN 47 43 B = B - 20 Doing some parsing, by the looks of it - the IF statement is a test for whether B contains the ASCII code of a digit. Oddly, the most significant bit is set in every single byte on that tape. Looks like the Centurion encoding.
Looks good. Couple ideas to think. . - Check signal quality with manual tape pull. Feed motor can generate RF noise and and unshielded cables, traces and component leads may well get extra noise from motor. Especially since tube grids are very high impedance inputs. - Room light leaks can alter the diode bias point and flickering may cause problems to diodes. Shielding the reader from outside light might be worth testing.
Other than cellulose vs paper, and a lense rather than photodiodes, I’m trying to think of a difference. I guess a projector has a shutter/gate mechanism too?
@RichardBetel Yes, I suppose that was what made that "ticking" sound. I just wasn't expecting a similar sound from just a motor that isn't even pausing every 24th of a second.
If you have access to a scope or BERT hardware with the ability to recognize PRBS patterns, I'd suggest coding a different one (either in bit length or offset) on each bit of your paper tape loop. The PRBS can be useful for detecting issues that might not show up in a "regular" pattern, e g. the amplifier for one channel can do 5 "on" bits in a row but then suppresses a quick transition after that, etc. With something similar to a BERT you could run your tape loop for minutes/hours without needing to do manual data analysis afterward, and if the BERT doesn't show any pattern errors, you can confirm that your tape reader will be sufficiently reliable for reading programs.
When you said "it almost looks like a mirror" I first thought to myself "well let's not exaggerate here" but then the next shot with you attaching the bulbs had my jaw drop. Impressive stuff.
I believe that you should place a dedicated lamp for the tracking holes photodiode. Moving it for peeking the signal output may improve the clock, avoiding extra biasing. You are getting close!! 👍
One guide for annealing aluminium is to scribble over the surface with marker pen then heat from the other side. At the right temperature the marker pen ink loses its colour. (Well, the green OHP pen that I use does) The classic other way to tell is that it should be hot enough to blacken a matchstick rubbed against it. Maybe use methos B to calibrate Method A? Have you ever considered switching the CNC controller to LinuxCNC? Oh, and it looks like the drive peg on your R8 spindle has sheared?
Looks like the mill crashed on the "MSG," line actually, which is more than just a comment and is supposed to output a message on screen. Interestingly it crashed in what appears to be memory management code. There is probably a bug in millpwr that prevents it from allocating memory to display the message in certain situations.
@ 19:40 you may want to cut one end of the tape, flip it, and reattach to implement a hardware Hofstadter-Moebius loop. It could turn your computer paranoid, but at least you'll know it's working.
Just like last week, I smashed the like button when you said all other projects are on hold until both computers are doing something exciting! I'm also leaving this comment at 2:08 when I saw my comment from last week highlighted in the video! 😀
Very nice video! I would enclosure the light bulbs in order to get as much light as possible to the slot so I would put 2 aluminium plates at each side of the bracket, other wise pretty cool construction! Cheers from Greece, Keep up! Jim.
on the test tape, I would have just counted upwards, that way the least significant bit is on and of every cycle, the next bit is half of that, etc. Very easy to spot on the oscilloscope.
I have to say, that sometimes the enthusiasm puts me off (even though - I'm just like you in my enthusiastic response to things is very similar to yours - ironic, I know) but... this time. SQUIGLIES! Very freakin' cool! Congrats.
"not unexpected... not great through " -- made me laugh out loud with your facial expression.. I felt that.. same as when you spend hours on writing code and something random crashes.. and you are just like.. yeah, figured as much.
Just for testing the reader you could hook it to something like an arduino (easily monitor all diodes simultaneously and automate testing of more complex bit patterns). It may not be in the spirit of things, but you are already using a modern scope to troubleshooting so...
You could add a dedicated focused and brighter light source with a internally mirrored tube that shines right onto the time signal holes. The additional dedicated light may help it read faster without having any interference from the other light sources.🤔
You saw squigglies, and they were very clean-looking. Man, you are a modern-day Leonardo! (You may want to test your reader in a variety of orientations to check for any feed problems...)
Your CNC mill crash is a good use case for something like Perl or Python, to easily automate the removal of the unsupported commands from the G-code stream
people keep mentioning gray codes, but another thing that might be easier to look for is (co-)prime numbers. easier to look for spikes that way. also would only need 2*3*5*7 values, grey code needs all 256 (in case tape length matters). here's a proposed encoding scheme: clock=every 1 bit 0=every 21 bit 1=every 2 bit 2=every 35 bit 3=every 3 bit 4=every 14 bit 5=every 5 bit 6=every 6 bit 7=every 7 or something like that, where no adjacent bits share prime factors
One way to sync the tape to an “address” would be to split the clock signal and feed it into a programmable up/down 16-bit binary counter, where the direction bit is also fed from the motor direction signal. When the motor advances the tape forward, the binary counter counts up. When the motor retracts the paper tape, the counter counts back down to 0 (like the DEC instruction of the 6502.) You just need a way to either wind past the address desired before stopping the motor (due to inertia), or have a magnetic brake on the motor shaft that activates when you get to the desired address. This would provide the ability to read the tape forwards and backwards. You would also need a 16-bit comparator (16 XOR gates, or 4 74LS86s, I think - not sure how many 6AU6 tubes that would be 😀) This would allow for a paper tape with up to 65,536 instructions. The alternative would be to extend the paper-tape reader to read in a parallel strip of tape that simply counts from 0 to (2^N)-1. This is the “address” tape. Mechanically, this is a bit more complex, but electrically, it’s simpler since you don’t need the N-bit binary counter in tubes. The good thing is that the address tape is simple to generate, and gets reused with every program. The bad news is you’ll need another N photo-diodes! 😅 You’ll still need an N-bit comparator though.
It is likely that you want to boost the high frequencies a bit on the clock signal. The 220K can have a capacitor across it. The impedance at the photodiode is something like 100K so the gain boost won't be a lot but it should help to make the signal sharper. Adding a capacitor from screen grid to ground is normally used to make a pentode less sensitive to supply noise and also make its gain higher.
Great to see most of your data bits being picked up well with your reader. Like many others here, I suspect your reader's pickup of the clock pulses has a lot to do with: a). The tape alignment looks "sus" and on top of that there seems to be some "play" up and down with the tape as it passes the reader "head"; b). Tuning opportunities with the light source and masking out external light in the reader "head" assembly; c). As well as stronger bias (that you already identified) on the gate of the tube tasked with amplifying / shaping the detected clock pulses.
A better way to keep aluminum from cracking when bending it to go with a larger bend radius. I work in aircraft repair and we have minimum bend radii charts for each material and thickness range. A quick google for ""6061 aluminum minimum bend radius" will give you some charts. For 0.125-inch thick strap like that, you want a bend radius of 2.5x the thickness, so ~0.03125-inch bend radius. That's the radius for the inside of the bend.
For your machining program t1 and m6 should be in the same block instead of 2 separate blocks as M06T1; most cnc machnies without an automatic tool changer requires you to hit cycle start or something along that line to confirm the tool change to the machine before progressing which mightve also been why it would halt. Also neat idea for contiuous loop would he copying the design for the continuous loop tapes used for store music the tape loops back onto itself in a single spool
You might entrain additional sensors after the first clock sensor each one tape clock hole further along and sum their output. Of course you'd need additional light sources similarly placed.
Lmao! I was going to suggest making a manual punch, where you could set the bits for each clock pulse. Not very much unlike a film viewer that allows frame-by-frame advancement, with a simple “hello world” … but you shot me down before I had the chance
You might want to consider a collimator or diffuser over the light bulbs - I'm pretty sure having the light for each photodiode the same cannot be a bad thing.
And you would need to put in a tape without holes, and adjust the brightnes of the lamps so that the photodiodes is at a stable low. You probably also should have a difuser infront of the bulbs to make the light even over the whole surface of the tape.
I have the same paper tape punch. I made my own serial adapter for it since its one of the first models. It had some special parallel port that i didnt knew how to use. I just pulled out the Interface card, took an arduino and made a serial to parallel adapter. Works like a dream. Also it missed 3 of its punch pins... This was a bit of pain to repair.
In my humble and silly opinion, for the clock, the size of hole is larger than the size of gap between then. If you look for this perspective the amount of time light passing. when the gap is over the photo diode some light is passing. So your photodiode is signaling and not discriminating the weak signal. Try this, mask the hole for the clock position to be at least the same width of the gap. And adjust the sensibility for the photo diode... (Shannon says it must be half of that... but who knows... who knows)
Thats a really good suggestion, I see two benefits, you could have the light fixed where it shines brightest over the clocking hole and you could adjust the timing that provides best clocking in of data.
If I can't manage to get the clock signal working, I'll look into that. We're close though, it's detecting some clock pulses already. I think more light and some better adjusting will get us there.
This forth and back was a thing of tape reels. They had a catalog / directory, that allowed fast forward and reverse to a near position. As these tape reels used very precise capstan drives they were pretty good at positioning. in the 80es I designed a PC ISA interface card at my dads company in the 80es that connected some punch-tape reader and puncher, as well as a paper card writer and reader. I never came across any machine that reversed tape direction. However, I think I remember that there was a control pin to reverse the tape direction.
Maybe an LED filament from a filament style lamp would give even illumination? But if you use LEDs make sure to have loads of smoothing on the DC supply to avoid ripple feeding through to the photodiodes.
Why don't you use an axial festoon bulb? These are used in Europe for licence plate illumination, I think they are available in the US, too. If you align its filament with the slot, it would result in quite an effective and even illumination across all the photodiodes. They are available in different lenghts and power ratings of 5, 7, 10, 15, 18W.
Try varying the speed until the timing track can be read consistently. Perhaps the diode doesn't recover fast enough between flashes of such a short duration. The timing track pulses looks twice as fast as the other tracks. The signal looked like hysteresis was taking effect.
It was interesting to see the Cincinnati Milacron machine, I work for a plastic sheeting company and we have a few machines from them. I believe they have been absorbed by Davis Standard though.
You have a couple of good pattern suggestions below. I'm guessing that we'll want to know where we are on the test loop and that you might go with several different groups of test patterns to test different potential failure modes in the current setup. I would place blocks of nothing but 0000 0000 after the first pattern group and blocks of 1111 1111 after the next (and repeat as necessary).
I would think of doubling the bearings by the capstan to lower the wear on the paper passing by. In any case - the paper troubles you see with the paper reader is probably similar to the problems the original creators had.
If I was to make a test tape, I'd do it as thus, bit 0 is a loop of 01010101, bit 1 is 10101010, bit 2 is 01010101 and alternate that for all 8 bits, that way you get a pattern that is extremely easy to spot anomalies with, and doesn't force you to keep track of where you are on the tape, all that matters is as long as the pattern on the scope mirrors the tape, you know everything is working, it should also make it possible to spot crosstalk from one bit to the other. Also make a second tape that has bit 0 with all 0's, bit 1 with all 1's, bit 2 with all 0's and so on, this can check if you're getting light bleed along the length of the tape. I don't see any reason to complicate things with patterns that are dramatically different for each bit like your idea at the end, it's going fast enough that spotting issues is going to be hard enough without also trying to remember what the pattern should look like to begin with.
If you write numbers from 0 to 255 to the tape then: Bit 0 will have a repeating pattern of a single one followed by a zero so 01010101 etc. Bit 1 will have a pattern of two zeros followed by two ones so 00110011 etc. Bit 2 will have a pattern of four zeros followed by four ones so 0000111100001111 etc. And so on. This would be easy to write the tape and would make it easy to check each bit independently on the scope when reading
I'm guessing the alignment of the bulbs isn't helping with the clock issues. You've got two bulbs that are about equally spaced away from the centre of the tape, where the clock holes are punched, which means that photodiode is not only receiving the least amount of light, but the light will be shining at the greatest angle, so it might not be directly hitting the photodiode, it might have to bounce around before it finally hits the sensor. If you could somehow squeeze a third bulb between them, that might help, or just have one much brighter bulb in the centre.
M0 and M1 are bolth program stops however M0 will always stop and M1 only stops if optional stops are enabled. At least on most of the machines Ive used hope this helps.
Flatcam randomly updating and breaking everything is very on brand for them at this point. Just don't update it, every time I do it dose some new stupid stuff that breaks support with my chepo engraving machine and requires me to get into the files with notepad++ and fix it manually... (And also typically results in ANOTHER smashed v-cut bit :P)
For testing purposes it should be fairly trivial to use a Raspberry Pi or similar to trigger a read of 8 bits using the clock pulse This would let you log and play back reads to review for issues or reliability without trying to read pulses in real time and would need minimal circuitry letting you focus on just the reader itself. Just a thought.
For the clock holes, you can use something Bendix didn’t have back then; a laser diode (salvaged from a dead optical drive, or a laser pointer) to shine through the little hole. Or use an SMD white LED lined up with the clock hole. With the bulb, it’s probably not bright enough, nor is it lined up with the clock holes; the tiny holes are going to act like a camera oscura (pinhole camera,) so the alignment is much more critical than it is with the larger data holes!
6:57 this technique is something my professor taught us as a way of getting Turing completeness with a single jump instruction and while interesting I always thought of it as some esoteric curiosity but it turns out I was just a generation or two removed from it
Back in the day, there was briefly controversy over whether structured programming was sufficiently powerful to represent all programs. Ashcroft and Manna used this result to prove that not only could you represent all programs with structure, but you could do it with a single WHILE loop.
Clock signal looks very strange: not only it shows up only sometimes, but it is also shifted to the right. I'm waiting to see how you will solve these problems 🙂
Did tape readers always feed in tape horizontally or were they designed to feed in tape top to bottom vertically? In my simple mind I’d have thought the latter as the tapes own weight would keep it more stable compared to horizontally where the tape could move up and down causing alignment issues. This might not matter on the larger holes but perhaps on the small one it could?
A single 0 would break your clock. You would need a clock recovery circuit that can handle occasional drops like that, but that is a different kind of problem…
This was actually my original plan, and is still my backup plan. An instruction of X'00' is a NOP, so not having a clock pulse on that instruction wouldn't break anything. I was going to OR all of the data bits into an adjustable RC delay that went through a squaring amplifier to get our offset clock pulse. If I can't figure out what's causing issue with the clock pulse on the board, I may fall back to that plan and see how we get on.
If you rub old fashion hand soap bar on aluminium like a crayon, then heat it from the other side, you know you are annealed when the soap turns black.
I've had success with sharpie marker - just heat until it turns clear.
That's a good idea!
I forgot about that trick
This trick with the soap was in my very first engineering class at school some 50 years ago.
Apparently there is another way using soot from a dirty oxy acetylene burner. Let the soot go all over the aluminium. Then as you carefully heat it , the soot cooks off and disappears just at the right temperature for best annealing of the aluminium for workability.
Saw this on another YT
For the test tape, I would recommend encoding a grey code. This is similar to binary counting except only one bit changes at a time. It's used frequently in things like encoders. Hope that helps!
Two 4-bit greycodes would cycle faster, which I think would be easier to read on the sillyscope.
But yes! +1 on greycodes!
5:45 You used my cnc video! So awesome. And yes, the tape drive on that 1980's cnc lathe goes in both directions. We had a malfunction with the machine and had to reload the system data, which is like reformatting and installing the operating system. While doing this, the does several reboots and controls the tape drive automatically backwards and forwards. We only use the tape drive for this system restoration, for day to day operation we send gcode to the machine using serial over ethernet with a special board that talks to the machine as if it was a tape drive.
If the radius of the clock hole in the tape is half of that of the data holes, the surface of the clock hole will be not half of the data holes, but a quarter! So one fourth of the light will be passing the clock hole.
With the high impedance you need to keep the distance between the photo diodes and the amplifier as short as possible AND use shielded cable such as RG175 coax or shielded audio cable. Separate each channel to prevent cross talk, Your motor is very NOISY (electrically) and needs filtering and isolation from the photo amps. Everything to prevent stray "squiggles" from other sources than the light and diode circuit.
You may want to add a small aperture both sides of the paper tape over the diodes for better isolation of the holes in the paper. Especially the timing holes. Light coming at the paper at an angle will cause problems. Try to collimate the light source to a near normal angle with the paper through each aperture with a fairly thick non reflective material. This will require a lot brighter light source to compensate for the loss in collimating. Great project !!!
The tape had a lot of side to side tracking motion as it was going through the reader. Tape guides before and after the reader would help, and would improve your signal from the clock track.
I feel like I'm finally starting to get the Usagi philosophy here, this is art basically. Looks amazing!
Kinetic art is my favorite kind of art!
Thanks!
For the "test tape" I'd recommend a gray-code sequence, where only a single bit changes from one to the next (excl the clock/tractor hole), and cycle through all 256 possible codes. Alternatively just do a simple count from 0-255.
15:01 I'm a retired Airframes Mechanic. You cannot make that sharpe of a corner in 6061 that thick no matter if you anneal it. You need curved corners to avoid cracking. Since most times the brakes we had did not have shoes with curved toes we offset the shoe, and added thin pieces of 2024 to help round the corner during the bending process.
Cat closes her eyes and opens them again like, "Oh. You're still here. Did you want something?"
Sue was super content just hanging out, haha.
@@UsagiElectric by chance a boy named Sue? :)
Really that gesture by a cat is an indication that they like and trust you and intend you no harm so long as the food keeps coming.
I think you need to replace the slotted piece that lets the light through to the tape with one with a series of holes, one for each line on the tape. The hole in this masking plate for the clock row needs to be smaller than the separation between the holes or there will always be light spilling on to the sensor. Otherwise you will be fighting the inconsistent threshold between full light and about 50% light. Without using a comparator circuit, this will be a problem.
The design I have here (light -> wide mask -> tape -> individual hole mask -> photodiodes) is exactly how Bendix does it with the G15. I copied their design almost verbatim, so I don't think a fundamental design fault in the physical construction is the problem here. Most likely, it's not enough light (I have just 2W total here) combined with some alignment and biasing problems. Also, I'm pretty sure I have one bad photodiode, which isn't too surprising since they are now nearing 50 years old.
Awesome! Great to see this coming together. A couple of suggestions, if they might be helpful:
First, it might be nice to wire the variable resistor as a 3 terminal potentiometer rather than a two terminal rheostat. I'm not sure if the resistor (or your supply) can handle the dissipation, but doing this will provide a much lower impedance voltage source to the motor rather than a high impedance current-source-like supply. This will tend to cause the motor to run at constant speed (back EMF = Vsupply) rather than constant torque (K_t * Isupply = torque). It should handle variations in friction better.
Second, I am not sure the reflector is going to do the signal quality any favors. We really want a collimated beam or a point source for this. That way the hole shadows have nice sharp edges along the paper tape movement direction and produce nicer signal edges. To the extent that the reflector is a mirror, it produces an image of the lamp filaments at a different distance from the tape. To the extent that it's a diffuse reflector, it spreads the reflected filament images sideways. Both will smear the shadow edges.
I get that you need lots of light, but I'm not sure whether the light quantity will make up for the reduced light quality. Have you considered a linear filament lamp? A 12V 10W automotive dome light bulb might be perfect. For instance a "6411 lamp". It has a linear filament just about as long as the tape width, and so you could place it quite close to the tape and oriented vertically without blurring the hole edges in the tape direction, and probably wouldn't need a reflector at all.
Maybe look at a different style of bulb? I think that a long festoon bulb (with a single long filament as wide as the tape) would give a more even illumination.).
At the moment I suspect that you are expecting light to go round corners to get from a filament, through the clock hole and into the detector.
I just suggested him the same without reading your comment. I expected he will use a festoon bulb, because it just seems like a perfect fit and an obvious choice for this purpose.
That tape you were using has some BASIC program on it.
40 IF B > 57 OR B < 48 THEN 47
43 B = B - 20
Doing some parsing, by the looks of it - the IF statement is a test for whether B contains the ASCII code of a digit.
Oddly, the most significant bit is set in every single byte on that tape. Looks like the Centurion encoding.
Did you get that from the video? Brilliant! Haha
May well be that tape has only 7 databits since old ascii code had only values between 0 to 127 ( hex 00 to 7F), eigth bit was added way later.
I would have thought simply the numbers 0-255 on the test tape. Then bit 0 is half the frequency of the clock, bit 1 is half of that again and so on.
Looks good. Couple ideas to think. .
- Check signal quality with manual tape pull. Feed motor can generate RF noise and and unshielded cables, traces and component leads may well get extra noise from motor. Especially since tube grids are very high impedance inputs.
- Room light leaks can alter the diode bias point and flickering may cause problems to diodes. Shielding the reader from outside light might be worth testing.
Watch out for the paper tape + power resistor = fire! Ask me how I know from 1975!!
18:10 Wow, that tape reader sounds like an old movie projector!
Other than cellulose vs paper, and a lense rather than photodiodes, I’m trying to think of a difference.
I guess a projector has a shutter/gate mechanism too?
@RichardBetel Yes, I suppose that was what made that "ticking" sound. I just wasn't expecting a similar sound from just a motor that isn't even pausing every 24th of a second.
These mechanisms always are tricky, the precise manner they have to operate can be crazy, so nice they were able to do that back then so well.
Love it! Can't wait to see both of these computers running.
Genius 🎉 greetings from Switzerland.
If you have access to a scope or BERT hardware with the ability to recognize PRBS patterns, I'd suggest coding a different one (either in bit length or offset) on each bit of your paper tape loop. The PRBS can be useful for detecting issues that might not show up in a "regular" pattern, e g. the amplifier for one channel can do 5 "on" bits in a row but then suppresses a quick transition after that, etc. With something similar to a BERT you could run your tape loop for minutes/hours without needing to do manual data analysis afterward, and if the BERT doesn't show any pattern errors, you can confirm that your tape reader will be sufficiently reliable for reading programs.
not fair this episode went by way to fast. I want more. lol sorry I was too entertained :) thank you for that.
Test pattern suggestion:
rotating 4bit counters:
0000 0000
0001 0001
...
1111 1111
Shift one bit left, rinse, repeat. Will also help test timing.
Try walking 1 and walking 0 (shift a 1 among 0s and shift a 0 among 1s)
On the 5-bit telex tapes we used ryryryryryry which is alternating 10101 and 01010, which was supposed to exercise the mechanism to the max.
Hello Sue! Looking good there 😻
When you said "it almost looks like a mirror" I first thought to myself "well let's not exaggerate here" but then the next shot with you attaching the bulbs had my jaw drop. Impressive stuff.
I believe that you should place a dedicated lamp for the tracking holes photodiode. Moving it for peeking the signal output may improve the clock, avoiding extra biasing. You are getting close!! 👍
Chances are the photodiodes are reacting to the infrared light.
One guide for annealing aluminium is to scribble over the surface with marker pen then heat from the other side. At the right temperature the marker pen ink loses its colour. (Well, the green OHP pen that I use does)
The classic other way to tell is that it should be hot enough to blacken a matchstick rubbed against it. Maybe use methos B to calibrate Method A?
Have you ever considered switching the CNC controller to LinuxCNC?
Oh, and it looks like the drive peg on your R8 spindle has sheared?
I was taught to put soap on it (rub it with a damp bar of soap) It turns black when hot enough.
Some machinists remove that drive pin on the R8 spindle....maybe someone did that in the past.
Looks like the mill crashed on the "MSG," line actually, which is more than just a comment and is supposed to output a message on screen. Interestingly it crashed in what appears to be memory management code. There is probably a bug in millpwr that prevents it from allocating memory to display the message in certain situations.
11:46 it's the G-code equivalent of an interrupting cow… "It's a FEATUR~~M00"
@ 19:40 you may want to cut one end of the tape, flip it, and reattach to implement a hardware Hofstadter-Moebius loop. It could turn your computer paranoid, but at least you'll know it's working.
The tractor feed holes are not in the center so would not align when flipped.
Just like last week, I smashed the like button when you said all other projects are on hold until both computers are doing something exciting! I'm also leaving this comment at 2:08 when I saw my comment from last week highlighted in the video! 😀
Great progress. I am wondering though if the slit is just far too wide. Especially the clock pulse wants a much cleaner on/off separation.
Very nice video!
I would enclosure the light bulbs in order to get as much light as possible to the slot so I would put 2 aluminium plates at each side of the bracket, other wise pretty cool construction!
Cheers from Greece, Keep up! Jim.
on the test tape, I would have just counted upwards, that way the least significant bit is on and of every cycle, the next bit is half of that, etc. Very easy to spot on the oscilloscope.
I have to say, that sometimes the enthusiasm puts me off (even though - I'm just like you in my enthusiastic response to things is very similar to yours - ironic, I know) but... this time. SQUIGLIES! Very freakin' cool! Congrats.
"not unexpected... not great through " -- made me laugh out loud with your facial expression.. I felt that.. same as when you spend hours on writing code and something random crashes.. and you are just like.. yeah, figured as much.
Just for testing the reader you could hook it to something like an arduino (easily monitor all diodes simultaneously and automate testing of more complex bit patterns). It may not be in the spirit of things, but you are already using a modern scope to troubleshooting so...
You could add a dedicated focused and brighter light source with a internally mirrored tube that shines right onto the time signal holes.
The additional dedicated light may help it read faster without having any interference from the other light sources.🤔
You saw squigglies, and they were very clean-looking. Man, you are a modern-day Leonardo! (You may want to test your reader in a variety of orientations to check for any feed problems...)
Your CNC mill crash is a good use case for something like Perl or Python, to easily automate the removal of the unsupported commands from the G-code stream
people keep mentioning gray codes, but another thing that might be easier to look for is (co-)prime numbers. easier to look for spikes that way. also would only need 2*3*5*7 values, grey code needs all 256 (in case tape length matters). here's a proposed encoding scheme:
clock=every 1
bit 0=every 21
bit 1=every 2
bit 2=every 35
bit 3=every 3
bit 4=every 14
bit 5=every 5
bit 6=every 6
bit 7=every 7
or something like that, where no adjacent bits share prime factors
One way to sync the tape to an “address” would be to split the clock signal and feed it into a programmable up/down 16-bit binary counter, where the direction bit is also fed from the motor direction signal. When the motor advances the tape forward, the binary counter counts up. When the motor retracts the paper tape, the counter counts back down to 0 (like the DEC instruction of the 6502.) You just need a way to either wind past the address desired before stopping the motor (due to inertia), or have a magnetic brake on the motor shaft that activates when you get to the desired address. This would provide the ability to read the tape forwards and backwards. You would also need a 16-bit comparator (16 XOR gates, or 4 74LS86s, I think - not sure how many 6AU6 tubes that would be 😀) This would allow for a paper tape with up to 65,536 instructions.
The alternative would be to extend the paper-tape reader to read in a parallel strip of tape that simply counts from 0 to (2^N)-1. This is the “address” tape. Mechanically, this is a bit more complex, but electrically, it’s simpler since you don’t need the N-bit binary counter in tubes. The good thing is that the address tape is simple to generate, and gets reused with every program. The bad news is you’ll need another N photo-diodes! 😅 You’ll still need an N-bit comparator though.
It is likely that you want to boost the high frequencies a bit on the clock signal. The 220K can have a capacitor across it. The impedance at the photodiode is something like 100K so the gain boost won't be a lot but it should help to make the signal sharper.
Adding a capacitor from screen grid to ground is normally used to make a pentode less sensitive to supply noise and also make its gain higher.
Great to see most of your data bits being picked up well with your reader. Like many others here, I suspect your reader's pickup of the clock pulses has a lot to do with:
a). The tape alignment looks "sus" and on top of that there seems to be some "play" up and down with the tape as it passes the reader "head";
b). Tuning opportunities with the light source and masking out external light in the reader "head" assembly;
c). As well as stronger bias (that you already identified) on the gate of the tube tasked with amplifying / shaping the detected clock pulses.
A better way to keep aluminum from cracking when bending it to go with a larger bend radius. I work in aircraft repair and we have minimum bend radii charts for each material and thickness range. A quick google for ""6061 aluminum minimum bend radius" will give you some charts. For 0.125-inch thick strap like that, you want a bend radius of 2.5x the thickness, so ~0.03125-inch bend radius. That's the radius for the inside of the bend.
For your machining program t1 and m6 should be in the same block instead of 2 separate blocks as M06T1; most cnc machnies without an automatic tool changer requires you to hit cycle start or something along that line to confirm the tool change to the machine before progressing which mightve also been why it would halt. Also neat idea for contiuous loop would he copying the design for the continuous loop tapes used for store music the tape loops back onto itself in a single spool
You might entrain additional sensors after the first clock sensor each one tape clock hole further along and sum their output. Of course you'd need additional light sources similarly placed.
Shifting ones ore zeros will look great on the scope.
Lmao! I was going to suggest making a manual punch, where you could set the bits for each clock pulse. Not very much unlike a film viewer that allows frame-by-frame advancement, with a simple “hello world” … but you shot me down before I had the chance
Is this where the term 'loop unrolling' comes from? That sounds like a nightmare.
I really don’t think it is, but yes, it does sound like a nightmare!
You might want to consider a collimator or diffuser over the light bulbs - I'm pretty sure having the light for each photodiode the same cannot be a bad thing.
And you would need to put in a tape without holes, and adjust the brightnes of the lamps so that the photodiodes is at a stable low.
You probably also should have a difuser infront of the bulbs to make the light even over the whole surface of the tape.
You've Blinded Me With Science
I have the same paper tape punch. I made my own serial adapter for it since its one of the first models. It had some special parallel port that i didnt knew how to use. I just pulled out the Interface card, took an arduino and made a serial to parallel adapter. Works like a dream. Also it missed 3 of its punch pins... This was a bit of pain to repair.
You could try a bit sequence in gray code, the difference between each byte would be one bit, easier to spot errors
Wow! This channel just turned "full-awesome". We're gonna stay vacuum tube tech through the rest of the year?! Nice!
In my humble and silly opinion, for the clock, the size of hole is larger than the size of gap between then. If you look for this perspective the amount of time light passing. when the gap is over the photo diode some light is passing. So your photodiode is signaling and not discriminating the weak signal. Try this, mask the hole for the clock position to be at least the same width of the gap. And adjust the sensibility for the photo diode... (Shannon says it must be half of that... but who knows... who knows)
Consider NOT detecting the clock at the DATA reader, but offset by some distance to ISOLATE the clock.
Thats a really good suggestion, I see two benefits, you could have the light fixed where it shines brightest over the clocking hole and you could adjust the timing that provides best clocking in of data.
If I can't manage to get the clock signal working, I'll look into that. We're close though, it's detecting some clock pulses already. I think more light and some better adjusting will get us there.
This forth and back was a thing of tape reels. They had a catalog / directory, that allowed fast forward and reverse to a near position. As these tape reels used very precise capstan drives they were pretty good at positioning. in the 80es I designed a PC ISA interface card at my dads company in the 80es that connected some punch-tape reader and puncher, as well as a paper card writer and reader. I never came across any machine that reversed tape direction. However, I think I remember that there was a control pin to reverse the tape direction.
Maybe an LED filament from a filament style lamp would give even illumination? But if you use LEDs make sure to have loads of smoothing on the DC supply to avoid ripple feeding through to the photodiodes.
"We got signals, we got readings!"
Loving the progress on this
Why don't you use an axial festoon bulb? These are used in Europe for licence plate illumination, I think they are available in the US, too. If you align its filament with the slot, it would result in quite an effective and even illumination across all the photodiodes. They are available in different lenghts and power ratings of 5, 7, 10, 15, 18W.
Try varying the speed until the timing track can be read consistently. Perhaps the diode doesn't recover fast enough between flashes of such a short duration. The timing track pulses looks twice as fast as the other tracks. The signal looked like hysteresis was taking effect.
It was interesting to see the Cincinnati Milacron machine, I work for a plastic sheeting company and we have a few machines from them. I believe they have been absorbed by Davis Standard though.
Adding sides to your bracket for the lights might help with focusing The light towards the tape more and adding actual reflectors might help too.
Also eliminating light leaking from outside should help while setting bias point.
Great episode! Let's dig into paper tape computing!
So good to see this come along. I assume you’ve tested the feed and tracking in the orientation it will be installed in? Gravity is a right PIA
Nice progress can't wait for the next video. Thank for the video.
You need a matchbox racetrack section on either side of that photo diode to guide the paper tape into.
Maybe add a diffuser between the bulbs and tape. Is LED0 at the edge? Not enough light?, shadow from filament? Just ideas.
Read up on Colossus... the holes had problems in that they were never cut for reading... there could be fibers etc causing problems.
You have a couple of good pattern suggestions below. I'm guessing that we'll want to know where we are on the test loop and that you might go with several different groups of test patterns to test different potential failure modes in the current setup. I would place blocks of nothing but 0000 0000 after the first pattern group and blocks of 1111 1111 after the next (and repeat as necessary).
Can I think of another channel that I always watch right away when I see the notification?
Urm...
Motor speed control with a rheostat - truly old shcool!
the punch sounds like another project, what you don't want to start before these 2 are done :p
I would think of doubling the bearings by the capstan to lower the wear on the paper passing by.
In any case - the paper troubles you see with the paper reader is probably similar to the problems the original creators had.
21:34 Used to use 0xaa and 0x55 alternating to give a nice square wave at the clock rate on the data bits...
If I was to make a test tape, I'd do it as thus, bit 0 is a loop of 01010101, bit 1 is 10101010, bit 2 is 01010101 and alternate that for all 8 bits, that way you get a pattern that is extremely easy to spot anomalies with, and doesn't force you to keep track of where you are on the tape, all that matters is as long as the pattern on the scope mirrors the tape, you know everything is working, it should also make it possible to spot crosstalk from one bit to the other.
Also make a second tape that has bit 0 with all 0's, bit 1 with all 1's, bit 2 with all 0's and so on, this can check if you're getting light bleed along the length of the tape.
I don't see any reason to complicate things with patterns that are dramatically different for each bit like your idea at the end, it's going fast enough that spotting issues is going to be hard enough without also trying to remember what the pattern should look like to begin with.
If you write numbers from 0 to 255 to the tape then:
Bit 0 will have a repeating pattern of a single one followed by a zero so 01010101 etc.
Bit 1 will have a pattern of two zeros followed by two ones so 00110011 etc.
Bit 2 will have a pattern of four zeros followed by four ones so 0000111100001111 etc.
And so on. This would be easy to write the tape and would make it easy to check each bit independently on the scope when reading
I'm guessing the alignment of the bulbs isn't helping with the clock issues. You've got two bulbs that are about equally spaced away from the centre of the tape, where the clock holes are punched, which means that photodiode is not only receiving the least amount of light, but the light will be shining at the greatest angle, so it might not be directly hitting the photodiode, it might have to bounce around before it finally hits the sensor. If you could somehow squeeze a third bulb between them, that might help, or just have one much brighter bulb in the centre.
...but can it play Wintergatan?
M0 and M1 are bolth program stops however M0 will always stop and M1 only stops if optional stops are enabled. At least on most of the machines Ive used hope this helps.
for real steampunk, you have to colour (coat) it with copper.
Flatcam randomly updating and breaking everything is very on brand for them at this point. Just don't update it, every time I do it dose some new stupid stuff that breaks support with my chepo engraving machine and requires me to get into the files with notepad++ and fix it manually... (And also typically results in ANOTHER smashed v-cut bit :P)
15:35 gloves and rotating machinery 0.0
I'm surprised you didn't use a digital stepper motor. But this is incredibly interesting!
Very nice! It does look like the fotodiodes holder is not quite perpendicular to the center line of the paper tape?
For testing purposes it should be fairly trivial to use a Raspberry Pi or similar to trigger a read of 8 bits using the clock pulse This would let you log and play back reads to review for issues or reliability without trying to read pulses in real time and would need minimal circuitry letting you focus on just the reader itself. Just a thought.
For the clock holes, you can use something Bendix didn’t have back then; a laser diode (salvaged from a dead optical drive, or a laser pointer) to shine through the little hole. Or use an SMD white LED lined up with the clock hole. With the bulb, it’s probably not bright enough, nor is it lined up with the clock holes; the tiny holes are going to act like a camera oscura (pinhole camera,) so the alignment is much more critical than it is with the larger data holes!
Kind of anachronistic, don't you think? Then why not just use an Arduino with USB support and an SSD? 🙄
If brightness is an issue, you could change either or both of those #47 bulbs to #44.
Just use a binary counter for the tape, something you'd know how it should look.
6:57 this technique is something my professor taught us as a way of getting Turing completeness with a single jump instruction and while interesting I always thought of it as some esoteric curiosity but it turns out I was just a generation or two removed from it
Back in the day, there was briefly controversy over whether structured programming was sufficiently powerful to represent all programs. Ashcroft and Manna used this result to prove that not only could you represent all programs with structure, but you could do it with a single WHILE loop.
Clock signal looks very strange: not only it shows up only sometimes, but it is also shifted to the right.
I'm waiting to see how you will solve these problems 🙂
Maybe it needs a spinning shutter, much like a film projector.
when annealing Aluminium , rub on some soap , temperature is correct when the soap turns black
Did tape readers always feed in tape horizontally or were they designed to feed in tape top to bottom vertically? In my simple mind I’d have thought the latter as the tapes own weight would keep it more stable compared to horizontally where the tape could move up and down causing alignment issues. This might not matter on the larger holes but perhaps on the small one it could?
Clock - could you use 8 diodes to OR the data bits?
A single 0 would break your clock. You would need a clock recovery circuit that can handle occasional drops like that, but that is a different kind of problem…
This was actually my original plan, and is still my backup plan.
An instruction of X'00' is a NOP, so not having a clock pulse on that instruction wouldn't break anything. I was going to OR all of the data bits into an adjustable RC delay that went through a squaring amplifier to get our offset clock pulse. If I can't figure out what's causing issue with the clock pulse on the board, I may fall back to that plan and see how we get on.
Сигнал должен быть дискретным. Поэтому без стробоскопа нам не обойтись.