Jak z routeru Edimax BR-6104(KP) robotický mozek udělati
Poskládáno z mailů od JiriBezstarosti
Stačí koupit BR-6104K nebo BR-6104KP a následovat link:
http://www.sunspot.co.uk/Projects/sweexproject.htm
Cena toho levnějšího BR-6104K je okolo 600Kč, dražšího BR-6104KP okolo 900Kč (i s DPH). (v czechcomputer.cz 655 Kč]
Usoudil jsem, že se vyplatí ten dražší, dobastlovat USB za ten příplatek na ceně nestojí. Alespoň jsem tak usoudil z toho, že rád použiju FLASH klíček jako HDD a když dokoupím co je tam neosazeno a ještě se s tím budu matlat, neseženu součástky správných rozměru, bude mne to stát mnohem víc.
No a teď už stačí vyvést jen RS232 pro nalití softu a později třeba RS485 pro ovládání periferií (má to dva seriáky v CMOS, jeden se vyvede snadno, druhý hůře), napustit to jiným LINUXem a je z toho robotický mozek jak víno. Lze připojit i FLASH klíček, takže místa je pak dost.
Základní údaje:
ADM5120P - MIPS32 na 175MHz (lze prý přetaktovat na 200MHz, ví se jak, nezkoušel jsem)
- 2x USB1.1 (HOST)
- 2x seriák
- nějaké LED, lze odpojit a používat jako I/O a připojit ledacos
- 5x síťovka 10/100
- JTAG
- 2MB NOR FLASH
- 16MB SDRAM
- napájení 12V/ maximálně 500mA
Na webu k tomu najdete připojené věci jako LCD displej, 8b zvuk pomocí PWM atd.
No a že je to původně router? Koho to zajímá, jak se ta ryba jmenuje ;-). Může klidně dělat něco jiného a síť můžete použít k připojení k noťasu - ne každý noťas má seriák, ale síť prakticky všechny. Že tam trčí zbytečně konektory - koho to trápi, když to dělá co chci a za ty prašule
Úpravy nutné k napuštění jiným LINUXem mi i se studiem co a jak trvaly možná hodinu, další kusy by byly otázkou pár minut. Má to bootloader, takže přeflashnutí z hyperterminálu lze realizovat rychle (jen to trvá něco přes 5 minut - na 115200bps).
Psát pro to můžete v C, stačí mít po ruce nějakou LINUXovou mašinu. Výhoda je, že nemusíte o tom CPU a desce vědět skoro nic.
Když nepřehlédnete různé malé odkazy na stránce, kterou jsem uvedl, najdete tam úplné postupy jak to udělat nebo i celé image k napuštění a dle mého soudu to podle nich zvládne i ten, kdo o LINUXu zatím jen slyšel a mašinu s LINUXem má po ruce a nebo si může takovou (třeba i starši střep na pokusy a nebo druhý OS do PC) zprovoznit. Pokud LINUX mašinu nemá a nechce, i tak může napustit hotový image z těch stránek, jen s kompilací vlastních softu to bude mit horši.
Mám to na stole, experimentů jsem zatím udělal jen jak čas dovolil, ale zatím jsem jen a jen nadsen. V kusovce za tyhle prachy těžko někdo něco takového postaví. Není to velké, není to těžké, zrovna moc to nežere, výpočetní výkon není uplně malý (podobné procesory prý dřive používaly SGI a něco takového mají v sobě i Soňácké PlayStationy nebo PSP) a o namontování do většiho robotu si to jen říka
Jinak můj BR-6104KP už umí všechno možné, začíná to být nuda, nikde žádný pořádný zákys
Běží mi s USB FLASH klíčkem (vzal jsem ten nejlacinější půlgigový za dvě kila), co na něj napíšu v Céčku a vykompiluju (no zatím jsem stihl dva primitivní prográmky, mají po kompilaci do 10kB) běhá, napouštím to tím co napíšu přes FTP, bavím se s tím telnetem, je na tom i web server (včetne PHP a dalších opičáren), nastaví si čas z inetu, blbne to ledkama - snaží se zobrazovat na LCD displeji (který jsem ještě nepřipojil), jede na tom samba (kdo by nevědel, jede to na win síti - windowsy ho prostě vidí a můžou k němu na disk) atd. a to mám stále z těch 16MB SDRAM půlku paměti prázdnou. Co se týče FLASH klíčku, nic mi teď nechybí a přitom je stále skoro prázdný
Jasně, že kdyby se to pořádně síťově zatížilo a spustilo na tom něco šíleného, že už to taková paráda nebude, ale zatím jsem nenarazil na žádnou vyloženě špatnou zkušenost.
BTW, seriák stačí i jeden, pokud je rychlý a nejlépe fyzicky RS485 - pak tam jako chytré periferie mohu namlátit laciné jednochipy a obyčejné převodníky na CMOS/485 stojí taky houby. Přece nebudu k takové desce připojovat několik převodníků za cenu vyšší než je cena té desky - to přijdu o to cenové kouzlo
Jo a umí to i BASIC, přesněji http://blassic.org/ ;). Třeba to někdo ocení. Já tedy zkusil jen {{{10 PRINT 123 RUN}}} a vypadlo 123 a to mi ke štěstí stačilo a hurá na Céčko, ale třeba se to může někomu líbit.
BTW, zkoušel jsem si celý systém vykompilovat a zvolit si co je potřeba, ale nakonec se ukázalo, že ten kdo už si s tím hrál to udělal přesně podle mých potřeb a než bych toho dosáhnul, stálo by to mnoho času (ta kompilace, ne nastavení, fyzická kompilace, není zrovna na chvilinku) a výsledek by nebyl o nic lepší. Takže jsem do toho ve výsledku natáhl tohle:
http://www.sunspot.co.uk/Projects/SWEEX/latest_distro.html
Připojíte BR-6104KP k seriáku přes dobastlený převodník, nastavíte hyperterminál na správný port a 115200bps 8N1 bez handshakingu, připojíte BR-6104KP napájení a rychle do hyperterminálu třikráte ťuknete do mezerníku. Objeví se menu k naládování FLASH.
Zvolíte do FLASHE (myslím, že je to klávesa a) a na hyperterminálu začnou naskakovat znaky, že čeká na přenos. Zvolíte z hyperterminálu z menu přenos, pak zvolíte uz dříve stažený soubor mks1152_96_19in_070204.bin a XMODEM. Potvrdíte a uz jen asi tak 3 az 4 minutky počkáte. Nakonec to vypíše (po přenosu) že maže FLASH a pak že ji zapíše. Vypíše 2x PASS (u každé z těch akcí) a je hotovo. Můžeme to vypnout. Tím skončila akce, kterou jsem konkrétně já provedl na Win, protože jsem měl na tom PC nejlépe po ruce sériový port.
Teď vezmete čistý USB stick (nebo chcete-li klíček) a musíme na něm udělat ext2 filesystem. Popisy jsou různé, ale protože mám UBUNTU Linux, spustil jsem jen gparted, odstranil FATku a na celý stick hodil ext2. Pozor na to, udělejte to fakt s tím USB klíčkem a ne s nečím jiným, asi chápete proč to píšu
On ten gparted má i tu výhodu, že si umí sám unmoutovat disk, takže kdo s Linuxem moc neumí, takhle to zvládne a kdo to umí, jistě popis nepotřebuje. No a až to je, tak klíček vytáhneme z USB a zase zasuneme, v UBUNTU se sám namountuje, je to snazší než psát mount
Teď stažený soubor stick_070209.tar.gz rozbalíme na ten stick, tedy usb flash klíček. Zase kdo to umí radu nepotřebuje a kdo ne, nechá nejlépe svůj Linux to rozbalit tím, že na to klikne a pak dá rozbalit a kam. Až to je, unmountnem klíček, nebo dáme na něm myší příkaz "vysunout" a pak jej přepíchneme do BR-6104. Odpojime bastl pro seriák, pro začátek ho nebudeme potřebovat a klidně se to může pro první hraní zakapotovat zpět, ať se do toho tolik nenapráší
Hotovo. Připojime net kabel do díry označené WAN, připojíme napájení, chvíli počkáme. To tedy v případě, že nám IP 192.168.0.3 s ničím nekoliduje. Pokud ano, připojí se to mezi dvě mašiny kabelem a trochu se to nejprve nakonfiguruje jak chceme, pričemž samozřejmě nastavíme tomu PC pro tuhle akci IP adresu s jiným číslem na konci (ja vím, nejsme blbí, ale kdyby náhodou někdo nevěděl co dělá, tak ať ví aspoň jak)
V každém případě se připojíme telnetem na tu adresu 192.168.0.3, login je root a heslo midge. Teď vlezeme do /etc/network/ a vyeditujeme soubor interface, kam si místo uvedené IP dáme svou, nastavíme masku a gateway, ať to může i na internet
V /etc/resolv.conf nastavíme DNS. Taky se podíváme do /etc/hostname a přejmenujeme si to jak uznáme za vhodné. V /etc/hosts také přepíšeme jak jsme si to přejmenovali, jistě každý pozná kam
No a ještě nastavíme sambu, takže v /etc/samba/smb.conf si upravíme workgroup na co jsme zvyklí. To je pro začátek asi tak všechno, zadáme reboot a už to nastartuje jak jsme potřebovali. Další mazání nepotřebných věcí popisovat nebudu, to si každý asi udělá jak sám uzná za vhodné. Také můžeme spustit passwd a změnit si heslo roota dle svých potřeb. Nakonec zadáme halt nebo reboot a je to hotové.
Ještě jsem nenapsal (kdyby náhodou někdo nevěděl), jak editovat ty soubory, když to děláme telnetem. Možnost není jen jedna, asi nejsnadněji v editoru nano (vi je dobré, ale kdo není Linuxák, může ho potrápit než si zvykne). Takže třeba se přesunete do adresáře pomocí "cd /etc/samba<ENTER>" a pak "nano smb.conf". Pokud uvidíte rozsypané spodní menu, něco je špatně a to špatné je v nastaveni vašeho terminálu
Pokud už tady ale pracujeme s Linuxem, vemte na to raději terminál Linuxový.
Popsal jsem jakousi směs práce s Win a zaroveň s Linuxem, abych to rozchodil, ale to vyplývá ze situace, jaké stroje má člověk po ruce pro jakou činnost a který má zrovna seriák atp.
Možná se to někomu bude zdát složité, ale když to nebudete číst jako text a budete to podle tohoto návodu provádět, věřím, že vzdycky budete vědět co máte udělat a když ne, klidně se zeptejte - pokud budu vědět, poradím.
Jak zkompilovat svůj vlastní program a co s tím si můžete přečíst na těch stránkách co jsem posílal link a pokud to někomu nepomůže, klidně to popíšu, pokud o to tady bude vůbec nějaký zájem.
Zase se mi jednou s BR-6104KP dostalo do ruky něco hodně zajímavého. Nevím, jestli to byl Kamil Řezač kdo mne na to navedl, ale tip to byl fakt, jak se alespoň zatím zdá, moc dobrý. V každém případě za cenu okolo 1200Kc i s USB klíčkem, poštovným a DPH (tedy úplně celkem) člověk riskuje méně než může získat
No a pro ty z konfery, kteří to chtějí taky zkusit, to už teď je hra s velmi vysokou pravděpodobností výhry, protože když to funguje jak z praku mně, není důvod aby ne někomu dalšímu, zvlášť když se má koho zeptat. Jen si prosím nekupujte verzi K místo KP s tím, že si za mnou přijdete to nechat dopřipájet a pěkně ušetříte - na to se mám moc rád
Abych ještě nalákal BASICany, basic program se spustí třeba:
{{{cd /var/blassic blassic count.bas}}}
ve /var je ten soubor count.bas už v tom distru - bude tam po tom co uděláte co jsem popsal, ale samo můžete spustit svůj, když to /var/count.bas nahradíte cestou ke svému výtvoru.
No a upravíte si ho jednoduše:
nano count.bas
a zbytek už je pak snad pochopitelný úplně pro každého, ta nápověda dole se šipkami nahoru znamená znak s CTRL klávesou
Ten prográmek vypadá takhle:
{{{5 rem /var/blassic/count.bas 10 FOR i=1 TO 3 20 PRINT i 30 NEXT i 999 SYSTEM}}}
Jak vidíte, fakt BASIC a fakt chodí. Snad jsem teď naladil i ty, kteří BASIC raději než já
Tak když se to líbí, tak ještě něco přidám
Můj routřík uz doznal dost výrazných úprav. Mám revizi desky A, u jiné to může být jiné, ale zatím mám jen ten jeden, tak budu psát o něm.
Nad LED najdete na plošňáku z hora motiv, kde je v rozlité zemi takový cancour (čára). Když vezmete ohnutou pinovou lištu a přiložíte, pochopíte kam se dá dát. Takže jsem opatrně odškrábl masku na tom cancouru (je na něm 3V napájení), pak další čárku odškrábl vedle (je tam zem) a pak další čárku až na místě dvanáctého pinu. Zahnutou lištu píšu proto, že se nic nevrtá, prostě se to tím zahnutím připájí na tupo (jako SMD) na ta odškrábaná místa. Ještě než jsem to chytil za ty tři body, pod zbývající piny jsem vlepil proužek slídy, ustřižené z izolační podložky pod chladič. No a teď jsem vzal 5V (napájení je vždy na noze indukčnosti na toroidu, jsou to pulsní zdrojíky) a připájel na pin 11, počítáno od toho cancouru s 3V (ten je pin 1). Zjistil jsem, že je vhodnější mít tu pinlištu otočenou tak, že se ty zahnuté části pájí směrem od LED.
A teď se vypájí celá horní řada LED. Právě vývody LED mají přímé spojení s CPU. Můžete to pro jistotu propísknout. A teď už jen přivedete tenkými izolovanými dráty vývody po těch LED na pinlištu. Udělal jsem to pro dobrou orientaci tak, že jsem začal zprava od pravé horní LED, připojil k pinliště vývodu 10 a pak dal vlevo, takže mám stejně seřazené piny na pinliště, jako původní LED.
Nejhorší operace je vydrátovat druhý seriák, ten jsem připojil na piny 3 a 4 přímo z vývodu CPU. Stříhat ty vývody jak je na webu uvedeno je dost čuňárna. Takže jsem vzal tenký smaltovaný drát, odizoloval konce a připájel k CPU. Není to nic pro práci bez lupy, ale jde to. Klidně to pájejte na horní část vývodu, tedy přímo k tělu plastu na CPU, jde to snadněji.
No a závěr je jednoduchý. Srovnáte pěkně všechny dráty ať do ničeho nelezou, přimáčknete k desce. Je dobré to také trochu očistit, pokud se Vám podaří to umatlat tavidlem. Pak namícháte pětiminutový epoxid a zalijete jak spodní část pinlišty s připájenými dráty, tak také zalijete ten smaltdrát od CPU k pinliště a to klidně i částečně přes pouzdro CPU. Superhezké to není, takže jsem použil čirý epoxid a koukat se na to dá. Je to velice účelné, tohle se nehne a je to spolehlivé.
Poznámek je více, ještě to časem rozvedu, ale napíšu něco důležitého k I2C.
Autoři totiž udělali I2C z GPIO. Jenže ty lze dát do tvrdé vysoké úrovně a to není dobré. Na mé pinliště jsem použil piny 9 a 10 jako SDA a SCL. Aby nemohlo dojít k průšvihu, přidal jsem diodu s odporem paralelně. Dioda je BAT42, odpor 4k7 a dioda vede směrem do CPU. Tím mám vlastně otevřený kolektor, protože nemohu na výstup dostat tvrdou vysokou úroveň, ale přes odpor 4k7 mohu číst co se na I2C děje. Mám na tom připojeny hodiny PCF8563 (jsou superlevné a na jednu CR2032 Vám poběží věky), které jsem doladil aby neujížděly kodanem 18p (o který jde pochopíte pohledem do PDF). Experiment trval několik dní (samo bez práce, jen že to několik dní běželo a měnil jsem kapacity), takže kdyby měl někdo zájem, plosňák těch hodin klidně pustím
Protože jsem nechtěl tu diodu a odpor pro I2C dávat do zařízení natvrdo, mám ji na těch I2C hodinách a všechno na I2C se připojuje až za ty hodiny. Pokud také potřebujete hodiny, nic nepište (dám to volně k dispozici), už jsem napsal všechno potřebné v C a upravil skripty při spuštění, takže když se spustí routřík s připojením na internet, sesynchronizuje si I2C hodiny a když bez, vezme čas z nich.
Poznámek co s tím mám více, ale mám i dnes dost práce, takže tohle berte tak nějak pro inspiraci.
V každém případě jsem ještě pár hodin před tím (než jsem ten Edimax koupil) netušil, že budu mít tak brzy něco do činění s MIPS CPU a že se mi to bude tak děsně líbit
Je fakt, že tak levný vývojový kit s takovými možnostmi jsem ještě v ruce neměl
Dostal jsem e-mail, zda bych mohl ukázat pár fotek úpravy toho BR6104KP a shodou okolností jsem je zrovna ráno pořídil (kamarád mi to narychlo nafotil, měl zrovna foťák v ruce), takže tady jsou. Nijak jsem je neupravoval, každá má zhruba 1MB. Není to rozfázovaný postup úprav, jak by to bylo nejlepší, protože už je to hotové a zatím mám jen jeden kousek, ale věřím, že i tak to bude dostatečně ilustrovat co a jak.
Celkový pohled na upravený BR6104KP bez hornýho krytu s připojeným převodnikem na RS232 s ST3232 a hodinami reálného času na I2C, připojenými na přidanou pinovou lištu a také pulgigovým FLASH klíčkem v USB: Obrázek
Lepšíi celkový pohled bez připojení zmíněných periferií. Zde je velmi dobře patrný motiv plošného spoje pod přidanou pinlištou, kde na "cancouru" s 3V napájením sedí první pin a červeným vodičem je přivedeno 5V na pin 11 a pin 12 je připájen po odškrábání masky na desku ke GND: Obrázek
Zde je dobře patrné vyvedení vodičů z míst odstraněných LED na pinlištu. Také je zde vidět epoxidem zakápnutý smaltovaný drát, vedoucí na piny CPU s nevyvedeným seriovým portem (jeden je vyveden na piny 2x8, toto je další): Obrázek
Ještě jeden podobný pohled: Obrázek
Pokus o velmi detailní pohled na přidanou pinlištu, na kterém je patrný i proužek slídy podložený pod pinlištu a lípnuty před pájením pinlišty k desce vteřiňákem (ať to neuhne a nemusí se to přidržovat): Obrázek
No a pohled na baterií zálohované hodiny reálného času na I2C s ochranou, aby GPIO nemohly dát na I2C tvrdou vysokou ůroveň a integrujicí i 4k7 pull-upy - další I2C zařízení se zapojují až za tuto desku. Deska je jednostranná, ze strany kterou vidíte osazená v klasice, z druhé strany v SMD. Obrázek
No a druhá strana té desky - fakt omluva že to vubec ukazuju, je to čuňárna přefocená na plošňák z papíru z inkoustovky osazená pozdě večer - neomlouvá mne to, je to čuňárna, ale já moc toužil to zkusit a doladit. Obrázek
Krystal je z GME (131-082 Q 32.768KHZM), tedy velký 2x6mm, cenově za pětikačku. Ty čmouhy na desce nahoře u kondenzátoru jsou po několika výměnách kapacity - nakonec je to 18p a hodiny (jak se zatím zdá) běží přesně. Ta deska je nalakovaná a výměny prováděny až pak, takže o to více jsou ty výměny kapacity vidět. Krystal není v SMD provedení, ale jak je připájený a zalakovaný se nehne a je to nejlevnější varianta krystalu, který lze použít. Samotný RTC chip je PCF8563 SMD (v GME 959-259) a také stojí jen 35Kč. Takže jak vidíte, ty hodiny jsou fakt za babku, protože držák baterky s baterkou a ty drobnosti okolo také na víc nepřijdou.
Musím říci, že za takovou desku jako je ta s RTC se stydím (ne za návrh, ale za provedení), ale nakonec jsem si řekl, že ji přesto ukážu a doufám, že tím nikoho neodradím, protože mé profi desky vypadají pochopitelně mnohem lépe.
Aha. Tak to Vás mohu celkem uklidnit. EDIMAX BR-6104KP existuje pokud vím jen ve dvou verzích desky (rev. A, rev. B), lišících se použitím 2x 8MB SDRAM chipu (rev. A) a nebo 1x 16MB SDRAM (rev. B). Ten rozdíl by ale pro konečného uživatele neměl být vlastně žádný, protože touhu zrovna do této části sahat nemám. To připojení pameti na sběrnici je totiž přesně to, za co stojí dát ty peníze. Člověk se zbaví toho největšího drátování (navrhování vlastní desky) a může jít rovnou k cíli s tím co chce připojit - zkrátka si řeší jen tu svou periferii + minimum úprav té desky routeru, které jsou při kusovce stále jednodušší a levnější, než to celé navrhovat a koupit po součástkách.
Uvedený routřík, podle informací z webu, původně dělal SWEEX a až na jiný plastový obal by to snad mělo být stále totéž i jako EDIMAX. O tom jak fungují značky se už tady psalo snad několikráte
Pokud byste chtěl mít co největší jistotu, že koupíte totéž co já (mám rev. A), svůj kousek jsem koupil na: http://www.alza.cz/.
Odkazy:
