close-circle
Close
0%
0%

The Diode Clock

A digital clock built with Diode-Diode Logic (DDL), a quirky new logic family using only common diodes and passive components.

Similar projects worth following
close
The Diode Clock is the first large-scale test of DDL, a universal digital logic family using only 1N4148 and 1N4007 diodes as switching elements. While simple AND/OR gates have long been constructed using diodes, and exotic tunnel diodes have previously been used for arbitrary logic, DDL uses only common diodes. The clock is built using (46) DDL01 Hex NOR boards, comprising over 8,000 discrete components. It is the latest step in a 30 year quest to construct a computer using only diodes.

DDL has evolved over several generations to the point where complex digital logic systems are possible. In this project, I'll explain the idea behind DDL logic and release open-source designs for the circuits and PCBs suitable for building your own clock (or a diode-only computer), as well as a simple demo circuit you can quickly build to experiment with this idea.

The Clock

The clock is a six-digit HH:MM:SS timepiece using only DDL gates (1N4148/1N4007 diodes) for the logic and display functions (the LEDs are also diodes, of course). The power supplies and currently the crystal-oscillator timebase use more traditional circuits, including transistors and ICs. You can see the clock working in this brief video:

IMPORTANT: I've added a Builder's Notes log section for details and errata about the project for those experimenting with DDL or building their own clock. Please read before you begin.

Diode-Diode Logic (DDL)

DDL is an idea for building complex logic systems, like digital clocks or computers, using only solid-state diodes as switching elements. In the current version of DDL, a 1N4007 diode forms an inverter by switching radio-frequency current based on logic-level signals. Combined with a 1N4148-based OR gate, this makes a NOR, from which any combinational or sequential logic function can be constructed. Modular circuit boards have been designed and proven, so that working with DDL can be (almost) as easy as using TTL or CMOS logic. Just grab the DDL01 datasheet and start designing!

If you want to build something now, check out the simple demo circuit. You probably have the parts sitting on your workbench.

Like building contemporary logic circuits from individual TTL gates, discrete transistors, or relays, DDL is at its heart a perverse technological pursuit: an artificial challenge in an age of effortless gadgetry. So, have fun with it...

Goals

The ultimate goal of DDL is to build a simple computer using only diodes as logic elements.

The Diode Clock project is a first large-scale test to see if the idea scales to "real" systems. It does. 276 diode NOR gates are combined to make the clock, providing reasonable proof that a simple computer could be assembled. The reality is that a clock built with DDL is more useful than a computer that could practically be built with the current iteration of the "technology."

We live in the transistor-computer age. At some point, our current computing technology will join the vacuum tube, the electro-mechanical, and the mechanical computing devices in the technological trash bin. DDL isn't the next computing technology (I can assure you of that), but it's time to start thinking about what will be.

DDL Devices

I've designed several PCBs enabling any digital logic circuit to be constructed using diode logic. These are all released under the CC-BY-SA license. After I've finished documenting it all, I'll release everything in one central GitHub repository. For now, grab files here:

I'll be adding documentation and design files for these boards over the next few weeks. Look for updates in the project log.

Background

When I was a kid, my parents bought...

Read more »

Adobe Portable Document Format - 12.79 kB - 06/05/2016 at 03:27

eye
Preview
download-circle
Download

ddl04_design_files.zip

Design files for the DDL04 Spread Spectrum Exciter

x-zip - 492.95 kB - 05/26/2016 at 12:46

download-circle
Download

ddl04_schematic.pdf

Simplified schematic for DDL04 Spread Spectrum Exciter

Adobe Portable Document Format - 19.15 kB - 05/26/2016 at 03:36

eye
Preview
download-circle
Download

display_board_design_files.zip

Eagle design files for display board

x-zip - 273.68 kB - 05/25/2016 at 17:12

download-circle
Download

ddl02_design_files.zip

Eagle design files for the DDL02 power supply

x-zip - 345.36 kB - 05/23/2016 at 03:56

download-circle
Download

View all 16 files

  • 1818 × 1N4148 Diode I used Fairchild parts; any manufacturer will work.
  • 552 × 1N4007 Diode Again, used Fairchild parts. If using a different manufacturer, make sure they function as PIN diodes.
  • 1656 × 10nF Capacitor
  • 552 × 47uH Inductor
  • 234 × 640nm Red 5mm LEDs 640nm LEDs have a very low Vf, which reduces loading on gate outputs

