Argyre Utility Hub

  • Jerehmia
    24th Nov 2023 Member 2 Permalink

    A long term project that introduces subframed FPGA technology. The build sorts incoming cargo and loads it onto railroad cars, meanwhile supplying a reasonably efficient power plant with coal.

     

    The build contains:

    • An autonomous power plant with a pressure-based COAL breaker. The VIBR & CFLM generator charges a LITH battery until it's nearly full, then the plant shuts itself down and starts up again once the battery is nearly empty.
    • A coordinate-based overhead crane with 3 commands: lift cargo at x-coordinate, drop cargo at x-coordinate, and park crane at x-coordinate.
    • A train loading station with a railroad switch that maximizes the time railroad cars are available for loading.
    • A cargo spawner that randomly spawns 8x13 blocks of 16 different solid materials. The spawner is biased towards cheaper materials (stored to the left of the storage area) and strongly biased towards coal.
    • A book keeping system that keeps track of how full the 16 spots in the storage area and the railroad car are.
    • Four FPGAs to control the power plant, the crane, the loading station, and a main controller that drives the whole thing.

     

    Everything in this build is subframed except for the electricity generation and the laser used for measuring the battery charge.

     

    Edited 5 times by Jerehmia. Last: 24th Nov 2023
  • belibertucio
    4th Dec 2023 Member 0 Permalink

    I loved this save! and I have some questions: 

    • How do you pull and push the pistons that controls the Crane if it's activated with subframe? I would like to know how can I use subframe to power machines but with and "On and Off mode" or in a way that the machine powered by subframe can switch between the PSCN and NSCN.
    • What are the functions of the LDTCs without cType? There are some next to the Crane and I have no idea what is their function. Are they used for serialization just like DTEC?

     

  • Jerehmia
    5th Dec 2023 Member 1 Permalink

    @Bernardo1609 (View Post)

     I'll answer the 2nd question first. LDTCs that don't have their ctype set are meant to read the ctype of the FILT or BRAY they're targeting and put that ctype into an adjecent FILT, it's a way to transport and copy ctype information. The ctype of a FILT or BRAY can hold 30 bits of information (see wavelengths) that can be modified with FILT logic, so LDTC/FILT lines are functionally equivalent to 30 lines of INST wire.

     

    Pistons only react to sparked PSCN and NSCN when the SPRK has a life value of 3, so instead of sparking the PSCN/NSCN every time you need the piston to move you can also spark the PSCN/NSCN permanently and control the life value of the permanent SPRK with a deserializing LSNS. Because pistons move every frame they detect a sparked PSCN/NSCN with life value 3 this subframes the pistons.

     

    The setup for a serialization based subframed PSTN (or PUMP, PPIP, PCLN, etc.) is:

    1. an LDTC to read the ctype of an incoming BRAY, this ctype holds the serialized life value you want to give the SPRK
    2. a FILT to store the ctype the LDTC reads
    3. a deserializing LSNS that converts the FILTs ctype into a life value
    4. a sparked PSCN or NSCN that takes the LSNS life value (because the life of the SPRK is controlled by the LSNS the SPRK will be permanent)
    5. the PSTN to move.

     

    You convert a normal value into a serialized value by adding 268435456 (hexadecimal 0x10000000) to it. If you want a PSCN/NSCN to be inactive you give its SPRK a life value of 4 so the incoming BRAY needs to have a ctype of 268435456 + 4; if you want a PSCN/NSCN to be active you give its SPRK a life value of 3 so the incoming BRAY needs to have a ctype of 268435456 + 3.

     

    Let me know if things are still unclear.

    Edited 7 times by Jerehmia. Last: 5th Dec 2023
  • belibertucio
    5th Dec 2023 Member 0 Permalink

    @Jerehmia (View Post)

    Ah yes, now I understand how it works, Thank you, you helped a lot!