Notes on the schematic (Control Board.sch)

  • for library part ED2989-ND-USB, made VCC and GND passive because these are alternative ways to power the +5V bus, and the electrical rules check-in kicad doesn't allow multiple power output sources for the same bus. Normally this bus is powered by the battery and voltage regulators.
  • have to use a PWR_FLAG on the +BATT bus because this power net is not output from the battery directly, it's only available after a series of passive components (diode, fuse)
  • also, doesn't really make sense to mark the battery connector ground pin as a "power output", so use PWR_FLAG for GND bus as well
  • the 3.3v bus is not actaully powered; RPi's get power on the 5v bus
  • We need separate power buses on the two boards, thus we created different power port symbols (e.g. the little triangle that says "GND")
    • the ports on the motor board are post-fixed "_motor"
    • the ports on the brain board are post-fixed "_brain"
    • We need different power ports because they function as a "global label" that can be seen across all sheets in a single schematic. So it's important to have different names.
    • Note it's different for "net labels" - those are local in scope, to the given sheet
    • see https://forum.kicad.info/t/understanding-power-port-components/8945/14 for more background

Important things to keep in mind when updating schematics

  • make sure you're being cleanly about updating symbols in the schematic
    • you should update them in the JPL_Robotics_Lib.lib file, then pull those changes into the local schematic file in kicad
  • if kicad creates "cache" or "rescue" libarary files, think before committing those to git.
    • cache files should be okay, but that's unclear. Ask someone before adding those to git versioning.
    • rescue files should not be commited - but that's also unclear. Ask someone before adding those to git versioning.
  • Reference Designators
    • it's important to retain the same reference designators (e.g. J12, U1, C3, etc) when revving the PCB - a lot of the discussion in the open source rover forums have referenced components by the reference designator, so that's a useful well-known name.
    • whenever annotating reference designators in kicad (with Annotate Schematic... ), make sure to check keep existing annotations
    • of course, if new components are added to the PCB schematic, these will need new completely designators. It's fine to use auto numbering for these.
    • in the worst case, you can always go into the .sch file and fix things by hand in a text editor

Components

LM358

Roboclaw

  • [Datasheet](https://downloads.basicmicro.com/docs/roboclaw_datasheet_2x30A.pdf](https://downloads.basicmicro.com/docs/roboclaw_datasheet_2x30A.pdf)
    • see page 5 and 6
  • Pins
    • We don't use the encoder power (+/-, "PWR1/2" in the jpl robotics library) connections on the roboclaw pin header because we supply this via the screw terminals

Raspberry Pi

  • Datasheet
  • For EEPROM ID SD and SC
    • See page 9 of the datasheet
    • SD is i2c clock (so this pin is set to output)
    • SD is i2c data (so this pin is set to bi-directional)

Voltage regulators

Inter-board connectors

Secondary E-stop (e_stop 2) header

Adafruit INA260 headers

  • The ina260
    • https://www.adafruit.com/product/4226#technical-details
    • pin details
  • 8 pin header
  • 2 pin header
    • PEC02SAAN
    • Digikey
    • note! This header is actually 0.1" pitch, but we need 0.2" pitch. So the builder will have to go in and manually cut the pins apart. Shouldn't be too hard though.
    • for this reason, using a custom footprint with 0.2" spacing

Adafruit 16-Channel Servo Driver

  • 6 pin header
  • Motor output headers
    • PPTC041LFBN-RC
    • Digikey
    • 3 of them for each section of 4 output channels on the servo driver board
  • note that we don't need to connect the two pin power header, because we aren't routing power through the servo controller board, we're exclusively providing it through the control board

Corner servo motor connectors