Sponzor této konstrukce:
Tuto konstrukci sponzoroval výrobce nejen plošných spojů PCBWay:
RaspberryPi IO Shield v1.0 (EA)
Protože se jedná o sponzorovanou konstrukci je její zveřejnění prakticky souběžné se zveřejněním pro mé patrony. Současně je tato konstrukce dostupná i na webu
PCBWay v sekci
sdílených projektů. Odtud si velice snadno můžete objednat výrobu například PCB a samozřejmě tam naleznete veškerou dokumentaci.
Tento shield pro RaspberryPi vznikl z důvodu potřeby ovládání dalších periferií na 3D tiskárně, za použití tiskového serveru. Většinou totiž běží tiskový server na malém počítači (RaspberryPi), který disponuje i vstupně výstupními porty (GPIO), které je možno použít pro ovládání periferií tiskárny. V dnešní době prakticky všechny tiskové servery (Repetier server, OctoPrint, Klipper), umožňují jejich ovládání. Nicméně aby bylo možné tyto GPIO použít je nutné je vybavit další elektronikou a to hlavně posílit jejich proudové zatížení a zvětšit jejich napěťové úrovně. A právě k tomu je tento shield určený. Kromě samotného rozšíření GPIO obsahuje i vestavěný DC/DC měnič, kterým je možno přímo napájet připojený počítač (RaspberryPi), případně další periferie. Vše je uzpůsobeno jak mechanickým, tak elektrickým provedením, aby tento shield pasoval přímo na RaspberryPi a současně umožňoval připojení dalších modulů, jako je například TFT dotykový displej. Z toho důvodu jsou některé GPIO vynechány a shieldem pouze prochází skrze oboustranný konektor 40pin. Toto řešení umožňuje vytvořit velmi malý, ale zároveň poměrně vybavený tiskový server. Pokud pak Vaše tiskárna nedisponuje například ovládáním osvětlení, nebo senzorem filamentu, může tyto funkce převzít právě tiskový server bez toho, aby bylo nutné jakkoli zasahovat do stávající elektroniky tiskárny a to včetně jejího firmware. Pokud používáte pro řízení tiskárny firmware Klipper (důrazně doporučuji), je integrace tohoto shieldu opravdu jednoduchá.
Technické specifikace:
Napájecí napětí 8-30V DC (DC konektor 5,5 x 2,1mm)
Počet opticky oddělených vstupů 3x
Počet výkonových výstupů 5x
Proud z výkonového výstupu 1A na každý výstup (pouze při volbě 24V)
Volitelné napětí výkonového výstupu 12V (max 1A všech 5) / napájecí napětí (24V)
Napájecí výstup 5V jištěný pojistkou max 1A
Výstup pro LED pásek WS2812B 5V / max 1A (max 20 LED)
Zvuková signalizace Piezo měnič
I2C rozhraní 2x konektor (3,3V logika)
UART 2x konektor (1x 5V a 1x 3,3V logika)
Universální OI port 1x 3,3V IO port (například OneWire)
Připojení k RaspberryPi 40pinový konektor (průchozí)
Podporované RaspberryPi ZeroW, Zero 2W, 3, 3B, 3B+, 4B
Napájení RaspberryPi Přes 40pinový konektor 5,1V/2,5A
Zapojení shieldu:
Jak už jsem v úvodu naznačil, tato deska se zasouvá do 40 pinového konektoru RaspberryPi. Její provedení přesně kopíruje počítače RaspberryPi 3, 3B, 3B+, 4B, ale je možno ji použít i s variantou ZERO. V takovém případě však doporučuji výkonnější variantu ZERO 2W, které utáhne bez problému libovolný tiskový server a to včetně TFT dotykového displeje. Pro připojení je použit oboustranný konektor, takže lze nad tuto desku připojit nějakou další. To se právě výborně hodí při použití s TFT displejem. Z toho důvodu jsou některé vývody tímto shieldem nepoužité, aby nekolidovaly s displejem.
Shield je rozdělen do dvou částí. Jednou je napájecí DC/DC měnič a druhou pak samotné výkonové rozšíření GPIO vývodů počítače. Jako DC/DC měnič byl použit obvod XL4004, který je poměrně výkonný a vyžaduje minimum externích součástek. Výstupní napětí je možno lehce regulovat kolem hodnoty 5V, přičemž maximálně jde nastavit 5,2V, což by mělo být ještě bezpečné pro připojený počítač. Nicméně doporučuji při oživování, nastavit hodnotu na 5,1V. Díky tomuto měniči je pak možno celý tiskový server napájet přímo ze zdroje 3D tiskárny nebo libovolného napájecího adaptéru 8-30V. Poměrně často se totiž stává, že pokud je Raspberry napájeno pomocí microUSB, je na kabelu a konektoru poměrně značný úbytek napětí a počítač pak může pracovat nestabilně. Tento problém je tedy tímto měničem eliminován. Současně se dá napětí 5V ještě použít pro napájení například chytrých LED pásků WS2812B, kde může být připojeno až 20 LEDek. Tento výstup napětí je pak jištěn vratnou pojistkou (1A), aby v případě jakékoli poruchy (zkratu) na LED pásku došlo k jeho odpojení bez toho, aby to ohrozilo funkci počítače. Případně je možno připojit ještě do samostatné svorky X5 další 5V zařízení. I tento výstup napětí je chráněn vratnou pojistkou (1A).
Druhou částí je pak samotné ovládání GPIO z počítače. Proto jsou na desce 3 opticky oddělené vstupy použitelné například pro dodatečné senzory filamentu nebo koncové spínače. Pro výkonové ovládání je pak k dispozici pětice výstupů, kterým můžeme nastavit výstupní napětí 12V nebo 24V respektive napětí použité pro napájení (konektor US2). O napájení 12V se stará malý DC/DC měnič s výstupním proudem max 1A. Proto je nutné dbát toho, aby tento proud nebyl překročen. Pokud je výstupní napětí nastaveno na 24V je možno z každého výstupu odebírat proud 1A. Samozřejmě je možno jednotlivá napětí kombinovat a nastavit například na 2 výstupy napětí 12V a na zbylé 3 výstupy 24V. Pak každý 12V výstup může poskytovat proud 0,5A.
No a poslední takovou menší částí jsou komunikační sběrnice. Máme k dispozici 2 konektory I2C a 2 konektory UART, přičemž jeden konektor UART používá 5V logiku včetně napájení a druhý 3,3V logiku včetně napájení. To se může hodit, pokud potřebujeme připojit například 8bitovou řídící desku s 5V logikou nebo 32bitovou desku s 3,3V logikou, bez toho abychom museli tyto signály upravovat. Vše je už vyřešeno na desce Shieldu. Konektor označený OneWire lze použít jako univerzální vstupně/výstupní a lze k němu připojit například teplotní čidlo DS18B20.
Do zbylé mezery na PCB se mi podařilo, ještě vměstnat piezo měnič, takže lze použít i zvukovou signalizaci.
Schéma zapojení:
Obrázek v plném rozlišení je součástí elektronické dokumentace.
Schéma osazení:
Obrázek v plném rozlišení je součástí elektronické dokumentace.
Oživení a montáž shieldu:
Při oživování musíme pouze nastavit výstupní napětí DC/DC měniče trimrem TM1 na hodnotu 5,1V. Tím je veškeré oživení hotovo.
I samotná montáž by neměla činit žádné potíže, neb shield se pouze zasune do konektoru na RaspberryPi. Doporučuji použít distanční sloupky (M2,5), které shield zafixují ve správné pozici.
Krabička(y):
Pro jednotlivé varianty sestav vzniknou modely krabiček, které bude možno vytisknou a celou sestavu tak vhodně zakrytovat. Proto sledujte tento projekt i v diskusi na níž najdete odkaz níže.
Význam jednotlivých konektorů:
US2 - Napájení Shieldu 8-30V (DC konektor 5,5 x 2,1mm) střední kolík +
X1 - Výkonové výstupy
X1-1 Kladné napětí (12V max 200mA / 24V max 1A)
X1-2 GND (spínané) – GPIO05
X1-3 Kladné napětí (12V max 200mA / 24V max 1A)
X1-4 GND (spínané) – GPIO06
X1-5 Kladné napětí (12V max 200mA / 24V max 1A)
X1-6 GND (spínané) – GPIO13
X1-7 Kladné napětí (12V max 200mA / 24V max 1A)
X1-8 GND (spínané) – GPIO19
X1-9 Kladné napětí (12V max 200mA / 24V max 1A)
X1-10 GND (spínané) – GPIO26
X3 - Opticky oddělené vstupy
X3-1 Anoda (+ 3-24V) – GPIO12
X3-2 Katoda (spojeno s GND)
X3-3 Anoda (+ 3-24V) – GPIO16
X3-4 Katoda (spojeno s GND)
X3-5 Anoda (+ 3-24V) – GPIO20
X3-6 Katoda (spojeno s GND)
X4 - LED pásek WS2812B
X4-1 GND
X4-2 Datová komunikace do pásku WS2812B – GPIO27
X4-3 Napájení pásku +5V/1A
X5 - Výstup napětí 5V/1A
X5-1 Výstup 5V/1A
X5-2 GND
OneWire - Universální IO port 3,3V
PS1 GND
PS2 GPIO21
PS3 3,3V (max 50mA)
I2C 3V3 - Komunikační rozhraní I2C (3,3V)
PS1 GND
PS2 3,3V (max 50mA)
PS3 SCL
PS4 SDA
UART 5V - Komunikační rozhraní UART (5V)
PS1 GND
PS2 TXD – GPIO14
PS3 RXD – GPIO15
PS4 5V (max 100mA)
UART 3V3 - Komunikační rozhraní UART (3,3V)
PS1 GND
PS2 TXD – GPIO14
PS3 RXD – GPIO15
PS4 3,3V (max 50mA)
JP1 - Volba výstupního napětí pro X1-1
JP1-1/2 12V
JP1-2/3 24V (napětí vstupu US2)
JP2 - Volba výstupního napětí pro X1-3
JP2-1/2 12V
JP2-2/3 24V (napětí vstupu US2)
JP3 - Volba výstupního napětí pro X1-5
JP3-1/2 12V
JP3-2/3 24V (napětí vstupu US2)
JP4 - Volba výstupního napětí pro X1-7
JP4-1/2 12V
JP4-2/3 24V (napětí vstupu US2)
JP5 - Volba výstupního napětí pro X1-9
JP5-1/2 12V
JP5-2/3 24V (napětí vstupu US2)
Seznam použitých komponent:
C1 4x 100nF C-EUC1206 C1206
C2 100nF C-EUC1206 C1206
C3 1x 33nF C-EUC1206 C1206
C4 1x 220uF/35V CPOL-EU153CLV-0605 153CLV-0605
C5 1x 330uF/16V CPOL-EU153CLV-0605 153CLV-0605
C6 100nF C-EUC1206 C1206
C7 1x 100uF/35V CPOL-EU153CLV-0605 153CLV-0605
C8 100nF C-EUC1206 C1206
C9 1x 100uF/25V CPOL-EU153CLV-0605 153CLV-0605
D1 MBRD1045 50WQ10FN TO-252-COMMON-PINS
DC1 R-78C12-1.0 R-78C12-1.0 SIP3
F1 2x SD110-08 1812L 1812L
F2 SD110-08 1812L 1812L
JP1 5x JP2E JP2
JP2 JP2E JP2
JP3 JP2E JP2
JP4 JP2E JP2
JP5 JP2E JP2
L1 33uH/5A DR127 DR127
LED1 5x LED CHIPLED_1206
LED2 LED CHIPLED_1206
LED3 LED CHIPLED_1206
LED4 LED CHIPLED_1206
LED5 LED CHIPLED_1206
OK1 3x SFH618A-3X007 SFH618A-3X007 SMD4-7
OK2 SFH618A-3X007 SFH618A-3X007 SMD4-7
OK3 SFH618A-3X007 SFH618A-3X007 SMD4-7
Q1 6x MOSFET-NREFLOW SOT23
Q2 MOSFET-NREFLOW SOT23
Q3 MOSFET-NREFLOW SOT23
Q4 MOSFET-NREFLOW SOT23
Q5 MOSFET-NREFLOW SOT23
Q6 MOSFET-NREFLOW SOT23
R1 2x 2K2 R-EU_R1206 R1206
R2 4x 10K R-EU_R1206 R1206
R3 6x 10R R-EU_R1206 R1206
R4 6x 100K R-EU_R1206 R1206
R5 8x 3K9 R-EU_R1206 R1206
R6 10R R-EU_R1206 R1206
R7 100K R-EU_R1206 R1206
R8 3K9 R-EU_R1206 R1206
R9 10R R-EU_R1206 R1206
R10 100K R-EU_R1206 R1206
R11 3K9 R-EU_R1206 R1206
R12 10R R-EU_R1206 R1206
R13 100K R-EU_R1206 R1206
R14 3K9 R-EU_R1206 R1206
R15 10R R-EU_R1206 R1206
R16 100K R-EU_R1206 R1206
R17 3K9 R-EU_R1206 R1206
R18 10R R-EU_R1206 R1206
R19 100K R-EU_R1206 R1206
R20 3K9 R-EU_R1206 R1206
R21 3K9 R-EU_R1206 R1206
R22 3K9 R-EU_R1206 R1206
R23 10K R-EU_R1206 R1206
R24 10K R-EU_R1206 R1206
R25 10K R-EU_R1206 R1206
R26 2K2 R-EU_R1206 R1206
R27 1x 1K R-EU_R1206 R1206
SG1 F/CM12P F/CM12P F/CM12P
TM1 2K TRIMPOTTC33X TC33X
U$1 XL4005 XL4005 TO263-5L
U$2 2.1MMJACKTHM 2.1MMJACKTHM PJ-102A
U$3 4x 4_PIN_JST-XH 4_PIN_JST-XH 4_PIN_JST-XH
U$4 4_PIN_JST-XH 4_PIN_JST-XH 4_PIN_JST-XH
U$5 4_PIN_JST-XH 4_PIN_JST-XH 4_PIN_JST-XH
U$6 4_PIN_JST-XH 4_PIN_JST-XH 4_PIN_JST-XH
U$7 1x 3_PIN_JST-XH 3_PIN_JST-XH 3_PIN_JST-XH
X1 AK550/10 AK550/10
X2 RASPI_BOARD_B RASPI_BOARD_B+#_E4 RASPI_BOARD
X3 AK550/6 AK550/6
X4 AK550/3 AK550/3
X5 AK550/2 AK550/2
Instalace ve spojení s firmwarem Klipper:
Nyní si popíšeme jak tento shield zprovoznit pokud používáte firmware
Klipper. Firmware Klipper se skládá v podstatě ze dvou částí. Samotný firmware běžící v řídící desce, jež ovládá 3D tiskárnu a aplikaci, která běží v řídícím počítači většinou RaspberryPi nebo podobném (OrangePi). Toto rozdělení umožňuje maximálně využít výpočetní výkon RaspberryPi a do řídící desky, která může být založena na 8bitovém MCU již posílá předpřipravené příkazy, které deska (MCU) pouze vykoná. Další velkou výhodou je možnost připojit k hlavnímu počítači (RaspberryPi) hned několik řídících desek, a tak rozšířit možnosti tiskárny. A jak jistě všichni víte samotný počítač RaspberryPi obsahuje hned několik GPIO, které jsou napojeny na tento shield. Takže se nabízí možnost je využít jako rozšíření ke stávající řídící desce. Z tohoto důvodu musíme na Raspberry ještě kromě samotného Klippru doinstalovat podporu MCU, které bude ovládat GPIO (o samotné instalaci Klippru se zde nebudu rozepisovat, ale můžete se podívat do diskuse
ZDE). Takže se na to pojďme podívat. V první řadě pokud máte na RaspberryPi zprovozněn Klipper se připojte přes SSH a dále postupujte dle
instrukcí:
cd ~/klipper/
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu defaults
Nyní musíme zkompilovat firmware pro MCU RaspberryPi:
cd ~/klipper/
make menuconfig
V sekci
Micro-controler Archytecture vybereme
Linux process a uložíme
Q a Y.
sudo service klipper stop
make flash
sudo service klipper start
Nyní je podpora MCU z RaspberryPi nainstalována a již stačí definovat do konfiguračního souboru printer.cfg funkce pro tento MCU.
Část konfiguračního souboru tiskárny, kde jsou definované výstupy si můžete prohlédnout v PDF dokumentaci.
Nyní můžeme konfigurační soubor uložit a restartovat firmware. Následně už můžeme přes uživatelské rozhraní dané výstupy ovládat.
Pokud by se Vám nechtěl firmware spojit s MCU v RaspberryPi a hlásil, že nemůže najít cestu k sériovému portu na adrese: /tmp/klipper_host_mcu doporučuji RaspberryPi vypnout a zase zapnout. Pokud by problém dále přetrvával, můžete zkusit přidat uživatele pi do skupiny tty příkazem:
sudo usermod -a -G tty pi
Tímto bychom měli vyřešené ovládání výstupů, ale ještě si ukážeme jak použít vstupy například jako detektory filamentu. Opět ukázku konfigurace najdete v PDF souboru na konci článku.
V uživatelském rozhraní se nám to pak zobrazí nějak takto:
Samozřejmě je nutné mít na paměti, že vstupy mají otočenou logiku. To znamená, že v klidovém stavu jsou v LOG-1 a v momentě sepnutí přejdou do LOG-0. To je způsobeno použitím optočlenů na vstupech MCU. Nicméně logiku vyhodnocení je možno upravovat v konfigu přidáním znaku vykřičníku (!) před definici pinu: switch_pin: !host:gpio12.
To by mělo jako ukázka použití shieldu s firmwarem Klipper stačit. Pro další informace navštivte stránky s dokumentací pro tento firmware, kde se můžete dočíst více podrobností, které se do tohoto zjednodušeného návodu nevešli.
https://www.klipper3d.org/Overview.html
Použití s Repetier serverem:
Další možností je použití s Repetier serverem. Zde je zprovoznění mnohem jednodušší, ale na druhou stranu to neposkytuje tolik možností jako Klipper. Avšak pokud používáte tento server, vyžaduje zprovoznění pouze definování patřičných funkcí ve webovém rozhraní serveru. Opět pár informací je možno najít v diskusi
ZDE včetně video návodu na mém YT:
https://youtu.be/qEGrFefesb4
Použití s dalšími servery:
Samozřejmě toto není výčet všech použitelných serverů. Můžete použít například velmi oblíbený OctoPrint. Nicméně o tom se zde nebudu rozepisovat, neb ho sám nepoužívám, ale mohu Vás odkázat do mé diskuse, kde se pár věcí okolo tohoto serveru řešilo:
https://forum.sakul.cz/viewtopic.php?f=11&t=1156
Případně zde na můj Patreon, kde je kompletní článek s návodem jak tento server zprovoznit včetně TFT dotykového displeje a hned několika uživatelskými rozhraními:
https://www.patreon.com/posts/46703889
Závěrečné prohlášení:
Autor této konstrukce se zříká jakékoli odpovědnosti za chování této konstrukce a jakékoli škody, která může vzniknout použitím této konstrukce. Veškerou odpovědnost přebírá provozovatel zařízení.
Co znamená (EA / FINAL) v nadpisu konstrukce:
Jde o zkratku Early Access neboli předběžný přístup. Většina mých projektů začíná fází předběžného přístupu, kdy je daná konstrukce uvolněna (zveřejněna), ale stále nejde o finální provedení. Některé funkce nemusí být ještě integrovány, případně se v konstrukci mohou vyskytovat chyby. Nicméně již jde o použitelnou konstrukci, která se dále vyvíjí a zdokonaluje. V momentě, kdy uznám, že je již vše funkční a odladěné, přechází konstrukce do Finální fáze (označeno jako FINAL). Předem upozorňuji, že konstrukce zveřejněné v režimu EA nemusí nikdy přejít do verze FINAL a nelze reklamovat jejich funkcionalitu.
Tím, že si tuto konstrukci pořídíte, zároveň stvrzujete, že jste seznámeni s aktuální funkcionalitou a případnými chybami, jež může konstrukce obsahovat a akceptujete je.
Technická podpora:
Veškerá podpora pro tuto konstrukci je řešena výhradně formou diskuse. Proto pokud máte jakýkoli dotaz týkající se této konstrukce, obracejte se do fóra:
https://forum.sakul.cz/viewtopic.php?f=10&t=48
https://forum.sakul.cz/viewtopic.php?f=10&t=1297
Donate (příspěvek/dar):
Pokud Vám tento manuál pomohl, zvažte možnost příspěvku libovolné částky. Právě díky třeba Vašemu příspěvku bude moci vzniknout nějaký další manuál nebo celá konstrukce. Přispět je možno na bankovní účet: 670100-2208863541/6210
Nebo na PayPal: SakulRaider@seznam.cz
Patreon:
Rozhodl jsem se, že všechny moje nové konstrukce (ale i staré), články, návody a další tvorba budou vždy jako první zveřejněny na mém
Patreonu. Teprve až po nějakém čase přejdou na web a jiná umístění. To dává mým fanouškům možnost mě podpořit například zakoupením členství a tím mne motivovat k přidávání dalšího obsahu. Zpoplatněny (trvale) budou jen některé příspěvky (konstrukce, případně jejich části). Většina bude stále zdarma, nicméně dostupná až za nějaký čas.
Model publikace je takový, že každý nový příspěvek (většinou konstrukce nebo návod) bude zpoplatněn v nějakém členství. Tím bude exkluzivní pro všechny platící členy. Po nějakém čase přejde do bezplatného zveřejnění, například na mém webu nebo diskusi.
Sponzor této konstrukce:
Tuto konstrukci sponzoroval výrobce nejen plošných spojů PCBWay:
DOKUMENTACE:
Závěrem si zde můžete stáhnout veškerou dokumentaci.
DOWNLOAD
Diskusi pro tuto konstrukci najdete ZDE.