RAMPS1.4 + WiFi = Rebel Wireless – část I. – Hardware

IMG_9772_webTento projekt už mi leží v hlavě několik měsíců, ale teprve teď jsem se rozhoupal k jeho realizaci. Cílem je zrušit potenciálně nebezpečné a nespolehlivé rozhraní USB mezi PC a 3D tiskárnou (v mém případě Rebel II), nahradit ho WiFi komunikací a doplnit vlastnosti, jako je například upozornění o chybě/ukončení tisku na mobil apod. Nejsem první, kdo se o něco podobného pokouší, ale, jako obvykle, na to jdu trošku jinou cestou…

Schéma a plošný spoj jsou vytvořeny v mém oblíbeném Kicadu – prakticky se jedná o dnes již standardní zapojení modulu ESP8266 – za povšimnutí snad stojí pouze použití tranzistoru T1, kde vývod GPIO15 blokuje signál TXD do Arduina, umístěného pod RAMPS. Toto zapojení jsem zvolil proto, abych minimalizoval zmatení firmware Arduina počátečními výpisy, které na sériový port posílá ESP8266 po resetu.

RESP

Celá deska je trošku neobvykle umístěná kolmo na desku RAMPS, se kterou je spojená pouze konektorem, označeným AUX-1 – zde bych chtěl upozornit, že schémata RAMPS 1.4, dostupná na internetu občas obsahují chyby, které se týkají právě AUX-1. Naštěstí se dá najít obrázek s vyznačenými chybami:

RAMPS1.4schematic-errors

Montáž přídavné desky na tiskárnu dle mého záměru pak měla vypadat takto:

IMG_9765_web

Plošné spoje z Pragoboardu (Pool servis) dorazily v polovině minulého týdne…

2016-04-29 14.30.56_web

Přítelkyně byla tak laskavá a osadila nejdříve prototyp…

IMG_9764_web

A mohl jsem vesele oživovat a začít psát firmware. Při oživování jsem ale narazil na problém – zatímco v původním Arduinu 2560, které mám v Rebelovi, který jsem koupil od Petra Zahradníka destička fungovala bez problémů, tak v jiném Arduinu 2560 nebyl schopný vývod TXD “stáhnout” RXD AVR do 0. Proměřením PCB jsem přišel na to, že můj levný čínský klon, který pro USB komunikaci používá CH340 namísto druhého AVR je osazený sériovým odporem 49,9 ohmů, zatímco v originálním Arduinu je odpor 1k.

IMG_9766_web

Deska je označená DCcduino a konkrétně se jedná o odpor R12, který je jasně vidět na následujícím obrázku.

IMG_9767_web

Vše spravila výměna R12 za odpor o hodnotě 560ohmů.

Montáž na plánovanou novou tiskárnu (mix Rebel II, RebeliX a dalších úprav) pak vypadá takto:

IMG_9771_web

V současné době pracuji na firmware pro desku. Mám rozpracované dvě verze – první verze, kterou jsem nazval Stupido sloužila k ověření průchodnosti designu a základnímu spojení mezi Marlin FW a Repetier hostem. Firmware je ověřené zatím asi 5-ti hodinami tisku.

Druhá, mnohem sofistikovanější verze, pak má emulovat webové rozhraní, které jsem okoukal zde ESPRINTER jenomže tady jsem narazil. Zjistil jsem, že Marlin FW je snad ten nejmíň sdílný FW co se týče průběhu tisku, jaký jsem mohl použít. Zatím jsem se dostal tak daleko, že jsem doprogramoval do Marlina (částečnou) implementaci příkazu M408 a do ESP pak dopsal převod výpisu souborů do JSON formátu pro webový server, což zdaleka nedostačuje pro rutinní provoz.

Ke stažení je tedy zatím kompletní Kicad projekt HW a pokud se najde někdo, kdo by se rád podílel na firmware, tak se může klidně ozvat na můj kontaktní mail…

 

