Here's what I have so far.
It's a search and destroy system. By default, there are no filters, and the miner will therefore not function. The user can specify a minimum Y and maximum Y value, as well as a defined range. Note that the user can also apply speed and energy upgrades as necessary. After this, the user can enter the filter menu and select which filter to use. It could be as simple as an "ore*" OreDict filter, or you could use defined ItemStack filters for different items you want mined. As soon as you hit "calculate," the machine will initiate a search thread which will search through every single block in the defined radius and Y range. It will put all blocks that the filters define into a set, and this will be passed to the miner. The miner will then begin ejecting these blocks with a speed relative to the amount of speed upgrades installed. Note that the miner can replace blocks it finds with the defined replace block, and it will take these from either it's 27 slot inventory, or if configured in the GUI, inventories on it's right or left side. It will store the blocks it mines in it's inventory, and will automatically eject them into an inventory on it's back side if configured to do so. Note that it can also push directly into Logistical Transporters. At maximum speed, it will be ejecting 20 blocks per second. You will not be able to configure filters, min or max y values, or radius after initial configuration - you will need to press the "reset" button on the GUI to reset the search thread and set. Once reset, you can reconfigure it's values, and then just press "Run" again to calculate and start mining.
This is going to take a long time to polish, but I'll keep you guys updated.