Upgrades
-
3.3V (that's the version without level shifters).
-
Ah I see, thanks again.
-
Ok got it all working, thanks for the help. Now I have another problem, seems I must have knocked or otherwise moved both of the LED's on my IR Probe while I was upgrading and it is way out now. I tried moving them back to a position that looked more or less even and level which improved it somewhat and I managed to get it triggering at the centre position at a decent height (1.18mm) but something is still wrong, it triggers fine in the centre but as it is going round on the calibration it is triggering very high in some places and hitting the bed in others. Is there something I can do to get the led's repositioned properly?
-
I presume you have the older version of the IR sensor with the through-hole IR LEDs and phototransistor. The important thing is to make sure that they are standing perpendicular to the PCB. The trigger height can be adjusted by rotating the outer LED about an axis perpendicular to the PCB; but don't try to increase the trigger height too much.
-
Thanks, I will have to have another go at it I guess, They were both well out of position so I guess the best thing to do is get them as close to perpendicular to the board as possible and both as close to 45% as possible and get it probing level if not at the right height then adjust the outer LED to get the height withing tolerance. Hopefully I can get it working or I will have to buy another which isn't a problem except you are out of stock currently.
-
This one will do http://www.ebay.co.uk/itm/PT100-PT1000-temperature-converter-SPI-digital-output-Arduino-MAX31865-from-EU-/171701993176.
Boards with level shifters might work, but to use a 430 ohm reference resistor you would need to construct a new resistance/temperature table and rebuild the firmware.
Could you make that configurable in the firmware? It's possible to calculate it using a generic lookup table like in this project: https://github.com/adafruit/pt100rtd
-
This one will do http://www.ebay.co.uk/itm/PT100-PT1000-temperature-converter-SPI-digital-output-Arduino-MAX31865-from-EU-/171701993176.
Boards with level shifters might work, but to use a 430 ohm reference resistor you would need to construct a new resistance/temperature table and rebuild the firmware.
Could you make that configurable in the firmware? It's possible to calculate it using a generic lookup table like in this project: https://github.com/adafruit/pt100rtd
It would be possible, but as the Duet085 is now out of production and there are at least 2 types of MAX31865 boards available that use 400 ohm resistors, I don't plan to do it.
-
It would be possible, but as the Duet085 is now out of production and there are at least 2 types of MAX31865 boards available that use 400 ohm resistors, I don't plan to do it.
Could you at least post a lookup table for 430 ohm resistor boards in a pastebin somewhere, or how you calculated the values, so I can compile it myself? I bought a board with a 430 ohm resistor before I checked a 400 ohm one is required and I want to avoid soldering if possible.
-
The table came from the MAX31865 datasheet, so that's the place to look.
-
PS the easiest way to convert that board from 430 to 400 ohms reference resistor would be to solder a 5.6K resistor of the same size on top of the 430 ohm resistor. The parallel combination would have a resistance of 399.3 ohms.
-
That's kind of missing the point, isn't? Buying an expensive temperature sensor just to lower the accuracy with a wrong resistor?
I'm trying to rewrite the MAX38165 module in the firmware based on the example I linked above, but to be perfectly honest I have no idea what I'm doing. My C++ knowledge ends on simple console games and I have zero experience coding for ARM. What I'm having trouble with is getting the ohm reading. In the GetTemperature method you have an adcVal variable. How do I convert this value to ohms? What I tried is mostly copy-pasting from the example like so:
[[c++]] uint32_t dummy; uint16_t adcVal = (rawVal >> 1) & 0x7FFF; dummy = (uint32_t)(adcVal << 1) * 100 * (uint32_t)430; // 430 is the Rref value, hardcoded for now dummy >>= 16; uint16_t ohmx100 = (uint16_t)(dummy & 0xFFFF);
But I must be doing something wrong because I'm getting no reading (2000 celsius). I also don't know how to debug stuff so I'm going through this blindfolded, not knowing what values those variables have.