GoPiGo Assembly/Build comments

pending
review

#1

I recently purchased one of your GoPiGo (v3) kits and I have just finished assembling it, intending to use it to interest my granddaughters, (aged 10 and 8), in technology and programming.

During initial assembly and testing, I ran into a number of problems and/or questions which I will address in other separate topics.

In this topic, I want to address my initial reactions to the product, build quality, assembly instructions, and testing.

First impressions:
Before I say anything else, I want to emphasize how impressed and pleased I am with the overall build quality and design of the GoPiGo robot. There is a degree of thoughtful design and attention to detail that I don’t often see in products of this type.

Though it may seem like I might be overly picky in my comments below - it is only because I am so very impressed with your product that I am taking the time to write this at four AM on a Friday while the rest of the family sleeps. I am sufficiently impressed that I am willing to take the time to write this, to help bring this product to another level.

Build Quality:
I consider the build quality to be excellent.

Chassis and body edges were smoothly finished and properly rounded off to avoid sharp edges, cuts and splinters. PC boards also had smoothly finished edges instead of the usual ragged edges that encourage fiber splinters and finger cuts.

Piece-parts like screws, washers, nuts and bolts were also properly finished instead of being rough-stamped with razor-like edges.

PC-board stenciling and marking is also quite good; helping the builder understand what goes where, and - equally important - how to attach it correctly. Just as important as the stenciling itself is the choice of colors - a high-contrast white-on-red - that makes the markings easily seen without being garish or difficult to look at.

Enhancement Suggestion:

  • I would suggest adding additional stencil markings to the top of the red GoPiGo PCB for the LED indicators. I would indicate what it is and/or does, what states it can be in, and what those states/colors indicate.
    i.e.
    • I would mark the “antenna” LED as “Wireless Connection” (with a line going to the LED). On the other side, I would add notations something like this:
      – (off) - Wireless disabled
      – (Green) - Wireless enabled
      – (Blue) - Wireless connected

    • I would also add markings for the two “eye” LEDs, indicating what they do and what the indications mean, as well as for any other un-marked LEDs.

Overall grade: “A” to “A+”

Assembly:
The overall assembly process was fair to good overall, though issues with the assembly instructions, (see below), unnecessarily complicated things at times.

The design of the parts and chassis with extra mounting holes and wire-feed-through slots is an excellent idea that encourages experimentation. Likewise, the few additional parts included in the kit also helps stimulate the imagination.

Enhancement Request:

  • I would sub-divide the packages of parts into smaller groupings, such as a separate package for the posts and stand-offs, one for smaller screws, one for larger screws, one for washers, etc. The way they’re currently organized makes it necessary to pour out the bags and manually separate the individual types of parts - which encourages them to be spilled and lost. This is especially important for the younger assembler who may not have the experience of the advanced hobbyist.

  • Along with the small screwdriver, a small wrench that fits the nuts and standoff posts would be a valuable addition, since it is often not possible to hold the nut or standoff tightly with the fingers.

  • I would add fiber washers for every place where a standoff, screw, or nut comes in direct contact with the acrylic chassis parts - especially the smaller screws for attaching servos - as tightening them can cause the acrylic to crack. This is also important
    where screws, standoffs, or other spacers come in contact with the printed circuit boards.

  • I would also suggest modifying the bottom chassis where the front-facing servo attaches so that one of the two holes describes a small arc. Because of inevitable production tolerances in the manufacture of servos - and the position of the gear on the shaft itself - the “center” position can, and likely will, point in a direction other than a true 90 degrees. This will allow the slight adjustment needed to correct that.

  • Additionally, the battery can be quite loose, especially if attached to the top of the robot instead of on the back. For each of the places where the battery pack can mount, there needs to be some way to mechanically limit the motion of the battery pack. Indexing pins, slots, indents, or something that the battery pack can fit into, would help the velcro strap hold the batteries in place. As it is, I attempted to attach the battery pack to the top chassis plate. It was so loose there that there was a real risk of it sliding loose, no matter how tight the velcro strap was attached. Even when strapping the battery to the back of the robot, getting a firm attachment is not always easy.

  • I would also suggest adding an additional 2-3 millimeters of clearance between the top chassis plate and the GoPiGo PCB below it. As it is, attempting to run the velcro strap through it after assembly is very likely to bend the header pins that stick up from the red GoPiGo PCB.

  • Lastly, is there some way to cover these header pins when not in use? It is way too easy to bend them after assembly by running the velcro strap, or something else, between the GoPiGo board and the top chassis plate.

Overall grade: “B” - “B+”

Assembly Instructions:
Unfortunately, this was the weakest part of the whole process; contributing materially to the ultimate difficulty and potential dissatisfaction with the product as a whole.

In defense of the writers, writing technical documentation and assembly instructions is very possibly the most difficult and challenging writing task possible. It requires the imagination of Stephen King, the wisdom of Solomon and the tact and diplomacy of Jesus Christ to do even a mediocre job. So much so that there are universities and colleges that offer entire degree programs in technical documentation writing! Like I said, it’s NOT a simple task.

Before I comment on the assembly instructions, I want to mention the important design concept of closure.

Closure, (or the lack of it), is the degree to which a design, method, user interface or assembly instruction, (etc.), helps guide the user “along the path of righteousness”; guiding him toward correct action and helping him avoid mistakes. IMHO, this is an essential quality for any kit - especially one that is going to be used as a learning tool.

Though the concept of closure is important throughout all phases of the design and assembly process of a product like this, it is within the assembly instructions that closure is the most critically important.

What was done well:

  • The overall layout of the instructions was well done.

  • The division of the assembly instructions into small, easily digested and understood logical blocks is a significant plus. This deserves particular mention because it is often so poorly done.

  • In the same vein, the division of each assembly step into distinct parts - a “this is what you will need” and a “this is how you do it” section - is excellent. The inclusion of pictures of the parts and helpful assembly notes and comments is particularly noteworthy. I particularly appreciated the caution and “gotcha!” warnings - they saved me from awful mistakes on a few occasions.

  • Though I could have included this in the assembly comments above, I believe the presence of component and position labels - both molded into the acrylic and as stick-on labels - materially added to the assembly process. Because these markings were there, the assembly instructions were that much more effective.

  • The position labels “L” and “R” for the two motor-mounting brackets is well done. However the assembly instructions have not been updated to use the new markings. Instead the instructions indicate that they are marked with numeral “1” markings.

Unfortunately, there were substantial weaknesses and shortcomings that undermined what could have been absolutely superlative instructions.

Issues I encountered during assembly:

  • My biggest issue was that the instructions were not monolithic or apparently intended for the product I was assembling.

    • The instructions for the GoPiGo kit that I purchased appeared to be a collection of different assembly instructions for individual kits instead of being for the entire robot kit as a whole.
      (i.e. Instructions for the body, for the distance sensor, etc. etc. etc.), instead of an integrated assembly document that related all the assembly steps together.)
    • Likewise, the various assembly instructions were often located on different web-pages, requiring a lot of jumping back-and-forth among the individual assembly documents.
    • The result of this was a lot of unnecessary back-tracking, disassembling, moving parts around, and re-assembling to accommodate assembly aspects that were not well communicated between the various assembly steps.
  • The various sets of assembly instructions are not well integrated. Because of this, one set of instructions tended to “paint the user into a corner” with respect to the steps that followed, often requiring substantial disassembly with the possibility of damage to the parts installed when continuing to the next assembly steps.

  • In the same vein, optional or different potential assembly paths were not presented to the assembler until after one of the possible assembly paths were completed. One noteworthy example is the assembly instructions for the camera:

    • The assembler is told to install the Raspberry Pi board on the bottom chassis.
    • Next, the assembler is told to install the GoPiGo board on top of the “Pi” board and fasten it down using standoffs, the top chassis plate, and then the top chassis plate’s fasteners.
    • Then the user is offered the opportunity to add the Pi camera, which requires removing the fasteners, top chassis plate, standoffs and the GoPiGo board, adding the camera’s flexible circuit strip, passing the strip through a specially made cut-out in the GoPiGo board, and reassembling the whole thing.
      *THEN the instructions say that “if the camera’s flex connecter blocks the sensor ports”, (which it does), the entire assembly needs to be taken apart AGAIN to reroute the flex connector cable. Since assembly of the Pi’s PC board and the GoPiGo board is a major assembly step involving plugging and unplugging headers, fasteners, and other things - it’s not something to be done lightly or casually without a good reason.

What I would review and consider changing:

  • I would make different and separate installation instructions for both individual kits, (i.e. the base robot chassis), and the GoPiGo robot kit as a whole. It might be possible to make the GoPiGo instructions “depend” on the base chassis, sensor, and/or camera instructions so that changes to the sub-assembly instructions propagate through to the instructions for the entire kit.

  • I would make sure that any optional assembly steps, (or assembly step options), are mentioned BEFORE the assembly steps they apply to.

  • I would suggest that the assembly steps for any sensors/actuators included with the kit are thoroughly integrated with the instructions for the whole kit.

  • I would thoroughly use-test the instructions by giving the instructions - and a kit - to groups of varying ages so that you can find pain-points and make changes.

  • I would also seriously consider making a PDF version of the instructions available so that it can be downloaded and printed or read offline on a tablet or e-reader.

Overall grade: “C” - “C+”

Testing the assembled kit:

Also unfortunate is the apparent lack of post-assembly testability. The ability to test the basic functionality of the device, post assembly but before programming, would eliminate much of the angst and frustration that I see on these fora. Please allow me to suggest:

  • The addition of some kind of basic self-test routine that would poll for, (and test), the various installed features, sensors, etc. that are a part of the kit. (i.e. Do the motors turn? Do they turn in the correct direction? Does the distance sensor work? Does the camera work? Does the servo work? And so on.)

  • Within the web interface for the GoPiGo itself should be some kind of dedicated “dashboard” page with prominent data displays where sensors, camera, servos, etc. can be viewed, tested, and errors noted.

  • Also under this heading should be the ability to calibrate the device, sensors, and actuators. With this, the front servo can be adjusted so that “centered” is truly straight ahead, a turn of 90 or 180 (or so) degrees right or left is truly 90 or 180 degrees, (and not 60 or 120 degrees), and other sensors - such as distance measurement sensors - can be set to real and actual values.

Summary:

In summary, I believe that the GoPiGo kit is an excellent buy and can be very useful both as an introduction to robotics and as a valuable teaching aide.

With a little polish and usability testing, this could easily become THE world-class kit that all others are measured against.

Jim “JR”


#2

Hi @jimrh,

We are so wowed by your feedback about the GoPiGo3. It’s so descriptive and thorough - we certainly didn’t expect to get such an honest review and we are definitely glad to see people commenting about it.

Before going any further with this, we want to thank you for spending this much time writing the review. I guess we’re both night owls :blush: I also have the habit of going to bed later in the night. There’s always something else you can learn or discover, right? :smiley:

About the Build Quality

I would suggest adding additional stencil markings to the top of the red GoPiGo PCB for the LED indicators. I would indicate what it is and/or does, what states it can be in, and what those states/colors indicate.

Hmm, I can see where this is coming from - since the WiFi LED is not used anywhere else but on DexterOS, I think we can give it some thought.
As for the two eye LEDs, I’m not sure this is possible, because the eyes can also be used outside the DexterOS environment - I’m thinking this could get confusing to those that don’t use DexterOS. The purpose of the eyes can change, whereas that of the WiFi LED doesn’t.

I would sub-divide the packages of parts into smaller groupings, such as a separate package for the posts and stand-offs, one for smaller screws, one for larger screws, one for washers, etc. The way they’re currently organized makes it necessary to pour out the bags and manually separate the individual types of parts - which encourages them to be spilled and lost. This is especially important for the younger assembler who may not have the experience of the advanced hobbyist.

Along with the small screwdriver, a small wrench that fits the nuts and standoff posts would be a valuable addition, since it is often not possible to hold the nut or standoff tightly with the fingers.

I would add fiber washers for every place where a standoff, screw, or nut comes in direct contact with the acrylic chassis parts - especially the smaller screws for attaching servos - as tightening them can cause the acrylic to crack. This is also important
where screws, standoffs, or other spacers come in contact with the printed circuit boards.

I would also suggest modifying the bottom chassis where the front-facing servo attaches so that one of the two holes describes a small arc. Because of inevitable production tolerances in the manufacture of servos - and the position of the gear on the shaft itself - the “center” position can, and likely will, point in a direction other than a true 90 degrees. This will allow the slight adjustment needed to correct that.

Additionally, the battery can be quite loose, especially if attached to the top of the robot instead of on the back. For each of the places where the battery pack can mount, there needs to be some way to mechanically limit the motion of the battery pack. Indexing pins, slots, indents, or something that the battery pack can fit into, would help the velcro strap hold the batteries in place. As it is, I attempted to attach the battery pack to the top chassis plate. It was so loose there that there was a real risk of it sliding loose, no matter how tight the velcro strap was attached. Even when strapping the battery to the back of the robot, getting a firm attachment is not always easy.

I would also suggest adding an additional 2-3 millimeters of clearance between the top chassis plate and the GoPiGo PCB below it. As it is, attempting to run the velcro strap through it after assembly is very likely to bend the header pins that stick up from the red GoPiGo PCB.

Lastly, is there some way to cover these header pins when not in use? It is way too easy to bend them after assembly by running the velcro strap, or something else, between the GoPiGo board and the top chassis plate.

All these are fair points and make sense. The first 3 suggestions you came up with should be doable - we’re gonna have to check this.

As for the header pins of the board that bend easily, I don’t think we have an easy way out of this - I’m not aware of any cover for the pins on the market. I’ve had this happen to mine too and yes, it’s kind of frustrating. Maybe something 3D printed might solve the issue.

Assembly Instructions


Regarding the assembly instructions, I see the problem you’re describing - the noteworthy example you’ve given. We’re going to have to discuss this and decide a course of action.


Testing the Assembly

And regarding the last section you talked about, testing the assembly, I’m not so sure there’s a good solution to it. Anything that has to be done on the Raspberry Pi generally cannot be “self-tested” by the GoPiGo3 board - in a best-case scenario, the self-test could check the motors, encoders and the LEDs. Probably, some of the sensors could also be self-tested, but I’m not sure about this at the moment.

Thank you again for taking the time to write such a comprehensive review!

Robert


#3

Robert,

There’s one thing I really must mention.

I bought the complete GoPiGo kit so that I could give it to my granddaughters and it would be absolutely complete - able to finish all of the GoPiGo lessons without being missing important parts that cannot be bought locally. (I’m not including things like hardware or common hobby parts like servos.)

I admit that I received everything the kit was supposed to include. However, what really annoyed me was that - after reviewing the experiments/lessons - about 1/3 to 1/2 require the line-follower kit as well. Which is not included.

Admittedly, had I reviewed the lessons more carefully and in significantly greater detail, I would you noticed this. However, I do not feel that any prospective customer should have to do that kind of research before buying what should be a “complete” kit to run the lessons.

Suggestion:

  1. Include the line-follower kit in the GoPiGo.

  2. Do not include the line-following exercises in the base set of lessons for the GoPiGo.

I have to admit that I was quite upset after spending non-trivial amounts of money for the entire kit, only to find a significant and irreplaceable piece missing.

Jim “JR”

P.S. I would have mentioned it before, but it would have been much less diplomatic.


#4

Hello @jimrh
What exactly did you buy? The line follower should be included if you buy the GoBox missions. And in GoBox, only mission 11 requires the line follower.

I’m really interested in digging into this further, as this is most likely due to confusion in the way we present our products.

Thank you for bringing it to our attention.
Cleo


#5

I bought the “GoPiGo Starter Kit” - I forget from what source - maybe SparkFun? Maybe you?

Issue:
I find following your web-site rather difficult. I can go to your site and try to find something three times and (somehow or other) end up in three different locations.

Example:
Because of some issues I have been having, I took a look at the version of DexterOS I have, and it’s 2.1.1. Hmmm… Maybe there’s an update? Won’t be the first time I had a problem that a new version solved, so let’s go look.

Go to the Dexter home page and look for downloads for DexterOS. I eventually end up here:
https://www.dexterindustries.com/dexteros/update-dexteros/

It says that there are no updates for DexterOS version 2. Oh well, guess a software update is out of the question.

Later on, while perusing topics on this forum and just generally snooping around - I found this:

Which lead me to this:
https://www.dexterindustries.com/dexteros/get-dexteros-operating-system-for-raspberry-pi-robotics/

Which - wonder of wonders! - actually lead me to an actual download of, (drum roll), version 2.2.2!

Guess there was an update after all, 'eh? (I haven’t burnt it to an SD card yet.)

Angst and Frustration Reign Supreme. . . .

Seriously, there are times when I feel like an archeologist when I try to find the information I need on a topic.
(/rant)

As a consequence, I cannot find the particular page source links that would bring you through the pages I originally saw when trying to figure out how to use the lessons. Maybe they’re in the GoPiGo itself?

Oh, and by the way, I DID finally find a hardware self-test.

If you open the GoPiGo’s web server page, navigate to the “Code” section, (the LAST place a beginner, or someone who’s just assembled the beastie is going to look), and rummage around in there, you (eventually) find a list of files, one of which is “Hardware Testing.ipynb”. This is a list of Python scripts that take you through a fairly comprehensive self-test of the GoPiGo.

Suggestion:

  • Is it possible to create a category for important maintenance routines on the mygopigo home page - and perhaps put routines like this hardware test there?
  • Does there exist, or can there be created, web-page entries for things like “shutdown” and “restart” for the GoPiGo?

Jim “JR”


#6

Hi @jimrh,

That piece of information where we tell there’s no update for DexterOS 2.x must be addressed - we’ll change that. Good catch.

On DexterOS, there is the image you can download and there’s also an update that takes your slightly older image and updates it to a new version. We generally tell users to just download the new image and re-burn it - it leads to fewer problems in the long run.

Is it possible to create a category for important maintenance routines on the mygopigo home page - and perhaps put routines like this hardware test there?

I guess we could do that, but I’m not exactly sure what this implies, technically speaking. What do you think @cleoqc.

Does there exist, or can there be created, web-page entries for things like “shutdown” and “restart” for the GoPiGo?

Well, for this we just tell them to press the power button on the GoPiGo3 and when it shuts down press it again to bring it up.

Thank you!


#7

You said: (Re: shutdown/restart)

“Well, for this we just tell them to press the power button on the GoPiGo3 and when it shuts down press it again to bring it up.”

All well and good, but what if you’re troubleshooting something way over here and the 'bot is waaay over there?


#8

You also said:

I guess we could do that, but I’m not exactly sure what this implies, technically speaking

Technally speaking, it’s a matter of building another selection on the home screen and populating it with links to the desired existing pages. (AFAIK)


#9

Thank you for bringing this up. It made sense at the time it was written, but not any more. I’ve rephrased it to be clearer, I hope?


#10

One tiny edit and it will be perfect!

Please change:
To get the latest version of DexterOS 2, please go through [these steps to re-image your SD card](https://www.dexterindustries.com/dexteros/get-dexteros-operating-system-for-raspberry-pi-robotics/) with the latest
to this:

To get the latest version of DexterOS 2, please go through [these steps to re-image your SD card.](https://www.dexterindustries.com/dexteros/get-dexteros-operating-system-for-raspberry-pi-robotics/)

  • Remove: “with the latest” at the end
  • Add a period, ( . ), after “SD card”.

Jim “JR”


#11

Well in that case, they’d have to get to the robot and do it manually. There aren’t that many cases where a remote reboot is necessary - in most of the cases if not all of them, you have access to the GoPiGo3.

There could be a way to give access to the jupyter user to initiate a shutdown or reboot though. As of this moment, the jupyter user does not have that authority, but we could do it in the next release. Just to be clear about this, you’d have to open up a terminal and do this.

Thanks!

Edit: Or maybe just as you initially said, adding another category called “Power” to the navbar should be easier. One that would have these 2 operations: shutdown and reboot.


#12

I’ll hold onto that and discuss about bringing this into a future release. Thanks for your suggestion - it’s a good one.


#13

Finally done.
Sorry for the delay