Bus Pirate – Część I: Wprowadzenie

Bus Pirate – Część I: Wprowadzenie

Cześć, to znowu ja:) Dzisiaj wprowadzę was nieco w temat  zmyślnej maszynki jaką niewątpliwie jest Bus Pirate.

Ale o co chodzi?

Według twórców Bus Pirate jest otwartoźródłowym, hakerskim* multinarzędziem które potrafi komunikować się z innymi urządzeniami. Początkowo Bus Pirate, jak sama nazwa mówi, służył do obsługi różnych magistral. Obecnie jednak jest to coś znacznie więcej. Poza tym, że obsługuje szereg magistral (m.in. 1wire, I2C, UART, SPI, MIDI, interfejs HD44780, klawiatura PC, JTAG) jest również analizatorem logicznym, generatorem PWM, częstościomierzem, sterownikiem serwomechanizmów, oscyloskopem (słabej jakości, ale jednak), programatorem AVR, FPGA, CPLD oraz… właściwie wszystkim co będziesz w stanie zaprogramować wykorzystując dostępne zasoby sprzętowe.

Podoba mi się. Gdzie to kupić?

Ja, wykorzystując zniżkę za poprzedni post, kupiłem swojego pirata w Nettigo, gdzie jest dostępny w wersji 3.a. Aktualnie gałąź wersji o numerze 3 jest gałęzią stabilną, cały czas aktualizowaną, dodatkowo jest jeszcze wersja 4 która aktualnie jest w wersji testowej, a po dopracowaniu zastąpi wersję 3. Ok, jednak nie samą płytką człowiek żyje, przydałoby się jeszcze trochę kabelków, aby “wyjść na świat”.

Co? Jakie kabelki?

Takie:

2013-04-14 12.22.25

  1. Sondy do podłączenia do nóżek układów, przydatne do badania układów już wlutowanych w płytkę oraz SMD.
  2. Taśma IDC10 <-> IDC10, przydatna, jeśli masz chcesz wykorzystać swojego pirata np. do programowania AVR (jeśli masz wyprowadzone na płytce gniazdo ISP).
  3. Taśma IDC10 <-> Goldpiny męskie, prawdopodobnie najbardzie przydatna, najlepsza do użytku z płytkami stykowymi.
  4. Taśma IDC10 <-> Goldpiny zeńskie, przydatna do podłączenia do goldpinów gotowych modułów lub sond z punktu 1.
  5. Kabel USB A <-> MiniUSB B, popularne w użytku z aparatami cyfrowymi, dyskami zewnętrznymi, niektórymi odtwarzaczami MP3 i starszymi telefonami, prawdopodobnie masz taki w domu.

Z wszystkich tych kabelków obowiązkowy jest w zasadzie tylko kabel USB, reszta jest bardzo przydatna, ale możesz się też podłączyć do BP na różne inne sposoby:)

Ok, kupiłem. Po co są te wszystkie rzeczy na płytce?

Same potrzebne rzeczy:) Poniżej wszystko pokrótce opisane.

2013-04-14 12.21.25

  1. Gniazdo MiniUSB, służy do komunikacji z komputerem.
  2. Układ FTDI FT232R, interfejs USB <-> UART.
  3. Mikroprocesor PIC24FJ64GA, “mózg” Bus Pirate.
  4. Układ HEF4066B, analogowy przełącznik sterowany cyfrowo.
  5. Złącze IDC10, tutaj wyprowadzone są piny I/O oraz dwa napięcia (5V/3V3).
  6. Dioda PWR, sygnalizuje działanie Bus Pirate; czerwona.
  7. Diody RX/TX, sygnalizują przesył danych z/do Bus Pirate; RX niebieska, TX zielona.
  8. Dioda MODE, sygnalizuje wybór trybu, jeśli jest zgaszona to wyjścia są w stanie wysokiej impedancji; czerwona.
  9. Dioda VREG, sygnalizuje włączenie napięć zasilających układ zewnętrzny; żółta.
  10. Złącze ICSP, służy do programowania wbudowanego mikroprocesora, raczej nie będziesz go używał.

I jeszcze rozpisany pinout złącza IDC10 umieszczonego na płytce:2013-04-14 12.21.26

Dobra, jak to się obsługuje?

W przypadku Linuxa wystarczy jakikolwiek program służący do komunikacji po porcie szeregowym (ja używam screen), większość dystrybucji (Arch i Debian na pewno) ma sterowniki do FT232 wkompilowane w kernel. Na Windowsie trzeba zainstalować sterowniki do FT232 i podobnie jak na Linuxie jakiś program służący do komunikacji po porcie szeregowym.

Parametry połączenia z Bus Pirate:

  • 115200 bps
  • 8 bitów danych
  • 0 bitów parzystości
  • 1 bit stopu
  • brak kontroli przepływu

Linux-way:

  1. Prawdopodobnie będziesz musiał się dodać do grupy uucp aby móc korzystać z urządzeń /dev/ttyUSB* (ewentualnie możesz pominąć ten krok i korzystać z Bus Pirate z użyciem konta roota):
  2. Teraz podłącz swojego pirata do komputera i sprawdź czy system go wykrył. Na płytce powinna zaświecić się dioda PWR oraz powinny mignąć diody TX i RX. Polecenie

    powinno wypluć coś zbliżonego do

    Z tych linii wynika, że Bus Pirate został poprawnie wykryty i przypisany do ttyUSB0.
  3. Jak na razie wszystko działa, można podjąć próbę połączenia z Bus Pirate za pomocą programu screen

    Paradoksalnie, jeśli nic się nie dzieje, to znaczy, że wszystko działa:D
  4. Teraz wpisz komendę

    Powinien wyświetlić się dość obszerny tekst pomocy, a pod nim regularny prompt

Windows-way:

  1. Zacznij od podłączenia Bus Pirate do portu USB swojego komputera. Po podłączeniu na płytce powinna zaświecić się dioda PWR oraz powinny mignąć diody TX i RX. Jeśli używasz Windows 7, to po podłączeniu pirata sterowniki powinny zainstalować się same. Nie wiem jak to wygląda na innych Windowsach, jeśli używacie to podzielcie się wrażeniami w komentarzach.win_2
  2. Jeśli masz już sterowniki, należałoby sprawdzić na którym (wirtualnym) porcie COM pracuje Bus Pirate. Aby to zrobić, uruchom Menedżer Urządzeń, np. tak:win_3Po uruchomieniu Menedżera odnajdź na liście urządzenie zawierające w nazwie USB Serial Port – to właśnie jest Bus Pirate. Jak widać, u mnie pirat dostał numerek COM4:win_4
  3. Ok, Bus Pirate jest już rozpoznany w systemie, czas na program do komunikacji po porcie szeregowym. Użyłem tutaj PuTTY głównie dlatego, że już go miałem na dysku. Jeśli chcesz, możesz użyć dowolnego innego programu tego typu. PuTTY możesz pobrać tutaj. Po uruchomieniu PuTTY zmień typ połączenia na Serial:win_5Następnie przejdź do strony Serial (ostatnia pozycja w lewym menu) i ustaw wszystko jak na obrazku poniżej, oczywiście zamiast COM4 wstawiając port na którym u ciebie pracuje Bus Pirate:win_6Jeśli wszystko ustawiłeś jak należy, po kliknięciu Open powinieneś zobaczyć puste czarne okno terminala. Jeśli tak sie stało, wpisz komendę

    i zatwierdź klawiszem Enter. Powinien ukazać się spory tekst pomocy, a pod nim regularny prompt

    jak na poniższym obrazku:win_7

Mam prompt, to znaczy że wszystko działa?

Na 99% tak, ale aby mieć 100% pewność zrobimy jeszcze test płytki. Bus Pirate ma wbudowany selftest sprawdzający czy wszystko w porządku z płytką. Aby przeprowadzić test, musisz zewrzeć ze sobą dwie pary pinów: +5V i VPU oraz ADC i +3V3. Do złączenia pinów najlepiej użyć takich zworek:2013-04-16 15.46.58Zwarte piny powinny wyglądać tak:2013-04-16 15.48.25Teraz czas na stronę programową. Połącz się z Bus Pirate i wydaj komendę

Następnie podążaj za instrukcjami wyświetlanymi na ekranie (naciśnij spację, następnie jakikolwiek przycisk). W całości powinno wyglądać to tak:

Jeśli dostałes jakikolwiek błąd to albo źle podłączyłeś zworki, albo twoja płytka jest uszkodzona.

Co to właściwie jest ten HiZ?

HiZ jest jednym z trybów pracy Bus Pirate, dosłownie oznacza on stan wysokiej impedancji na wyjściu pinów.

Listę trybów możesz uzyskać wydając polecenie

pozwalające na wybór jednego spośród kilku trybów. Domyślnie wybierany jest tryb HiZ.

To już wszystko?

Nie, w kolejnych częściach pokażę kilka protokołów w akcji. Poza tym zachęcam do poznawania Bus Pirate na własną rękę i zapraszam na stronę Bus Pirate na dangerousprototypes – prawdopodobnie najlepsze źródło wiedzy o Bus Pirate.

* haker – to (za Wikipedią) “osoba o bardzo dużych, praktycznych umiejętnościach informatycznych (lub elektronicznych)”

Ocena: 4.38/5 (głosów: 48)

Podobne posty

