All work on updating BOM and adding data for the prints script

This commit is contained in:
Matt McWilliams 2025-04-06 22:16:19 -04:00
parent 7f4ef1bf74
commit f10801225b
20 changed files with 45265 additions and 49419 deletions

View File

@ -22,6 +22,42 @@ As of now there is only a single lamp design that uses standard white 5mm LEDs.
[Contact](https://vimeo.com/flashfra/contact?share=git) the first print made on the prototype during a residency at [Filmwerkplaats](https://filmwerkplaats.org/).
Soundtrack applied by the opt_snd soundtrack recorder system by [Hrvoje Spudić](https://hrvojespudic.net/optical-sound-2).
# Print Counts
Here is a table of all the parts and how many of them to print to make a single contact printer.
<!-- prints -->
| Part | Print Count | Download |
|--------------------------------------|-------------|---------------------------------------------------------------------|
| daylight spool insert reinforced nut | 4 | [STL](stl/contact_printer_daylight_spool_insert_reinforced_nut.stl) |
| slip coupling | 4 | [STL](stl/contact_printer_slip_coupling.stl) |
| magnetic coupling | 2 | [STL](stl/contact_printer_magnetic_coupling.stl) |
| knob | 14 | [STL](stl/contact_printer_knob.stl) |
| lamp LEDs | 1 | [STL](stl/contact_printer_lamp_LEDs.stl) |
| sprocketed roller invert solid | 1 | [STL](stl/contact_printer_sprocketed_roller_invert_solid.stl) |
| corner foot | 8 | [STL](stl/contact_printer_corner_foot.stl) |
| feed panel motor mount | 2 | [STL](stl/contact_printer_feed_panel_motor_mount.stl) |
| feed panel stock | 1 | [STL](stl/contact_printer_feed_panel_stock.stl) |
| feed panel picture | 1 | [STL](stl/contact_printer_feed_panel_picture.stl) |
| takeup panel stock motor mount | 1 | [STL](stl/contact_printer_takeup_panel_stock_motor_mount.stl) |
| takeup panel stock | 1 | [STL](stl/contact_printer_takeup_panel_stock.stl) |
| takeup panel picture motor mount | 1 | [STL](stl/contact_printer_takeup_panel_picture_motor_mount.stl) |
| takeup panel picture | 1 | [STL](stl/contact_printer_takeup_panel_picture.stl) |
| panel | 1 | [STL](stl/contact_printer_panel.stl) |
| lamp cover | 1 | [STL](stl/contact_printer_lamp_cover.stl) |
| lamp single | 1 | [STL](stl/contact_printer_lamp_single.stl) |
| picture gate sound | 1 | [STL](stl/contact_printer_picture_gate_sound.stl) |
| picture gate super16 | 1 | [STL](stl/contact_printer_picture_gate_super16.stl) |
| picture gate full | 1 | [STL](stl/contact_printer_picture_gate_full.stl) |
| picture gate standard | 1 | [STL](stl/contact_printer_picture_gate_standard.stl) |
| gate carrier | 1 | [STL](stl/contact_printer_gate_carrier.stl) |
| idle roller b | 4 | [STL](stl/contact_printer_idle_roller_b.stl) |
| idle roller half a | 4 | [STL](stl/contact_printer_idle_roller_half_a.stl) |
<!-- /prints -->
# Bill of Materials
Below are estimates based on per-unit costs found online.
@ -31,20 +67,26 @@ Actual price of a full build may be higher.
| Part | Qty | Cost (USD) | Minumum |
|-------------------------------------|------|------------|---------------------------------------------|
| M4 hex bolt 40mm | 4 | $2.44 | [10 for $6.09](https://amzn.to/4ikpYL8) |
| M3 sliding t slot nut | 25 | $1.43 | [105 for $5.99](https://amzn.to/48GRrSU) |
| M3 hex cap bolt 8mm | 25 | $2.25 | [100 for $8.99](https://amzn.to/3YEvWNB) |
| M4 hex nut | 20 | $0.67 | [300 for $9.99](https://amzn.to/4i5ESna) |
| M4 hex bolt 50mm | 4 | $2.68 | [10 for $6.69](https://amzn.to/3FYyh0s) |
| M4 hex bolt 35mm | 6 | $3.72 | [10 for $6.19](https://amzn.to/4j14SRQ) |
| M4 hex bolt 25mm | 10 | $1.84 | [50 for $9.19](https://amzn.to/3FW2EEG) |
| M3 sliding t slot nut | 72 | $4.11 | [105 for $5.99](https://amzn.to/48GRrSU) |
| M3 hex cap bolt 8mm | 80 | $7.20 | [100 for $8.99](https://amzn.to/3YEvWNB) |
| M3 hex cap bolt 6mm | 8 | $0.59 | [100 for $7.26](https://amzn.to/3AwiZxo) |
| M3 hex cap bolt 12mm | 1 | $0.09 | [100 for $8.36](https://amzn.to/48CGa5Y) |
| L298N Motor driver module | 1 | $2.88 | [4 for $11.49](https://amzn.to/4ellssy) |
| ESP32 GPIO breakout board | 1 | $6.00 | [2 for $11.99](https://amzn.to/3UFjpbO) |
| ESP32 Dev board | 1 | $6.67 | [3 for $19.99](https://amzn.to/3NXCvGj) |
| 608-RS Ball Bearing | 1 | $0.18 | [100 for $17.79](https://amzn.to/4fKxDA7) |
| 5mm White LED | 6 | $0.36 | [100 for $5.99](https://amzn.to/42AopCE) |
| 250RPM DC geared motor | 2 | $29.98 | [1 for $14.99](https://amzn.to/3NWkcRL) |
| 220 Ohm Resistor | 6 | $0.36 | [100 for $5.99](https://amzn.to/3YlywJ7) |
| 2020 Aluminum extrusion mm | 1880 | $11.41 | [12200 for $73.99](https://amzn.to/418OicC) |
| 100RPM DC geared motor with encoder | 1 | $16.19 | [1 for $16.19](https://amzn.to/3UF707G) |
|---------|------|--------|---------|
| TOTAL | 1950 | $80.11 | $203.12 |
| TOTAL | 2100 | $94.93 | $241.07 |
<!-- /bom -->

View File

@ -70,6 +70,8 @@ We were given time and resources to explore our various topics of research relat
This allowed for tremendous progress to be made on the details of the implementation and, with darkroom access, gave opportunities to run tests on exposure, use of filters and overall film tensioning.
The results of this residency included a 100 foot sound print made from a negative and with the soundtrack printed directly on the print stock and a working first draft prototype of this design.
Collaboration with the other residents led to ideas for future work and improved the design as we performed tests collectively.
The possibility of making this platform work as a soundtrack camera was also explored during this session.
# The Contact Printer
@ -90,7 +92,8 @@ Development of this sprocketed drive roller was kickstarted by an existing param
That work has already proven useful to the mcopy [@mcopy] project as the updated module has been used to design a gate compatible with JK optical printers.
Due to the model being parametric, it can be used in designing film transport mechanisms in other, future projects, and additional improvements to the measurements and tolerances will benefit those projects as well.
The roller designed for this project is distinct from
The roller designed for this project is distinct from a professionally-oriented machine like the B&H Model C printer.
## The Drive Motor

View File

@ -1,21 +1,39 @@
module,quantity,part,part_id,description
contact_printer,1040,2020 Aluminum extrusion mm,N/A,Sides and central frame 4x 260mm
contact_printer,840,2020 Aluminum extrusion mm,N/A,Top and bottom frame 2x 420mm
contact_printer_knob,14,M4 hex nut,N/A,Secure knob to M4 bolts
electronics_panel,4,M3 hex cap bolt 6mm,N/A,Attach the GPIO breakout board to the panel
electronics_panel,1,ESP32 GPIO breakout board,N/A,To make the ESP32 dev board easier to wire
electronics_panel,6,M3 sliding t slot nut,N/A,Attach the frame to the electronics_panel
electronics_panel,6,M3 hex cap bolt 8mm,N/A,Attach the electronics_panel to the frame
electronics_panel,1,L298N Motor driver module,N/A,Control the 3 motors using 2 channels
electronics_panel,1,ESP32 Dev board,N/A,Control the contact_printer
lamp_LEDs,6,5mm White LED,N/A,Light source
lamp_LEDs,6,220 Ohm Resistor,N/A,Provide resistance for LEDs
sprocketed_roller_invert_solid,1,608-RS Ball Bearing,608-RS,Reduces wobble in the rollers spin
sprocketed_roller_invert_solid,1,M3 hex cap bolt 12mm,N/A,Attaches the sprocketed_roller to the geared motor
takeup_panel_stock,6,M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
takeup_panel_stock,6,M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
sprocketed_roller_invert_solid,1,M3 hex cap bolt 12mm,N/A,Attaches the sprocketed_roller_invert_solid to the geared motor
corner_foot,32,M3 sliding t slot nut,N/A,Attach the frame to the corner_foot
corner_foot,32,M3 hex cap bolt 8mm,N/A,Attach the corner_foot to the frame
feed_panel_stock,7,M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
feed_panel_stock,7,M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
feed_panel_stock,3,M4 hex bolt 35mm,N/A,Attach the feed_panel_motor_mount to the panel
feed_panel_picture,7,M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
feed_panel_picture,7,M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
feed_panel_picture,3,M4 hex bolt 35mm,N/A,Attach the feed_panel_motor_mount to the panel
takeup_panel_stock_motor_mount,4,M3 hex cap bolt 8mm,N/A,Attach the motor to the takeup_panel_stock_motor_mount
takeup_panel_stock_motor_mount,3,M4 hex nut,N/A,Attach the takeup_panel_picture_motor_mount to the panel
takeup_panel_stock,3,M4 hex bolt 25mm,N/A,Attach the panel to the takeup_panel_stock_motor_mount
takeup_panel_stock,7,M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
takeup_panel_stock,7,M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
takeup_panel_stock,1,250RPM DC geared motor,JSX40-370,Drive the takeup of the stock pathway
takeup_panel_picture_motor_mount,4,M3 hex cap bolt 8mm,N/A,Attach the motor to the takeup_panel_picture_motor_mount
takeup_panel_picture_motor_mount,3,M4 hex nut,N/A,Attach the takeup_panel_picture_motor_mount to the panel
takeup_panel_picture,3,M4 hex bolt 25mm,N/A,Attach the panel to the takeup_panel_picture_motor_mount
takeup_panel_picture,7,M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_picture
takeup_panel_picture,7,M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_picture to the frame
takeup_panel_picture,1,250RPM DC geared motor,JSX40-370,Drive the takeup of the picture pathway
panel,4,M4 hex bolt 40mm,N/A,Attach the lamp to the panel
panel,4,M4 hex bolt 25mm,N/A,Attach the lamp to the panel
panel,4,M4 hex bolt 50mm,N/A,Attach the lamp to the panel
panel,1,100RPM DC geared motor with encoder,N/A,Drive the sprocketed_roller
panel,6,M3 sliding t slot nut,N/A,Attach aluminum extrusions to panel
panel,6,M3 hex cap bolt 8mm,N/A,Attach panel to aluminum extrusions

1 module quantity part part_id description
2 contact_printer 1040 2020 Aluminum extrusion mm N/A Sides and central frame 4x 260mm
3 contact_printer 840 2020 Aluminum extrusion mm N/A Top and bottom frame 2x 420mm
4 contact_printer_knob 14 M4 hex nut N/A Secure knob to M4 bolts
5 electronics_panel 4 M3 hex cap bolt 6mm N/A Attach the GPIO breakout board to the panel
6 electronics_panel 1 ESP32 GPIO breakout board N/A To make the ESP32 dev board easier to wire
7 electronics_panel 6 M3 sliding t slot nut N/A Attach the frame to the electronics_panel
8 electronics_panel 6 M3 hex cap bolt 8mm N/A Attach the electronics_panel to the frame
9 electronics_panel 1 L298N Motor driver module N/A Control the 3 motors using 2 channels
10 electronics_panel 1 ESP32 Dev board N/A Control the contact_printer
11 lamp_LEDs 6 5mm White LED N/A Light source
12 lamp_LEDs 6 220 Ohm Resistor N/A Provide resistance for LEDs
13 sprocketed_roller_invert_solid 1 608-RS Ball Bearing 608-RS Reduces wobble in the rollers spin
14 sprocketed_roller_invert_solid 1 M3 hex cap bolt 12mm N/A Attaches the sprocketed_roller to the geared motor Attaches the sprocketed_roller_invert_solid to the geared motor
15 takeup_panel_stock corner_foot 6 32 M3 sliding t slot nut N/A Attach the frame to the takeup_panel_stock Attach the frame to the corner_foot
16 takeup_panel_stock corner_foot 6 32 M3 hex cap bolt 8mm N/A Attach the takeup_panel_stock to the frame Attach the corner_foot to the frame
17 feed_panel_stock 7 M3 sliding t slot nut N/A Attach the frame to the takeup_panel_stock
18 feed_panel_stock 7 M3 hex cap bolt 8mm N/A Attach the takeup_panel_stock to the frame
19 feed_panel_stock 3 M4 hex bolt 35mm N/A Attach the feed_panel_motor_mount to the panel
20 feed_panel_picture 7 M3 sliding t slot nut N/A Attach the frame to the takeup_panel_stock
21 feed_panel_picture 7 M3 hex cap bolt 8mm N/A Attach the takeup_panel_stock to the frame
22 feed_panel_picture 3 M4 hex bolt 35mm N/A Attach the feed_panel_motor_mount to the panel
23 takeup_panel_stock_motor_mount 4 M3 hex cap bolt 8mm N/A Attach the motor to the takeup_panel_stock_motor_mount
24 takeup_panel_stock_motor_mount 3 M4 hex nut N/A Attach the takeup_panel_picture_motor_mount to the panel
25 takeup_panel_stock 3 M4 hex bolt 25mm N/A Attach the panel to the takeup_panel_stock_motor_mount
26 takeup_panel_stock 7 M3 sliding t slot nut N/A Attach the frame to the takeup_panel_stock
27 takeup_panel_stock 7 M3 hex cap bolt 8mm N/A Attach the takeup_panel_stock to the frame
28 takeup_panel_stock 1 250RPM DC geared motor JSX40-370 Drive the takeup of the stock pathway
29 takeup_panel_picture_motor_mount 4 M3 hex cap bolt 8mm N/A Attach the motor to the takeup_panel_picture_motor_mount
30 takeup_panel_picture_motor_mount 3 M4 hex nut N/A Attach the takeup_panel_picture_motor_mount to the panel
31 takeup_panel_picture 3 M4 hex bolt 25mm N/A Attach the panel to the takeup_panel_picture_motor_mount
32 takeup_panel_picture 7 M3 sliding t slot nut N/A Attach the frame to the takeup_panel_picture
33 takeup_panel_picture 7 M3 hex cap bolt 8mm N/A Attach the takeup_panel_picture to the frame
34 takeup_panel_picture 1 250RPM DC geared motor JSX40-370 Drive the takeup of the picture pathway
35 panel 4 M4 hex bolt 40mm M4 hex bolt 25mm N/A Attach the lamp to the panel
36 panel 4 M4 hex bolt 50mm N/A Attach the lamp to the panel
37 panel 1 100RPM DC geared motor with encoder N/A Drive the sprocketed_roller
38 panel 6 M3 sliding t slot nut N/A Attach aluminum extrusions to panel
39 panel 6 M3 hex cap bolt 8mm N/A Attach panel to aluminum extrusions

View File

@ -1,14 +1,19 @@
quantity,part,part_id,price
4,"M4 hex bolt 40mm",N/A,244
25,"M3 sliding t slot nut",N/A,143
25,"M3 hex cap bolt 8mm",N/A,225
20,"M4 hex nut",N/A,67
4,"M4 hex bolt 50mm",N/A,268
6,"M4 hex bolt 35mm",N/A,372
10,"M4 hex bolt 25mm",N/A,184
72,"M3 sliding t slot nut",N/A,411
80,"M3 hex cap bolt 8mm",N/A,720
8,"M3 hex cap bolt 6mm",N/A,59
1,"M3 hex cap bolt 12mm",N/A,9
1,"L298N Motor driver module",N/A,288
1,"ESP32 GPIO breakout board",N/A,600
1,"ESP32 Dev board",N/A,667
1,"608-RS Ball Bearing",608-RS,18
6,"5mm White LED",N/A,36
2,"250RPM DC geared motor",JSX40-370,2998
6,"220 Ohm Resistor",N/A,36
1880,"2020 Aluminum extrusion mm",N/A,1141
1,"100RPM DC geared motor with encoder",N/A,1619
1950,TOTAL,N/A,8011
2100,TOTAL,N/A,9493

1 quantity part part_id price
2 4 20 M4 hex bolt 40mm M4 hex nut N/A 244 67
3 25 4 M3 sliding t slot nut M4 hex bolt 50mm N/A 143 268
4 25 6 M3 hex cap bolt 8mm M4 hex bolt 35mm N/A 225 372
5 10 M4 hex bolt 25mm N/A 184
6 72 M3 sliding t slot nut N/A 411
7 80 M3 hex cap bolt 8mm N/A 720
8 8 M3 hex cap bolt 6mm N/A 59
9 1 M3 hex cap bolt 12mm N/A 9
10 1 L298N Motor driver module N/A 288
11 1 ESP32 GPIO breakout board N/A 600
12 1 ESP32 Dev board N/A 667
13 1 608-RS Ball Bearing 608-RS 18
14 6 5mm White LED N/A 36
15 2 250RPM DC geared motor JSX40-370 2998
16 6 220 Ohm Resistor N/A 36
17 1880 2020 Aluminum extrusion mm N/A 1141
18 1 100RPM DC geared motor with encoder N/A 1619
19 1950 2100 TOTAL N/A 8011 9493

View File

@ -1,4 +1,25 @@
module,quantity,stl
sprocketed roller invert solid,1,./stl/contact_printer_sprocketed_roller_invert_solid.stl
picture gate,1,./stl/contact_printer_picture_gate.stl
gate carrier,1,./stl/contact_printer_gate_carrier.stl
daylight spool insert reinforced nut,4,stl/contact_printer_daylight_spool_insert_reinforced_nut.stl
slip coupling,4,stl/contact_printer_slip_coupling.stl
magnetic coupling,2,stl/contact_printer_magnetic_coupling.stl
knob,14,stl/contact_printer_knob.stl
lamp LEDs,1,stl/contact_printer_lamp_LEDs.stl
sprocketed roller invert solid,1,stl/contact_printer_sprocketed_roller_invert_solid.stl
corner foot,8,stl/contact_printer_corner_foot.stl
feed panel motor mount,2,stl/contact_printer_feed_panel_motor_mount.stl
feed panel stock,1,stl/contact_printer_feed_panel_stock.stl
feed panel picture,1,stl/contact_printer_feed_panel_picture.stl
takeup panel stock motor mount,1,stl/contact_printer_takeup_panel_stock_motor_mount.stl
takeup panel stock,1,stl/contact_printer_takeup_panel_stock.stl
takeup panel picture motor mount,1,stl/contact_printer_takeup_panel_picture_motor_mount.stl
takeup panel picture,1,stl/contact_printer_takeup_panel_picture.stl
panel,1,stl/contact_printer_panel.stl
lamp cover,1,stl/contact_printer_lamp_cover.stl
lamp single,1,stl/contact_printer_lamp_single.stl
picture gate sound,1,stl/contact_printer_picture_gate_sound.stl
picture gate super16,1,stl/contact_printer_picture_gate_super16.stl
picture gate full,1,stl/contact_printer_picture_gate_full.stl
picture gate standard,1,stl/contact_printer_picture_gate_standard.stl
gate carrier,1,stl/contact_printer_gate_carrier.stl
idle roller b,4,stl/contact_printer_idle_roller_b.stl
idle roller half a,4,stl/contact_printer_idle_roller_half_a.stl

1 module quantity stl
2 sprocketed roller invert solid daylight spool insert reinforced nut 1 4 ./stl/contact_printer_sprocketed_roller_invert_solid.stl stl/contact_printer_daylight_spool_insert_reinforced_nut.stl
3 picture gate slip coupling 1 4 ./stl/contact_printer_picture_gate.stl stl/contact_printer_slip_coupling.stl
4 gate carrier magnetic coupling 1 2 ./stl/contact_printer_gate_carrier.stl stl/contact_printer_magnetic_coupling.stl
5 knob 14 stl/contact_printer_knob.stl
6 lamp LEDs 1 stl/contact_printer_lamp_LEDs.stl
7 sprocketed roller invert solid 1 stl/contact_printer_sprocketed_roller_invert_solid.stl
8 corner foot 8 stl/contact_printer_corner_foot.stl
9 feed panel motor mount 2 stl/contact_printer_feed_panel_motor_mount.stl
10 feed panel stock 1 stl/contact_printer_feed_panel_stock.stl
11 feed panel picture 1 stl/contact_printer_feed_panel_picture.stl
12 takeup panel stock motor mount 1 stl/contact_printer_takeup_panel_stock_motor_mount.stl
13 takeup panel stock 1 stl/contact_printer_takeup_panel_stock.stl
14 takeup panel picture motor mount 1 stl/contact_printer_takeup_panel_picture_motor_mount.stl
15 takeup panel picture 1 stl/contact_printer_takeup_panel_picture.stl
16 panel 1 stl/contact_printer_panel.stl
17 lamp cover 1 stl/contact_printer_lamp_cover.stl
18 lamp single 1 stl/contact_printer_lamp_single.stl
19 picture gate sound 1 stl/contact_printer_picture_gate_sound.stl
20 picture gate super16 1 stl/contact_printer_picture_gate_super16.stl
21 picture gate full 1 stl/contact_printer_picture_gate_full.stl
22 picture gate standard 1 stl/contact_printer_picture_gate_standard.stl
23 gate carrier 1 stl/contact_printer_gate_carrier.stl
24 idle roller b 4 stl/contact_printer_idle_roller_b.stl
25 idle roller half a 4 stl/contact_printer_idle_roller_half_a.stl

View File

@ -3,6 +3,11 @@ M3 hex nut,N/A,999,300,https://amzn.to/4hAnwjc
M3 hex cap bolt 6mm,N/A,726,100,https://amzn.to/3AwiZxo
M3 hex cap bolt 8mm,N/A,899,100,https://amzn.to/3YEvWNB
M3 hex cap bolt 12mm,N/A,836,100,https://amzn.to/48CGa5Y
M4 hex nut,N/A,999,300,https://amzn.to/4i5ESna
M4 hex bolt 25mm,N/A,919,50,https://amzn.to/3FW2EEG
M4 hex bolt 35mm,N/A,619,10,https://amzn.to/4j14SRQ
M4 hex bolt 40mm,N/A,639,10,https://amzn.to/4ikpYL8
M4 hex bolt 50mm,N/A,669,10,https://amzn.to/3FYyh0s
M3 sliding t slot nut,N/A,599,105,https://amzn.to/48GRrSU
2020 Aluminum extrusion mm,N/A,7399,12200,https://amzn.to/418OicC
100RPM DC geared motor with encoder,N/A,1619,1,https://amzn.to/3UF707G
@ -10,5 +15,6 @@ M3 sliding t slot nut,N/A,599,105,https://amzn.to/48GRrSU
ESP32 Dev board,N/A,1999,3,https://amzn.to/3NXCvGj
L298N Motor driver module,N/A,1149,4,https://amzn.to/4ellssy
ESP32 GPIO breakout board,N/A,1199,2,https://amzn.to/3UFjpbO
M4 hex bolt 40mm,N/A,609,10,https://amzn.to/4ikpYL8
608-RS Ball Bearing,608-RS,1779,100,https://amzn.to/4fKxDA7
5mm White LED,N/A,599,100,https://amzn.to/42AopCE
220 Ohm Resistor,N/A,599,100,https://amzn.to/3YlywJ7
1 part part_id price quantity url
3 M3 hex cap bolt 6mm N/A 726 100 https://amzn.to/3AwiZxo
4 M3 hex cap bolt 8mm N/A 899 100 https://amzn.to/3YEvWNB
5 M3 hex cap bolt 12mm N/A 836 100 https://amzn.to/48CGa5Y
6 M4 hex nut N/A 999 300 https://amzn.to/4i5ESna
7 M4 hex bolt 25mm N/A 919 50 https://amzn.to/3FW2EEG
8 M4 hex bolt 35mm N/A 619 10 https://amzn.to/4j14SRQ
9 M4 hex bolt 40mm N/A 639 10 https://amzn.to/4ikpYL8
10 M4 hex bolt 50mm N/A 669 10 https://amzn.to/3FYyh0s
11 M3 sliding t slot nut N/A 599 105 https://amzn.to/48GRrSU
12 2020 Aluminum extrusion mm N/A 7399 12200 https://amzn.to/418OicC
13 100RPM DC geared motor with encoder N/A 1619 1 https://amzn.to/3UF707G
15 ESP32 Dev board N/A 1999 3 https://amzn.to/3NXCvGj
16 L298N Motor driver module N/A 1149 4 https://amzn.to/4ellssy
17 ESP32 GPIO breakout board N/A 1199 2 https://amzn.to/3UFjpbO
M4 hex bolt 40mm N/A 609 10 https://amzn.to/4ikpYL8
18 608-RS Ball Bearing 608-RS 1779 100 https://amzn.to/4fKxDA7
19 5mm White LED N/A 599 100 https://amzn.to/42AopCE
20 220 Ohm Resistor N/A 599 100 https://amzn.to/3YlywJ7

View File

@ -7,25 +7,23 @@ electronics_panel
feed_panel_motor_mount
feed_panel_picture
feed_panel_stock
filter_carrier
full_gate
gate_carrier
gate_holder
gate_full
gate_picture
gate_sound
gate_super16
idle_roller_half_a
idle_roller_half_b
knob
lamp_cover
lamp_LEDs
lamp_single
magnetic_coupling
motor_controller_panel
panel
picture_gate
slip_coupling
sound_gate
sprocketed_roller_invert
sprocketed_roller_invert_solid
sprocketed_wheel
super_gate
sprocketed_roller_reinforced_wheel
takeup_panel_picture
takeup_panel_picture_motor_mount
takeup_panel_stock

View File

@ -7,6 +7,7 @@ include <./common/2020_tslot.scad>;
include <./takeup/takeup.scad>;
use <./sprocketed_roller/scad/sprocketed_roller.scad>;
use <./filmless.scad>;
use <./knobs/scad/knob.scad>;
$fn = 100;
@ -342,6 +343,16 @@ module idle_roller_half (pos = [0, 0, 0], rot = [0, 0, 0], flip = false) {
}
}
//PRINT: 4
module idle_roller_half_a () {
idle_roller_half();
}
//PRINT: 4
module idle_roller_b () {
idle_roller_half(flip = true);
}
module idle_roller_bolt_void (pos = [0, 0, 0], H = IdleRollerBoltH) {
translate(pos) {
cylinder(r = R(4.25), h = H, center = true);
@ -583,7 +594,7 @@ module picture_gate_text (pos = [0, 1.5, 9.3], label = "gate" ){
}
//standard, super, full, sound
//PRINT: 1
module picture_gate (pos = [0, 0, 0], rot = [0, 0, 0], Type = "full", Width = 2) {
X = LampGateX;
translate(pos) rotate(rot) {
@ -610,6 +621,26 @@ module picture_gate (pos = [0, 0, 0], rot = [0, 0, 0], Type = "full", Width = 2)
}
}
//PRINT: 1
module picture_gate_standard (pos = [0, 0, 0], rot = [0, 0, 0]) {
picture_gate(pos, rot, Type = "standard");
}
//PRINT: 1
module picture_gate_full (pos = [0, 0, 0], rot = [0, 0, 0]) {
picture_gate(pos, rot, Type = "full");
}
//PRINT: 1
module picture_gate_super16 (pos = [0, 0, 0], rot = [0, 0, 0]) {
picture_gate(pos, rot, Type = "super16");
}
//PRINT: 1
module picture_gate_sound (pos = [0, 0, 0], rot = [0, 0, 0]) {
picture_gate(pos, rot, Type = "sound");
}
/*
module lamp_dual (pos = [0, 0, 0]) {
Z = 10;
@ -785,7 +816,8 @@ module panel_bearing_void (pos = [0, 0, 0]) {
//BOM: 6, M3 hex cap bolt 8mm,N/A,Attach panel to aluminum extrusions
//BOM: 6, M3 sliding t slot nut,N/A,Attach aluminum extrusions to panel
//BOM: 1, 100RPM DC geared motor with encoder,N/A,Drive the sprocketed_roller
//BOM: 4, M4 hex bolt 40mm, N/A, Attach the lamp to the panel
//BOM: 4, M4 hex bolt 50mm, N/A, Attach the lamp to the panel
//BOM: 4, M4 hex bolt 25mm, N/A, Attach the lamp to the panel
//PRINT: 1
module panel (pos = [0, 0, 0]) {
BoltX = (PanelX - 20) / 2;
@ -949,6 +981,8 @@ module takeup_panel_motor_mount_pads (pos = [0, 0, 0], rot = [0, 0, 0]) {
//BOM: 1, 250RPM DC geared motor, JSX40-370, Drive the takeup of the picture pathway
//BOM: 7, M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_picture to the frame
//BOM: 7, M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_picture
//BOM: 3, M4 hex bolt 25mm,N/A,Attach the panel to the takeup_panel_picture_motor_mount
//PRINT: 1
module takeup_panel_picture (pos = [0, 0, 0]) {
BoltX = (TakeupPanelX / 2) - 10;
BoltY = (TakeupPanelY / 2) - 10;
@ -985,10 +1019,12 @@ module takeup_panel_picture (pos = [0, 0, 0]) {
takeup_panel_motor_mount_m4_bolts_voids([TakeupPanelPictureOffsetX, TakeupPanelPictureOffsetY, -8.99]);
}
}
}
//BOM: 3, M4 hex nut,N/A,Attach the takeup_panel_picture_motor_mount to the panel
//BOM: 4, M3 hex cap bolt 8mm,N/A,Attach the motor to the takeup_panel_picture_motor_mount
//PRINT: 1
module takeup_panel_picture_motor_mount (pos = [0, 0, 0] ) {
translate(pos) {
translate([TakeupPanelPictureOffsetX, TakeupPanelPictureOffsetY, 0]) {
@ -1020,8 +1056,10 @@ module takeup_panel_picture_motor_mount (pos = [0, 0, 0] ) {
}
//BOM: 1, 250RPM DC geared motor, JSX40-370, Drive the takeup of the stock pathway
//BOM: 6, M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
//BOM: 6, M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
//BOM: 7, M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
//BOM: 7, M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
//BOM: 3, M4 hex bolt 25mm,N/A,Attach the panel to the takeup_panel_stock_motor_mount
//PRINT: 1
module takeup_panel_stock (pos = [0, 0, 0]) {
BoltX = (TakeupPanelX / 2) - 10;
BoltY = (TakeupPanelY / 2) - 10;
@ -1061,6 +1099,9 @@ module takeup_panel_stock (pos = [0, 0, 0]) {
}
}
//BOM: 3, M4 hex nut,N/A,Attach the takeup_panel_picture_motor_mount to the panel
//BOM: 4, M3 hex cap bolt 8mm,N/A,Attach the motor to the takeup_panel_stock_motor_mount
//PRINT: 1
module takeup_panel_stock_motor_mount (pos = [0, 0, 0] ) {
translate(pos) {
translate([TakeupPanelStockOffsetX, TakeupPanelStockOffsetY, 0]) {
@ -1119,6 +1160,10 @@ module feed_panel_motor_mount_m4_bolts_voids (pos = [0, 0, 0], rot = [0, 0, 0])
}
}
//BOM: 3, M4 hex bolt 35mm,N/A,Attach the feed_panel_motor_mount to the panel
//BOM: 7, M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
//BOM: 7, M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
//PRINT: 1
module feed_panel_picture (pos = [0, 0, 0]) {
BoltX = (TakeupPanelX / 2) - 10;
BoltY = (TakeupPanelY / 2) - 10;
@ -1153,6 +1198,10 @@ module feed_panel_picture (pos = [0, 0, 0]) {
}
}
//BOM: 3, M4 hex bolt 35mm,N/A,Attach the feed_panel_motor_mount to the panel
//BOM: 7, M3 hex cap bolt 8mm,N/A,Attach the takeup_panel_stock to the frame
//BOM: 7, M3 sliding t slot nut,N/A,Attach the frame to the takeup_panel_stock
//PRINT: 1
module feed_panel_stock (pos = [0, 0, 0]) {
BoltX = (TakeupPanelX / 2) - 10;
BoltY = (TakeupPanelY / 2) - 10;
@ -1187,6 +1236,7 @@ module feed_panel_stock (pos = [0, 0, 0]) {
}
}
//PRINT: 2
module feed_panel_motor_mount (pos = [0, 0, 0]) {
translate(pos) {
translate([FeedPanelPictureOffsetX, 0, 0]) {
@ -1227,6 +1277,9 @@ module m3_nut_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0], H = 20) {
}
}
//BOM: 32, M3 hex cap bolt 8mm,N/A,Attach the corner_foot to the frame
//BOM: 32, M3 sliding t slot nut,N/A,Attach the frame to the corner_foot
//PRINT: 8
module corner_foot (pos = [0, 0, 0], rot = [0, 0, 0]) {
H = 30;
D1 = 16;
@ -1273,18 +1326,6 @@ module L298N_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
}
}
module motor_controller_panel (pos = [0, 0, 0]) {
translate(pos) difference() {
union () {
translate([-5, 17, 0]) rounded_cube([110, 50, 3], d = 4, center = true, $fn = 30);
L298N_mount([5, 0, 6]);
L298N_mount([-52, 0, 6]);
}
translate([23, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
translate([-34, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
}
}
/*
module sprocketed_roller_upright (pos = [0, 0, 0]) {
translate (pos) {
@ -1354,7 +1395,7 @@ module sprocketed_roller_upright_solid (pos = [0, 0, 0]) {
}
*/
//BOM: 1, M3 hex cap bolt 12mm, N/A, Attaches the sprocketed_roller to the geared motor
//BOM: 1, M3 hex cap bolt 12mm, N/A, Attaches the sprocketed_roller_invert_solid to the geared motor
//BOM: 1, 608-RS Ball Bearing, 608-RS, Reduces wobble in the rollers spin
//PRINT: 1
module sprocketed_roller_invert_solid (pos = [0, 0, 0]) {
@ -1435,6 +1476,9 @@ module lamp_LED_side (pos = [0, 0, 0], rot = [0, 0, 0]) {
}
}
//BOM: 6, 220 Ohm Resistor,N/A,Provide resistance for LEDs
//BOM: 6, 5mm White LED,N/A,Light source
//PRINT: 1
module lamp_LEDs (pos = [0, 0, 0], rot = [0, 0, 0]) {
LightChannelY = 24;
LEDOffsetY = -2;
@ -1550,6 +1594,31 @@ module electronics_panel (pos = [0, 0, 0], rot = [0, 0, 0]) {
}
}
//BOM: 14, M4 hex nut,N/A,Secure knob to M4 bolts
//PRINT: 14
module contact_printer_knob () {
knob(H = 10, D = 14, DEPTH = 4, BOLT = "M4", TYPE = "hex");
}
//PRINT: 2
module contact_printer_magnetic_coupling () {
magnetic_coupling();
}
//PRINT: 4
module contact_printer_slip_coupling () {
slip_coupling();
}
//PRINT: 4
module contact_printer_daylight_spool_insert_reinforced_nut () {
daylight_spool_insert_reinforced_nut();
}
module contact_printer_daylight_spool_insert_reinforced () {
daylight_spool_insert_reinforced();
}
module debug () {
DaylightZ = 11.5;
PanelOffsetZ = -2.5;
@ -1727,13 +1796,15 @@ module debug_clutch () {
centered_geared_motor([TakeupPanelPictureX, TakeupPanelPictureY, -50], [180, 0, 0]);
}
//BOM: 840, 2020 Aluminum extrusion mm,N/A,Top and bottom frame 2x 420mm
//BOM: 1040, 2020 Aluminum extrusion mm,N/A,Sides and central frame 4x 260mm
module contact_printer () {
//debug module for BOM
}
PART = "lamp_coverx";
PART = "feed_panel_picture";
LIBRARY = true;
if (PART == "panel") {
@ -1756,50 +1827,46 @@ if (PART == "panel") {
feed_panel_stock();
} else if (PART == "feed_panel_motor_mount") {
feed_panel_motor_mount();
} else if (PART == "picture_gate") {
rotate([-90, 0, 0]) picture_gate(Type = "standard");
} else if (PART == "full_gate") {
rotate([-90, 0, 0]) picture_gate(Type = "full");
} else if (PART == "super_gate") {
rotate([-90, 0, 0]) picture_gate(Type = "super16");
} else if (PART == "sound_gate") {
rotate([-90, 0, 0]) picture_gate(Type = "sound");
} else if (PART == "gate_picture") {
picture_gate_standard(rot = [-90, 0, 0]);
} else if (PART == "gate_full") {
picture_gate_full(rot = [-90, 0, 0]);
} else if (PART == "gate_super16") {
picture_gate_super16(rot = [-90, 0, 0]);
} else if (PART == "gate_sound") {
picture_gate_sound(rot = [-90, 0, 0]);
} else if (PART == "sprocketed_roller_invert") {
sprocketed_roller_invert();
} else if (PART == "sprocketed_roller_invert_solid") {
sprocketed_roller_invert_solid();
} else if (PART == "sprocketed_wheel") {
} else if (PART == "sprocketed_roller_reinforced_wheel") {
rotate([180, 0, 0]) sprocketed_roller_reinforced_wheel(sprockets = 18, bevel = true, model = "gearbox_motor", nuts = true);
} else if (PART == "magnetic_coupling") {
magnetic_coupling();
contact_printer_magnetic_coupling();
} else if (PART == "slip_coupling"){
slip_coupling();
contact_printer_slip_coupling();
} else if (PART == "daylight_spool_insert_reinforced_nut") {
contact_printer_daylight_spool_insert_reinforced_nut();
} else if (PART == "daylight_spool_insert_reinforced") {
contact_printer_daylight_spool_insert_reinforced();
} else if (PART == "corner_foot") {
rotate([180, 0, 0]) corner_foot();
} else if (PART == "2020_tslot_insert") {
2020_tslot_insert();
} else if (PART == "bearing_post_nut"){
bearing_post_nut();
} else if (PART == "daylight_spool_insert_reinforced_nut") {
daylight_spool_insert_reinforced_nut();
} else if (PART == "daylight_spool_insert_reinforced") {
daylight_spool_insert_reinforced();
} else if (PART == "idle_roller_half_a") {
idle_roller_half();
idle_roller_half_a();
} else if (PART == "idle_roller_half_b") {
idle_roller_half(flip = true);
} else if (PART == "motor_controller_panel") {
motor_controller_panel();
} else if (PART == "gate_holder") {
gate_holder();
idle_roller_half_b();
} else if (PART == "gate_carrier") {
rotate([0, 0, 0]) gate_carrier();
} else if (PART == "filter_carrier") {
rotate([-90, 0, 0]) filter_carrier();
} else if (PART == "lamp_LEDs") {
rotate([90, 0, 0]) lamp_LEDs();
} else if (PART == "electronics_panel") {
electronics_panel(rot = [180, 0, 0]);
} else if (PART == "knob"){
contact_printer_knob();
} else {
//debug();
//difference () {

View File

@ -29,6 +29,8 @@ tac "${1}" | while read line; do
module=$(echo "${line}" | grep 'module ' | grep '(' | grep ')')
if [[ "${module}" != "" ]]; then
MODULE=$(echo "${module}" | xargs | awk '{print $2}' | awk -F'{' '{print $1}')
MODULE=$(echo "${MODULE}" | sed "s/^$NAME//")
MODULE=$(echo "${MODULE}" | sed "s/^_//")
fi
qty=$(echo "${line}" | grep ^'//' | grep 'PRINT' | awk -F'PRINT:' '{print $2}'| xargs)
if [[ "${qty}" != "" ]]; then

View File

@ -10,14 +10,14 @@ solid OpenSCAD_Model
outer loop
vertex -0.1854102 -15.4706335 -3
vertex 0 -15.5 -3
vertex -0.1854102 -15.4706335 2.526939
vertex 0 -15.5 2.5
endloop
endfacet
facet normal -0.15643656 -0.987688 0
outer loop
vertex -0.1854102 -15.4706335 2.526939
vertex 0 -15.5 -3
vertex -0.1854102 -15.4706335 -3
vertex 0 -15.5 2.5
vertex -0.1854102 -15.4706335 2.526939
endloop
endfacet
facet normal -0.009257761 -0.7070765 0.7070765
@ -20716,12 +20716,12 @@ solid OpenSCAD_Model
outer loop
vertex 0 15.5 -3
vertex 0 15.5 2.5
vertex 0.1854102 15.4706335 -3
vertex 0.1854102 15.4706335 2.526939
endloop
endfacet
facet normal 0.15643656 0.987688 0
outer loop
vertex 0 15.5 2.5
vertex 0 15.5 -3
vertex 0.1854102 15.4706335 2.526939
vertex 0.1854102 15.4706335 -3
endloop

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

44326
stl/contact_printer_knob.stl Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff