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

    How to control 100 solenoids?!

    Scheduled Pinned Locked Moved
    General Discussion
    8
    28
    2.6k
    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.
    • Hardware_SortingRoboticsundefined
      Hardware_SortingRobotics
      last edited by

      I was wondering if there was anyone with experience in controlling a few hundred solenoids via the Duet WIFI? I have looked online on methods people use basic arduinos but it seems like a lot of the information is outdated. Any guidance into what expansions boards I can use would be super helpful!

      I would prefer to use the Duet architecture because it is so handy and I can post my findings here for future reference! ☺

      1 Reply Last reply Reply Quote 1
      • JoergS5undefined
        JoergS5
        last edited by

        Seems to be a very interesting topic! If you need to control the solenoids, the sensor inputs are also important and I would consider an FPGA based solution. Maybe you can tell a bit about your use case to answer your question better (what are your requirements for latency etc.)

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

          @JoergS5, do you need just on/off control, not PWM? How much voltage and current do the solenoids need?

          There are a number of solenoid driver chips with SPI interface, for example http://www.ti.com/product/DRV8860#.

          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

          Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 1
          • Hardware_SortingRoboticsundefined
            Hardware_SortingRobotics @dc42
            last edited by Hardware_SortingRobotics

            @dc42 I think I just need on/off control. I am planning on buying maybe 100 of these guys: SOLENOID

            I think that chip would work...So I guess I would build my own breakout board with ~13 of those chips and hook it up to the duet somehow?

            @JoergS5 My goal is to make a machine that separates good and bad tea leaves for my friends tea farm. Very similar to THIS machine but not nearly as big and not nearly as fast; just automated and kinda slow. I would say the actuation frequency should be less than 100ms I doubt I will need it faster than that.

            My friend doesn't have $250,000 dollars to buy one those, but I figured we could hack one together for under $5,000. 😛

            dc42undefined JoergS5undefined 2 Replies Last reply Reply Quote 0
            • snoozerundefined
              snoozer
              last edited by

              Would that not be a classical application for a PLC rather than a motion controller ?

              Regards
              Jan

              Regards Jan

              --
              My Printers:
              #1 Prusa i3 MK3 kit all stock (Retired)
              #2 Rat Rig V-Core Core-XY (Almost finished but fully usable)

              My Experiments:
              https://www.thingiverse.com/snoozer17/designs

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

                @injoi9000 said in How to control 100 solenoids?!:

                @dc42 I think I just need on/off control. I am planning on buying maybe 100 of these guys: SOLENOID

                I think that chip would work...So I guess I would build my own breakout board with ~13 of those chips and hook it up to the duet somehow?

                You could daisy chain all 13 and drive them from the temperature daughter board connector on the Duet, or from the same SPI pins on the expansion bus.

                Here's another octal solenoid driver: https://www.st.com/resource/en/datasheet/l9822e.pdf. And here's a 16-channel one: https://www.nxp.com/docs/en/data-sheet/MC33996.pdf. Note, with these two the inductive back EMF when the solenoid is released will be dissipated in the device. So you need to make sure that the amount of this energy is not excessive, or else use external flyback diodes. The TI part has internal flyback diodes. Flyback diodes slow down the solenoid turn-off, but you can mitigate that by connecting the flyback diodes to a separate rail or by connecting Zener diodes in series with them.

                @JoergS5 My goal is to make a machine that separates good and bad tea leaves for my friends tea farm. Very similar to THIS machine but not nearly as big and not nearly as fast; just automated and kinda slow. I would say the actuation frequency should be less than 100ms I doubt I will need it faster than that.

                How will you tell the difference between good and bad leaves?

                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

                Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 1
                • Hardware_SortingRoboticsundefined
                  Hardware_SortingRobotics @dc42
                  last edited by Hardware_SortingRobotics

                  @dc42 I am using a color spectrum analysis from the openCV library.

                  Okay I think I understand. I remember those DRV8860 drivers from the old RAMPS boards a few years back. I could daisy chain all the DRV8860's together on my own little breakout board, attach the signal pins to the outputs of the DRV8860's, then I connect the inputs to these SPIO pins:

                  0_1553246176210_Capture.PNG

                  How do I send my serial signal from my computer/web interface/gcode file to those pins to control the DRV8860's?

                  @snoozer It is 2019, PLC is expensive, inflexible, heavy, clunky, and it is just outdated tech. I also want to control the whole system through the duet and off the shelf IC's. The duet and arduino in general is awesome to work with.

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

                    I presume you will be running OpenCV on a Raspberry Pi. In which case, if it is just the solenoids that you need to control (no stepper motors etc.) then it would be simpler to use the SPI output on the RPi to drive those chips and not use a Duet.

                    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

                    Hardware_SortingRoboticsundefined 2 Replies Last reply Reply Quote 1
                    • Hardware_SortingRoboticsundefined
                      Hardware_SortingRobotics @dc42
                      last edited by

                      @dc42 hmmm that's a good idea. Yea I am using a raspi for the openCV. I guess I will just use the duet to control the conveyor belts and then the SPI pins to control the solenoids.

                      Is there anything else I need to put in series with those solenoids to the DRV8860's to prevent them from burning out my chips?
                      '

                      devleonundefined 1 Reply Last reply Reply Quote 0
                      • Hardware_SortingRoboticsundefined
                        Hardware_SortingRobotics @dc42
                        last edited by

                        @dc42 but let's say I did decide to use the duet........for educational reasons.....how would I send signal to those SPIO pins?

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

                          You would use the SharedSPI library, the same way that SPI temperature sensors do. See function DoSpiTransaction in https://github.com/dc42/RepRapFirmware/blob/dev/src/Heating/Sensors/SpiTemperatureSensor.cpp.

                          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
                          • JoergS5undefined
                            JoergS5 @Hardware_SortingRobotics
                            last edited by

                            @injoi9000 Nice project, good luck with it!
                            For deciding good from bad tea, I found some ideas here for tobacco: https://www.tomra.com/en/sorting/food/food-technology maybe helpful ideas. Spectroscopy may be the easiest to start.

                            Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 0
                            • devleonundefined
                              devleon @Hardware_SortingRobotics
                              last edited by devleon

                              @injoi9000 If you're only controlling a conveyer belt, why not just hook up a simple driver (stepper driver, mosfet or ssr) to the raspberry pi? There's plenty of GPIO. I think the Duet might just add a lot of unneeded complexity, and the raspberry pi should be capable enough to do everything.

                              Even if it's for educational purposes, you're going to need to jump through a lot of hoops and make it do something it's not really made to do

                              Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 0
                              • Hardware_SortingRoboticsundefined
                                Hardware_SortingRobotics @devleon
                                last edited by

                                @devleon Yea I am going to use the gpio for the solenoids. Hmm I just got in these parts:
                                https://www.mouser.com/ProductDetail/595-DRV8860APW

                                Uhh am I supposed to send these off to a custom pcb house to get soldered to a board? The chip is tiny and the pins are even smaller...
                                0_1553559511418_Capture.PNG

                                1 Reply Last reply Reply Quote 0
                                • Hardware_SortingRoboticsundefined
                                  Hardware_SortingRobotics @JoergS5
                                  last edited by Hardware_SortingRobotics

                                  @joergs5 oh yea definitely. My friend got a quote from there and they said it would be more than $250k!! I am sure I can make a micro version for wayyy cheaper.

                                  JoergS5undefined 1 Reply Last reply Reply Quote 0
                                  • A Former User?
                                    A Former User
                                    last edited by

                                    You can buy little SMD adapters that you can solder chip and headers to. Given you can use SPI then maybe you could use mcp23s17 + uln2803a which are available in DIP packages if thats important to you.

                                    Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @Hardware_SortingRobotics
                                      last edited by

                                      @injoi9000 to find out good and bad tea, you can send some thousands of images to amazon mechanical turk for classification, then train a neural network (e. g. tensorflow) and use it to separate them. As spectral light sensors, AS7262 and AS7263 chips may be useful.

                                      Hardware_SortingRoboticsundefined 1 Reply Last reply Reply Quote 0
                                      • Hardware_SortingRoboticsundefined
                                        Hardware_SortingRobotics @JoergS5
                                        last edited by

                                        @joergs5 I don't really know much about neural networks so using tensorflow might be a bit of a stretch at this point 😓 I was planning on just taking a picture, doing spectral analysis on that whole picture, I can pass that matrix through an effective bandpass filter, then calculate the gradients at the points that didn't pass, then figure out the bad leaves' location. Use the speed of the conveyor with some trajectory analysis and then shoot them out of the sky.

                                        JoergS5undefined 1 Reply Last reply Reply Quote 0
                                        • Hardware_SortingRoboticsundefined
                                          Hardware_SortingRobotics @A Former User
                                          last edited by

                                          @bearer thanks! I am going to pick up a few of these to prototype and then maybe i'll see if I can get some cheap boards from china for the 100 solenoids:

                                          https://www.mouser.com/ProductDetail/872-204-0004-01

                                          I think I'm going to stick to daisy chaining the DRV8860's because I think I can get my head around that one. Still gotta figure out how to execute the SPI commands. Would you know any good guides using python?

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

                                            @injoi9000 said in How to control 100 solenoids?!:

                                            @bearer thanks! I am going to pick up a few of these to prototype and then maybe i'll see if I can get some cheap boards from china for the 100 solenoids:

                                            https://www.mouser.com/ProductDetail/872-204-0004-01

                                            Have you seen the price of those? It would be cheaper to design your own PCB and have the PCB made in China. There are several companies that offer low cost prototype PCB manufacture, e.g. Itead and Seed Studio.

                                            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

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