Skip to content

Instantly share code, notes, and snippets.

@dmalawey
Last active Apr 11, 2022
Embed
What would you like to do?
SCUTTLE Kits - Feedback from Early Adopters and Insightful Persons

A message to all:

Please leave your feedback as a comment below, and if your feedback has many points, kindly number them and it will help us organize.

If you love formatting: See Markdown Guide Cheat Sheet

PART_0 Query Topics 10.20

  1. Platform for payload
    • Is there a kind of Payload rack design in place?
  2. Buying Extra Hardware
    • Where can we order more fasteners?
      • Part numbers have been updated on our BOM for all M6 screws & extrusions
      • Latest Bill of Materials is posted here

PART_1 Hardware Assembly 10.21

  1. Wheel brackets
    • They feel too tight
    • It's hard to place the fasteners, they must be slid into position blindly
  2. Caster Wheels
    • Unclear how many screws
    • Unclear position of screws
    • Unclear if it needs 1 washer per screw?
  3. Wheel pulley:
    • It's easily broken if inserted in the wrong side Note: Vijay has USA wheels + Asia pulleys combo (check tightness) It was easy to plug in the correct side but too late
    • Not clear which side of wheel has "deep dish"
    • User may hesitate before gluing permanently
    • Remind users to glue the pulley
      • (doesn’t matter if the finger breaks)
    • Not clear if fingers are structurally integral
      • If it breaks, that's OK but user does not know this
  4. Encoders:
    • Were not sent with header pins included
    • Header pin spec should be communicated if users buy their own
    • CAD model does not show the magnet
    • Instructions don't explain placement of magnet, poles, etc.
      • There is a video but no guarantee user will discover it
  5. Motor Pulley:
    • Not clear how the pulley goes on the motor shaft.
      • Need to refer to video with magnet & encoders & pulley together
    • If pulley is inserted backwards, it will be broken
  6. Motor spacer:
    • It's included but not necessary
    • Need to verify motor shaft length (by parts variants) to include or not
    • Need to provide instruction about it
  7. Wheel Assembly
    • There is binding/friction when he tightens the M8 screw
    • We need to check root cause of this binding
  8. Comparison
    • Turtlebot assembly, 1 year back by same user (software eng)
    • Kids can also assemble successfully
    • Had more subassemblies pre-built in the kit
    • fairly easy overall
  9. Pros/cons of self-build for all pieces of SCUTTLE:
    • Confident in knowledge of the system after having built the unit

PART_2 Initial Setup Electronics 10.24

  1. Test of Electronics
    • Seeking an automated test to verify all devices connected properly
  2. PDF Manual disbursement
    • Kit should give access to manual right away, perhaps a postcard in the box with hyperlink
  3. HDMI connection
    • experienced user prefers to connect to monitor for setup
    • HDMI or MICRO-HDMI would be needed.
  4. Minor Software Errors
    • We could make corrections in the github directly
    • Need to show the process for user to "git pull" updates for their existing image

PART_3 Test Encoders & Gamepad 10.25

  1. Encoders Spacing
    • Customer unaware of spec (too close/too far)?
    • Variants of (motor, motor spacer, wheel pulley, and encoder bracket) can stack up tolerances. Must document variations & share.
  2. Encoders test
    • User trying out /dev/i2c to discover encoders - is it a valid method?
    • Enable i2C bus if not enabled (this is in manual, but can we put somewhere else?)
  3. Encoders Error
    • right wheel & left wheel directionality: need troubleshooting resource
    • TRY:
      • see Beagle version of wiring guide for details about i2c bus
      • verify soldering is bridged, per wiring guide
      • verify encoder cables are unique and connected per wiring guide
    • ACTION: We need to update Pi wiring guide with matching details.

PART_4 Personalizing Electronics for the user (11.05)

  1. Accessing the HDMI ports:
    • HDMI ports are hard to reach on Pi
    • If the user slides Pi bracket over for access, it pulls the cord from the
      • suggested CM: Include slightly longer dupont cables.

PART_5 Troubleshooting the motor driving with BEAGLE (11.12)

  1. When running L1_motors.py, I see both wheels turning forward but the right wheel does not move backward. It moves forward that means the power connections are ok.
    • The below condition is possible for motor driver for a given wheel:

      Positive terminal Negative terminal Goal result
      3.3v NC DRIVING FWD SUCCESS
      0v NC DRIVING REVERSE FAILED
    • Another Common Failure Mode is:

      • Ground signal wire is disconnected (this agrees with diagram) AND 18awg ground (source voltage) does NOT come from battery.
        • In this case, there is no common ground between the motor driver and Beagle, therefore the 3.3v signals have no reference.

