Giter Club home page Giter Club logo

pielectrical's Introduction

PiElectrical

This is the working repo for PiElectrical teams

  1. ToDo
  2. Repo Structure
  3. Setup
  4. Work Flow
  5. How to Create a Gerber
  6. Docu Packets
  7. FAQ
  8. Useful Links
  9. Standards

ToDo:

  • The stuff in PDB-Y16
  • Convert motor controller design to KiCad
  • Add and test current regulation for motor controller
  • Talk to runtime and potentially use cheaper MCU for motor controller

Back to Top

Repo Structure:

Boards: Contains all necessary information about each board, including KiCad (and old Eagle) files, arduino test files, and board specific documentation.

Bootloaders: Contains the files necessary to burn the bootloader for boards identifying as Leonardo (Atmega32u4).

Documentation: All docu packets and scripts. Fragile! Do not touch!

Production_Files: Finalized gerbs and other necessary production files (BOM, CPL, etc...) sent out for fabrication.

Images: Place all your images in here to enhance your READMEs.

Libraries: Necessary KiCad files to work on PiElectrical

ToDo is on the README to keep things easier to see at first glance. GitHub issues tracker can be used as well.

Back to Top

Setup

When you see an arrow like this... (click me) ...it indicates an expandable section. We usually include images in here as a better reference for you to follow along.

Initial Setup of PiElectrical repo on your computer

  1. Copy the URL for pioneers/PiElectrical to your clipboard: (Or here: https://github.com/pioneers/PiElectrical.git)
  2. In Terminal (Mac, GNU/Linux) or Git Bash (windows), navigate to your working directory (the directory that you want to keep PiElectrical in.)
  3. Clone PiElectrical by running this command: git clone https://github.com/pioneers/PiElectrical.git

Installation of KiCad on your computer

  1. Download the latest version of KiCad here: https://www.kicad.org/download/
  2. Run installer. Use all default settings on installer. (Click to see default settings)

Setting up KiCad

  1. Open KiCad.
  2. Depending on whether you've used KiCad before, select the appropriate option on the pop-up. (Default settings if you're new to KiCad).

Adding Symbols

  1. Go to the Preferences tab, and select Manage Symbol Libraries...
  2. If this is your first time using KiCad, it will prompt you to configure the Global Symbol Library. It is highly recommended that you select "Copy default global symbol library table".
  3. Select the folder icon near the bottom left and navigate to the PiE_Symbols.kicad_sym file in the src folder.
  4. You should now see the PiE_Symbols in your Symbol Libraries. Make sure the "active" box is checked, and click "OK".

Adding Footprints

  1. Go to the Preferences tab, and select Manage Footprint Libraries...
  2. If this is your first time using KiCad, it will prompt you to configure the Global Footprint Library. It is highly recommended that you select "Copy default global footprint library table".
  3. Select the folder icon near the bottom left and navigate to the PiE_Footprints.pretty file in the src folder.
  4. You should now see the PiE_Footprints in your Footprint Libraries. Make sure the "active" box is checked, and click "OK".

Note that this setup instruction is based on KiCad 7.0.7, but it should still work for other versions.

Back to Top

Work Flow

Protocol when working on KiCad files

The revision number should be REV <year><revision>. E.g. REV 16A for year 16 revision A.

If you are not quite familiar with git, see Useful Links for the PiE Github tutorial

WARNING: Do not modify PiE_Symbols.kicad_sym or PiE_Footprints.pretty without discussing it with PMs.

Steps when working on KiCad files:

  1. In Terminal (mac, GNU/Linux) or GitBash (windows), navigate to your working directory (wherever you have PiElectrical).
  2. Make sure your working directory is clean: git status
  3. If you haven't started your sub project: git checkout -b YOURNAME-SUBPROJECT
  4. YOUR_NAME/SUBPROJECT is now the name of your branch
  5. Do your work in KiCad.
  6. Once you are at a good stopping point in your KiCad work, commit your progress:
    1. git add path/to/your/file
    2. git commit -m "Make your commit message short and with this format"
    3. NOTE: Commiting is like saving your file, but for all of PiE as well as your personal computer. And just like saving, Commit Early & Commit Often!
  7. Repeat Steps 5 and 6 until you are finished with your EAGLE work.
  8. Once you have made your last commit, push your files to the PiElectrical github repo: git push origin YOUR_BRANCH
    • If you get a merge conflict, contact the PMs for help.
  9. If completely done, submit a Pull Request

Commit Message Format Conventions

  • Present Tense ("Reroute power traces on team flag", not "Rerouted power traces on team flag")
  • No period at the end: ("Reroute power traces on team flag", not "Reroute power traces on team flag.")
  • Keep your message length to about one sentence.

Merge Conflicts: What should I do?

Don't try to fix it yourself: Eagle files are finicky and you might break all your work!

Ask someone who knows how to deal with this, i.e. your PM or something

Back to Top

Generating Fabrication Outputs

  1. Make sure you run the Electrical Rules Check (ERC) in the schematic and the Design Rules Checker (DRC) in the layout, and have no red errors. Feel free to ask PMs if you have any questions.

  2. Go to File -> Fabrication Outputs -> Gerbers (.gbr)...
  3. If this is your first time using KiCad, it will prompt you to configure the Global Symbol Library. It is highly recommended that you select "Copy default global symbol library table".
  4. Select the folder icon near the bottom left and navigate to the PiE_Symbols.kicad_sym file in the src folder.
  5. You should now see the PiE_Symbols in your Symbol Libraries. Make sure the "active" box is checked, and click "OK".
  6. Open the brd file

  7. Click Cam Job

  8. Open pie.cam

  9. Make a directory in each sensor's folder called SENSOR_NAME-gerb

    • SENSOR_NAME must be the exact name as the brd file
  10. Run job, and click yes to all for the polygon issue

  11. Once all the jobs are done, run make gerb

Back to Top

FAQ

Q: What's the difference between commit before I pull?

A: Do you want to keep any of the changes? Then commit those (the ones you want to keep) before you pull. Or else, the things you pull might conflict with your work, and you'll have a git disaster.

Q: I worked on my stuff, pulled, and everything I did went away!

A: As long as you committed, the PMs can recover your work for you.

Q: Why am I working on my own branch?

A: This is to keep track of pull request and board reviews on a per board basis

Back to Top

Useful Links

PiE's own Github Tutorial

PiElectrical Wiki

Markdown Cheatsheet

Arduino Pro Micro Pinouts

BAC DFM

Read up on the PiE Electrical Style Rules and Guidelines (This is a good resource, but outdated)

Back to Top

Design Rules

You can find JLC's design rules here: https://jlcpcb.com/capabilities/pcb-capabilities. Please review this before ordering a PCB.

Some of our general rules:

  • Traces must be multiples of 45 degrees
  • Standard Pin Distance: 100 mils (2.54 mm)

Make sure to annotate your boards:

Copyright (c) 2023, Pioneers in Engineering
All rights reserved.

Design by: Justin H
This design is open source hardware.
For more information, visit 
github.com/pioneers/PiElectrical

Back to Top

pielectrical's People

Contributors

97hongjun avatar akumaraguru avatar aldricgozon avatar avekan33 avatar cathykim avatar dhutchings avatar ezrapeh avatar jhunji17 avatar jillianheng avatar jimbyyy avatar justinhsu845 avatar kaitlynchan avatar karthik-shanmugam avatar lingfei93 avatar lzyang2000 avatar margooka avatar mastershenwei210 avatar mohammed0987 avatar nwerblun avatar onibrow avatar rickylgh avatar spyxmon avatar stencilze avatar tobinsarah avatar y-song avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

rickylgh

pielectrical's Issues

Silkscreen Edits

General

  • PiE Logo and Copyright is being covered
  • Only vector fonts

Battery Buzzer

PDB

RFID

Servo

Team Flag

Twist It

  • Screw terminal on wrong side of board
  • Strange part number is on the board

Yogi Bear

Sourcing

Battery Buzzer

PDB

RFID

Servo

Team Flag

Twist It

  • Not all it's components are accounted for in the BOM

Yogi Bear

Boards should have only vector fonts

Many have proportional font right now. Low priority, but vector prints better on silkscreen and so will be more legible, which is helpful for production. This will require fixes in both library packages and .brd files

Twist it feedback

Feedback on Rev 9B before ship.

  1. Silkscreen for the screw terminals could use some changes. The silkscreen labels should still be visible even after the terminals are soldered in place, so users can look @ the board to determine which terminal is which.

  2. Schematic needs net labels to the right of the R1 thru R3

  3. Just a question about the motor driver. (Confirm: is this the link to the motor driver?)

How is this thing mounted to the twistit? It looks like they're both back-to-back. Have we talked to enclosures about this? Having the andresons going out the back will make for a very... interesting... enclosure.

Although, tbh, i can't immediately think of a better way to do it.

Look into LED arrays for team flag

suggestion from Ryan:

"i'm also pretty sure we need a lot more than 1 LED to produce enough diffuse light to be visible on a bright field. sparkfun and others have lots of easy-to-use arrays (https://www.sparkfun.com/categories/175), etc.

this seems like a great starter/bonus project if we have some new staff looking for an electronics design project."

Via Sizes

Put more vias between the two ground planes on TeamFlag. Increase via size in DRU to be bigger.

Team Flag SMD

The team flag's APM needs to be replaced by the surface mount one

Library BOM

Add parts need to have their manufacturer, part number, supplier, supply number etc.

Anderson

G wants the andersons to be flat

Redo part numbering on battery buzzer

It's currently very sloppy

U$1 for the XT60
R0 because you didn't want to renumber everything
U1 (TI Chip) vs UC1 (arduino)
Andersons have "Conn" heading, not "JP"

Mounting Holes

"Boards should have at least 2 4-40 mounting holes in opposite corners (use the STAND-OFF part). The horizontal/vertical distance between them must be a multiple of 0.25 inches. It is preferred that the distance from the edge is also a multiple of 0.25 inches, but this is not required. If not physically possible, add an extra "wing" to the board for a tooling hole."

PDB Rev 9B erratta

This is the list of PDB rev 9B erratta as currently discovered by Doug. There may be more out there:
Erratta:

  1. Wrong diameter holes (#10-32, should be #8-32) are used on the PCB for the DC converter
  2. Footprint for the circuit breaker has issues:
    -the footprint is symmetric, and it shouldn't be because the circuit breaker itself isn't
    -the bottom hole needs more exposed copper to make soldering / bolting easier.
  3. The Buzzer pin isn't a PWM on the arduino, so the buzzer can't actually buz. We need to swap the "Calib" and "Buzzer_Signal" lines on the arduino.
  4. Really need better silkscreen for the buttons, and high precision resistors. I pushed the wrong button several times.

Improvements:

  1. The arduino currently is directly hooked up to the 5V line. There should be a fuse added.
  2. We can delete SJ1. It's unneeded now.
  3. The calibration Button is to be replaced with a Jumper. That way, a student won't be able to accidentally trigger it but PiE Staff can still quickly re-calibrate it.
  4. mounting holes are weirdly located. More importantly, it seems like there will be a * small * upper enclosure area around the battery buzzer circuits, and there currently aren't enough mounting points there. Check with enclosure people as to the dimensions of the holes - they may need to be #4-40's.
  5. Need mounting for COTS battery buzzer just in case.

TwistIt Product Design

Add strain holes infront of the screw terminal. Maybe not put it on the back, and instead stream line it.

Twist it fixes for yogibear

Running list of fixes for yogibear for next year:

Enable falls from 4.65 (VCC) to 4.5 V when entering an error state. The amount the voltage falls is set by a resistive network on the motor driver chip, i.e. something that we can't change. However, this change in voltage is readable from an ADC:

  • Connect the "EN" pin to an ADC - capable Arduino Pro Micro pin.

Fuses for PDB

The XT60 connector requires a lot of force to remove.

Sometimes, users will press down on nearby tall fuses (the thermal reset ones) for leverage, and break the fuseholder in the process.

Finish Relay part

It's in pie.lbr. Averal did the baby stuff, the rest is for you to do. Have fun.

Add steps for fab

From DRU, DFM, Gerb Making, Board Review Process, things to look out for

ATX

ATX Footprint is too small

Minor PDB erratta, mostly silksreen

  • Include "+" on the anderson & ATX connectors to allow for correct installation of andersons w/out looking it up
  • Update ATX connector to new footprint.
  • Add Nuts & Bolts to BOM.

Team Flag

The BLUE LED is leaking ever so slightly. Also Doug noted that we should not be using the ones from DigiKey.

Board Size

Battery Buzzer

  • Strangely large
  • Lot's of dead space

PDB

  • REALLY big
  • Look into shaving off bottom area?

RFID

Servo

Team Flag

Twist It

  • Maybe try to linearize the layout: usb on one end, screw terminal on other, opposed to the 90 degree angle we have currently

Yogi Bear

Make TwistIt smaller

This is probably included in some of Doug's issues, but I wanted to emphasize its position in the queue/stack. This is to enable andersons to go vertical on both sides.

Servo:

Update servo silkscreen with which one is servo 1 and servo 0 in hibike.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.