SPI communication with MLX75306 optical sensor array
I'm not familiar with the chip you use, but here are some quick suggestions:

Try to validate that you can get some data out of the chip before even doing any complex command sequences. This is because SPI does not raise errors when something goes wrong. If there's no chip connected or the SPI settings are wrong the transactions will still run! The only indication of the problem will be that every byte you receive is 0x00. So, it's good to start with the simplest code that would get your device to send a non-zero byte.

After a quick read through the datasheet, a good candidate for sanity checking your SPI coms is the... &quot;sanity byte&quot; that this specific device sends in reply to commands. I suggest you write code to read and validate it.

Double-check the timing requirements, for instance how much time you must wait after CS goes low before sending data, or how much time you must wait after a reset to send the first command, etc. If it's a very small value (eg. 50 ns) you do not usually have to insert a delay command in the Arduino code. If it's micro/milliseconds, you might have to.