PART_6 Re-assembly of SCUTTLE and Adjusting Chassis (Feb '22)

  1. Corner Blocks loosen over time
    • Engineering notes: A torque spec should be issued, with instructions on how to achieve such torque without an instrument.
    • Barriers: Torque for aluminum corner brackets should be probably 10x higher than the wheel brackets. So, two different torques for one kind of screw could be a pitfall. The lock washer will be considered, or alternately making hex-shaped heads on corner brackets (to allow allen wrench) and keep phillips heads on the wheel brackets (disallow high torque, which will crush the plastic).
  2. Caster wheels float if chassis is non-level
    • In theory this will not affect tracking. It can affect tracking if: a) the robot has no payload and the movements are slow, b) the rear wheel also has a chance to float.
    • SCUTTLE team should make a video to describe this issue in depth
  3. Wish to check flatness of frame before final assembly.
    • drop-in nuts will be replaced by slide-in nuts for the wheel bracket to help alignment
    • next version of wheel brackets will have fewer nuts
    • a version of the rod brackets are available with twist-in option (but the strength is lower)
  4. Height of the wheel brackets is flush with frame, impacting ease of assembly
    • team needs clarification from customer. (can we have a photo for this issue?)
  5. Camera bracket is weak
    • let's see what was the failure mode and try to enhance strength.
    • video instructions MIGHT help, so user doesnt stress the bracket the wrong way. We could issue this with QR code attached to the parts.
    • really we will have trouble if customer does not have easy access to 3D printer. The very least we could do is offer lists of links to reputable, affordable printing companies in each country.
@michaeljtownsend
Copy link

michaeljtownsend commented Oct 27, 2021

  1. The steps for enabling I2C in raspi-config were missing from the operation guide. They are now included in v10.26 of the document in Section 1>Module 3> Milestone 4. (MT)
  2. The link to the videos on page 3 of the operation guide was outdated by the updates to the video heirarchy. That link is also updated in v10.26 (MT)

@pvandervelde
Copy link

pvandervelde commented Nov 16, 2021

In the SCUTTLE operation guide for the raspberry pi:

  • Connecting to the PI. I used the wpa_supplicant.conf file from here: https://howchoo.com/g/ndy1zte2yjn/how-to-set-up-wifi-on-your-raspberry-pi-without-ethernet#add-your-wpa_supplicantconf-file. It adds a few extra things that may be necessary (but you probably want to test that)

  • The Raspberry Pi guide indicates the the wpa_supplicant.conf file should be written using Unix line endings (LF), otherwise it might not work. I haven't tested it with Windows line endings (CRLF). In Visual Studio Code you can set your line endings. Other decent editors should allow you to do the same. Notepad (on windows) is not a decent editor

  • The Raspberry Pi guide also indicates that the SSH enable file should be called ssh with no extension. I created a text file with the name ssh.txt in Windows explorer and then renamed it to ssh

  • It seems that on the Raspberry Pi 4 that I have, that some of the menu options in raspi-config have had their names changed. For instance interfacing-options is called `interface options (I think).

  • The image I downloaded did not have i2cdetect installed. I installed it using the instructions I found here: https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c. The guide didn't have any note that this tool might be missing

  • The code in the image has a bug in L1_gamepad.py. That bug seems to be fixed in the repository. It might be better to not put the code on the image but always get people to download it. That way they always have the version with the latest fixes

  • I would swap the order of the modules. Currently, it is vision/camera, then encoders, then gamepad. The first one assumes the encoders are correct (which they are not in my case). I would put encoders first (prove that this part of your SCUTTLE is correct), then gamepad (try driving the SCUTTLE in a straight line), then vision (see what cool stuff you can do with SCUTTLE)

@pvandervelde
Copy link

pvandervelde commented Feb 7, 2022

After re-assembling SCUTTLE I found:

  • I have noticed that the corner blocks become loose over time. Currently, they are held based on how tight the screws are. It might be useful to have some spring washers to ensure that the bolts don't loosen up over time.
  • In my case I have noticed that if my frame isn't flat it leads to one of the caster wheels not following properly, it seems to be just slightly off the ground on flat surfaces. How bad this is for tracking etc. I don't know.

Scuttle assembly might be slightly easier if you can assemble the frame first and check that for flatness and square. Then you can add the brackets for the electronics rails and the rear wheel assembly

  • At the moment this won't work because the brackets for the electronics rails have to be slid into the T-slot before assembling the frame
  • You could add the rear wheel brackets after assembling the frame but it is hard to line up the bolts and nuts.

Having the brackets for the electronics and the rear wheel assembly attached means you have to check for flatness by putting SCUTTLE upside down.

  • It looks like the brackets that hold the motors and rear wheels are the same height as the aluminum T-Slot frame. This could mean that if you put SCUTTLE on it's back to check if the frame is flat that you might be measuring off the motor frames instead of the T-Slot. Making the motor frames a bit lower could help there (maybe to where the T-slot has a round-over).

The camera mount plate broke off on me after having taken it off and put it back on a few times.

@ansarid
Copy link

ansarid commented Feb 10, 2022

After building 3 SCUTTLE's and killing 1 Pi, I've got a list of suggestions.

Hardware

  • Use JST-XH connectors on the encoders and redo their cables.
    • Using JST-XH connectors, you cannot connect the encoders backwards (This is how I've killed 2 Pis)
    • The JST-XH connectors are locking connectors, which means they won't slide off like they do with the current Dupont connectors.
    • JST-XH connectors can be made with the same crimping tool as Dupont connectors.
    • JST-XH connectors are super popular all over the world, so they're accessible to anyone.
  • Use a Raspberry Pi Breakout Hat to totally remove Dupont connectors from the SCUTTLE in favor of JST-XH connectors.
  • Remove the I2C board completely
    • They're not accessible to anyone unless they buy them directly from us. That's problematic for this project's goals.
    • If they are building a SCUTTLE from scratch, they will need to do some soldering to make a similar board. So they might as well use that soldering to make the Raspberry Pi Breakout Hat I'm suggesting.
    • Would reduce the wiring from having wires going from the Pi to the I2C board and then to the encoders to just having wires going from the Pi to the encoders directly.
  • Redesign Battery Pack.
    • Need an indicator to show the ON/OFF positions of the switch on the battery pack. There may be indicators on the switch itself, but I can't see them when look from the top-down on SCUTTLE.
    • Replace BMS with these. The current BMS Is way overkill for our application. These are still overkill, but not as overkill. They also take up less space and cost less.
    • The flat head screw holding the 18650 holder in place runs into the battery in the center position. Means it does not sit flat. Looks bad.
    • Maybe change the battery pack to have 3 Anderson power pole outputs since I use one for charging (one is for power to the Pi, another for the H-Bridge, and the last would be for a charging port), and I wouldn't need a splitter cable.
  • Put a 5v regulator on the hat (this seems to be the popular one)
    • This way you can feed in 12v from the battery pack that goes into the H-bridge and 5v regulator. Mean's that there's no wiring required.
    • Also found these which are cool but kinda niche and possibly difficult to find.
  • Fix the encoder bracket spacing. With the latest parts (mtrPuly_v3.2, encdrBrkt_v2.7, wheelBrktL_v1.5, wheelBrktR_v1.5) the encoders sit further away from the motor pulley magnet than they used to. After testing, the encoders still read fine, but their reading may be more susceptible to noise and interference from the motors.
  • Use pan head screws for encoder mounts instead of flat head.
    • The flat heads make it easy to split the encoder brackets because they're acting as wedges being driven into the plastic.
    • Pan head screws would not split the encoder brackets and allow small adjustment of the encoder position relative to the magnet before I tighten the encoders brackets all the way down.
  • Use motor screw size for mounting encoder brackets as well.
    • Would help reduce hardware required. Unless we switch to the pan head screws. Then we're back in the same place.
    • M3 threaded inserts are easier to get a hold of than M2.5 because they're common in assorted heated insert kits.
  • Use twisty rod bracket (Until DIN rails).
  • Use DIN rails instead of rods.
  • Make a Raspberry Pi Housing
  • Test out the possibility of using a stepper motor driver to replace the L298N/MC33886
    • A stepper driver is basically a 2 channel H-bridge.
    • Stepper motor drivers are common for 3D printers, which makes them quite easy to get.
    • The H-Bridge can be built onto the hat to remove the L298N/MC33886 to free up space for other parts.
    • It would mean less current delivery, but they're still sufficient for being able to run the motors when they are not stalling out and should still be sufficient to handle some amount of payload.
    • We would have female header pins on the hat where you can plug in a stepper driver super easily without any tools and also be able to upgrade them with basically no effort required.
    • Less wiring (no more wires between the Pi and H-Bridge), more space on the SCUTTLE rails for other stuff and the motors would connect directly to 2 terminal blocks on the hat.

Documentation

SCUTTLE BOM

  • This should probably be a Google Sheet. Way more dynamic and you can link users to that. It can be the same BOM you use to assemble kits for customers. They can also export it as a PDF. I don't see any reason the BOM needs to be a static PDF document on the GitHub when you could just open up a spreadsheet that others have view access to and update the link for a part immediately.

SCUTTLE Assembly Guide

  • SCUTTLE Tech Highlights Page seems out of place. Applications Guide may be a better place?
  • Assembly Guide isn't an assembly guide at all. Only slide 4 is related to assembly, and it just links you to the videos on the website.
  • That slide could at least tell users what to click on when they access that page to get videos only related to assembly.

From here on, I'll talk about the videos, since that's where users are being sent for assembly instructions.

  • None of the videos are really assembly guides.
  • First video is about chasing the 8mm hole on the wheel bracket with the drill press. Maybe there should be a video on that topic but using a hand drill, and it would be part of an assembly guide video instead of as a standalone video.
  • Next video is "Hardware list (fasteners, screws, nuts, washers)", still not an assembly video. It's a helpful video, but also something that should be part of an assembly guide video. Probably at the start of the video.
  • "Scuttle Assembly" is just an animated video that's kind of helpful but moves quite quick. Could have slowed it down and done a voice-over instead of the music.
  • "SCUTTLE Robot - Build Motor Driver Signal Wires JST-ZH Macro View for Beagle" is the last video and is still not an assembly guide.

The point: An assembly guide does not exist.

  • Have we looked into what it takes to make an assembly guide? Maybe something similar to what you'd get with a LEGO set?

SCUTTLE Wiring Guide for Pi

  • Slide 4: Why not just say "clockwise" and "counterclockwise" instead of "CW" and "CCW"?
  • Slide 7: This may be more of a hardware criticism, but I'll put it here. Why not have both encoders have their address pins soldered together, and the only thing that changes is whether both pins are pulled to power or ground? Might make the instructions simpler. It really does not make a difference for the software to have the encoders on addresses (0x40, 0x41) vs. (0x40, 0x43).
  • Slide 9: We need to get rid of cables that need to be reordered between the connector ends. Also, nothing showing the encoder cables here?
  • Personally not a fan of the wiring drawings with the curved wire style. I find them harder to follow than guides where wires are straight lines. But that's just a personal aesthetic preference.
  • Slide 12: I think the AUX output sucks enough that it's not even worth using. I'd recommend using a MAX98357A since the sound output quality is far superior and behaves as an audio output should, without any weird white noise or weird buzzing or dial up modem sounds. It's a bit more wiring, but 100% worth doing over using the AUX output.
  • Slide 15: The I2C pins on the Jetson drawing are wrong. The Jetson pinout was made to match that of a Pi. So actually the pins for I2C are exactly the same on the Jetson as on the Pi.

SCUTTLE Tools Guide

  • Slide 3: Pretty please can we show them a pair of gauged wire strippers instead of the automatic wire strippers? Most people(especially beginners) destroy wires with automatic strippers because they don't know how to adjust them. But on top of that, they're pretty poorly suited for smaller gauge wires(I know some exist that go great with smaller gauge wire, but I'm not going to waste time arguing about that). Gauged wire strippers are cheaper, easier to use, it's more difficult to mangle wires with them, and have virtually no adjusting features except for allowing the user to put the wire in a different sized hole. These are a far better tool for beginners to use, and personally are still the tool I prefer. Plus, basically all of them have the wire gauge guides written on each hole of the tool. You can't go wrong.
  • These slides are handy, but still feel like something that should be at the start of an actual assembly guide.

Other

  • Move to Fusion 360? It's not great that an open source project's original CAD files are in SolidWorks. If I want to access the original CAD to be able to modify, ideally it would be in a free software option. Fusion 360 is the go-to for hobbyist, which is why I think our CAD should be migrated over.
  • We need a motor test jig to gauge performance and quality of motors.

@pvandervelde
Copy link

pvandervelde commented Mar 16, 2022

A random thought. There is only one place where you need a hex key / allen key and that is for the rear wheel assembly (attaching the rear wheels to the bracket). Everything else uses a philips head screw driver. It might be worth replacing the rear wheel bolt with one that is a philips head. That would remove one tool that is only used for this purpose.

@dmalawey
Copy link
Author

dmalawey commented Apr 11, 2022

@ansarid our next step for your suggestions is to convert this to a numbered list. We have various contributors working on some areas you mentioned and we can cite your comments. @mantonakakis1 please see this section since there are useful ideas related to the motor driver.

@pvandervelde thanks for your latest comment addition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment