Compact MFR Rednet Elevator

netmc

New Member
Jul 29, 2019
1,512
0
0
For those that haven't seen this in action in the Let's see some Bases thread, here is a short 30 second video of the working elevator.




Here I will post how I built my rednet controlled elevator. This was an involved build, and took the better part of a week to design, research and build. As such, not all of this will be contained in one post. I will post this in various sections in an effort to make it understandable.

There were a few goals I wanted to have when making the elevator:

  1. I wanted it to be clean. No visible parts in the main section of the base. No wiring, no visible redstone.
  2. I wanted the control panel(s) to work from any floor.
  3. I wanted the system to reset itself when used.
  4. I wanted the system to be multi-player aware, or at least be usable in any condition. Nothing that required a manual reset to get it working again.
  5. I wanted everything to be automatic.
Arcane Levitator

To start with, I wanted to go over the arcane levitator which is the actual mechanism for switching floors. The arcane levitator will lift a player 10 blocks in the air (mostly). The very first arcane levitator will only raise you 9 blocks, but each additional levitator in the stack will raise you an additional 10 blocks.

Most of the arcane levitator elevators I have seen in Minecraft use two elevators, one for going up, and one for going down. I only had room in my layout for one elevator shaft, so I had to come up with a design that could do both. The other way I have seen levitators in action is to have a series of pistons that close above you to stop at a particular floor. This idea wasn't going to work with just one elevator shaft for movement in both directions. So instead, I decided to make the floors in my base 10 blocks apart to match the normal effectiveness of the arcane levitator.

Normally, an arcane levitator placed above will slow the descent of anyone below so no fall damage is taken. This only works for 10 blocks in distance for each levitator. The ceiling of the underground base is only 2 blocks below the surface. Since I wanted this to be a clean build, and be completely disguised from above, I couldn't place multiple arcane levitators at the top of the shaft. Instead I found that if you placed an extra arcane levitator below, you could drop from any height, and the arcane levitator would stop the fall, then raise you back to the level of the levitation effect. This would have to be the way I made the elevator safe... I had no room for any other option. To support this, I extended the elevator shaft 9 blocks below by bottom floor and have an always on levitator there. This catches people falling and brings them safely to the actual bottom floor.

Button Panel

Hello GregTech. For once, Greg has given me the exact tool for the job. The button panel. This panel has 15 buttons on it in the default mode. If you use a screwdriver on it, it will change into several different modes. 15 buttons, 4 button binary (quadrants), 4 button binary with indicator lights. Since I had 4 floors to my base, I used the 4 buttons with indicator lights.

Minefactory Reloaded Rednet Controller

Ahh, the brains of the whole thing. I don't do computercraft. It's a choice I have made. I would much rather make a contraption out of redstone or MFR rednet than touch a computer. The rednet controller is a pretty powerful block with a lot of features. Anything is possible with a computer, but I wanted to test my limits with the MFR rednet controller. This definitely tested my limits and then some.
 

netmc

New Member
Jul 29, 2019
1,512
0
0
The Button Panel Setup

Here you can see the basic layout of the button panel. By default, the GT button panel will pulse once, then reset back to normal. To use the button panel in this mode, I had to create a way to save the state, and a way to reset the value. I couldn't figure out a good way to do this for use with multiple button controllers. Luckily, Greg gave us the Redstone Machine Controller cover. This cover will cause the button panel to stick when pressed. To reset it back to a zero state, simply give the redstone machine controller cover a redstone pulse.

2013-08-03_02.06.42.png

Here I have placed a block in front of the repeater, and ran some rednet cable from a lever in the front around and to the repeater. The repeater will send the signal into the block. The block in turn will active the restone cover on the side of the button panel causing it to reset. This setup is just to play with the button panel and get a feel for the reset mechanism.

2013-08-03_02.08.13.png

The view from the front. Notice the panel holding the state. The button panel sends out a signal level equal to the button pressed. Button 1 will only light 1 redstone dust. Button 14 as selected here, will send a redstone signal 14 blocks long. This feature will allow us to easily take the redstone level and convert it into a floor selection.

2013-08-03_02.08.39.png

This is the final wiring needed to complete the rednet connections to the repeater, and button panel. The button panel will not work in conjunction with the rednet cable in normal mode. You must used the forced connection mode to read the value of the button panel. For my setup, I use the white line as the reset mechanism. The rednet connection to the side of the repeater is a result of the forced connection mode for the button panel. Since it connects to the side of the repeater, it will do nothing. The rednet cable going down into the ground is what will eventually connect to the gate control and the system reset switch when exiting the elevator.