Ramps10
Ramps10
Ramps10.zip
130.1 KiB
1032 Downloads
Detaily

27 komentářů u „RAMPS1.4 + WiFi = Rebel Wireless – část I. – Hardware“

  1. nebylo by jednodussi pouzit nejakou tu witty desticku (bez vyroby DPS) a primo pres usb komunikovat seriove, tusim ze asi ne… jake ma vyhody to napojit primo na TxD, RxD ? diky za odpoved

    1. Tak to by určitě jednodušší nebylo. USB rozlišuje dva typy zařízení – HOST a DEVICE (a zvláštní případ je OTG, který může přepínat mezi HOST/DEVICE). Komunikace probíhá vždy mezi HOST a DEVICE – nemůžou spolu komunikovat dvě DEVICE. Arduino a i CH340, který je na Witty jsou oba DEVICE. Dalším problémem by pak bylo napájení – USB DEVICE na konektoru nemá výstup napájení, ale očekává, že z něj napájení naopak bude brát.

  2. Opravdu skvělý nápad, plánujete prodej tohoto zařízení? Pořád mám větší pocit že bych se měl naučit programovat lepší věci než je knight rider blikačka… 😀

    1. Díky. Původně jsem tuhle drobnost neplánoval na prodej, ale prototypová série už je v podstatě rozebraná (a to jsem za 3ks PCB zaplatil 1355,-Kč), takže teď dělám drobné úpravy pro verzi 1.1. Pokud bude zájem, tak klidně vyrobím sérii třeba 10-ti kusů na PCB z Číny, aby to bylo levnější a nabídnu je k prodeji. Jenom bych rád věděl aspoň orientačně, jak velký zájem o to je…

      1. Jinak není problém se stabilitou toho wifi modulu? Někde jsem slyšel že za tuto cenu je to nejlepší možné řešení ale že je docela nestabilní. Co je na tom pravdy?

        1. Většinou jsou tři zdroje problémů s ESP8266:
          1. špatné pochopení a zapojení pinů, které určuje spouštění (GPIO15, GPIO2 a GPIO0)
          2. kvalita napájení – ESP8266 je celkem citlivý na kvalitu napájení. Statický odběr na multimetru sice ukáže cca 60mA, ale multimetr nezobrazí špičky cca 300mA při vysílání a to je právě zdroj problému
          3. dalším možným zdrojem problémů je použité SW vybavení – Arduino / PlatformIO prochází překotným vývojem a je třeba VŽDY při přechodu na novou verzi pečlivě ověřovat, zda vše pracuje jak má a zda např. nikde neteče paměť. To stejné platí pro Eclipse IDE v případě že přecházíte na jinou verzi SDK od Esperssif…
          Jak soukromě, tak profesionálně mám nasazeny již desítky modulů, dost z nich běží v režimu 24/7 a uptime těch, které se nevypínají nelze zjistit, neboť přetekl čítač 🙂

      2. Dotaz trochu mimo téma… Píšete, že byste nechal vyrobit PCB v Číně. Mohl byste prosím sdílet odkaz na toho dodavatele? Znám jen náš Pragoboard a chtěl bych zkusit někoho levnějšího.

  3. Já měl testovací verzi ovládání rgb led s wifi rozhraním nepřetržitě zapnutou tři týdny, bez restartu, na Nodemcu, napájeno 5V adaptérem z 48V DC…Takže nestabilita asi nehrozí.

  4. Dotaz k ” jiném Arduinu 2560 nebyl schopný vývod TXD „stáhnout“ RXD AVR do 0″ jak jste zjistil, že to je odporem ?

    Jak se to změřilo, že to dělá zrovna TX a RX .

    1. Změřil jsem to osciloskopem – úrovně nechodily tak, jak chodit měly, takže jsem šel podle schématu po jednotlivých součástkách až jsem objevil odpory s jinými hodnotami.

        1. Odděluje výstup z USB převodníku. Pokud by tam byl odpor 0 ohmů, tak na RXD není možné připojit jiný zdroj signálu, protože RXD je prakticky trvale na úrovni H díky tvrdému výstupu z CH340/FTDI/…
          Ale ono spíš jde asi o R7 na schématu RESP že? No ten je tam z toho důvodu, že společně s R11 tvoří dělič, který přizpůsobuje 5V I/O úrovně, jdoucí z Arduina na 3.3V úroveň, kterou vyžaduje ESP8266.

          1. Ale no tak… “… za povšimnutí snad stojí pouze použití tranzistoru T1, kde vývod GPIO15 blokuje signál TXD do Arduina, umístěného pod RAMPS. Toto zapojení jsem zvolil proto, abych minimalizoval zmatení firmware Arduina počátečními výpisy, které na sériový port posílá ESP8266 po resetu.” Mám to napsané přímo v článku.

  5. Dobrý den,
    Hned v úvodu článku mne zaujala poznámka o “nebezpečném a nespolehlivém” spojení po USB. Dokončuji stavbu 3D tiskárny vycházející z Rebel II, nepoužil jsem ale tištěné díly, vše je “kovové”. Myslel jsem že neosadím displej a čtečku karet, komunikace bude probíhat po kabelu USB s PC zvlášť k tomu určenému (W7), s nainstalovaným programem – RepetierHost. Teď tedy mám obavy aby komunikace USB netropila nějaké problémy. Můžete mi říci jak moc je USB (PC – ArduinoMega2560) nespolehlivá? jaké chyby či potíže můžu očekávat?
    Díky, F.

    1. Dobrý den,
      přesněji řečeno píši o potenciálním nebezpečí a nespolehlivosti. Obojí spočívá v napájení různými zdroji, kde rozdíly potenciálů a vyrovnávací proudy můžou způsobit brnění při dotyku a nebo nespolehlivou komunikaci. Osobně jsem se s tím setkal u mé laserové gravírky, kde byla komunikace tak nespolehlivá, že jsem musel vyměnit napájecí zdroj za laboratorní. Displej a SD kartu určitě doporučuji – v poslední době už jinak ani netisknu…

      1. Díky za odpověď, zase vím o něco víc 🙂 O problému různých zdrojů vím. O displeji a SD kartě ještě pouvažuji, podle toho jak bude chodit USB. Zmínil jste se laserové gravírce, tu jste stavěl nebo koupil hotovou? Protože moje 3D tiskárna je od počátku zamýšlená jako vícefunkční (možnost měnit na vozíku X adaptéry), zajímá mne kde by se dal koupit laserový zdroj schopný popisovat např. hliník.
        Zdravím, F.

  6. Dobrý den,

    chtěl bych se zeptat jak dopadl nápad s komerčním využitím. Jsou, resp. budou dostupné nějaké kousky?

    Mám Rebel II., ale běží na něm Repetier FW, Vy zmiňujete Marlin. Je možné tento adaptér provozovat?

    Děkuji a pěkný den,
    Jiří

    1. Dobrý den,
      objevil se bohužel jen jeden zájemce, takže jsem další plošné spoje nedělal. S Repetierem by to mělo pracovat také, ale ověřeno to nemám…
      Hezký den
      Pavel Brychta

  7. Ahoj. Chystáš se někdy napsat pokračování?
    Já zatím experimentuji s OctoPrintem, ale na tvůj způsob a pojetí jsem moc zvědavý.
    Jinak díky za tyto stránky. Téměř denně kontroluji zda už se neobjevil nový příspěvek 🙂 Stejně tak začátečníkům doporučuji mrknout na Arduinotech. Bastlení zdar,
    Pavel

    1. Ahoj. Pokračování mám rozepsané (stejně jako pár dalších článků), ale čas je chybějící ingredience – tenhle rok jsem začal nemocí, které se stále nemůžu zcela zbavit a taky potřebuji dokončit pár projektů, které jsem slíbil…

Komentáře nejsou povoleny.