Stationeers – Simple Ore Sorting Advanced fetching And IC Walkthrough

Stationeers – Simple Ore Sorting Advanced fetching And IC Walkthrough 3 - steamlists.com
Stationeers – Simple Ore Sorting Advanced fetching And IC Walkthrough 3 - steamlists.com
This is a System that sorts ores for you and retrieve them based on ingot recipes ready for smelting.

 
 

Intro

 
This is a sorting and fetching method that I have been using for a while and I have decided to share it since a couple of people asked me about it. 
 
Note: This is not the only way to sort ores it could be done in many different ways but this is what I feel is convenient for me although any and all feedback is more than welcome. 
 
This design is meant to be used if you are planning to retrieve your ores for smelting purposes, and it can and should be hooked up directly to a furnace’s input to skip the manual loading of the furnace. 
 
 

Construction Parts

 

  • SDB Silo x10 
  • Sorters x10 
  • Stackers x10 
  • IC10 housing and chip x4 
  • Consoles x2 
  • Dial x2 
  • Button

 
 
 

How to operate

 
Load up the input with your ores, they’ll get sorted to their relevant silos. Use the dial the selection dial to choose which ingot you want to make and the amount dial to select the amount (the amount number shows you the amount the furnace will yield when it’s done, not the ores count). 
 
Hit the button and it will spit out the ores needed to make that ingot in the correct ratio. 
 
 

Putting it all together

 
First off you will need to place down the silos of which there are 10. Then we’ll place a Sorter and a Stacker before every silo’s input.Stationeers - Simple Ore Sorting Advanced fetching And IC Walkthrough 
 

 
Name all the silos and their assigned sorters to the 10 different ores that we are sorting 

  • Iron 
  • Copper 
  • Gold 
  • Silicon 
  • Coal 
  • Lead 
  • Silver 
  • Nickel 
  • Cobalt 
  • Steel

 
Hook up everything together with chutes and cables then use the sorter motherboard to set the sorters to sort the ores to their silos, there is no need to use any type of logic here. 
 
Set the Stackers to 50, this is important to make sure we have full stacks in the silos. 
Run a single chute network through all the silos outputs and junctions to connect them all to the same network. 
 
Note: the ores do not need to be in that order for this to work, you can use whatever order you like. 
 
Place down the electronics in any way you want and hook them up together. 
 
 

Electronic Parts and ICs

 
Stationeers - Simple Ore Sorting Advanced fetching And IC Walkthrough - Electronic Parts and ICs 
 
1. Hash IC: Stores the hash values of ingots and controls the dials, display and button. Pins: 

  • d0 Selection Dial 
  • d1 Button 
  • d2 Logic Memory 
  • d3 Amount Dial 
  • d4 Led Display

 
2. Logic Memory: Keeps track of the current operation. 
 
3. Lead,Silicon,Cobalt,Steel IC Controls the relevant silos.Pins: 

  • d0 Lead Silo 
  • d1 Silicon Silo 
  • d2 Cobalt Silo 
  • d3 Logic Memory 
  • d4 Amount Dial 
  • d5 Steel Silo 
     
    4&5 are basically the same as the previous IC but they cover the rest of Silos 
     
    6)Button: Used to dispense ores. 
     
    7)Selection Dial: cycles through all the ingots that can be crafted in the game. 
     
    8)Hash Display: Display the selected ingot. 
     
    9. Amount Dial: Controls the amount of ores requested based on the recipe. 
     
    10. Led Display: Displays the ingot amount you will get after smelting the ores. 

 
 
 

IC Code

 
In this section I will go through some of the IC’s functions and how it works to make it easier for anyone to make their own duplicate it or get some ideas. 
 
I’m assuming that you know the basics of MIPS if not there are plenty of beginners guides on the web, and I will not go through all of them since the 3 ICs that control the silos are basically the same with minor changes to account for all the ingot recipes. if you need further help don’t hesitate to drop a question. 
 
Hash IC it all starts here since all the other ICs are stuck on a waiting loop. 
 
in the main loop the IC loads the dials and button’s Setting variable to check their values. 

main: yield l r0 dial Setting #loads the selection dial to r0 button to r1 amount dial to r2 l r1 botton Setting l r2 amount Setting s led Setting r3 #sets the Led Display to display the value of Register r3 bgtzal r1 Set # if r1 > 0 which means the button has been pressed it will then jump to blez r0 off set label which will then set the logic memory to the current dial setting thus locking in the selection.

 
Selection jumping. to cycle through the hashes on the hash display, the IC has to set it’s own Setting value [db] device base to the hash value of the corresponding item. The dial selection setting is used as base to jump off of by multiplying the it by 3 and subtracting by 1 so we could skip 2 lines for every dial notch. 2 lines are needed to set the IC setting to the hash value and to calculate the amount that should be display based on the recipe. 

mul r0 r0 3 # to calculate how many lines to jump forward. sub r0 r0 1 brnez r0 r0 #to grantee that we never jump to a 0 value which will lock the IC s db Setting -1301215609 #sets the IC device base to the iron’s hash mul r3 r2 50 #multiply the dial amount setting by 50 to display the recipe amount j main #jumps back to the to the start s db Setting -404336834 #Copper mul r3 r2 50 j main . .
off: s db Setting 0 #turns off the display when nothing is selected j main Set: s Smem Setting r0 #Sets the memory to the ingot index that we have selected. j ra

———————————————————————————————————————————— 
 
Recipe IC breakdown 
 
in the Idle loop when the logic memory setting is 0, the code just keeps waiting for logic memory’s value to be over 0 to break out of the loop. 

idle: move x 1 #resets the value of x l y smem Setting #loads the Logic Memory Setting to y l z amount Setting #loads the Amount dial setting to z mul x x z brnez y 2 #If logic memory vale doesn’t equal zero, skip 2 lines. j idle

 
in the following code block we are looking at the logic memory’s value and comparing it to each recipe index so we can set the rest of the values based on that particular recipe. by using beqal which will set the request further down in the code and come back here to check if there are any other matching values. Since this IC controls Iron/copper/gold silos any recipe that calls for any of them needs to be included so that this IC can dispense that ore for that recipe. 

move r6 0 #resting r6 beqal y 1 SetupIron beqal y 2 SetupCopper beqal y 3 SetupGold beqal y 8 SetupSteel beqal y 9 SetupInvar beqal y 10 SetupSolder beqal y 11 SetupElectrum beqal y 12 SetupConstantan beqal y 14 SetupInconelG beqal y 15 SetupAstroloyC breqz r6 2 #skips the next line if the flag r6 = 0 to not interfere with the other ICs s smem Setting 0 j idle

We’ll take the steel index for example which is 8, if there memory was set to 8 the code will jump to the following block and it will set r0 to 0 which means d0 the iron silo, r0=1 is copper d1, r0=2 is copper d2. 
Then x is multiplied by 3 because we need 3 stacks of iron for every 1 cycle for the correct recipe. 

SetupSteel: move r0 0 mul x x 3 j get

Setting the flag r6 to -2 to make sure that we reset the memory when we are done. 
Then we are loading the Quantity variable of the silo and checking it against the requested amount to see if we have enough to fulfill the request. if not the operation will be aborted. 

get: move r6 -2 l r5 dr0 Quantity #dr0 is the current selected silo, selected in the previous step. blt r5 x low # if stuff in the silo are less than amount request jump to low. yield l y smem Setting beqz y idle

Before we start our request from the silo we’ll check if the memory value is still 1 to not make any mess. 
dr0 will handle the device with r0 value so if r0 is 0 then we are handling d0 which is the iron silo and so on. 
Before we start requesting we need to clear the silo’s memory to start a fresh run by using ClearMemory 1 
Then we’ll set the silo’s lever to Open 1 and loop counting each unit that comes out until the request is fulfilled. 
we close the silo door and jump back to ra which is where we check for the memory index. 

s dr0 ClearMemory 1 #reset the silo’s memory loop: s dr0 Open 1 #opens silo l r2 dr0 ExportCount #loads the current silo’s export count to r2 brne r2 x -3 #if the export count is less than the requested amount keep it open s dr0 Open 0 #close the silo j ra s smem Setting 0 j idle low: s smem Setting -1 j idle

 
 
 

Links

 
Example World 
https://steamcommunity.com/sharedfiles/filedetails/?id=2429066247 
 
ICs 
https://steamcommunity.com/sharedfiles/filedetails/?id=2429065991 
https://steamcommunity.com/sharedfiles/filedetails/?id=2429065906 
https://steamcommunity.com/sharedfiles/filedetails/?id=2429065257 
https://steamcommunity.com/sharedfiles/filedetails/?id=2429065124 
 

Written by Barsiel

I hope you enjoy the Guide we share about Stationeers – Simple Ore Sorting Advanced fetching And IC Walkthrough; if you think we forget to add or we should add more information, please let us know via commenting below! See you soon!
 
 
 
 


2 Comments

  1. i have this built and love it… but now i need to find a way to display whats in each silo so i can set it up to my furnace..would love something to show you whats in each silo and how much

Leave a Reply

Your email address will not be published.


*