2013-08-03_02.11.11.png
 

Samueldmm

New Member
Jul 29, 2019
44
0
0
This is all good. Could we see it functioning. I understand what you've made, but not how it's applied to an elevator.
 

netmc

New Member
Jul 29, 2019
1,512
0
0
This is all good. Could we see it functioning. I understand what you've made, but not how it's applied to an elevator.

There is a short video of it in the Let's See Some Bases! Give Us a Tour! thread here. I'll also add it in the original post so everyone can see it first in this thread.
 

netmc

New Member
Jul 29, 2019
1,512
0
0
Floor Setup

There are a couple minor differences between the configuration in my video vs. what I show here. In my actual build, I replaced the wooden pressure plate with a silent, shrouded obsidian plate from the Obsidian Plates mod. The wooden pressure plate is just easier to see in the screen shots. Here is the floor layout in its entirety. The stone walls are here, not for aesthetics, but to force the player 2 blocks from the fence gate to trigger the pressure plate when exiting the elevator. If the pressure plate was right next to the fence gate, it would trigger it any time the player got near. We want the gate to stay closed. The stone walls could be replaced with anything else you want (maybe a flowerpot, or table). You could even recess the elevator shaft another block back to achieve the same effect and end up with a flush entryway. The important part is keeping the 2 block separation between the fence gate and the pressure plate.

2013-08-03_09.03.23.png

Here is the underneath. In my video, I am using a redstone torch instead of structure pipes and iron gates. Using the buildcraft gates is the cleanest design, and I will update my actual base design once I get an assembly table. Again, you need to force the rednet connection for the pressure plate. It won't connect otherwise. The iron gate next to the rednet is configured to emit a red pipe wire signal on receiving redstone, and the second gate (not visible) is configured to emit a redstone signal on receiving a red pipe wire. It's sole purpose is so that a facade can be used and disguise the fence gate control from inside of the elevator shaft.

2013-08-03_09.03.56.png

Here is the view from behind. You can see the buildcraft pipe sitting below the fence gate a little better.

2013-08-03_09.04.22.png

And finally, we add in the rednet controller and signalling bus. This floor design is repeated for every floor. To get all the rednet controller pages we need to control everything, two additional pages are needed, for a total of eight. Simply add two of the base PRC cards to the rednet controller. The signaling bus (to the right of the rednet controller) connects each floor and also the main controller at the bottom of the elevator shaft.

2013-08-03_09.10.28.png
 

netmc

New Member
Jul 29, 2019
1,512
0
0
The Rednet Controller - Overview

One of the biggest hurdles I had to recognize in the MFR controller, that unlike redstone, the lack of a signal is not a null value, but a zero value. This means that you can't have more than one way to set the signal. If you set an output to be set from two different sources, both are applied, even if only one input is active.

For example, if you connect two levers to a rednet controller, and pass the signal out to a lamp. On the first page you use the passthrough function from lever 1 to the lamp, on the second page, you use the passthrough function again to send the signal from lever 2 to the lamp. This will not work as expected. One lever may work, the other won't, or neither will work. Instead, you would need to use a single OR setting with the input from both levers, and a single output to the lamp. This will let either lever control the lamp.


There are a lot of different conditions that will be checked in this build. Here is what I wanted to accomplish with the setup

  1. What happens when you press the elevator button, then walk away? What if you take a different route out of your base and come back to the elevator? I wanted the panels to automatically reset themselves if an elevator select button is pressed from a different floor.
  2. Arcane levitators take a while to update the levitation effect. Sometimes it is instant, other times it takes six or seven seconds to update. The majority of the time, it is finished in five seconds, so, after the button selector is pressed, wait five seconds before opening the gate.
  3. I wanted the entire system to be able to be reset back to its starting conditions by sending one signal.
  4. When you exit the elevator, reset the system instantly. Close the gate behind the person leaving and get ready for the next use.
  5. Determine the floor the user is on when the button is pressed. When opening the fence gates, only open the floor the user is on and the destination floor. The gates on the other floors stay closed.
  6. In relation to number 4, don't reset the system when entering the elevator. The pressure plates need to be selective to only activate when a person is exiting, and not entering.
The Rednet Controller - Floors

Here is the signalling system I used and their associated colors

Floors
  • White - The reset signal. Used throughout the build in every section. For the floor section, it sends a signal through the repeater to reset the button panel.
  • Orange - Input from the button panel
  • Magenta - Fence gate control.
  • Light Blue - Pressure plate input.
