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
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.
Agreed. Keeping it stable would be a good thing. Perhaps adding a sprocket at the right height on each side would help stabilize the tape. You could potentially use the leading sprocket s to trigger a clock signal a different way.... or at least isolate it from the other bits. Holes in the sprocket could be made with same size as the tape holes , and mounting a photo diode over that wheel could measure clock away from the data. This way the tape could have leading clock pulses before the data starts, and have simpler circuitry. It does make the assembly more cumbersome overall though having to add in posts /bearing for sprockets, new mount for photo diode.. etc.
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 love thinking of electronics as an art. You're given a palette of basic component types and how you select their values and arrange them using both skill and imagination determines the final result. In a way, it's a lot like painting.
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 !!!
I"m not sure how much the length will matter at the low frequency he's running at, but you make a good point on that motor being an EMF generating nightmare, and shielding things is probably going to help a lot
Rather than add another comment, I'll just second this comment, especially re: EMI and optical apertures. For the optical apertures, the cheap, impatient engineer in me says black plastic pen tube or 1/4" irrigation riser tube, cut longitudinally to yield "crescent" extrusions, then drill small holes along it for each photodiode. Would be very low friction if it was polyethylene. The "period correct" engineer and artistic side of me is imagining black anodized aluminium, or blued steel baffle plate /w holes in it.
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.
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!
Grayt (😉), I was planning on making this comment unless someone else had already chipped in. I expected someone to be faster than me, and it is probably close to spamming in the Patreon comments. It is probably an ideal starting point, and then he can continue with modified Gray with e.g. double bit flips in a deterministic pattern (double flips in Gray code perhaps). (Edited for correct spelling of Gray’s name)
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.
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.
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.
@@UsagiElectric Maybe, just maybe, a sort of lens or diffuser could help the bit-to-bit and clock inconsistency issues? Light distribution will be uneven with the two bulbs, could be the clock track is in an unfavourable position in relation to the light sources.
@@UsagiElectric I still suggest to use an axial festoon bulb as a light source. If you align its single, straight filament with the slot, it should give very even light across all photodiodes.
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.
Yeah, but it's not. The dimensions are given in the video: the diameter of the data holes is 0.072 inch, and the diameter of the clock holes is 0.046 inch. So the surface of the data holes is 2.44 times larger than the surface of the clock holes.
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! 😀
"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.
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.
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.
@UsagiElectric The hodgepodge of dissimilar metals is aesthetically pleasing, but you should concern yourself with the dielectric effect where they contact each other, which will cause corrosion and degradation of material. Brass is nicely non-reactive, as any plumber can tell you, but put an insulating layer of plastic between others, a washer or some such (doesn't have to be very thick at all, just covering all contact surface area).
6:21 Pretty neat that the processor has that feature built in! A similar trick using multiplication as an algebraic 'AND' operation was used to prove that the Zuse Z3 (a relay-based floating point computer without jumps/branching) was technically turing-complete (even if it was never intended to be used that way)
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.
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.
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.
You can use shoulder bolts for the idler shafts. They have a very smooth precision surface followed by a small threaded end you can screw into the base...
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...)
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.
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!! 👍
Another way to do it is to use an actual sprocket wheel to pull the tape through, and use that to generate the sync pulses. If you want to stay optical, just add a chopper disk to the end of the sprocket wheel shaft, that way the holes can be as large as you need for a good signal without any biasing carry on. Also doing it this was you can easily offset that chopper disk so the clock pulses can be made a touch earlier, or later as required.
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.
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.
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.
@ 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.
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?
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.🤔
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
May be a tape with gray code on it would help with initial testing as then you should only expect a single bit to change with each step. The sequence can start at 0 go up to 255 and back down again, so that when looped the sequence won't have a multi-bit change at the loop join. Once you are confident the reader is able to accurately detect single bit changes, then move onto a normal binary sequence.
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.
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.
The problem with that is you have to wait for 128 clocks to see a transition on the MSB. As others have suggested, grey coding would work better as you can order it such that you only ever have to wait a maximum of 8 clocks to see a bit transition.
@@merseyviking True, didn't think of the slow speed. But it could be counting nibbles then, so only counting 0-15 on both nibbles, you would see a bit transition after 8 clocks then too.
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
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...
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.
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.
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
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.
Something I noticed (because I was looking for it) is that it looks like the leads for the topmost photodiode are shorted together (edit: Around 16:57). You probably should have put a bit of plastic spaghetti tubing over one lead of each photodiode to ensure they couldn't short together (the same lead, either positive or negative, for each photodiode).
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.
A useful tool here would be a logic analyzer, which does basically the same job as the scope in this situation but records everything over time so you can go back and look at it in detail. You can probably get a useful approximation of this by taking a longer one-shot sample with the scope and exporting that data either via USB cable to a PC or USB drive to a csv file. The longer the sample time the lower the data resolution, though, so you'll start to lose the shape of the waveforms. A logic analyzer would be able to do at least 8 channels at once though, vs. just two for the scope.
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.
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.
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.
Maybe an optical fibre could be used as a light guide to direct more light to the smaller clock holes. No idea how you'd mount it without casting shadows on everything else unless 9 fibres were used and directed at each hole. Testing with an extremely bright light might help to see if brightness is a problem for the clock pulse and some alternate solution is needed.
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.
I've watched a lot of 'tech' sort of videos, but this is the first time I've watched somebody casually debug a modern (as in 'still supported by the manufacturer') machine as a side quest on their way to do something entirely different.
I don't understand how there can be wide data pulses (19:44), every hole gives a pulse, but al (data) holes are the same size, there are no stretched holes. where do the wide pulses come from?
Wide high pulses are from tape slip. My tension adjustment is set to be very loose right now because the tape reader will ultimately be rotated 90-degrees. Once I get it mounted properly, I'll set the tension on the capstan correctly which should eliminate any slippage and remove those wide data pulses.
@@UsagiElectric ah, that makes sense! ;-) Years ago I have played myself with a tape punch and reader on a teletype I got from my dads work. fascinating mechanics! In technical school I build an interface for my TI99/4A so I could use the teletype as a printer or create text banners. insane noise levels 🙂
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 might of been mentioned already, but you need an aperture for your light source to define the light to the photo diodes, as for the clock may be slow the tape speed down, the photo diode hysteresis is not fast enough (the switching time)
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.
I'm always amazed with pre-silicon computers, how they get the idea to prototyping and production must be extremely difficult yet gratifying. Your happiness is radiating through my screen lol. Can't wait to see the finished machine. Are there any period correct audio generation using paper tape? Playing Bad Apple will surely boost your viewship.
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?
Could you have the clock diode on a different lamp in a separate "stack".. it doesn't need to be in line with the others, you could also tweak the left/right alignment just a touch which might help with timing. This way you could also give it it's own light source thats more aligned and more intense without bothering the other 8 data bits
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.
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)
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
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.
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
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.
Agreed. Keeping it stable would be a good thing. Perhaps adding a sprocket at the right height on each side would help stabilize the tape. You could potentially use the leading sprocket s to trigger a clock signal a different way.... or at least isolate it from the other bits. Holes in the sprocket could be made with same size as the tape holes , and mounting a photo diode over that wheel could measure clock away from the data. This way the tape could have leading clock pulses before the data starts, and have simpler circuitry. It does make the assembly more cumbersome overall though having to add in posts /bearing for sprockets, new mount for photo diode.. etc.
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 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!
I love thinking of electronics as an art. You're given a palette of basic component types and how you select their values and arrange them using both skill and imagination determines the final result. In a way, it's a lot like painting.
@@UsagiElectricdoes this mean you are a fan of firearms? 😊
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 !!!
I"m not sure how much the length will matter at the low frequency he's running at, but you make a good point on that motor being an EMF generating nightmare, and shielding things is probably going to help a lot
Rather than add another comment, I'll just second this comment, especially re: EMI and optical apertures.
For the optical apertures, the cheap, impatient engineer in me says black plastic pen tube or 1/4" irrigation riser tube, cut longitudinally to yield "crescent" extrusions, then drill small holes along it for each photodiode. Would be very low friction if it was polyethylene. The "period correct" engineer and artistic side of me is imagining black anodized aluminium, or blued steel baffle plate /w holes in it.
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.
This machine is amazing! Will you post any more videos regarding these types of Machines?
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!
That's a great idea, it would be more human friendly than a test tape I was thinking about and would accomplish the same goal.
Grayt (😉), I was planning on making this comment unless someone else had already chipped in. I expected someone to be faster than me, and it is probably close to spamming in the Patreon comments.
It is probably an ideal starting point, and then he can continue with modified Gray with e.g. double bit flips in a deterministic pattern (double flips in Gray code perhaps).
(Edited for correct spelling of Gray’s name)
The patent was filed 1953 by Frank Gray. Hence it's named Gray-Code, not grey. Just for the record.
@ yes, I was uncertain. Thanks for the confirmation.
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.
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.
@@cerberes Thanks! That was from the tape fragment at 21:19
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!!
not fair this episode went by way to fast. I want more. lol sorry I was too entertained :) thank you for that.
Love it! Can't wait to see both of these computers running.
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.
@@UsagiElectric Maybe, just maybe, a sort of lens or diffuser could help the bit-to-bit and clock inconsistency issues? Light distribution will be uneven with the two bulbs, could be the clock track is in an unfavourable position in relation to the light sources.
@@UsagiElectric I still suggest to use an axial festoon bulb as a light source. If you align its single, straight filament with the slot, it should give very even light across all photodiodes.
Yay! My Usagi Electric T shirt finally arrived today!! Looks great!
Heck yeah, awesome!
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.
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.
Yeah, but it's not. The dimensions are given in the video: the diameter of the data holes is 0.072 inch, and the diameter of the clock holes is 0.046 inch.
So the surface of the data holes is 2.44 times larger than the surface of the clock holes.
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! 😀
Genius 🎉 greetings from Switzerland.
"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.
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.
That's what is known as a kitty kiss. It's a sign of absolute trust.
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.
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.
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.
@UsagiElectric The hodgepodge of dissimilar metals is aesthetically pleasing, but you should concern yourself with the dielectric effect where they contact each other, which will cause corrosion and degradation of material. Brass is nicely non-reactive, as any plumber can tell you, but put an insulating layer of plastic between others, a washer or some such (doesn't have to be very thick at all, just covering all contact surface area).
6:21 Pretty neat that the processor has that feature built in! A similar trick using multiplication as an algebraic 'AND' operation was used to prove that the Zuse Z3 (a relay-based floating point computer without jumps/branching) was technically turing-complete (even if it was never intended to be used that way)
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.
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 cannot describe how happy I am for nothing but vacuum tube computers until the new year!!
This is a very nice episode, where we get to see a lot of your tools and machines!
great work! consider backing the washers that serve as guide tops with teflon tape
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.
You can use shoulder bolts for the idler shafts. They have a very smooth precision surface followed by a small threaded end you can screw into the base...
Nice progress can't wait for the next video. Thank for the video.
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.
I love that RS232 predates (at least some) tape punching machines.
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...)
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.
21:34 Used to use 0xaa and 0x55 alternating to give a nice square wave at the clock rate on the data bits...
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.
11:46 it's the G-code equivalent of an interrupting cow… "It's a FEATUR~~M00"
Another way to do it is to use an actual sprocket wheel to pull the tape through, and use that to generate the sync pulses.
If you want to stay optical, just add a chopper disk to the end of the sprocket wheel shaft, that way the holes can be as large as you need for a good signal without any biasing carry on. Also doing it this was you can easily offset that chopper disk so the clock pulses can be made a touch earlier, or later as required.
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.
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.
Amazing work!! Thanks for sharing- CC
Very interesting. Great video again!
You've Blinded Me With Science
Read up on Colossus... the holes had problems in that they were never cut for reading... there could be fibers etc causing problems.
Excellent vid. Thanks.
"We got signals, we got readings!"
I would consider a diffuser between those two bulbs and the tape, also a shiny aluminium case around the bulbs might even out the illumination.
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.
@ 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.
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.
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.🤔
Don't ever sell yourself short on your knowledge. You just built a paper tape reader and circuit from scratch. That's no mean feat.
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
May be a tape with gray code on it would help with initial testing as then you should only expect a single bit to change with each step. The sequence can start at 0 go up to 255 and back down again, so that when looped the sequence won't have a multi-bit change at the loop join. Once you are confident the reader is able to accurately detect single bit changes, then move onto a normal binary sequence.
15:35 gloves and rotating machinery 0.0
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.
Great episode! Let's dig into paper tape computing!
Shifting ones ore zeros will look great on the scope.
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.
The problem with that is you have to wait for 128 clocks to see a transition on the MSB. As others have suggested, grey coding would work better as you can order it such that you only ever have to wait a maximum of 8 clocks to see a bit transition.
@@merseyviking True, didn't think of the slow speed. But it could be counting nibbles then, so only counting 0-15 on both nibbles, you would see a bit transition after 8 clocks then too.
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
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...
Loving the progress on this
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.
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.
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.
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
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.
Something I noticed (because I was looking for it) is that it looks like the leads for the topmost photodiode are shorted together (edit: Around 16:57). You probably should have put a bit of plastic spaghetti tubing over one lead of each photodiode to ensure they couldn't short together (the same lead, either positive or negative, for each photodiode).
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.
A useful tool here would be a logic analyzer, which does basically the same job as the scope in this situation but records everything over time so you can go back and look at it in detail. You can probably get a useful approximation of this by taking a longer one-shot sample with the scope and exporting that data either via USB cable to a PC or USB drive to a csv file. The longer the sample time the lower the data resolution, though, so you'll start to lose the shape of the waveforms. A logic analyzer would be able to do at least 8 channels at once though, vs. just two for the scope.
Can I think of another channel that I always watch right away when I see the notification?
Urm...
Wow! This channel just turned "full-awesome". We're gonna stay vacuum tube tech through the rest of the year?! Nice!
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.
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.
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.
Number 47 bulbs and the bracket they are in... PINBALL!!!!!
Maybe an optical fibre could be used as a light guide to direct more light to the smaller clock holes. No idea how you'd mount it without casting shadows on everything else unless 9 fibres were used and directed at each hole. Testing with an extremely bright light might help to see if brightness is a problem for the clock pulse and some alternate solution is needed.
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.
I've watched a lot of 'tech' sort of videos, but this is the first time I've watched somebody casually debug a modern (as in 'still supported by the manufacturer') machine as a side quest on their way to do something entirely different.
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.
Nice steampunk tape reader!
I don't understand how there can be wide data pulses (19:44), every hole gives a pulse, but al (data) holes are the same size, there are no stretched holes. where do the wide pulses come from?
Wide high pulses are from tape slip. My tension adjustment is set to be very loose right now because the tape reader will ultimately be rotated 90-degrees. Once I get it mounted properly, I'll set the tension on the capstan correctly which should eliminate any slippage and remove those wide data pulses.
@@UsagiElectric ah, that makes sense! ;-) Years ago I have played myself with a tape punch and reader on a teletype I got from my dads work. fascinating mechanics! In technical school I build an interface for my TI99/4A so I could use the teletype as a printer or create text banners. insane noise levels 🙂
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 might of been mentioned already, but you need an aperture for your light source to define the light to the photo diodes, as for the clock may be slow the tape speed down, the photo diode hysteresis is not fast enough (the switching time)
You could try a bit sequence in gray code, the difference between each byte would be one bit, easier to spot errors
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.
I'm always amazed with pre-silicon computers, how they get the idea to prototyping and production must be extremely difficult yet gratifying. Your happiness is radiating through my screen lol. Can't wait to see the finished machine. Are there any period correct audio generation using paper tape? Playing Bad Apple will surely boost your viewship.
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?
Could you have the clock diode on a different lamp in a separate "stack".. it doesn't need to be in line with the others, you could also tweak the left/right alignment just a touch which might help with timing. This way you could also give it it's own light source thats more aligned and more intense without bothering the other 8 data bits
Maybe add a diffuser between the bulbs and tape. Is LED0 at the edge? Not enough light?, shadow from filament? Just ideas.
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.
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)
the punch sounds like another project, what you don't want to start before these 2 are done :p
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
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.