25 komentarzy do “Bus Pirate – Część I: Wprowadzenie

  • Za mało opisu do czego to służy, przynajmniej jeden przykład wykorzystania powinieneś w tym artykule zawrzeć. Nie mniej, zaciekawiłeś mnie, nie miałem jeszcze do czynienia z tym ustrojstwem. Dużo konkretów i dużo przykładów w następnej części poproszę.

    Odpowiedz
    • Właśnie na następne części planuję przykłady wykorzystania przynajmniej kilku magistral i kilku innych trybów, poza tym może opiszę proces aktualizacji firmware, tak więc materiału jest sporo:)

      Odpowiedz
  • Bardzo dobrze, że ludzie nie idą tylko w Arduino. Potem rosną “znawcy”, którzy znają tylko środowisko Arduino i mieli do czynienia tylko z mikrokontrolerami Atmela. Bus pirate – approved :)

    Odpowiedz
  • Czekam na więcej , bo arduino to za mało ;). Wkońcu ,,im dalej w las tym więcej drzew,, a majsterkowo mnie osobiście zachęciło do elektroniki oraz zasad działania i budowy różnych urządzeń.
    Oby tak dalej i proszę [i nie tylko ja] o więcej !

    Odpowiedz
    • Widocznie taka jest tendencja. :) Mógłbym przygotować np. artykuł jak przystosować kółko dla chomików dżungarskich (serio, mam nawet fotki bo pomysł jest super prosty a zwierzakom bardzo ułatwia życie) ale ile osób by to zainteresowało? :D

      Odpowiedz
      • Seba – przygotuj :) Sam się ostatnio zastanawiałem, jak zrobić możliwie cichy kołowrotek (bo te sklepowe strasznie hałasują). Póki co mam koncepcję, żeby wykorzystać silnik od dysku twardego (przy okazji na jego bazie mógłbym dorobić licznik prędkości;)

        Odpowiedz
      • Dokładnie ja również jestem za :) Nie zatrzymujmy się na elektronice bo majsterkowanie to ogólna sztuka tworzenia rzeczy potrzebnych w codziennym życiu :) Łukaszu to byłby dobry pomysł na licznik prędkości dla chomików czy innych biegających gryzoni. (wystarczy najtańszy rowerowy licznik i możemy liczyć kilometry naszym gryzoniom) Może nawet by jakąś prądnice im zamontować i by nam smartfony ładowały w nocy? Ooo to jest myśl :) Ostatnio w zoologicznym widziałem chyba koszatniczki co tak fajnie na takim dużym kołowrotku biegały 2 naraz :D Aż chciałbym tą najszybciej biegającą zakupić ale jak pomyślę jak by to w nocy hałasowało na tym kołowrotku to… już nie za bardzo :D

        Odpowiedz
        • A co do tego Bus Pirate to jakoś mi to się nie widzi… już bardziej podoba mi się “malinka” (Raspberry Pi) :) Z tego co widzę to ma to 5 wyjść? Czy w ogóle do czego to jest przydatne? Przepraszam ale jakoś trudno mi zrozumieć do czego to służy po tym artykule ale mam nadzieję że wyjaśni się w kolejnych artykułach? :) Mikrokontrolery to oczywiście nie tylko arduino także chętnie dowiem się o innych platformach :)

          Odpowiedz
        • Bus Pirate to całkiem inna rzecz niż RPi czy Arduino. BP służy do szybkiego poznania protokołu/poleceń danego układu bez potrzeby programowania procka. Oczywiście jakieś małe urządzenia też można na tym budować, jednak jak zauważyłeś, liczba I/O nie zachęca:)

          Odpowiedz
  • Większość postów jest na podstawie arduino lub (jak tu) trzebakupic płytke za ponad 100. Było by fajnie powrócić do czasów gdy na majsterkowie były małe, tanie, proste i przydatne projekty :)

    Odpowiedz
  • Wydaje mi się że początkującemy wystarczyło by samo UART do którego może służyć sam układ FT232R który można zakupić na gotowej płytce za ~10-20zł u Chińczyków :P, sam taki kupiłem, nie miałem jeszcze okazji korzystać, ale jak tylko dostanę w ręce mój Cubieboard to się na pewno przyda :P.

    Odpowiedz
  • Wszystko ładnie pięknie ale do czego to w ogóle służy? Niestety jakoś słabo to wytłumaczyłeś. Musisz wziąć pod uwagę, że to czytają również osoby, które z informatyką/elektroniką nie mają za wiele do czynienia, a wydaje mi się, że ten artykuł jest kierowany właśnie do takich osób.
    Oprócz tego wszystko w porządku.
    Zauważyłem również, że Windows robi zdecydowanie większe problemy z instalacją niż darmowy Linux. Nie mogę się doczekać sytuacji, że MS wreszcie zrobi coś skierowanego do zwykłego szarego użytkowniak

    Odpowiedz
  • Warto zwrócić uwagę że następca BP4 stał się koniecznością, ze względu na ograniczenia wynikające z za małej pamięci w BP3, by rozwijać ten projekt dalej.

    Tak więc warto od razu wskoczyć na BP4

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?