Signalling Bus
  • White - The reset signal.
  • Orange - Floor selector from the first floor.
  • Magenta - Floor selector from the second floor.
  • Light Blue - Floor selector from the third floor.
  • Yellow - Floor selector from the fourth floor.
  • Green - Selector S0 for the multiplexor in main controller.
  • Pink - Selector S1 for the multiplexor in the main controller.
  • Dark Gray - Fence gate signal with 5 second delay
  • Light Gray - Fence gate signal with no delay.

Page 1 - The Reset

The first page in the floor controller resets the button panel when it sees the reset signal, or when any other floor selector (button panel) is used. I use the input from the button panel to set the multiplexor selector, so it is important to reset the button panel back to zero so only the panel on the floor you are on is in use. The OR selection is used so the panel is reset whenever any of the inputs are active. For each floor, the white channel is always used, but the other three colors are for every floor but the one you are on. Since I am on the fourth floor (yellow), the inputs for floors 1-3 are here.

2013-08-03_09.43.20.png

Page 2 - The Fanout

The fanout is used to take one input and activate multiple outputs. Here, I am taking the button panel press and outputting it to the floor level sector for the fourth floor (yellow) and setting S0 and S1 to set the yellow channel as being active. On the first floor, Green and Pink are not set at all. This sets S0 and S1 to a zero state. S0 and S1 are binary. Floor two has Green only, Floor three has pink only, and as below, floor four has both active. This is in addition to the respective floor selection channel as specified above.

2013-08-03_09.43.22.png

Page 3 - The Destination Gate

This page reads the signal from the main controller specifying the destination floor. The signalling channel is dark grey and the value determines the destination floor. I am using the 4 button mode on the button panels, so the values are the binary values for the four selector buttons. This signal is delayed five seconds from the button press. This should allow sufficient time for the arcane levitators to update the levitation strength.
  • 0 - no floor selected
  • 1 - floor one selected
  • 2 - floor two selected
  • 4 - floor three selected
  • 8 - floor four selected
This screenshot is from the fourth floor, so the gate control is only activated when it sees the value of 8 on the dark grey channel. The value is being stored in VARS0 as there is a bit more logic that needs to be added.

2013-08-03_09.43.25.png

Page 4 - The Gate Reset

I want the gate to close instantly when you exit the elevator. When the input is reset, the 5 second delay is still active, which would normally leave the fence gate open. I combined the delayed signal (VARS0) with the instant signal (light grey) so both have to be active to open the gate. This way when the system is reset when you exit the elevator, the light grey channel is no longer active, instantly closing the gate. This is set to VARS1 as there is still the origin gate logic to add.

2013-08-03_09.43.27.png

Page 6 - The Origin Gate

Here I use a little trick to determine the floor you are on, and only open the gate on that floor. I am reading the dark grey signal. This is active when a button has been pressed on any floor (along with the five second delay). The orange channel on the floor section (Left in my case) is only active when the local button panel was used. All other floors have this set to zero, so this AND statement will only activate the gate on the floor you are on. This is stored in VARS2 as it needs to be combined with VARS1 above.

2013-08-03_09.43.32.png

Page 7 - Combining the Gates

This page combines the logic for the complete logic for the Destination Gate and the Origin Gate. If either condition is set VARS1 or VARS2, it will send the signal to the magenta channel on floor rednet to open the gate. On the image below, I have it set to VARS3 as I had to invert the signal to work with my redstone torch. That step is not needed if you are using buildcraft gates to control the fence gate, and can set it directly here.

2013-08-03_09.43.34.png

Page 8 - Preparing the Exit

Here I take the value for the button panel and invert it. I need to see when the button panel is not active so I can combine it with the pressure plate to reset the system when you exit the elevator. I am storing this value in VARS4

2013-08-03_09.43.36.png

Page 9 - The Pressure Plate Exit

Here I combine the inverted signal of the button panel along with the signal from the pressure plate. Since this is ANDed together, it will only activate when the panel isn't set and you walk over the pressure plate. When it is activated, it sends a reset signal to the main signalling bus and resets every device to it original state. This prevents the pressure plate from resetting the system when you enter the elevator.

2013-08-03_09.43.43.png

Page 5 - The Inverter

This is only needed if you are using a redstone torch to control the gate and not a buildcraft gate. I don't have an assembly table yet in my base, so a redstone torch had to be used
2013-08-03_09.43.29.png
 

netmc

New Member
Jul 29, 2019
1,512
0
0
Levitator and Main Rednet Controllers

On the right is the main signalling bus connected to the main controller. Despite the PRC cards shown in the image, none are needed. On the left is the levitator controller. They are interconnected as shown. The main controller relays the signals from the signalling bus to the levitator controller and also sends the fence gate signals back to the floor controller.

2013-08-03_11.43.40.png

The Main Controller


In my first iteration of my elevator, I attempted to have have everything controlled by one MFR Rednet Controller. This turned out to be a nightmare in both programming and extending, and turned out to not be possible to fit all the conditionals I had in one controller even with maxed out PRC boards. By splitting the controls to multiple controllers, not only is it a lot cheaper to build, I can extend it to more than 4 floors by chaining some multiplexors and ORs.

Page 1 - Multiplexing

I0 - I3 are the inputs from each floor's button panel. S0 and S1 select the panel to process. Since I have my button panels configured in such a way that only one can be active at any one time, S0 and S1 are set at the floor controller saving multiple pages otherwise. This setup allows the main controller to "tune in" to whichever button panel is currently active. The output is stored in VARS0

2013-08-03_11.41.15.png

Page 2 - Levitator and Gate Control

This page takes the output of the mux on page 1, and sends it to both the levitator controller (orange) and also back up the signalling bus for the non-delayed gate signal.
2013-08-03_11.41.18.png

Page 3 - The Gate Delay

This page takes the signal from the mux output on page 1 (VARS0) and pairs it with a delay of 100 ticks (5 seconds) and outputs it back to the signalling bus on the dark grey line.
2013-08-03_11.41.21.png

That's it for the main controller. Using the Mux setting on page 1 greatly simplifies the number of pages needed. The controller's main purpose is to select the signal for the floor selector and pass it on to the levitator and configure the 5 second delay for the fence gates. All that is done in 3 pages. :D

Yet to add

Fix it so multiple button presses will reset the button panel instead of having the button panel in an invalid state. To do this, an analog demux is configured on a page. It reads the VARS0 input for the Input and Selector. The floor selector values are left at null (0,1,2,4,8,15), and all other values are set to their own VARS number. The VARS are then put together in multiple OR chains so that any one of them being active will output a signal to the white channel on the main signalling bus. This will reset the button panels if someone tries pressing multiple buttons for the elevator.
 

netmc

New Member
Jul 29, 2019
1,512
0
0
The Levitators

Here are the arcane levitators. MFR Rednet cannot directly disable the levitator with a redstone signal. It takes a strong signal to disable the block, so a repeater is used for each one. Just out of frame on the top right is the rednet cable connected to the bottom of the levitator controller.

2013-08-03_12.49.49.png

The Levitator Controller

This controllers sole purpose is to read the floor selector passed from the main controller and deactivate the appropriate levitators.

Page 1 - Floor Selector

The Demux control here reads the input line and outputs the value to the appropriate VARS. The selector is set to the same line as well. The input signal is basically "read this input" the selector is "send this input to the number on the right I select". This happens to be the same for our purposes, so both I and S are set to the the orange line. I used VARS1-VAR4 to make it match up with the floor numbers.

2013-08-03_12.46.23.png

Page 2 and on - Turn Off The Field

The next set of pages turns off the appropriate levitators. To reach the top level, all the levitators need to be on, and this is the default state if nothing is selected. For floor 2, the very bottom levitator is disabled. Floor 3, the bottom two. Floor 4, the bottom three. If you noticed the value of 15 above, that setting will disable all 4 levitators. I use this for the "maintenance" mode. It takes using a screwdriver on a button panel to switch the panel to 16 button mode, and pressing the last button. Maintenance mode will allow a way to enter the elevator controls shaft if ever needed. (I have a door at the very bottom of the shaft that can only be used if all the levitators are disabled. The very top levitator is controlled with a passthrough instead of an OR since there is just one condition that would deactivate it.

2013-08-03_12.46.26.png
2013-08-03_12.46.28.png
2013-08-03_12.46.30.png
2013-08-03_12.46.32.png
 

netmc

New Member
Jul 29, 2019
1,512
0
0
Final notes... There are a few other tricks that can be done to hide the workings controlling the fence gate and pressure plate. Since I have a maintenance floor for pipes and such between my production floors, I can safely hide the MFR cabling there. If you have less (or no) space between floors, you can use buildcraft gates and facades to do the same thing. you will need a pair of iron gates and a pair of golden gates. Simply run some structure pipe under the floor or as part of the floor, and use red and blue pipe wire run the structure pipe all the way back into the area behind the button panels, and link the MFR cable to an iron gate and golden gate pairs to extend the signal to where the pressure plate and fence gate are, then cover with facades. This should completely hide the workings.