WJNuckolls
Bewertet in den USA am11. Mai 2023
but I have to ask, did no one else have a problem plugging this into a breadboard? I read that a couple of reviewers used jumper wires to connect directly to their SBCs or microcontrollers instead of a breadboard, but I’m curious as to how others used this module, out of the box, on a breadboard?I do a lot of digital prototyping and currently have several projects that require more IO ports than are available on the controlling device that I’m using, the ESP-01. I define pins 0 and 2, as SCL and SDA, respectively, to provide an I2C bus to which I then connect other I2C devices, displays, sensors, and usually at least one IO expander. When I saw the MCP23017 I/O Expansion Board Module SG-IO-E017-A, that the XICOOLEE Store offered for review on Vine, I looked up the item on Amazon, and then the data sheet for the MCP23017. I thought it was at the high end of what I would be willing to pay for this, but I wanted to try it out so I made a request, was accepted, and had it the next day.Photo 1: The very nice, fully printed in several colors, box that carries the board from manufacturer to customer. Usually, the components I receive arrive in a plain brown cardboard box with a simple printed label. It helps keep the price of the components low. Rarely do I receive components in such a fancy box. I keep the contents and throw the box in the recycle bin.Most of the various modules and boards that I get these days, come with the pins loose, as it allows the user to determine the wiring, orientation, and mounting of the board. I wish these had been loose. They are not. They are absolutely upside down, not for use on a solderless breadboard. For that use, the components and pins are on the opposite sides of the board from each other. These boards have both on the same side.I tried several ways to connect this thing to an Arduino Uno for testing and took photos for illustration of the frustration involved. I will submit the photos in order but I cannot guarantee that they will remain so when Amazon posts them.I tried plugging it into the bread board as it arrived, but the plug and socket interfered with the board, holding it up on an angle. I couldn’t fully seat the pins, there is no access to the address switches, and the silk screening is now hidden under board where it cannot be used for reference.Photo 2: The top view. (Notice that I marked the A and B port sides and the pins 0 and 7 for each.)Photo 3: The side view.Photo 4: The side view close-up.That try led me to try mounting the module with the two VCC and two GND pins. hanging off of the breadboard. It now laid flat but the address switches and silk-screened info were still on the “bottom”, and it still would not mount properly to a circuit board for a product.Photo 5: The top view.Photo 6: The side view.Photo 7: The top and side views from a distance.So, I tried using it as it arrived, but without the breadboard, using individual jumpers between each pin, the breadboard, and the sixteen devices. I guess this would be one way to use it, temporarily, but with the 16 wires for IO, and the 6 more for VCC, GND, SDA, SCL, Interrupt A, and Interrupt B, it would be cumbersome to work with, being located off to the side of the breadboard, where everything else would be mounted… and this method provides even more “fun" trouble shooting for problems if any end, of one of those 22 jumpers (that’s 44 ends), breaks contact while dangling from the breadboard.Photo 8: The close-up view with jumpers installed.Photo 9: From a distance.Finally, I decided to fix it once and for all by removing the pins and reinstalling them on the correct side of the board, opposite the board’s components.Photo 10: Starting with the board as received.Photo 11: I used an X-acto knife to pry up one end of one of the insulated standoffs.Photo 12: Then the other end.Photo 13: Then switched to a small screwdriver.Photo 14: Working the insulator down to the end of the pins and off. Rotated and repeated for the other side.Photo 15: With both insulators off, it was time to remove the pins.Photo 16: Clamped in a vise with a hemostat clamped on first pin.Photo 17: Using solder wick and iron.Photo 18: Pulling pins.Photo 19: Tools, board, insulators, and throw away old pins and spent wick.Photo 20: This is the disassembled board.Photo 21: The parts that I will solder back together.Photo 22: Finally, after soldering everything back together, I removed the black insulators and reinstalled the original yellow ones.Photo 23: This is what the “bottom” looks like now.Now I could plug the module into the breadboard. I had access to the address switches and could easily see the silk-screened information identifying ports A and B, as well as pins 0 through 7 for each. I believe that if the pins are not going to ship loose, this is the way the board should arrive.Then more problems…As others mentioned, the insulation colors on the six wires that make up the provided JST/Dupont cable, are in a (perhaps) random order and do not conform to the usual red for positive, black for negative/ground, etc., but they can be removed from the JST plug and reinserted in any order you wish. It’s more work/time that should not be necessary. In prototyping, it doesn’t really matter I guess, but if I’m building multiples, and a replacement may be required in the future, then consistency will matter. As previously stated, I have multiple devices on the I2C bus and it makes it easier in the long run to standardize the colors.As if all of that was not enough, both my antivirus software (Norton) and browser (Firefox) prevented me from opening or viewing the Seengreat website, so I could not see any other information or download the demo codes. After some searching, I located the demo code on GitHub, loaded it, and got it to blink all of the LEDs on one of the ports.My final thoughts:Besides the problems listed above, I think this MCP23017 expansion board is physically much wider than necessary. It covers up too many pin socket rows on a solderless breadboard leaving only three rows exposed, one row for one bank and two rows for the other.It would be convenient to have access to the SCL, SDA, INT A, & INT B lines directly from pins in line with, rather than perpendicular to, the rest, but maybe I ask too much. I could add the pins across the end for use with a custom designed circuit board, but not a solderless breadboard as they would short each other out.Looking over the collection of similar MCP23017 boards offered on Amazon, I notice several assembled as this, but no others with the address switches. That switch is a convenient feature when prototyping with multiple I2C devices, and multiple addresses, but once the address scheme is finalized for each device, the switches won’t ever change.While I appreciate the opportunity to evaluate this board, personally, I would not buy one. There are others available that are more breadboard and circuit board friendly, that do the exact same thing and are less expensive.