Compare commits
40
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcb8e2b31d | ||
|
|
e13db46dfa | ||
|
|
7c06256bee | ||
|
|
030f219700 | ||
|
|
e7454999c2 | ||
|
|
26b6ac1597 | ||
|
|
76392cb7a6 | ||
|
|
8a375a46c8 | ||
|
|
20c6c8a610 | ||
|
|
cf7629d7a6 | ||
|
|
9037cfc2a7 | ||
|
|
bd4680f740 | ||
|
|
b92ad097d2 | ||
|
|
f9446e4236 | ||
|
|
94b2302b00 | ||
|
|
dd4d6c6502 | ||
|
|
d46039e482 | ||
|
|
a0cc62e802 | ||
|
|
a8293c6d9c | ||
|
|
c55cf89237 | ||
|
|
c815ba7648 | ||
|
|
64be488d0b | ||
|
|
8debc2fcf5 | ||
|
|
bf2116394c | ||
|
|
cc785a58ec | ||
|
|
e50fa06fea | ||
|
|
7fcb1c5379 | ||
|
|
9f820c0d3e | ||
|
|
4d3879d36e | ||
|
|
3d0cfd6a85 | ||
|
|
dca4998b7b | ||
|
|
e8c26e0b21 | ||
|
|
da33466269 | ||
|
|
9ae0118685 | ||
|
|
3368f362ab | ||
|
|
18c353f25c | ||
|
|
b8b7f18827 | ||
|
|
40a29fef72 | ||
|
|
b9fad5d481 | ||
|
|
32f50cb1fc |
No files matched your search
@@ -6,9 +6,149 @@ on:
|
|||||||
types: [ published ]
|
types: [ published ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
|
export-ecad:
|
||||||
|
name: Export ECAD
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: setsoft/kicad_auto:ki7
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Generate Short SHA Environment Variable
|
||||||
|
run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Update system repositories, Install Required Libraries and Initialize git-lfs
|
||||||
|
run: |
|
||||||
|
apt update
|
||||||
|
apt -y install git git-lfs zip librsvg2-bin imagemagick
|
||||||
|
git lfs install
|
||||||
|
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
|
||||||
|
- name: Extract branch name
|
||||||
|
shell: bash
|
||||||
|
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
||||||
|
id: extract_branch
|
||||||
|
|
||||||
|
- name: Update the PCBs with on default branch with git hash
|
||||||
|
if: github.event_name == 'release' || steps.extract_branch.outputs.branch == env.main_branch
|
||||||
|
run: |
|
||||||
|
export COMMIT=$(git rev-parse --short HEAD)
|
||||||
|
echo "COMMIT = ${COMMIT}"
|
||||||
|
echo "ref: ${{ github.ref }}"
|
||||||
|
echo "default: ${{ env.default }}"
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/mobo/mobo.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/feederFloor/feederFloor.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-8mm-fid.kicad_pcb
|
||||||
|
|
||||||
|
- name: Update the PCBs with the git hash and BETA.
|
||||||
|
if: steps.extract_branch.outputs.branch != env.main_branch
|
||||||
|
run: |
|
||||||
|
export COMMIT=$(git rev-parse --short HEAD)
|
||||||
|
echo "COMMIT = ${COMMIT}"
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/mobo/mobo.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/feederFloor/feederFloor.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-8mm-fid/fiducialBoard.kicad_pcb
|
||||||
|
|
||||||
|
- name: Generate Mobo Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/mobo
|
||||||
|
rm -rf mobo/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e mobo.kicad_sch -b mobo.kicad_pcb -d mobo
|
||||||
|
zip -r -j mobo.zip mobo/
|
||||||
|
|
||||||
|
- name: Generate Slot Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/feederFloor
|
||||||
|
rm -rf feeder-floor/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e feederFloor.kicad_sch -b feederFloor.kicad_pcb -d slot
|
||||||
|
zip -r -j slot.zip slot/
|
||||||
|
|
||||||
|
- name: Generate Indexing Wheel Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/indexingWheel
|
||||||
|
rm -rf indexing-wheel/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e indexingWheel.kicad_sch -b indexingWheel.kicad_pcb -d indexing-wheel
|
||||||
|
zip -r -j indexing-wheel.zip indexing-wheel/
|
||||||
|
|
||||||
|
- name: Generate Light Diffusion Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/light-diffusion
|
||||||
|
rm -rf light-diffusion/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e light-diffusion.kicad_sch -b light-diffusion.kicad_pcb -d light-diffusion
|
||||||
|
zip -r -j light-diffusion.zip light-diffusion/
|
||||||
|
|
||||||
|
- name: Generate Photon 8mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-8mm-fid
|
||||||
|
rm -rf photon-8mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-8mm-fid
|
||||||
|
zip -r -j photon-8mm-fid.zip photon-8mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 12mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-12mm-fid
|
||||||
|
rm -rf photon-12mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-12mm-fid
|
||||||
|
zip -r -j photon-12mm-fid.zip photon-12mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 16mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-16mm-fid
|
||||||
|
rm -rf photon-16mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-16mm-fid
|
||||||
|
zip -r -j photon-16mm-fid.zip photon-16mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 24mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-24mm-fid
|
||||||
|
rm -rf photon-24mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-24mm-fid
|
||||||
|
zip -r -j photon-24mm-fid.zip photon-24mm-fid/
|
||||||
|
|
||||||
|
- name: Zip PCB Export Files for Artifacts
|
||||||
|
run: |
|
||||||
|
cd pcb/
|
||||||
|
zip -r -j Feeder-PCBs.zip photon-8mm-fid/photon-8mm-fid.zip photon-12mm-fid/photon-12mm-fid.zip photon-16mm-fid/photon-16mm-fid.zip photon-24mm-fid/photon-24mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
||||||
|
|
||||||
|
- name: Zip PCB Export Files for Release
|
||||||
|
run: |
|
||||||
|
cd pcb/
|
||||||
|
zip -r -j Feeder-PCBs-${{ github.event.release.tag_name }}.zip photon-8mm-fid/photon-8mm-fid.zip photon-12mm-fid/photon-12mm-fid.zip photon-16mm-fid/photon-16mm-fid.zip photon-24mm-fid/photon-24mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
||||||
|
|
||||||
|
- name: Zip Top Images for BOM
|
||||||
|
run: |
|
||||||
|
mkdir pcb-images
|
||||||
|
cp pcb/mobo/mobo/mobo-top.png pcb-images/mobo.png
|
||||||
|
cp pcb/feederFloor/slot/feederFloor-top.png pcb-images/slot.png
|
||||||
|
cp pcb/indexingWheel/indexing-wheel/indexingWheel-top.png pcb-images/drive-wheel.png
|
||||||
|
cp pcb/light-diffusion/light-diffusion/light-diffusion-top.png pcb-images/light-diffusion.png
|
||||||
|
cp pcb/photon-8mm-fid/photon-8mm-fid/fiducialBoard-top.png pcb-images/photon-8mm-fid.png
|
||||||
|
cp pcb/photon-12mm-fid/photon-12mm-fid/fiducialBoard-top.png pcb-images/photon-12mm-fid.png
|
||||||
|
cp pcb/photon-16mm-fid/photon-16mm-fid/fiducialBoard-top.png pcb-images/photon-16mm-fid.png
|
||||||
|
cp pcb/photon-24mm-fid/photon-24mm-fid/fiducialBoard-top.png pcb-images/photon-24mm-fid.png
|
||||||
|
zip -r -j pcb-images.zip pcb-images/
|
||||||
|
|
||||||
|
- name: Upload PCB Images as Artifacts
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: pcb-images
|
||||||
|
path: pcb-images/
|
||||||
|
if-no-files-found: error
|
||||||
|
retention-days: 60
|
||||||
|
|
||||||
generate-bom:
|
generate-bom:
|
||||||
name: Generate BOM
|
name: Generate BOM
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
|
needs:
|
||||||
|
export-ecad
|
||||||
steps:
|
steps:
|
||||||
- name: Generate Short SHA Environment Variable
|
- name: Generate Short SHA Environment Variable
|
||||||
run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV
|
run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV
|
||||||
@@ -75,7 +215,6 @@ jobs:
|
|||||||
export DISPLAY=:5
|
export DISPLAY=:5
|
||||||
python3 .github/workflows/scripts/generate-stl-img.py ${{ github.event.release.tag_name }}
|
python3 .github/workflows/scripts/generate-stl-img.py ${{ github.event.release.tag_name }}
|
||||||
|
|
||||||
|
|
||||||
- name: Generate STL Images for Workflow Dispatch
|
- name: Generate STL Images for Workflow Dispatch
|
||||||
if: github.event_name != 'release'
|
if: github.event_name != 'release'
|
||||||
run: |
|
run: |
|
||||||
@@ -84,9 +223,41 @@ jobs:
|
|||||||
export DISPLAY=:5
|
export DISPLAY=:5
|
||||||
python3 .github/workflows/scripts/generate-stl-img.py ${SHORT_SHA}
|
python3 .github/workflows/scripts/generate-stl-img.py ${SHORT_SHA}
|
||||||
|
|
||||||
|
- name: Make folder to Host PCB Images
|
||||||
|
run: |
|
||||||
|
mkdir pcb-images
|
||||||
|
ls -al
|
||||||
|
cd pcb-images
|
||||||
|
ls -al
|
||||||
|
|
||||||
|
- name: Download PCB Images
|
||||||
|
if: github.event_name != 'release'
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: pcb-images
|
||||||
|
path: pcb-images/
|
||||||
|
|
||||||
|
- name: Move PCB Images for Workflow Dispatch
|
||||||
|
if: github.event_name != 'release'
|
||||||
|
run: |
|
||||||
|
ls -al
|
||||||
|
ls -al pcb-images
|
||||||
|
mv pcb-images/*.png Feeder-${SHORT_SHA}/img/
|
||||||
|
ls -al Feeder-${SHORT_SHA}/img/
|
||||||
|
|
||||||
|
- name: Move PCB Images for Release
|
||||||
|
if: github.event_name == 'release'
|
||||||
|
run: |
|
||||||
|
ls -al
|
||||||
|
ls -al pcb-images
|
||||||
|
mv pcb-images/* Feeder-${{ github.event.release.tag_name }}/img/
|
||||||
|
ls -al Feeder-${{ github.event.release.tag_name }}/img/
|
||||||
|
|
||||||
|
|
||||||
- name: Zip BOM Directory for Workflow Dispatch
|
- name: Zip BOM Directory for Workflow Dispatch
|
||||||
if: github.event_name != 'release'
|
if: github.event_name != 'release'
|
||||||
run: |
|
run: |
|
||||||
|
ls -al
|
||||||
zip -r Feeder-BOM.zip Feeder-${SHORT_SHA} Feeder-${SHORT_SHA}/img
|
zip -r Feeder-BOM.zip Feeder-${SHORT_SHA} Feeder-${SHORT_SHA}/img
|
||||||
ls -al
|
ls -al
|
||||||
|
|
||||||
@@ -95,7 +266,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
zip -r Feeder-BOM-${{ github.event.release.tag_name }}.zip Feeder-${{ github.event.release.tag_name }} Feeder-${{ github.event.release.tag_name }}/img
|
zip -r Feeder-BOM-${{ github.event.release.tag_name }}.zip Feeder-${{ github.event.release.tag_name }} Feeder-${{ github.event.release.tag_name }}/img
|
||||||
|
|
||||||
- name: upload BOM results
|
- name: Upload BOM results
|
||||||
if: github.event_name != 'release'
|
if: github.event_name != 'release'
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ jobs:
|
|||||||
sed -i "s!<<hash>>!${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
||||||
sed -i "s!<<hash>>!${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
||||||
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-8mm-fid.kicad_pcb
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-8mm-fid.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-12mm-fid.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-16mm-fid.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!${COMMIT}!" pcb/photon-8mm-fid/photon-24mm-fid.kicad_pcb
|
||||||
|
|
||||||
- name: Update the PCBs with the git hash and BETA.
|
- name: Update the PCBs with the git hash and BETA.
|
||||||
if: steps.extract_branch.outputs.branch != env.main_branch
|
if: steps.extract_branch.outputs.branch != env.main_branch
|
||||||
@@ -54,6 +57,9 @@ jobs:
|
|||||||
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/indexingWheel/indexingWheel.kicad_pcb
|
||||||
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/light-diffusion/light-diffusion.kicad_pcb
|
||||||
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-8mm-fid/fiducialBoard.kicad_pcb
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-8mm-fid/fiducialBoard.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-12mm-fid/fiducialBoard.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-16mm-fid/fiducialBoard.kicad_pcb
|
||||||
|
sed -i "s!<<hash>>!BETA-${COMMIT}!" pcb/photon-24mm-fid/fiducialBoard.kicad_pcb
|
||||||
|
|
||||||
- name: Generate Mobo Export Files
|
- name: Generate Mobo Export Files
|
||||||
run: |
|
run: |
|
||||||
@@ -90,15 +96,36 @@ jobs:
|
|||||||
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-8mm-fid
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-8mm-fid
|
||||||
zip -r -j photon-8mm-fid.zip photon-8mm-fid/
|
zip -r -j photon-8mm-fid.zip photon-8mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 12mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-12mm-fid
|
||||||
|
rm -rf photon-12mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-12mm-fid
|
||||||
|
zip -r -j photon-12mm-fid.zip photon-12mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 16mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-16mm-fid
|
||||||
|
rm -rf photon-16mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-16mm-fid
|
||||||
|
zip -r -j photon-16mm-fid.zip photon-16mm-fid/
|
||||||
|
|
||||||
|
- name: Generate Photon 24mm Fiducial Export Files
|
||||||
|
run: |
|
||||||
|
cd pcb/photon-24mm-fid
|
||||||
|
rm -rf photon-24mm-fid/
|
||||||
|
kibot -c ../../.github/workflows/scripts/kibot/config-2layer.kibot.yaml -e fiducialBoard.kicad_sch -b fiducialBoard.kicad_pcb -d photon-24mm-fid
|
||||||
|
zip -r -j photon-24mm-fid.zip photon-24mm-fid/
|
||||||
|
|
||||||
- name: Zip PCB Export Files for Artifacts
|
- name: Zip PCB Export Files for Artifacts
|
||||||
run: |
|
run: |
|
||||||
cd pcb/
|
cd pcb/
|
||||||
zip -r -j Feeder-PCBs.zip photon-8mm-fid/photon-8mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
zip -r -j Feeder-PCBs.zip photon-8mm-fid/photon-8mm-fid.zip photon-12mm-fid/photon-12mm-fid.zip photon-16mm-fid/photon-16mm-fid.zip photon-24mm-fid/photon-24mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
||||||
|
|
||||||
- name: Zip PCB Export Files for Release
|
- name: Zip PCB Export Files for Release
|
||||||
run: |
|
run: |
|
||||||
cd pcb/
|
cd pcb/
|
||||||
zip -r -j Feeder-PCBs-${{ github.event.release.tag_name }}.zip photon-8mm-fid/photon-8mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
zip -r -j Feeder-PCBs-${{ github.event.release.tag_name }}.zip photon-8mm-fid/photon-8mm-fid.zip photon-12mm-fid/photon-12mm-fid.zip photon-16mm-fid/photon-16mm-fid.zip photon-24mm-fid/photon-24mm-fid.zip light-diffusion/light-diffusion.zip indexingWheel/indexing-wheel.zip feederFloor/slot.zip mobo/mobo.zip
|
||||||
|
|
||||||
- name: Upload PCB Export Files as Artifacts
|
- name: Upload PCB Export Files as Artifacts
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
|
|||||||
@@ -13,72 +13,80 @@ if not os.path.exists(dirName):
|
|||||||
else:
|
else:
|
||||||
print("Directory " , dirName , " already exists")
|
print("Directory " , dirName , " already exists")
|
||||||
|
|
||||||
|
versions = [
|
||||||
|
["8mm", "bom-8.csv"],
|
||||||
|
["12mm", "bom-12.csv"],
|
||||||
|
["16mm", "bom-16.csv"],
|
||||||
|
["24mm", "bom-24.csv"]
|
||||||
|
]
|
||||||
|
|
||||||
# make html file that will become our BOM
|
for version in versions:
|
||||||
f = open(dirName + "/bom_" + sys.argv[1] + ".html", "w")
|
|
||||||
f.write("""
|
# make html file that will become our BOM
|
||||||
<!DOCTYPE html>
|
f = open(dirName + "/" + version[0] + "_feeder_bom_" + sys.argv[1] + ".html", "w")
|
||||||
<head>
|
f.write("""
|
||||||
<style>
|
<!DOCTYPE html>
|
||||||
body {
|
<head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
background-color: #222;
|
background-color: #222;
|
||||||
padding: 30px;
|
padding: 30px;
|
||||||
font-family: helvetica;
|
font-family: helvetica;
|
||||||
color: #fff
|
color: #fff
|
||||||
}
|
}
|
||||||
table {
|
table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
h1 {
|
h1 {
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
.optional {
|
.optional {
|
||||||
background-color: #430;
|
background-color: #430;
|
||||||
}
|
}
|
||||||
tr.titlerow th {
|
tr.titlerow th {
|
||||||
background-color: goldenrod;
|
background-color: goldenrod;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
th, td {
|
th, td {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-bottom: 2px solid #fff
|
border-bottom: 2px solid #fff
|
||||||
}
|
}
|
||||||
a {
|
a {
|
||||||
color:goldenrod;
|
color:goldenrod;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#logo {
|
#logo {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 30px;
|
top: 30px;
|
||||||
right: 50px;
|
right: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr:hover {
|
tr:hover {
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>
|
<h1>
|
||||||
""")
|
""")
|
||||||
|
|
||||||
#write page title based on script
|
#write page title based on script
|
||||||
f.write("LumenPnP Feeder BOM " + sys.argv[1])
|
f.write("LumenPnP " + version[0] + " Feeder BOM " + sys.argv[1])
|
||||||
|
|
||||||
#write the beginning of table, and row for header
|
#write the beginning of table, and row for header
|
||||||
f.write("</h1><a href='https://www.github.com/opulo-inc/feeder/releases/' target='_blank' rel='noopener noreferrer'><h2>Download the Source Here</h2></a><a href='https://www.opulo.io/' target='_blank' rel='noopener noreferrer'><img src='https://cdn.shopify.com/s/files/1/0570/4256/7355/files/opulo-white-alpha_1200x1200.png?v=1644515300' id='logo'/></a><table>")
|
f.write("</h1><a href='https://www.github.com/opulo-inc/feeder/releases/' target='_blank' rel='noopener noreferrer'><h2>Download the Source Here</h2></a><a href='https://www.opulo.io/' target='_blank' rel='noopener noreferrer'><img src='https://cdn.shopify.com/s/files/1/0570/4256/7355/files/opulo-white-alpha_1200x1200.png?v=1644515300' id='logo'/></a><table>")
|
||||||
|
|
||||||
with open('bom.csv') as bom:
|
with open(version[1]) as bom:
|
||||||
csv_reader = csv.reader(bom, delimiter=',')
|
csv_reader = csv.reader(bom, delimiter=',')
|
||||||
line_count = 0
|
line_count = 0
|
||||||
|
|
||||||
@@ -99,9 +107,9 @@ with open('bom.csv') as bom:
|
|||||||
while column < len(row):
|
while column < len(row):
|
||||||
|
|
||||||
# handling images
|
# handling images
|
||||||
if column == 1 and row[3] != "FDM":
|
if column == 1 and row[3] != "FDM" and row[3] != "PCB" and row[3] != "PCA":
|
||||||
f.write("<th><img src='" + row[column] + "' /></th>")
|
f.write("<th><img src='" + row[column] + "' /></th>")
|
||||||
elif column == 1 and row[3] == "FDM":
|
elif column == 1 and (row[3] == "FDM" or row[3] == "PCB" or row[3] == "PCA"):
|
||||||
f.write("<th><img src='img/" + row[0] + ".png' /></th>")
|
f.write("<th><img src='img/" + row[0] + ".png' /></th>")
|
||||||
|
|
||||||
# handling links
|
# handling links
|
||||||
@@ -114,7 +122,5 @@ with open('bom.csv') as bom:
|
|||||||
f.write("</tr>")
|
f.write("</tr>")
|
||||||
line_count += 1
|
line_count += 1
|
||||||
|
|
||||||
f.write("</table></body></html>")
|
f.write("</table></body></html>")
|
||||||
|
f.close()
|
||||||
|
|
||||||
f.close()
|
|
||||||
@@ -41,29 +41,7 @@ def process_file(cad_file: Path):
|
|||||||
|
|
||||||
doc = FreeCAD.open(str(cad_file.absolute()))
|
doc = FreeCAD.open(str(cad_file.absolute()))
|
||||||
|
|
||||||
bom = open("../../../bom.csv")
|
|
||||||
|
|
||||||
csv_reader = csv.reader(bom, delimiter=',')
|
|
||||||
count = 0
|
|
||||||
flag = False
|
|
||||||
for row in csv_reader:
|
|
||||||
if row[0] == cad_file.name[:-6]:
|
|
||||||
print("found a part!")
|
|
||||||
print(row[0])
|
|
||||||
count = row[2]
|
|
||||||
print(count)
|
|
||||||
if count != "-" and count != "":
|
|
||||||
flag = True
|
|
||||||
break
|
|
||||||
|
|
||||||
#generates name with quantity
|
|
||||||
if flag:
|
|
||||||
name = cad_file.name[:-6] + "_" + count + "x"
|
|
||||||
print("making count name")
|
|
||||||
else:
|
|
||||||
name = cad_file.name[:-6]
|
name = cad_file.name[:-6]
|
||||||
print("making no count name")
|
|
||||||
|
|
||||||
|
|
||||||
# # Getting file name from part number emboss
|
# # Getting file name from part number emboss
|
||||||
# name_options = [obj.String for obj in doc.Objects if
|
# name_options = [obj.String for obj in doc.Objects if
|
||||||
|
|||||||
@@ -146,21 +146,3 @@ An STM32F031C6T6 was chosen for the feeder's microcontroller. There were a few r
|
|||||||
As a bonus, the chip's sibling, the STM32F031K6U6, has the same die as the C6T6 but with a smaller package. This means that by using the smaller chip's GPIO count as a constraint, we have a binary-compatible drop in replacement part to help alleviate availability issues.
|
As a bonus, the chip's sibling, the STM32F031K6U6, has the same die as the C6T6 but with a smaller package. This means that by using the smaller chip's GPIO count as a constraint, we have a binary-compatible drop in replacement part to help alleviate availability issues.
|
||||||
|
|
||||||
Although a separate EEPROM chip or a software-defined UUID could solve the same problem as having a factory-burned UUID, having it in the chip prevents UUID erasure upon reprogramming, and fewer parts in the BOM.
|
Although a separate EEPROM chip or a software-defined UUID could solve the same problem as having a factory-burned UUID, having it in the chip prevents UUID erasure upon reprogramming, and fewer parts in the BOM.
|
||||||
|
|
||||||
## ID Fiducial Board
|
|
||||||
|
|
||||||
There's a small board on the nose of the feeder with three fiducials on it. The center one is for identifying location, and the other, smaller fiducials on either side identify what type of feeder it is.
|
|
||||||
|
|
||||||
**This is not currently used. This board was shipped with all feeder hardware to support potential future features.**
|
|
||||||
|
|
||||||
### Can it be used for setting pick position?
|
|
||||||
|
|
||||||
It could be used for *generalized* pick position. In general, there's too much variability in the precise placement of the PCB in the print from human error and print defects. If OpenPnP can scan for the fiducial and then apply a general offset to find the broad pick position, computer vision can find the precise pick position, provided it's paper tape. Plastic tape would likely need the precise pick position set manually.
|
|
||||||
|
|
||||||
### Can it be used for identifying feeder width?
|
|
||||||
|
|
||||||
Absolutely! The distance the two smaller fiducials are away from the larger centered one encodes what feeder type, or width, it is. Ideally the firmware image is the same across feeder widths, and it can't hurt to have the fiducial encode that information. OpenPnP doesn't actually care that much what width a feeder is if the fiducial <-> pick position offset is set correctly.
|
|
||||||
|
|
||||||
### Can it be used for setting slot location?
|
|
||||||
|
|
||||||
It can, but it might not be useful in most circumstances. In a world where slots are always mounted in the same location, OpenPnP could always know where the slot locations are on a LumenPnP. However, if builders have a different slot setup, or folks trying to squeeze out every last mm of feeder space are adjusting their slot locations to accommodate wider feeders, it could be useful. OpenPnP could use vision across a given Y position and in conjunction with the slot addresses of the feeders it found over RS485, automatically set slot positions.
|
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
Part Name,Image,Quantity,Part Type,Source 1,Source 2,Optional,Note
|
||||||
|
frame-12,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-cover,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-frame-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-1u,,2,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
release-lever-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
tape-guide-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,Used to guide tape into feeder for spools mounted beneath the machine.
|
||||||
|
"PLA-filament ",https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
|
||||||
|
M5-t-slot-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5-tslot-nut.jpg?v=1686314676,1,FST,https://www.amazon.com/Fastener-Nickel-Plated-Sliding-Aluminum-Profile/dp/B086MKNYDS/ref=sxin_16_pa_sp_search_thematic_sspa,,,
|
||||||
|
M3x14mm-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x14mm.png?v=1686314903,3,FST,https://www.mcmaster.com/92095A168/,,,
|
||||||
|
M5x10mm-socket-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5x10mm.png?v=1686314995,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
|
||||||
|
M3x8mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x8mm-self-tapping-flat-head.png?v=1686314923,1,FST,https://www.mcmaster.com/95893A189/,,,
|
||||||
|
M3x12mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x12-self-tapping-flat-head.png?v=1686314903,11,FST,https://www.mcmaster.com/95893A403/,,,
|
||||||
|
mobo,,1,PCA,,,,Click link above to download source
|
||||||
|
slot,,1,PCA,,,,Click link above to download source
|
||||||
|
drive-wheel,,1,PCB,,,,Click link above to download source
|
||||||
|
light-diffusion,,1,PCB,,,,Click link above to download source
|
||||||
|
photon-12mm-fid,,1,PCB,,,,Click link above to download source
|
||||||
|
slot-harness,,1,CHA,,,,Click link above to download source
|
||||||
|
n20-motor,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/n20.jpg?v=1686329653,4,MISC,https://www.servocity.com/110-rpm-micro-gear-motor/,,,1:210 gear ratio.
|
||||||
|
right-angle-n20,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/right-angle-n20.jpg?v=1686329653,2,MISC,https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder,,,14-tick per revolution encoder. 1:1030 gear ratio gearbox.
|
||||||
|
shaft-collar,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/shaft-collar.jpg?v=1686329653,2,MISC,https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8,,,
|
||||||
|
+25
@@ -0,0 +1,25 @@
|
|||||||
|
Part Name,Image,Quantity,Part Type,Source 1,Source 2,Optional,Note
|
||||||
|
frame-16,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-cover,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-frame-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-2u,,2,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
release-lever-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
tape-guide-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,Used to guide tape into feeder for spools mounted beneath the machine.
|
||||||
|
"PLA-filament ",https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
|
||||||
|
M5-t-slot-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5-tslot-nut.jpg?v=1686314676,1,FST,https://www.amazon.com/Fastener-Nickel-Plated-Sliding-Aluminum-Profile/dp/B086MKNYDS/ref=sxin_16_pa_sp_search_thematic_sspa,,,
|
||||||
|
M3x25mm-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x18mm.png?v=1686314956,3,FST,https://www.mcmaster.com/91294A138/,,,
|
||||||
|
M5x10mm-socket-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5x10mm.png?v=1686314995,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
|
||||||
|
M3x8mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x8mm-self-tapping-flat-head.png?v=1686314923,1,FST,https://www.mcmaster.com/95893A189/,,,
|
||||||
|
M3x12mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x12-self-tapping-flat-head.png?v=1686314903,11,FST,https://www.mcmaster.com/95893A403/,,,
|
||||||
|
mobo,,1,PCA,,,,Click link above to download source
|
||||||
|
slot,,1,PCA,,,,Click link above to download source
|
||||||
|
drive-wheel,,1,PCB,,,,Click link above to download source
|
||||||
|
light-diffusion,,1,PCB,,,,Click link above to download source
|
||||||
|
photon-16mm-fid,,1,PCB,,,,Click link above to download source
|
||||||
|
slot-harness,,1,CHA,,,,Click link above to download source
|
||||||
|
n20-motor,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/n20.jpg?v=1686329653,4,MISC,https://www.servocity.com/110-rpm-micro-gear-motor/,,,1:210 gear ratio.
|
||||||
|
right-angle-n20,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/right-angle-n20.jpg?v=1686329653,2,MISC,https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder,,,14-tick per revolution encoder. 1:1030 gear ratio gearbox.
|
||||||
|
shaft-collar,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/shaft-collar.jpg?v=1686329653,2,MISC,https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8,,,
|
||||||
|
+25
@@ -0,0 +1,25 @@
|
|||||||
|
Part Name,Image,Quantity,Part Type,Source 1,Source 2,Optional,Note
|
||||||
|
frame-24,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
drive-motor-cover,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-frame-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-gear-2u,,2,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
release-lever-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
|
tape-guide-2u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,Used to guide tape into feeder for spools mounted beneath the machine.
|
||||||
|
"PLA-filament ",https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
|
||||||
|
M5-t-slot-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5-tslot-nut.jpg?v=1686314676,1,FST,https://www.amazon.com/Fastener-Nickel-Plated-Sliding-Aluminum-Profile/dp/B086MKNYDS/ref=sxin_16_pa_sp_search_thematic_sspa,,,
|
||||||
|
M3x25mm-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x18mm.png?v=1686314956,3,FST,https://www.mcmaster.com/91294A138/,,,
|
||||||
|
M5x10mm-socket-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5x10mm.png?v=1686314995,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
|
||||||
|
M3x8mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x8mm-self-tapping-flat-head.png?v=1686314923,1,FST,https://www.mcmaster.com/95893A189/,,,
|
||||||
|
M3x12mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x12-self-tapping-flat-head.png?v=1686314903,11,FST,https://www.mcmaster.com/95893A403/,,,
|
||||||
|
mobo,,1,PCA,,,,Click link above to download source
|
||||||
|
slot,,1,PCA,,,,Click link above to download source
|
||||||
|
drive-wheel,,1,PCB,,,,Click link above to download source
|
||||||
|
light-diffusion,,1,PCB,,,,Click link above to download source
|
||||||
|
photon-24mm-fid,,1,PCB,,,,Click link above to download source
|
||||||
|
slot-harness,,1,CHA,,,,Click link above to download source
|
||||||
|
n20-motor,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/n20.jpg?v=1686329653,1,MISC,https://www.servocity.com/110-rpm-micro-gear-motor/,,,1:210 gear ratio.
|
||||||
|
right-angle-n20,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/right-angle-n20.jpg?v=1686329653,1,MISC,https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder,,,14-tick per revolution encoder. 1:1030 gear ratio gearbox.
|
||||||
|
shaft-collar,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/shaft-collar.jpg?v=1686329653,1,MISC,https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8,,,
|
||||||
|
+6
-7
@@ -1,22 +1,21 @@
|
|||||||
Part Name,Image,Quantity,Part Type,Source 1,Source 2,Optional,Note
|
Part Name,Image,Quantity,Part Type,Source 1,Source 2,Optional,Note
|
||||||
frame,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
frame-8,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
drive-motor-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
drive-motor-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
drive-motor-cover,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
drive-motor-cover,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
peel-gear-frame,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
peel-gear-frame-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
peel-gear,,2,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
peel-gear-1u,,2,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
release-lever,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
release-lever-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
spool-holder,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
spool-holder,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
thimble,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
thimble,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
|
||||||
tape-guide,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,Yes,Replaces the spool arm and thimble. Used to guide tape into feeder for spools mounted beneath the machine.
|
tape-guide-1u,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,Yes,Replaces the spool arm and thimble. Used to guide tape into feeder for spools mounted beneath the machine.
|
||||||
PLA-filament ,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
|
"PLA-filament ",https://cdn.shopify.com/s/files/1/0570/4256/7355/files/filament.png?v=1686314492,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
|
||||||
M5-t-slot-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5-tslot-nut.jpg?v=1686314676,1,FST,https://www.amazon.com/Fastener-Nickel-Plated-Sliding-Aluminum-Profile/dp/B086MKNYDS/ref=sxin_16_pa_sp_search_thematic_sspa,,,
|
M5-t-slot-nut,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5-tslot-nut.jpg?v=1686314676,1,FST,https://www.amazon.com/Fastener-Nickel-Plated-Sliding-Aluminum-Profile/dp/B086MKNYDS/ref=sxin_16_pa_sp_search_thematic_sspa,,,
|
||||||
M3x14mm-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x14mm.png?v=1686314903,3,FST,https://www.mcmaster.com/91294A133/,,,
|
M3x14mm-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x14mm.png?v=1686314903,3,FST,https://www.mcmaster.com/91294A133/,,,
|
||||||
M5x10mm-socket-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5x10mm.png?v=1686314995,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
|
M5x10mm-socket-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M5x10mm.png?v=1686314995,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
|
||||||
M3x8mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x8mm-self-tapping-flat-head.png?v=1686314923,1,FST,https://www.mcmaster.com/95893A189/,,,
|
M3x8mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x8mm-self-tapping-flat-head.png?v=1686314923,1,FST,https://www.mcmaster.com/95893A189/,,,
|
||||||
M3x12mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x12-self-tapping-flat-head.png?v=1686314903,11,FST,https://www.mcmaster.com/95893A403/,,,
|
M3x12mm-self-tapping-flat-head,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/M3x12-self-tapping-flat-head.png?v=1686314903,11,FST,https://www.mcmaster.com/95893A403/,,,
|
||||||
feeder-compression-spring,https://cdn.shopify.com/s/files/1/0570/4256/7355/files/feeder-compression-spring.png?v=1691004799,1,MISC,https://www.leespring.com/compression-springs?search=LC026C06M,,,
|
|
||||||
mobo,,1,PCA,,,,Click link above to download source
|
mobo,,1,PCA,,,,Click link above to download source
|
||||||
slot,,1,PCA,,,,Click link above to download source
|
slot,,1,PCA,,,,Click link above to download source
|
||||||
drive-wheel,,1,PCB,,,,Click link above to download source
|
drive-wheel,,1,PCB,,,,Click link above to download source
|
||||||
|
500 Internal Server Error
An error occurred: An error occurred Gitea Version: 28.2.0 |