====== Native Shield ====== The native shield is stacked on an arduino mega. Next to the mandatory functionalities related to the 0816 feeder, the board has some useful capabilities commonly used in the context of pick and place machines. So there are optionally two vacuum sensors, analog inputs breaked out and 4 power output switched by mosfets. You might want to consider using the cheap and widely available sensor shield mega. There is a [[maschine:pickandplace:feeder:0816feeder:controller#controller-shield_for_arduino_mega|comparison table]] at the controller-page to help you to make the right decision. ===== Schematic / Board ===== {{:maschine:pickandplace:0816-automatic-feeder-controller-pcb-top-labeled.png?0x300|0816 smt automatic feeder native shield pcb}} {{:maschine:pickandplace:feeder:0816-controller-pcb_photo_cutted.png?0x300|}} {{:maschine:pickandplace:feeder:0816-feeder-machine-photo-controller.jpg?0x300|}} ===== Order ===== Order pcb directly from * [[https://oshpark.com/shared_projects/EZTbBs0F|OSH park]] or * [[https://aisler.net/p/YRUHNRCW|aisler]] * or load the source files (see below) to order pcb from somewhere else cheaper ===== Assemble the Controller-PCB ===== To fully assemble the controller-pcb you need following parts. The BOM is grouped by functionalities independed of each other. So if only feeder functionality is desired, leave out everything from the other groups. You could even leave out the SMD parts in the feeder functionality group and solder a jumper wire to connect the feeder GND line to the PWR_FEEDER GND line which would have been done by mosfet Q5 normally. The pcb is then just a translation of the arduino mega pinout to the 4 pin feeder connectors. |[{{:maschine:pickandplace:feeder:controller-pcb-placement.png?600|placement of parts}}]|[{{:maschine:pickandplace:feeder:0816-automatic-feeder-controller-jumperq5_labeled.png?300|solder bridge if Q5 is omited -> no automatic switch of feeders' power supply then.}}]| ^ Part ^ Value ^ Device ^ Package ^ Description ^ | **Parts for Functionality: Feeder** ||||| | | | Arduino Mega | | | | N0...23 | | PINHD-1x4 | 1x04 | connect a feeder, one per Nxx connector | | PWR_FEEDER | | PINHD-1x2 | 1x02 | external power supply connector | | INT_PWR | | PINHD-1x2 | 1x02 | set jumper to power feeder from arduino mega (don't wire external power then!) | | ADC_AUX | | PINHD-1x6 | 1x06 | PIN HEADER | | Q5 | AO3400A | AO3400A | SOT23 | N-CHANNEL MOS FET | | R9 | 470 | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R10 | 10k | R-EU_R0805 | R0805 | RESISTOR, European symbol | | C3 | 100n | C-EUC0603K | C0603K | CAPACITOR, European symbol | | C4 | 1µ | CPOL-EUE2.5-5 | E2,5-5 | POLARIZED CAPACITOR, European symbol | | | | + many pinheads for connection to arduino mega | | | | **Parts for Functionality: Vacuum Sensing** ||||| | C1 | 100n | C-EUC0603K | C0603K | CAPACITOR, European symbol | | C2 | 100n | C-EUC0603K | C0603K | CAPACITOR, European symbol | | VAC1 | MPXV6115VC6U | MPXV6115VC6U | MPXV6115VC6U | | | VAC2 | MPXV6115VC6U | MPXV6115VC6U | MPXV6115VC6U | | | **Parts for Functionality: Four Power Output** ||||| | C5 | 1µ | CPOL-EUE2.5-5 | E2,5-5 | POLARIZED CAPACITOR, European symbol | | OUT1 | | AK500/2 | AK500/2 | CONNECTOR | | OUT2 | | AK500/2 | AK500/2 | CONNECTOR | | OUT3 | | AK500/2 | AK500/2 | CONNECTOR | | OUT4 | | AK500/2 | AK500/2 | CONNECTOR | | PWR_IN | | AK500/2 | AK500/2 | CONNECTOR | | Q1 | AO3400A | AO3400A | SOT23 | N-CHANNEL MOS FET | | Q2 | AO3400A | AO3400A | SOT23 | N-CHANNEL MOS FET | | Q3 | AO3400A | AO3400A | SOT23 | N-CHANNEL MOS FET | | Q4 | AO3400A | AO3400A | SOT23 | N-CHANNEL MOS FET | | R1 | 470 | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R2 | 10k | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R3 | 470 | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R4 | 10k | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R5 | 470 | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R6 | 10k | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R7 | 470 | R-EU_R0805 | R0805 | RESISTOR, European symbol | | R8 | 10k | R-EU_R0805 | R0805 | RESISTOR, European symbol | ====== Pinout: Feeder Connectors to Arduino Mega Pins ====== The pinout is to be found in boards.h in the firmware. Here is the table: ^ feeder number (index) ^ servo-pin ^ feedback-pin ^ | N0 | 13 | 12 | | N1 | 11 | 10 | | N2 | 9 | 8 | | N3 | 7 | 6 | | N4 | 5 | 4 | | N5 | 3 | 2 | | N6 | 14 | 15 | | N7 | 16 | 17 | | N8 | 18 | 19 | | N9 | 22 | 23 | | N10 | 24 | 25 | | N11 | 26 | 27 | | N12 | 30 | 31 | | N13 | 32 | 33 | | N14 | 34 | 35 | | N15 | 36 | 37 | | N16 | 38 | 39 | | N17 | 40 | 41 | | N18 | 42 | 43 | | N19 | 44 | 45 | | N20 | 46 | 47 | | N21 | 48 | 49 | | N22 | 50 | 51 | | N23 | 52 | 53 | ===== Sources for 0816 Controller Shield PCB ===== * source files in eagle: {{ :maschine:pickandplace:feeder:v2.2_0816-automatic-feeder-controller-pcb.zip.zip |}} * {{ :maschine:pickandplace:feeder:controller-pcb-schematic.pdf}} and {{:maschine:pickandplace:feeder:controller-pcb-placement.pdf|board layout/placement.pdf}} * order directly from [[https://oshpark.com/shared_projects/EZTbBs0F|OSH park (little expensive)]], [[https://aisler.net/p/YRUHNRCW|aisler]] or load the source files to order pcb from somewhere else cheaper === PCB revisions === ^ version ^ manufacturer ^ price ^ changelog ^ notes to improve next rev. ^ | v1 | elecrow | 5pcb for 10$ | - | | | v2 | pcbways | 10pcb for 5$ | first public release | | | v2.1 | - | - | renamed feeder connectors same way as in firmware \\ added missing pin for AUX_IN | | | v2.2 | - | - | *GND width for pwr out cont. 1,27mm \\ *soldermask keepout around fiducials | *spi socket for ethernet module \\ *break out sda and scl for i2c comm to other pwm modules | ===== Alternative Wiring / Shields ===== I realized Method A for me, tested Method D and used Method B for prototyping. The other types to control the feeders are just ideas and need more effort to setup. ^ Setup ^ Description ^ | **A** Arduino Shield for 24 feeder | -> [[maschine:pickandplace:feeder:0816feeder:nativeshield|native shield]] | | **B** Temporary wiring on prototyping board | Just use some temporary or permanent breadboard-pcb with pinheads and connect to an arduino mega. For first test this would be the cheapest solution. Wire as shown in fritzing and upload the firmware for the 0816 controller without any modification on the mega. The suggested wiring map to feeder with the index N0. {{ :maschine:pickandplace:feeder:feeder_prototyping_steckplatine.svg }} | | **C** Dedicated Servo Driver | use [[https://www.amazon.de/gp/product/B01FVKTI6A/ref=s9u_cartx_gw_i3?ie=UTF8&pd_rd_i=B01FVKTI6A&pd_rd_r=9H85QS6M6WSWE00SKX21&pd_rd_w=gFEdk&pd_rd_wg=pOyGm&pf_rd_m=A3JWKAKR8XB7XF&pf_rd_s=&pf_rd_r=71RJD983M3J0H19WJGR0&pf_rd_t=36701&pf_rd_p=c210947d-c955-4398-98aa-d1dc27e614f1&pf_rd_i=desktop|PCA9685 16 Kanal 12 Bit PWM Servo Motor Treiber]] with feeder pcb. untested, but should work. would need you to adapt the firmware. Pins for the feedbackline (if desired to use) are still needed. | | **D** Sensor-Shield-Arduino-Atmega | Another untested option: [[https://www.amazon.de/Sensor-Shield-Erweiterungskarte-Arduino-Atmega-Chip/dp/B01554O7EA|Sensor Shield]]. Pinout of Firmware has to be modified. Feedback-Line doesn't work with this board because the fourth line is missing. | | **X** Own Build | Build your own controller. Just need 5V, GND and PWM for controlling the servo-motor. If desired there is a fourth line for rudimentary feedback about the feeders status. |