Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Upgrades

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    18
    2.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • KeithWundefined
      KeithW
      last edited by

      Thanks DC42, on that page what voltage do I need to select, there is the option of 3.3v and 5v?

      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by

        3.3V (that's the version without level shifters).

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        1 Reply Last reply Reply Quote 0
        • KeithWundefined
          KeithW
          last edited by

          Ah I see, thanks again.

          1 Reply Last reply Reply Quote 0
          • KeithWundefined
            KeithW
            last edited by

            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?

            1 Reply Last reply Reply Quote 0
            • dc42undefined
              dc42 administrators
              last edited by

              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.

              Duet WiFi hardware designer and firmware engineer
              Please do not ask me for Duet support via PM or email, use the forum
              http://www.escher3d.com, https://miscsolutions.wordpress.com

              1 Reply Last reply Reply Quote 0
              • KeithWundefined
                KeithW
                last edited by

                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. 😞

                1 Reply Last reply Reply Quote 0
                • krzakuundefined
                  krzaku
                  last edited by

                  @dc42:

                  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

                  1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators
                    last edited by

                    @krzaku:

                    @dc42:

                    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.

                    Duet WiFi hardware designer and firmware engineer
                    Please do not ask me for Duet support via PM or email, use the forum
                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                    1 Reply Last reply Reply Quote 0
                    • krzakuundefined
                      krzaku
                      last edited by

                      @dc42:

                      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.

                      1 Reply Last reply Reply Quote 0
                      • dc42undefined
                        dc42 administrators
                        last edited by

                        The table came from the MAX31865 datasheet, so that's the place to look.

                        Duet WiFi hardware designer and firmware engineer
                        Please do not ask me for Duet support via PM or email, use the forum
                        http://www.escher3d.com, https://miscsolutions.wordpress.com

                        1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators
                          last edited by

                          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.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 0
                          • krzakuundefined
                            krzaku
                            last edited by

                            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.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post
                            Unless otherwise noted, all forum content is licensed under CC-BY-SA