View all 13 components

  • Testing Methodology for Substitute Components

    Ted Yapo07/30/2016 at 21:34 0 comments

    I haven't posted a log on this project for a while. Since last time, this project was selected as a semi-finalist in the Hackaday Prize 2016. I was really blown away to see this. Seriously, this project consumed my thoughts and my life for a long time, and it's awesome to have it recognized in this way. Thanks to all the decision makers for their consideration!

    Substituting Components

    There are a few component substitutions I need to test. First, the original inductors on the DDL01 boards are no longer in production - in fact, no inductors in that package seem not to be made in 2016! I found some possible replacements, but before I re-spin the tightly-packed board, I figured I should test them out with the existing PCB. I had to order some more boards for this. and they're arriving tomorrow, so it's time to prepare for the tests.

    The second substitutions are for the 1N4007 diodes. RF PIN diode switching is an "off-label" usage for the 1N4007, marketed as a rectifier diode, so the performance isn't guaranteed by the manufacturers' specifications. The first ones I tested worked, and I stuck with that manufacturer (Fairchild). I now have samples of 1N4007's from all the manufacturers I could find, and I'm going to see if they perform just as well (or better) than the original parts.

    Finally, I'm going to test substitutions for the ferrite cores used in the DDL02 power supply. I remember being intimidated by the prospect of winding magnetics like this when I first started with RF circuits, and would like to run some quantitative tests to show that the inductors and cores used here aren't particularly critical (apart from getting the wires connected correctly). Hopefully, I can allay any apprehension prospective builders might have about these components and the power supplies.

    I'll have to wait for the DDL01 boards to arrive to test the new components, but I can outline the testing methodology and run some baselines with the original components in the interim.

    DDL01 Testing

    I came up with a few ways to test the performance of the DDL01 gates. Here's a brief overview:

    Eye Diagrams

    The first test is designed to examine the performance of a single DDL gate. One of the difficulties in this test is creating a "DDL" input waveform to drive the device-under-test. Around the lab I have either 50-ohm signal generators or 5V CMOS outputs, neither of which is a good approximation of a DDL output. My solution is to use a chain of DDL01 inverters to condition the signal before input to the D.U.T. Of course, now you're testing the whole chain, but major differences in performance of the D.U.T. due to component substitutions should be detectable.

    Here's the test circuit. I use a DDS generator to make an accurately adjustable clock driving the CLKin pin on a PIC 16F723A. I had a handful of "breakout boards" made for this part since I've used it in a few projects and have a partial tube of them left over. The PIC is programmed with a simple 9-bit linear feedback shift register producing a 512-bit pseudo-random bit stream. The inner loop of the assembly code is 12 cycles long; combined with the CLK/4 oscillator divider, this results in a 1/48 clock division. Not great for high-speed work, but perfectly adequate here. One of the PORTB pins outputs the pseudo-noise sequence while another outputs a synchronized clock for triggering the scope.

    In case anyone's interested, here's the simple PIC assembly. It uses the carry bit in the status register as part of the 9-bit shift register since the RRF instruction rotates through the carry - an easy way to double the length of the sequence without introducing more instructions.

    ;;;
    ;;; PIC16F723A LFSR pseudo-random bitstream generator
    ;;;  using 9-bit LFSR (regsiter + carry bit)
    ;;;   with polynomial x^9 + x^5 + 1
    ;;; 
        LIST        P=16F723A
    #include    <p16f723a.inc>
        errorlevel -305			;suppress warnings about default file dest
        errorlevel -302			;suppress warnings about operand not in bank 0
        errorlevel -227 ;suppress warnings...
    Read more »

  • Control Panel

    Ted Yapo06/05/2016 at 00:02 0 comments

    As Seen on Hackaday

    I was honored to see this project on Hackaday this past week! Thanks goes out to @Benchoff and all the fine people there for the attention and kind words.

    One of the more interesting things to come out of the ensuing discussion was the "discovery" that tunnel diodes had been formed into a complete logic family in the early 1960s. I took some time to go over the patent (something I normally never do; treble damages suck), and it's pretty interesting stuff. It certainly puts to rest any debate over whether complete logic has been done with diodes before (I changed the project description to reflect this).

    I was aware (from Wikipedia) that tunnel diodes had been researched for diode logic applications, but hadn't seen that they formed a complete logic family. Tunnel diodes (aka Esaki diodes) show a negative resistance region (like some other diodes used as microwave oscillators). This negative resistance region makes them useful as amplifiers, and especially bistable elements. The patent cited above uses tunnel diodes that get switched into latched states by input pulses, forming the logic gate. They also require a reset pulse before they can compute again - it's kind of like a built-in latch on the gate output. Antique tunnel diodes are available on ebay - I ordered a few to play with here, but they're expensive and pretty exotic. The kind of diode you aren't surprised you can build computers from :-)

    In other news, I've created a new project for anyone interested in experimenting with "active" diode circuits. Check out #Diodes Only.

    Control Panel

    Here's the control panel for the clock:

    I think it came out nice (except for the messy threadlock compound that smeared on the panel), but actually represents the biggest blunder I made with the design. See if you can figure out why from the schematic:

    (here's a PDF version). The idea is to be able to isolate each digit counter with triple-throw switches on the input and output pulses, then increment a selected digit with a momentary toggle. With logic this slow, there's no need for switch debouncing, right? Turns out this was a bad assumption. During testing, things seemed to work OK, but as it was all put together, an "audience detector" somehow got incorporated. The clock becomes impossible to set if anyone is watching me do it - the switches start to bounce, and getting a digit set correctly can be frustrating. I always manage to get it to work after a few minutes fiddling, but it really bothers me.

    As a result, I'm designing a new panel, using thumbwheel switches, like these:

    I love thumbwheels. They have a wonderful retro charm like Nixie tubes. The idea for the panel is simple - you dial the desired HH:MM:SS into the switches, then press a "set" button. The clock resets to midnight, then races forward at 3kHz seconds until it hits your appointed time. I'm considering two implementations. In the simplest, the PIC microprocessor in the timebase reads the switches and generates the reset signal and the correct number of 3kHz clocks to set the time. The advantage with this method is that the PIC can compensate for the elapsed time required to advance to the desired setting. If you're setting it to 12 noon, it's actually 12:00:14 by the time you get there, so you want to go past the set time a little to compensate. This is easy to implement on a micro. The second option is to do it all with diodes, where such automatic compensation would probably be impossible withoud adding more gates to the clock. Of course, you could require the user to pre-compensate the time before setting, which would make it a bit of a puzzle to set. I haven't decided which way to go yet.

    Making Nice Panels

    I use a process for panel labels that I learned from the website of Neil Heckt, who was the owner of Almost All Digital Electronics. In preparing this update, I was sad to learn that Neil passed away in 2015. I've used one of his L/C Meter IIB units for many years, and throughout the development of...

    Read more »

  • End to End Power Supply Tests

    Ted Yapo06/03/2016 at 21:03 0 comments

    Why Bother?

    You might wonder why I'd bother spending so much time worrying about EMI from the clock. There are basically two reasons. First, I want to be a good RF citizen. In my astrophotography hobby, I'm constantly battling light pollution, so I understand the impact of unwanted photons. I'm slightly less involved with amateur radio, but I've seen the problems of RF noise there, too.

    The other reason for concern is that I would like to stay out of trouble with the authorities. In the US, the FCC enforces rules concerning EMI. I believe 47 CFR 15.23 covers this situation:

    § 15.23 Home-built devices.

    (a) Equipment authorization is not required for devices that are not marketed, are not constructed from a kit, and are built in quantities of five or less for personal use.

    (b) It is recognized that the individual builder of home-built equipment may not possess the means to perform the measurements for determining compliance with the regulations. In this case, the builder is expected to employ good engineering practices to meet the specified technical standards to the greatest extent practicable. The provisions of § 15.5 apply to this equipment.

    The 15.5 section they refer to basically says that you can't operate your device if it causes harmful interference, or if the FCC notifies you that you must cease. I won't ask anyone to comment on whether I observe "good engineering practices" :-)

    Test Results

    I finally had some time to collect some data on the power supply end-to-end. For all these measurements, I used a stack of seven DDL01's (various 2.x versions) and a DDL02 power supply, shown below. All measurements were taken between the Vrf and ground connections, i.e., the standoffs in the upper right. In each case, measurements were taken at three points along the stack: at the power supply board, after the fourth board, and after the seventh (including standoffs protruding from the back of the last board).

    3 MHz Clock, Time Domain

    Here's the output in the time domain. At the power supply end, we can clearly see the VHF ringing as was seen driving the resistive dummy load. Interestingly, though, the ringing is diminished substantially as we move along the stack. By the seventh board, it is all but gone.

    At DDL02 Supply After Fourth board At End of Stack

    This puzzled me for a while: intuitively, I thought the inductance of the standoffs should be low enough so that the supply would be essentially unchanged by a reasonably long stack of boards. The problem is that my intuition has been shaped by years of playing in the 50-ohm world; things are very different here in the milliohm region.

    Allow me some "spherical cow" calculations. Let's treat the Vrf and ground standoffs as a short parallel transmission line, which is nicely modeled as an inductance. The standoffs are 5mm diameter (hexagonal, but assume round), 11mm long, and 19mm apart. A web calculator estimates the inductance of these parallel lines as about 8.9nH. At 3 MHz, this yields an impedance of 0.17 ohms, which would indeed be negligible in a 50-ohm system, but is really significant compared to the 0.13 ohm output impedance of the DDL02.

    In case the cow wasn't quite spherical enough, let's further model each DDL02 board as a single 120 nF capacitor in series with a 22 ohm resistor (there are six gates on the board, each with a 10nF capacitor to a each of a 330 and 220 ohm resistor - it's a very rough model, and ignores any "off" diodes and the board layout entirely). Assuming this, we can model the stack of boards as a multi-section RLC filter. For convenience, I've lumped all the inductance into one inductor at each stage - the reality is a bit more complicated. Here's the over-over-simplified LTspice model:

    and the associated Bode plot:

    It turns out that using standoffs for bussing RF to the boards has formed a nice low-pass filter, reducing the harmonics most likely to be radiated from a structure this...

    Read more »

  • DDL04 Spread Spectrum Exciter [Part 2]

    Ted Yapo05/26/2016 at 01:45 0 comments

      Time Domain

      To verify the operation of the DDL04, I first looked at the signals in the time domain:

      The traces are as follows:

      1. (yellow) : 6MHz clock input
      2. (cyan): Divider output (set to "2")
      3. (magenta): LFSR output (pseudo-noise bit stream)
      4. (blue): Spread-spectrum output

      Everything seems reasonable here. The bandwidth divisior is set to 2, so the divisor output is the base clock / 4 (there's always a fixed 2x divisor). The pseudo-noise looks pseudo-noisy, and the output certainly looks modulated by it, but the time domain isn't the best place to analyze the output signal.

      Frequency Domain

      To examine the signals in the frequency domian, the output was connected to a spectrum analyzer through a 20dB external attenuator. Just in case. Nothing ruins your week like blowing the first mixer in your SA (trust me). At least this one beeps when it's over-driven.

      In the image below, the yellow trace is the non-spread signal (fundamental at 3MHz). The approximately -60 dBm sidebands at +/- 1 MHz are spurs from the DDS generator I used to drive the board at 6 MHz. The magenta trace is the output of the board spread with a 2-divider (+/- 1.5MHz at first zeros). Seems like it's working.

      There's an important note about this kind of comparison. It would be tempting to compare the peaks at 3 MHz and conclude that the spreading has reduced possible interference by about 15 dB. While this kind of analysis works for narrow-band signals, noise (even pseudo-noise) is a different animal. The measured amplitude of a noise signal depends on the measurement bandwidth: in these plots, the analyzer has been set to a resolution bandwidth of 1 kHz. Measuring using a wider bandwidth will move the magenta curve upward; a narrower bandwidth will move it down. Likewise, in a receiver, the amount of interference received will depend on the reception bandwidth.

      Another point of interest. Although the curve appears continuous, it is actually composed of 32767 individual spikes, in this case spaced at 1.5 MHz / 32767 = 45.8 Hz. The narrowest RBW on this particular analyzer is 100 Hz, so it can't resolve these spikes.

      Here's the same image with the divider set to 3 (3 +/- 1 MHz inside the central lobe). This is the setting that seems to work best with the clock as-built. I would have liked to use the widest bandwidth setting, but the DDL gates don't perform as well with the lower-frequency energy in that signal. I suspect the ideal approach is to use maybe a 9 MHz clock with the 2-divisor, yielding a 4.5 +/- 2.25 main lobe, but I haven't had time to do an in-depth analysis.

      For completeness, here's the output with the divisor cranked all the way to 10 (yes, I did think about having it go to 11, but it's not easy using a '4017). This is a pretty narrow bandwidth, and is probably only useful for diode gates using tuned circuits, quarter-wave lines, or other narrow-band structures.

      Finally, a quick look further up the spectrum (here to 100 MHz) shows what we'd expect - the fast edge rates on the 74AC244 contain strong harmonics into the VHF region. Of course, at the output of the the board, this signal is still just logic-level (and inside coax) so there's not too much concern. Additionally, filtering it here would be pointless; the DDL02 will just restore the hard edges and the corresponding harmonics (it is by no means a linear amplifier). In the sequel, I'll measure the power supply system end-to-end.

      Next: Puzzling measurements and 4-40 threaded standoffs as inductors.

  • DDL04 Spread Spectrum Exciter [Part 1]

    Ted Yapo05/25/2016 at 03:39 1 comment

    Design

    The diode clock uses four radio-frequency power supplies. To reduce emissions, they are driven with a spread-spectrum signal produced by the DDL04. The spectrum of this signal is tuned to give good performance with DDL V2.x logic boards. Here's a simplified schematic (5V power supply components omitted):

    Since it's an eye chart on this page, here's a pdf version.

    The goal is to provide a spread-spectrum clock with a selectable spreading width around an input clock source. To do this, a variable divider clocks a 15-stage linear-feedback shift register (LFSR) producing a pseudo-random bit stream. This bit stream then modulates the original clock signal to spread the spectrum, which is output through coax to the four DDL02 power supply boards. Two opposing clock phases are produced by the board, so that adjacent DDL stacks can be clocked 180-degrees out of phase, (theoretically) reducing RF emissions.

    The system is clocked by a standard oscillator "can", nominally 6 MHz, although something around 9 or 10 MHz might be a better choice for DDL V2.x - more on that later. A 74AC74 flip-flop divides the crystal frequency by two. A 74HC4017 decade counter combined with dip switches and a diode-OR gate allow a programmable divisor between 1 and 10, effectively setting the clock spreading width. A 15-stage LFSR constructed from a pair of 74HC164s produces a pseudo-noise bit stream based on the output of the '4017. Although the shift-register is long enough for a 16-bit LFSR, an extra XOR gate package would be required on this board to implement the feedback. The 15-stage LFSR outputs a stream of (2^15 - 1) = 32767 pseudo-random bits before repeating.

    The output of the LFSR is used to selectively invert the original clock signal in another XOR gate, effectively modulating it by the LFSR's spectrum. The net result is a spreading width that is an integral divisor of the original clock frequency. The remaining 74AC74 flip-flop is used to synchronize the modulated clock, preventing runt pulses which wouldn't make it through the DDL02 power supplies.

    The output driver is a 74AC244, with each 50-ohm jack driven by two gates. 74AC logic has symmetrical output impedance of around 12 ohms. An 86.6 ohm resistor in series with each output raises this to approximately 100 ohms, and two such outputs paralleled provide a good match to 50-ohm cable and enough current to drive it.

    LFSR Watchdog

    The combination of D5/C7/R6 deserves a quick mention. It functions as a crude "LFSR watchdog", re-starting the LFSR should it ever become "stuck." The LFSR has only one forbidden state: a register full of zeros will remain full of zeros. Unfortunately, that's exactly the state that the /CLR line puts the 74HC164 into, and being a serial-in, parallel-out register, there's no way to jam some initial state in "from the side." Using a power-on reset would require clocking in some non-zero initial state. The LFSR watchdog implemented here takes a different approach, sampling the bits as they move through the register. As long as there are some ones shifting though, D5 keeps C7 charged, and the associated Schmitt-trigger inverter output low. Should a long-enough string of zeros occur, C7 will discharge through R6, the inverter will flip and start inverting the feedback to the register, pumping in ones to restore a valid state. As soon as the ones start circulating again, C7 gets charged back up, and the feedback polarity is restored. Since the LFSR can output at most 14 consecutive zeros in normal operation, the RC time constant is easily chosen to avoid false-triggering, but quickly detect a stuck state.

    Substituting Parts

    Because of the low speeds involved here, I used 74HC and 74AC parts interchangeably. The notable exception is the 74AC244, which is used to drive four 50-ohm coax lines. An HC can't handle the currents involved, so don't substitute. All the parts except the 74HC4017 are also made in a 74AC version, so if another dividing mechanism is used (like a 4-bit...

    Read more »

  • Clock Display Boards

    Ted Yapo05/25/2016 at 03:15 0 comments

    The clock face is made from three identical boards, shown here bolted to their aluminum mounting rails. The two rightmost boards have their colon LEDs populated, while the two outer boards have the bottom backlit logo painted over (quite poorly, I might add).

    Here's a close-up. The board on the right was rejected because I soldered the displays on crooked. Tape them in place before soldering - a little folded paper in between can help keep the spacing uniform.

    The "resistors" on the board are zero-ohm - when I designed the board, I wasn't sure if they'd be needed or not. As it turns out, the maximum output current of the DDL drivers (approx. 9mA) doesn't require any resistors. The unpopulated resistor sites on the bottom of the board are for the colon LEDs. When I assembled the board, I wasn't sure what values would be required to match the brightness of the colons to the displays. I determined this experimentally after the clock was up and running, and spliced resistors into wires running from the timebase 5V supply to the colon LEDs.

    Header pins extend from the back of the board (soldered on the top side, directly above and below the displays).

    Design Files

    Gerbers are shared on OSH Park, and purple boards can be ordered there.

    Eagle design files are here on hackaday.io.

    BOM

    Each display board requires the following parts:

    Don't substitute the 7-segment displays unless you verify proper operation with your intended part. These displays are ultra-bright and efficient with a low forward voltage, so they can be driven easily by DDL gates. The efficiency of the colon LEDs is less of an issue, since they're lit by the 5V rail, but these particular ones are color-matched to the displays. The colon LEDs are mounted with small standoffs to match the height of the displays. I cut some pieces of tiny copper tubing to slip over the leads as spacers, but anything similar would work.

    Next: DDL04 Spread Spectrum Exciter (and EMI tamer, hopefully)


  • DDL02 Power Supply [Part 2]

    Ted Yapo05/22/2016 at 16:39 0 comments

    DDL02 V7.1

    See Part 1 of this log for details of the power supply circuit.

    Gerbers

    I started sharing the DDL02 V7.1 gerbers on OSH Park. V7.1 has an updated silkscreen and schematic with designators that match the other design files. In addition, designators are now on the silkscreen, so you know what to put where. After doing my own projects for so long, I got in the bad habit of not labeling the components very well. I'm trying to reform. Electrically, the board is identical to the V7.0 version I used on the clock.

    Here's a render of the new version that I made using my in-house pre-flight 3D gerber previewer. This previewer software is on my list of things to open-source:

    BOM

    In the same spirit, I've created a detailed BOM for the DDL02. It's a google docs spreadsheet shared read-only (licensed CC-BY-SA). For some reason, formulas won't calculate for me - probably something to do with the privacy settings on my browser - so I couldn't make it quite as nice as I wanted. Once I get google docs working properly, I can revisit. I'd welcome any feedback on the BOM - I intend to make similar ones for the other boards, and would like to improve as I go.

    There is one item on the BOM I'm not certain of yet. I wound the original transformers on Fair-Rite 2643002402 beads, and listed here the Laird 35T0501-10H instead so builders could order from one distributor. I haven't tested transformers on the Laird cores yet, but I'm waiting for some now, and will post an update once I have. The transformer windings should be bifilar (T2) and trifilar (T1) wound to reduce leakage inductance - you can find good tutorials on the web if you haven't wound one before. It's easy and rewarding: not too often do you get to make your own components.

    Try not to substitute capacitors with lower voltage ratings. You might think that 50V caps in a 12V circuit are unnecessary, but ceramic caps have a nasty habit of exhibiting reduced capacitance as the voltage across them increases. If you substitute 16V caps instead, you may find a chunk of your capacitance has disappeared.

    Q1 and Q2 must have their tabs isolated from the ground plane on the PCB beneath them. Here's the heatsink assembly as I built it:

    4-40 (or M3) hardware fits.

    Design files

    The Eagle design files are shared on hackaday.io.

    Testing

    OK, you built your first DDL02. Congratulations! Now, how do you know it works?

    Here's what I did. I happened to have a bag of surplus 1.8 ohm 2W metal oxide resistors: 1.8 ohms is in the correct range to verify proper operation of the power supply. Unfortunately, a 2W resistor dropped across this power supply wouldn't last very long - so I made a 1.8 ohm 32W resistor using 16 of them. You could also use carbon composition resistors for this, but avoid wire-wound resistors of any type - they have far too much parasitic inductance. I run the fan over the resistors for longer tests. You can also test the supply with a stack of DDL01's, if you have them around.

    For testing, I initially started the "12V" supply at around 7.5 (a little above the 7805's dropout), and watched the current draw carefully as I proceeded. If you have a current-limited lab supply, this is the time to use it. I drove the input with a 3MHz +7dBm source ("TTL" output from a signal generator will work well), and slowly increased the supply to 12V. Current draw for this load at 12V and 3MHz is around 0.7A . Using a 10x oscilloscope probe on a 100MHz scope, you see the following output:

    That ringing isn't bad probing - you see the same thing with a Z0-probe into a terminated scope input. Ringing like this is common with very fast MOSFET driver circuits (especially on through-hole PCBs - and on those designed by amateurs :-) The cause of and solutions to this problem are well-explained by Ti Applicaton Report SLPA010 "Reducing Ringing Techniques for NexFET High-Performance MOSFETS". There are two possible concerns here. First, the ringing excursions could exceed the Vds rating of the MOSFETS - in this case, the...

    Read more »

  • Builder's Notes

    Ted Yapo05/20/2016 at 12:58 0 comments

    IMPORTANT Info for DDL Builders

    I've spoken with several people who are building things with DDL. If you plan to do so, please check this log entry early and often: I'm going to use it as a rolling errata and notes section as issues with the design or documentation are discovered. Reading this before you begin (and as new notes are posted) may save you some time and/or frustration.

    Warning

    DDL is an experimental idea. It relies on an undocumented and non-guaranteed property of the 1N4007 diode. You're not "supposed" to be able to do logic like this with diodes, so don't expect it to be perfect, or even easy. DLL has lousy fan-out, soft thresholds, and anemic gain. Don't use it for anything other than curiosities.

    Also, start small. Build a board or two and play with them a bit before building enough for the whole clock (or whatever you are building). The gates can be connected temporarily (or semi-permanently) with 0.1" jumpers, sold cheaply everywhere. At the kHz frequencies the logic runs at, there is no performance penalty for long, messy wiring.

    Inductor Sourcing

    The original inductors designed-in on the DDL01 and demo board, Taiyo Yuden part number LAL02VD470K are no longer manufactured. Unfortunately, I don't think anyone still makes micro-miniature through-hole wound chokes with 0.1" (2.54mm) lead spacing in 2016. If you have already ordered boards, or soon will, you have several options:

    Got Boards?

    If you have already ordered boards, let me know, and I can probably send you some inductors from my stock, unless you need a ton of them.

    Want the Original?

    Some of the original parts seem to be available on ebay:

    There may be others. I have no affiliation with these sellers.

    Substitutes

    The cheapest current-production substitute part would appear to be the Bourns 78F470J-RC (78F470J-RC @ DigiKey). The part is $0.1128 US in 500 quantity. I have run preliminary tests on this part, and it seems to work so far, but as of today, 5/20/16, I have not had a chance to populate a full DDL01 board with these inductors and run thorough tests. I am hoping to be able to do so over the weekend. I will report the results here once I do.


    The only apparent downside to this part is its size. As shown below, the part is larger than the original inductor, so must be mounted (semi-) vertically on the board (original Taiyo Yuden parts on top, Bourns on bottom). I have confirmed that it easily clears the next board in a stack when assembled with the nominal 7/16" standoffs. In my clock build, the boards themselves cannot be seen without great difficulty, so I doubt anyone would ever notice these parts standing slightly proud of the others.


    Going Forward

    I will eventually re-spin the DDL01 and demo board to use the current-production 78F470J inductors. At the same time, I intend to add a "set" input to the flip-flop. This probably won't happen for a while, since I'd like to get a first pass at documenting everything else first. The Eagle files are open-source and shared on hackaday.io, so if you feel the need to modify them yourself, have at it.

    Fragile Parts!

    I am rough with parts when prototyping. I bend and solder and trim and unsolder and re-bend leaded parts over a copper clad groundplane until things work - this often takes many iterations. Before using these tiny inductors, I had never destroyed a passive component by such rough handling. But, I've destroyed literally dozens of the original tiny inductors. My suspicion is that they are wound with very fine wire that breaks easily if you bed the pins the wrong way - they always fail "open" with no outward sign of damage. It can be really frustrating. They are supplied with pre-formed leads for a reason. In populating over 50 DDL01 boards (600 inductors),...

    Read more »

  • DDL02 Power Supply [Part 1]

    Ted Yapo05/18/2016 at 16:01 0 comments

    I decided to split the DDL02 documentation into multiple parts because I want to get something out there, but have to fix up some of the material before I post it all. When I developed the board, I wasn't very good about consistent part designations between the simulation, the "publication" schematic, and the board design files. It might confuse somebody (everybody?), so I'm fixing it all first. The board layout, of course doesn't need to change.

    I used aluminum organic polymer caps on the DDL02 for their very low ESR, high allowed ripple current, good high-frequency response, and long life. Unfortunately, the original parts I used are now a factory special-order, so I'm in the process of finding suitable replacements. The good news is that there are now a wider variety of parts available (cheaper, too), but these are specialized caps, and it's not just a matter of finding one that physically fits on the board. A full BOM and assembly guide will be forthcoming shortly, but not in this post. Assembly of the power supply board is significantly more complex than the logic boards (which are essentially bulletproof), and it's important to get right (or risk popping MOSFETs).

    Power Supply Requirements

    The DDL02 power supply is designed to be mounted on the left side of a DDL logic stack. Here, you can see three of the four stacks used in the clock, each with their respective power supply board mounted on "top" (these stacks are rotated 90 degrees CCW before mounting).

    Here's one of the board itself:

    DDL requires a fairly specialized power supply, with 5V DC bias and low-impedance RF available. The 5V supply is similar to countless others - a simple 7805 drops the 12V down to 5, and a liberal sprinkling of bypass caps keeps noise at bay.

    The RF supply is a different matter entirely. The DDL01 NOR board functions well with an RF supply of between 10-12 V peak-peak, and the power supply is expected to deliver that to between 1 and 20 boards per "stack". Most RF systems you'll encounter use impedance matching, in which the load impedance is matched to the source and/or transmission line impedance (typically 50 or 75 ohms). This is done to maximize power transfer as well as prevent reflections and standing waves on structures a significant fraction of a wavelength in size. Unfortunately, implementing impedance matching in a DDL system designed for modularity isn't very practical. Instead, impedance "bridging" is used, in which the source impedance is low compared to the load (similar to audio amplifiers). The DDL02 presents a source impedance of around 130 milliohms, while the expected maximum loading (20 DDL01 boards) is around 1.1 ohm. This is all at frequencies between about 1 and 10 MHz. It's not your usual HF amplifier.

    History

    Just for fun, this is the "Evolution of Man" chart for the DDL power supply. Except here, they're all monkeys :-)

    The last one on the right is essentially the same as the final PCB, and even has the correct holes and contacts for mounting on a DDL stack:

    I started with complementary bipolar output devices (it's a half-bridge output driver on all but the first board), moved to complementary MOSFETs, then finally settled on two high-performance N-channel devices. Before this project, I was a little hesitant to design MOSFETs into my circuits - who needs a part that you can destroy at a touch (or, through the magic of induced charge, at the wave of a hand)? Contrast this with the humble diode, used universally as an ESD protection device. I got over it.

    Design

    My go-to resource for designing the supply was "Design and Application Guide for High Speed MOSFET Gate Drive Circuits" by Laszlo Balogh. You can download it here - this an external link, so if it disappears, just search for the title. I can't recommend this paper enough - if you're designing a high-speed driver with discrete components, read this paper first. Beginning to end. It will save you a lot of time.

    Before I designed this circuit, I looked for suitable integrated...

    Read more »

  • DDL03 7-Segment Encoding ROM

    Ted Yapo05/16/2016 at 20:53 2 comments

    The design for the 7-segment encoders is trivial: they're just diode ROMs. So, of course, it took me three spins of the board to get it right!

    On the far left is the DDL 1.x encoder board, designed for numerals 0-9 only. In that design, the segment drivers were to be non-inverting, so a diode was required in the matrix for every lit segment. In the middle was the first spin of the encoder for DDL 2.x. Since I had extra room on the new DDL board size, I added AbCdEF to the matrix, so hexadecimal could be displayed. It's not used on the clock, but it would be perfect for the display on a simple computer. While those boards were being fabbed, I re-designed the segment drivers to use inverting logic - now a diode is required for each segment that is off. Another spin. Conveniently, the final version uses far fewer diodes. I had never realized the disparity between the number of on and off segments on a display before. There's probably something deep about the information efficiency of 7-segment displays in there somewhere. But I can't find it.

    If you need a place to park 34 diodes, you can:

    Next up: the power supply. Fast, powerful MOSFETs.

View all 13 project logs

  • 1
    Step 1

    Build (46) DDL01 Hex NOR boards. This will include soldering around 7,000 components, so allow yourself at least a few weeks for this task. Make sure you have enough solder on hand, and try not to inhale too much flux smoke.

  • 2
    Step 2

    Build and test the (4) power supply boards as detailed in the build logs.

  • 3
    Step 3

    Build and test the spread-spectrum exciter board as detailed in the build log.

View all 10 instructions

Enjoy this project?

Share

Discussions

Olivier Bailleux wrote 09/08/2017 at 19:40 point

This is the most amazing clock ever !

  Are you sure? yes | no

Dan Saito wrote 08/08/2016 at 02:45 point

I made a quick edit to the DDL01 layout to replace the tiny inductor with SMT pads.

Nominal package size is 3225, but the parts I have in mind are 587-2037-1-ND (7.2¢ in 500+ quantity) or 587-2191-1-ND (10.2¢).

I'm not sure if the ferrite core on the latter is necessary for correct operation. The original Taiyo Yuden part and the clunky Bourns replacement both have ferrite cores.

Edited layout file.

What it looks like now:


  Are you sure? yes | no

Ted Yapo wrote 08/08/2016 at 04:06 point

Nice work!  You're a brave man for wading through that mess of an Eagle schematic. I thought about substituting an SMD part here, but wanted to stay with through-hole - no really good reason, though.  1206-sized parts are easy enough to solder by hand; I've done hundreds of them.

As for the two parts you mention, I looked up the datasheets.  The Taiyo Yuden LB3218T221k is 220uH - you might expect it to be a better choke at the supply frequencies, but it has a self-resonant frequency of only 5MHz.  In theory, at the SRF, an inductor is a perfect choke, but I would test it before you buy a lot of them.  I'm not sure I can predict how it will perform.  I suspect it has a ferrite core, too -  that's an awful lot of inductance to squeeze into an SMD package without some serious-mu material inside.

The Kemet L1207C470KPWST looks like a much closer substitute - same nominal inductance (47 uH) as the original, with the same SRF spec of 12MHz.  The DC resistance and current capacity are better than the original parts.  I'd bet on this one, if I had to choose.  An extra $38 on the cost of this project isn't much :-)

I have stuffed a few of the original boards with the "clunky" Bourns through-hole part, and they seem to work about the same as the older parts - haven't written it up yet - still a few more tests I want to do to make sure.  My thought was to re-spin the board for these parts as soon as I was satisfied that they worked.  The stretch goal is to also add a set input for the flip-flop, which would mean a fair amount of work.  Not necessary for a clock, but nice to have for other kinds of things.

The truth is that I've prototyped gates with various random inductors, and they pretty much work within a broad range.  I ended up using the original parts because I found them really cheap on ebay, then designed everything else around them. You just want to make sure you build incrementally and test a few boards lashed together into a counter before you run off and assemble 50 copies.

  Are you sure? yes | no

Dan Saito wrote 08/08/2016 at 04:17 point

Yeah I got one of the parts mixed up. I was wondering why I seemed to remember it cheaper. The second part was supposed to be the 587-2191-1-ND.

eBay has some listings for the 0.1″ through-hole part right now, if anyone is looking to go that route.

  Are you sure? yes | no

Ted Yapo wrote 08/08/2016 at 04:13 point

Oh, I forgot to mention - somewhat related.  I did re-spin the demo board with the Bourns parts.  They're supposed to be delivered tomorrow - but the USPS has been disappointing me lately, so we'll see.

  Are you sure? yes | no

Ted Yapo wrote 08/08/2016 at 04:40 point

The CB2518T470K (DigiKey 587-2191-1-ND) looks like a fine replacement (on paper, anyway) too.

Hey, you know what, I won some money in the Hackaday Prize this year.  How about this - first four people who ask here on a reply to this comment get 500 of the original inductors from my stash - shipped to your door.

  Are you sure? yes | no

Ted Yapo wrote 08/11/2016 at 06:21 point

Are you building some DDL01 boards?

  Are you sure? yes | no

Dan Saito wrote 08/11/2016 at 12:10 point

I think if I'm making forty-six of them (fifty-two if I want to divide all the way from the sixty hertz, and I kind of do), I want to use SMT so I can use solder paste with a stencil and reflow oven. Cheaper PCB fabrication is a nice bonus.

Maybe that takes some of the old-tech charm out of it, but I just got done with a thirteen-hundred-part build, and it was pretty taxing.

So my plan now is to lay out an all-SMD board, get a prototype or three made, and go from there.

  Are you sure? yes | no

Ted Yapo wrote 08/11/2016 at 14:24 point

Yeah, the "one true diode" in my mind has leads. But, there's wisdom in the SMT approach. When I really got rolling on this project I'd only done SMT by hand with an iron; after learning the joys of paste & skillet, I think it has to be SMT if I ever get motivated enough to build a computer.  At that point, real PIN diodes and Schottky's start to look good to get to higher clock frequencies, but the RF power distribution probably has to be re-thought.

An SMT-version of the existing design would be very nice, though.  You'd save money not just on the boards, but on the passives, too - SMT parts are dirt cheap.  Power distribution is a key issue to conquer.  The V1.0 boards used RCA jacks for the RF power connection, although I was planning to move them to the back of the board.  I think an SMA jack on the back would be sweet, but pricey.


  Are you sure? yes | no

Dan Saito wrote 08/12/2016 at 09:17 point

I’m specifying SMD models now.

I already found my inductor.

Resistors and capacitors are trivial.

For LEDs, I’ll either go with a 90° output model, or use a light pipe.

LL4148 looks good for the 1N4148s. Literally, that is—I like the cylindrical glass package.

The choice of what to put in the 1N4007s’ place is less obvious. 1N4007s don’t have a direct SMD counterpart, which is especially a problem given that I’m relying on off‐label properties. DL4007-13-F is superficially a close equivalent, but of course that may be merely superficial. FDLL3595 also caught my eye for its package and its specified Trr in the microseconds.

What do you think?

  Are you sure? yes | no

Ted Yapo wrote 08/12/2016 at 13:14 point

I picked up some of these right-angle SMD LEDs a few months back to test:

https://www.digikey.com/product-detail/en/kingbright/AA4040SRS/754-1517-1-ND/2440518

They've got a low Vf (1.85V), which is important, and a wide viewing angle, but I haven't tested them yet to see if they're bright enough.

I think any diode with "4148" in the part number would work fine for the switching/detector diodes.  In fact, if you went with a Schottky, you could boost performance - BAT54's would only cost a little more than LL4148's, although the 3-lead package complicates routing a little.  These guys are tiny and cheap:

https://www.digikey.com/product-detail/en/panasonic-electronic-components/DB2J30900L/DB2J30900LCT-ND/3719842

Yes, the 1N4007 replacement is trickier. Even RF PIN diodes are typically lousy at HF.  The DL4007-13-F looks like a 1N4007 with the leads torn off; I wouldn't be surprised if it were identical to the through-hole part.

The FDLL3595 datasheet is confusing.  I see the 3us Trr, but Figure 5 would seem to indicate a 400 (axis not labeled - pF?) junction capacitance at Vr = 1V - that wouldn't work.  The Table lists a capacitance of 8pF, which sounds a lot better.  I'm skeptical; try a few before you buy 500.

Interestingly, the Diodes, Inc. datasheet for the 1N4007 says it's not recommended for new designs:

http://www.diodes.com/_files/datasheets/ds28002.pdf

they specify the S1M-13-F as a replacement:

https://www.digikey.com/product-detail/en/diodes-incorporated/S1M-13-F/S1M-FDICT-ND/804909

I have a bag of them somewhere, but again, haven't found time to try them out.

  Are you sure? yes | no

jaromir.sukuba wrote 06/17/2016 at 21:07 point

For me - this is one of the most innovative and surprising projects on hackaday.io site. Great work!

  Are you sure? yes | no

markaeric wrote 06/07/2016 at 07:53 point

This is a magnificent build! Beautiful work!

  Are you sure? yes | no

ortsac wrote 05/21/2016 at 16:56 point

Understood that not all the boards are available in OSH Park or that it will take some time to have full documentation of the project.  But how many of the DDL01 do I need to start building the basic boards for the clock?

  Are you sure? yes | no

Ted Yapo wrote 05/21/2016 at 17:39 point

The clock is built using:

(46) DDL01 Hex NOR boards

(4) DDL02 Power Supply boards

(6) DDL03 7-Segment encoder boards

(3) 7-Segment display boards

(1) DDL04 Spread Spectrum Exciter board

(1) TCXO timebase board

(4) End-plate boards, which do nothing but "cap" the four stacks with a nice-looking logo and diagram that keeps you from seeing the underside (solder side) of the four stacks.

I'll add this info to an "assembly" log, with more details about how everything interconnects. Make sure to read the new Builder's Notes log before you begin, especially about availability of compatible inductors.

  Are you sure? yes | no

Andrew Starr wrote 05/18/2016 at 09:21 point

Brilliant work!

  Are you sure? yes | no

ortsac wrote 05/18/2016 at 04:29 point

Very interested in building the clock.  Are all boards available for purchase at Oshpark?  How many different boards would the clock need? Are all the discrete parts listed somewhere?  This is great project to learn on. 

  Are you sure? yes | no

Ted Yapo wrote 05/18/2016 at 15:50 point

Not all the boards have been posted (or shared on OSH Park) yet, nor have detailed BOMs been made (yet).  The "Components" section above is a placeholder with obvious omissions: a project like this requires more structure than a simple components list. Details are coming, but I'm taking the time to try to get them correct and in usable form. In my defense, the project has been on this site less than a week at this point :-)

If this were a kit, it would definitely be "expert" level.  You could easily spend thousands of dollars on parts and materials if you went the way I did. Ordering enough prototype boards at 3-unit prices itself would be over $1k, although you can do substantially better by placing "medium-run" or other "package" orders. Add in several months (or more) of mindless bending, stuffing, soldering and clipping through-hole parts, wiring the logic point-to-point from a schematic, and fabrication time for a case, and it probably sums to a difficult time without some good experience already under your belt.  This project also may not be the best way to learn anything "practical" about electronics ... no sane person would do logic like this :-)

I'm not going to discourage anyone from trying to build one of these, but I might suggest building the demo circuit first, if you want to tackle an ambitious project with DDL.

  Are you sure? yes | no

John Boyd wrote 05/17/2016 at 23:24 point

Mind blown. What a great project!

  Are you sure? yes | no

oshpark wrote 05/17/2016 at 16:54 point

Awesome project!

  Are you sure? yes | no

Yann Guidon / YGDES wrote 05/17/2016 at 03:22 point

Very nice... Now where do you get your clock source from ? ;-)

  Are you sure? yes | no

Ted Yapo wrote 05/17/2016 at 12:34 point

At the moment, the 1 PPS input comes from a 16.368 MHz TCXO, divided down by a PIC16F716 (spoiler alert: I haven't seen the die, but the PIC may contain transistors).

http://www.rfmchina.com/prouplod/prodt/xtc7009.pdf

It's a nice, cheap oscillator with "guaranteed" 2ppm after reflow.  That's 63 seconds/year.  Not too bad for the price.

Since my power-line frequency is 60Hz (and corrected for the benefit of those still using synchronous-motor clocks), I thought of deriving the PPS signal by just adding another mod-60 counter and a small transformer.  But, I thought it would make the clock too tall, the LEDs would look too busy, and didn't feel like soldering another 2,000 components ... I also didn't want people to think the clock required a nuclear power station to generate the 60Hz AC input ;-)

I've made relaxation oscillators (and analog amplifiers) with diode circuits.  They're absolutely terrible.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 05/17/2016 at 17:04 point

I have this kind of concerns that I try to solve with #1ppd: Midnight Reset

Oh and it's 16384KHz ;-)

  Are you sure? yes | no

ortsac wrote 05/17/2016 at 01:21 point

Very much interested in building one and at the same time learn from it. Would it be available as a kit? Even if it is just the PCBs.

  Are you sure? yes | no

Ted Yapo wrote 05/17/2016 at 02:34 point

Do you mean just building some gates, or a whole clock?

I actually sketched back-of-envelope plans at one point to market this as the world's largest electronic kit, but decided this type of design doesn't make economic sense to kit.  I figured with a successful kit, you buy parts at 1k-unit prices and sell them at around 1-unit prices in 1k kits.  When your kit needs 2k diodes, your customer isn't going to pay you 1-unit prices for them - they can get 1k-unit prices themselves.  I don't see myself selling them any time soon.

The design files for the DDL01 and DDL03 (and demo board - a great starting point) PCBs are already up here open sourced; the others will come soon.  You can click to order them from OSH Park (where I got the prototypes), or use the Eagle files to create gerbers for your favorite board house.  The boards fit into iTead's 10x10cm size, and that's where I got the black "production" boards.

I don't think through-hole inductors with 0.1" spacing are made any more, but I have about 10k of surplus ones.  If you need some, let me know - that way, you won't have to jam some other part in there.  I have a bag of current-production inductors from J.W. Miller around here somewhere to test, but I can't find them this past week.

  Are you sure? yes | no

esot.eric wrote 05/13/2016 at 11:23 point

Wow. Seriously. Head's exploding, must get out the breadboard.

  Are you sure? yes | no

Ted Yapo wrote 05/14/2016 at 15:46 point

If you end up with one of these things on your bench, let me know.  I'd be pretty excited to see another example built.

  Are you sure? yes | no

Paul Kocyla wrote 05/13/2016 at 06:12 point

What is the major difference between this logic and the Diode-Resistor logic? Switching ability?

  Are you sure? yes | no

matseng wrote 05/13/2016 at 09:41 point

This design can invert the signal (required for NAND and NOR - both classified as universal gates , i.e. they can be used to create any other type of gate),

  Are you sure? yes | no

Paul Kocyla wrote 05/13/2016 at 17:58 point

Thanx.Excited to see the first DDL working. Would the PIN-Diode effect work with LEDs? For style reasons :-D

  Are you sure? yes | no

Peter Noyes wrote 05/13/2016 at 05:41 point

Amazing

  Are you sure? yes | no

Roman wrote 05/13/2016 at 02:10 point

This is very cool project.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 05/13/2016 at 01:18 point

OMG

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates