I was successfully able to get the max31855 working without a line level converter chip. Here are my notes,
- Put a voltage divider on the CLK and CS line. I used a 1.8k and 3.6k resistor per another thread on the forum. 22k and 10k, per a different thread DID NOT WORK. The math doesn't work for the second set either. The 1.8k and 3.6k hold almost perfect at 3.3v.
- I added a diode to the serial line, to protect the max31855 in case I accidentally brought the line high from the arduino. This is allows the max chip to communicate the the arduino just fine. I haven't tested it's protective capabilities, and don't plan to.
- Adding a ceramic capacitor (0.1uf) to the thermocouple circuit really helps stabilize the readings. I was getting 5 degree swings beforehand.
- The max31855 handles errors much differently than the max6675 chip. The max6675 will not provide a reading if you have the thermocouple reversed. The max31855 will provide a reading, but will be reversed. Test the thermocouple with a piece of ice to verify correct polarity.
- I used ladyada's library, but I did find that I had to change the clock speed from one millisecond to two milliseconds to have reliable performance using the voltage dividers, and not converting the output of the max31855 to 5v for reading. At 2ms, the readings are rock solid, no errors.