Ok guys thanks, a quick question though, it's hardware related as well. As I understand an ASIC takes the data, hashes it twice and checks for target hit, if no match, it increments the nonce does the same task until it finds the value below the target, So I could use it with a modified firmware to do just that but could I change the input data and the target which would be unrelated mining data?
Bitmain ASICs (the chips) get sent a pre-computed hash of the first 64 bytes of the header, called the midstate. The chips hash the second 64 bytes of the header which includes the time, a little bit of the Merkle root, nBits and a nonce. then the chips hash both of those hashes into the final result.
The issue is that the ASIC doesn't send back the final hash. it only sends back the nonce that made that hash fall below the target (and only if it did). If you want to know what the hash was, you need to compute it in software.