Turing Tumble Community

Ring counter - new puzzle suggestion with harder option

How about a new puzzle to create a 4 bit Ring Counter, using Bits or Gear Bits?
A 4 bit Ring Counter needs to cycle through the following states:
0001 1
0010 2
0100 3
1000 4
I don’t yet have a solution myself, but ring counters, with an arbitrary reset value, are used to coordinate clock cycles for machine code instructions, such as load, store, etc. If we were to make a ‘true’ Turing Tumble computer, the value of these bits would then have to determine which code (or boards) received input and were sent output. Hope you like it. No restrictions on parts, etc, but a bonus mark if a reset value can be set, rather than using less bits. This would mean, say after the 3rd count (binary 0100) the counter would reset to 0000 if 4 bits were being output; of course you could just use 3 output bits, but where’s the fun in that. Historically, ring counter chips come with 4 or 8 output pins bits allowing up to 8 clock cycles, which is way more than processors actually need. So, realistic solutions shouldn’t need more than 5 bits (or clock cycles) and typically would reset after only the 6th pin was tied to a reset line that would Zero the counter, thus count 010000->000000. For the bonus mark in the 4 bit version above, setting bit 4 should reset the whole clock. Is this doable? I have faith :slight_smile:

Here is a link to a four-bit ring counter. The counter is displayed with the four lowest bits.
Click on the upper left ball reservoir to release a ball and advance the counter. Starting with the setting of the second bit, a second ball is automatically released to reset the previous bit, so you must wait for that to terminate before clicking again on the upper left reservoir to advance the counter. After the fourth bit is set, a final, fifth click on the reservoir will reset the counter to 0000, but the other “helper” bits above are not reset to their original positions. (I.e., all to the left, except the upper right three which point to the right.)

For some reason, the link only sometimes works. Othertimes, it links to an empty board. I give up after several edits.

Just getting a blank board myself :frowning:
Can you screenshot it?

Let’s try this - upload this image to the simulator.
ring-counter

Or, here is what it looks like (schematic view)

ring-counter-screenshot

Cool. I’ll have a play tomorrow, to understand how it works. I wonder if there is a way to optimise it?

It uses way more space than it needs to, could be crunched down considerably. I was too lazy to. Perhaps I’ll give it a shot. The basic idea is that the top left three helper bits have four configurations, to send the ball down to the four ring-counter bits… The one helper bit near the middle is just for resetting at the end. Similarly, the three helper bits on the upper right send the ball down four different paths to the ring counter bits, to reset a bit to 0 after the next bit was set to 1.

A true Ring Counter will cycle repeatedly. Will explore if the helpers do this, and if it could be set to run continuously, until the balls run out anyway. I’m wondering now if a mechanical connection could allow one ball to set a bit, then reset its predecessor? Fun times ahead!

I thought about using a gear bit to make a connection so that setting bit n resets bit n-1, but doesn’t that mean they’re all connected (since setting bit n+1 will reset bit n, which will set bit n-1, which will…
Still intrigued by something like this, but I don’t see it at the moment. I’ll be curious to see what you and others may come up with.

Here is a new, much simpler version, that cycles. The diagonal stack of four bits at the bottom (last one is a gear bit) forms the counter. It is initially set at 1000. Each ball resets the previous bit while setting the next bit. You’ll have to load balls in the hopper. Somehow, my links are just not working today.

ring-counter-2

1 Like

I will have to build and verify it, but this looks right! And if instead of terminators it runs down to the bottom of the board and triggers the next ball, this would probably be a complete solution. Looking forward to trying it

Got bored, so here is an 8-bit ring counter. The design could be compressed a bit. Again, problems with the link. Sometimes the bottom part of the board gets filled with interceptors. Try opening in a new window, that seems to work more often. Or, upload the following png to the simulator.
ring-8-counter

1 Like

@lennypitt Awesome work man, very clean. I’m going to build them out in the physical set and play around

Hi folks,
I like the idea of creating a ring counter that cycles and fiddled around a bit.
Trigger a blue ball to proceed to the next state.
That’s what it looks like: Have fun, suggestions welcome.

image

Nice. A crossover at the bottom, and some greens to channel the previously captured blue balls would allow continuous cycling of the counter. Otherwise excellent!

Thanks. I did that intentionally, because in this way the register has a valid state after each interception (the transition from 0001 to 1000 has to go through 0000).
But inserting dozens of balls and applying your idea is surely more fun to watch :slight_smile: