Archive

Posts Tagged ‘test’

Bus Pirate test

March 20th, 2011 No comments

Neko noč (neprespan) sem naročil novo igračko, ki nosi ime Bus Pirate, in predstavla povezljivost med računalnikom (USB) in kar precej drugimi protokoli (1-Wire, UART, I2C, SPI, JTAG, raw 2-wire, raw 3-wire, HD44780 LCDs, MIDI)

Ploščica, z kablom škatlico in poštnino, stane cca 30eur pri seeedstudiu.

Za prvi test sem uporabil RFID bralec (125kHz, link), ki podatke pošilja prek UART-a. Povezal sem RX in TX pine, ter napajanje (+5V) 1

Bus Pirate se (po povezavi z USB kablom) računalniku pokaže kot serijski vmesnik, v mojem primeru na /dev/ttyUSB0. Po odprtju porta (screen /dev/ttyUSB0 115200), in nekah pritiskih na tipko Enter, vidimo ukazno vrstico:

HiZ>

ki nam omogoča upravljanje z napravo. Ukazni način, čeprav morda malo neudoben, naredi napravo precej enostavno za uporabo. Če pritisnemo '?' in tipko enter, dobimo pomoč:

General                                 Protocol interaction
---------------------------------------------------------------------------
?       This help                       (0)     List current macros
=X/|X   Converts X/reverse X            (x)     Macro x
~       Selftest                        [       Start
#       Reset                           ]       Stop
$       Jump to bootloader              {       Start with read
&/%     Delay 1 us/ms                   }       Stop
a/A/@   AUXPIN (low/HI/READ)            "abc"   Send string
b       Set baudrate                    123
c/C     AUX assignment (aux/CS)         0x123
d/D     Measure ADC (once/CONT.)        0b110   Send value
f       Measure frequency               r       Read
g/S     Generate PWM/Servo              /       CLK hi
h       Commandhistory                  \       CLK lo
i       Versioninfo/statusinfo          ^       CLK tick
l/L     Bitorder (msb/LSB)              -       DAT hi
m       Change mode                     _       DAT lo
o       Set output type                 .       DAT read
p/P     Pullup resistors (off/ON)       !       Bit read
s       Script engine                   :       Repeat e.g. r:10
v       Show volts/states               .       Bits to read/write e.g. 0x55.2
w/W     PSU (off/ON)            //<0>   Usermacro x/assign x/list all

Prvo vključimo napajanje (W), in s tipko 'm', izberemo 3 (UART), 5 (9600), in ostale nastavitve pustimo na privzetih:

HiZ>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
9. DIO
x. exit(without change)

(1)>3
Set serial port speed: (bps)
 1. 300
 2. 1200
 3. 2400
 4. 4800
 5. 9600
 6. 19200
 7. 38400
 8. 57600
 9. 115200
10. BRG raw value

(1)>5
Data bits and parity:
 1. 8, NONE *default
 2. 8, EVEN
 3. 8, ODD
 4. 9, NONE
(1)>
Stop bits:
 1. 1 *default
 2. 2
(1)>
Receive polarity:
 1. Idle 1 *default
 2. Idle 0
(1)>
Select output type:
 1. Open drain (H=Hi-Z, L=GND)
 2. Normal (H=3.3V, L=GND)

(1)>
Ready
UART>

Podobno lahko nastavimo katerikoli drugi protokol (seveda nastavitve, ki jih protokol podpira). Sedaj pritisnemo tipko '{', ki začne z branjem, in čitalcu približamo kartico.

UART>
READ: 0x02
READ: 0x30
READ: 0x38
READ: 0x30
READ: 0x30
READ: 0x44
READ: 0x42
READ: 0x35
READ: 0x44
READ: 0x46
READ: 0x34
READ: 0x37
READ: 0x41
READ: 0x03
UART>

Tako vidimo na kartici zapisano kodo, ki jo čitalec pošlje.  Če bi namesto rfid čitalca uporabil napravo ki tudi kaj 'posluša', bi ji lahko pošiljal poljubne podatke.

Zanimiv feature je tudi preverjanje napetosti na pinih:

Pinstates:
1.(BR)  2.(RD)  3.(OR)  4.(YW)  5.(GN)  6.(BL)  7.(PU)  8.(GR)  9.(WT)  0.(Blk)
GND     3.3V    5.0V    ADC     VPU     AUX     -       TxD     -       RxD
P       P       P       I       I       I       I       I       I       I
GND     3.31V   5.15V   0.00V   0.00V   L       L       H       L       H

 

 

Naslednja stvar (tj. eden izmed mnogih TODO-jev) je stestirati SPI na smart kartici!

  1. Pinouti so v datasheetih

2x webcam + škatla od Plazma keksov + gstreamer = "3D kamera"

June 23rd, 2010 No comments

Na šihtu imamo dva projektorja, ki jih bo kmalu mogoče montirati enega pod drugega, in ko dobimo še polarizatorje, ter 3D očala, nam bo to vse skupaj služilo za ogled 3d vsebin.

Da ne bi koristili samo tuje vsebine, je bilo potrebno narediti tudi neko homemade varianto 3d kamere (vsaj za test, če že ne za bodočo resno uporabo) :)

Uporabili smo 2 Logitechova (uvcvideo kompatibilna) webcama, in z gstreamerjem pobral sliko z obeh in jih združli v en (mjpeg) avi file. Pomembno je, da je slika levega očesa na levi strani videa, desnega pa na desni,.. torej, za 2 streama 800x600 dobimo video 1600x600: [leva kamera|desna kamera] (glej sliko spodaj malo nižje :D ).

Zajem je delal gstreamer, z naprav /dev/video1 in /dev/video2 (video0 je porabil že vgrajen webcam na laptopu). Z obeh pobira 800x600 sliki, in shranjuje v mjpeg avi file, ali prikazuje na zaslonu).

#Prikaz na ekranu:
gst-launch-0.10 v4l2src device=/dev/video1 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox ! videomixer name=mix ! \
xvimagesink v4l2src device=/dev/video2 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox left=-800  ! \
ffmpegcolorspace ! mix.

#Shranjevanje v out.avi
gst-launch-0.10 v4l2src device=/dev/video1 ! videoscale ! video/x-raw-yuv, \
width=800, height=600  ! ffmpegcolorspace ! videobox ! videomixer name=mix ! \
jpegenc ! avimux ! filesink location=out.avi v4l2src device=/dev/video2 ! \
videoscale ! video/x-raw-yuv, width=800, height=600  ! ffmpegcolorspace ! \
videobox left=-800  ! ffmpegcolorspace ! mix.

Kameri je potrebno seveda dobro nastaviti (beri: obe snemata naravnost, sta poravnani, razdalja med njima pa je približno enaka razdalji med očesoma pri človeku (~10cm)).

Ker je to šele alfa test, smo za fiksiranje uporabili kar škatlo Plazma piškotov, in seveda selotejp :)


(ja ja... vem.. jutri ne bo nič več poravnano, selotejp bo popustil... bla bla... s tem se bom jutri obremenjeval :) )

Zajeli smo testni video, screenshot:

Da smo se znebili obdelave za ostale 3d načine (rdeče-modra očala, škiljenje, ipd.), smo video uploadali kar na Youtube, ki z dodanim tagom:  "yt3d:enable"=true sam vključi 3d kontrole in rendering.

Žal youtube še ne podpira embeddanja 3D videov, zato je naslednja slika samo povezava do videa na youtubeu:

Categories: elektro stuff, geek stuff Tags: , , ,

Test dveh USB Ethernet vmesnikov

December 19th, 2009 4 comments

Ker še nisem videl prenosnika, z več kot enim vgarjenim mrežnim vmesnikom, sem za 'igranje' potreboval še vsaj enega zunanjega, po moćnosti na USB vodilu.

Ker vse take naprave izdelujejo Kitajci s skoraj istim naborom čipov, sem med cenejšimi variantami (<10usd) zasledil mnogo derivatov le dveh naborov čipov.

Prvi je (cenejši - ~3.5usd), možne so različne barve, a oblika ohišja je enaka:

Switchu se predstavi kot 100mbit naprava, računalniku pa kot:

[114932.537055] usb 5-2: new full speed USB device using uhci_hcd and address 23
....
[114932.850659] eth3: register 'dm9601' at usb-0000:00:1d.0-2, Davicom DM9601 USB Ethernet, ...
[114932.850693] usbcore: registered new interface driver dm9601
...
[114969.289118] eth3: link up, 100Mbps, full-duplex, lpa 0xC5E1

Seveda dobimo IP prek DHCP-ja in internet dela.

Drug vmesnik je malo dražji (~8usd), zasledil sem le črno varianto:

Tudi ta se prikaže kot 100mbit naprava, v dmesgju pa tu vidimo:

[115061.187061] usb 2-2: new high speed USB device using ehci_hcd and address 29
...
[115061.383165] eth1: register 'MOSCHIP usb-ethernet driver' at usb-0000:00:1d.7-2, MOSCHIP 7830/7730 usb-NET adapter, ...

Razen čipa, naizgled delujeta enako 'dobra', a treba povdariti na razliko med usb "Full speed" (USB1.1 full speed - 12Mbps) ter "High speed" (USB2.0 480Mbps). Tukaj pa se pojavi vprašanje smiselnosti 100Mbitne povezave ki deluje na 12Mbitnem usb-ju?

Seveda sem z iperf-om stestiral1 povezavo, in za zgornji, usb1.1 model prišel do hitrosti 9.60Mbit down, in 9.63Mbit up (kar je seveda realno za USB1.1, a bolj sodi k 10Mbitni povezavi namesto reklamirane 100Mbit (čeprav se tako predstavi ostalim mrežnim napravam)). Za spodnji, USB2.0 model, pa sem nameril ~93Mbit-ov up, ter ~96Mbit-ov down, kar je že kar prijetna hitrost za delo.

Tako da.... če se kdo odloča za nakup kakega USB vmesnika, je dobro prvo preveriti, če vsaj v teoriji lahko doseže napisane hitrosti, torej če vsaj podpira USB2.0. (in seveda če dela na Linuxu ;D).

PS: Oba izdelka sem kupil in plačal sam, nihče me ne plačuje za test, in blog-post ni mišljen kot reklama. Komentarji prikazujejo moje lastno mnenje.

  1. Povezavo sem meril prek D-linkovega gigabit switcha do drugega računalnika s prav tako gigabitnim vmesnikom
Categories: geek stuff Tags: , , , , ,