Baltas vs Geltonas

May 20th, 2016

Pašnekėkim apie rasinę viršenybę… lol. Iš tikro, pašnekėsim apie “baltus" kompus ir kiek palyginsim su “geltonais". Paprastai, labai retai papuola grynakraujai balti kompai. Kiek čiupinėjau ansksčiau, tie “balti", viduje kiek buvo “geltoni". Tačiau dabar papuolė partija sunaikinimui tikrai kilmingų “baltų" kompų. Vienas toks kompas ir atsirado mano namuose- pakeitė net du senus kompus ant kurių buvo daromi rizikingi eksperimentai, testuojama visokia hardwarė ir šiaip ant jų dirbo giminės. Šis “baltuolis", tai Hewlet Packard HP xw4600 workstation, su Windows Vista licenzija.
Ši platforma palaiko visą eilę pentium procesorių, maniškis papuolė su intel quad core ir neatsimenu kiek megahercų, 2 gigais RAM (kuri iškarto upsigreidino iki 4Gb), dviem 500Gb diskais sujungtais RAIDu, Intel X38 Express chipsetas, DVDRW (dabar stovi du), video plokštė buvo nvidia quadro, bet dėl specifinės jungties tapo kažkokia kita nvidia.

HP workstation xw4600
Pirmas įspudis- velniškai sunkus kompiuteris. Kompiuterio korpuso skarda primenu seną gerą 20-ta amžių, kai dar netaupydavo geležies. Ant tokio korpuso galima laisvai atsisėsti ir net gal užlipti kojomis. Korpusas tikrai atlaikys. Viskas išsiima ir atsidaro be atsuktuvo. Tam reikalui skirtos žalios spalvos svirtelės. Beja, maitinimo šaltinis kiek didesnis už standartinį (dydžiu), galia tik 475W, tačiau tikriausiai tikri vatai. Ir maitblokis rodos turi skirtingus 12V railus.

HP workstation xw4600
Viduje, kaip nekeista, HP gamybos (brando) motininė plokštė. Ne koks asusas, bet tikras HP. Nekreipkit dėmesio į Gygabito platų šleifą. Jis pajungtas vėliau, nes reikia ištraukti duomenys iš seno kieto disko, ir mano kompai jau nebeturi šios jungties. Todėl naudojam PCIe plokštelę su IDE PATA jungtim (ir papildomai dviem SATA).

HP workstation xw4600
Patiko šitas USB lizdas motininėje- tai standartinis USB A slotas, tik jis viduje korpuso. Labai patogu sumontuoji kokį nors kriptografinį- licenzinį USD daiGčiuką, kad jis nekyšotu išorėje ir nesibandytu išsilaužti. Atsidarai korpusą, smeigi USB “pirštelį" ir palieki viduje kompiuterio.

HP workstation xw4600
Kaip ir minėjau, “žalios rankenėlės". Tai sistema leidžianti operatyviai įkišti ir ištraukti disku ir CD/DVD įrenginius. Tie juodi (ir keli balti) varžteliai skirti susukti į kitus diskus. Čia jie kaip ir atsarginiai- susukti į korpusą, kad nepasimestu. Geltona plastmasė rodos išstumia 3 colių modulį (FDD ar kortelių skaitytuvas), tačiau šioje versijoje čia nieko nėra.

HP workstation xw4600
Procesoriaus aušintuvas ne stokinis intelio, bet kažkas kito, specialaus, su heat paipais. Beja visi HP kompai šioje partijoje buvo su nestandartiniais aušintuvais.

HP workstation xw4600
Kompo nugarinėje pusėje vienas kitas lizdas ir e-sata jungtis. Taip pat gerai, kad yra COM lizdas (man jis kartais reikalingas) ir nelabai reikalingas LPT.

O dabar kas nepatinka pas šitą kompiuterį… Tai kompiuteris skirtas korparatyviniam naudojimui, todėl jam kiek daugiau saugumo momentų. Vienas iš labiausiai nervuojančių momentų, kad biosas labai panikiškai reaguoja į kieto disko keitimą ir leidžia kurtis tik iš vieno SATA lizdo. Taip, pat reikalauja, kad SATA jungtys butu išnaudojamos eilės tvarką. Čia matyt, kad nesikrautu iš svetimų diskų. Mano reikmėm, butent dažnai kaitaliojami diskai ir norisi krautis iš vieno ar kito disko (kad ir linux ar windows variantai). Deja biosas man to neleidžia darytis. Net ir naujausias biosas kiek specifinis ir tikrai nepanašus į įprasta. Dar kiek nervuoja, kad onboard RAID kontroleris labai jau daug rašo ant ekrano ir ieško savo diskų- kažkaip RAID funkcija pilnai neišsijungia.
Užtat patiko tai, kad: 7 full length slots: 2 PCI Express (PCIe) x16 graphics, 1 PCIe x8 (x4 electrical) slot, 1 PCIe x1 slot, 3 PCI slots… T.y. galiu smaigstyti papildomas kiek ilgesnes PCIe plokštes. Senas eksperimentinis kompas teturėjo tik vieną PCIe x16 lizdą. Dabar galėsiu iki galo susitvarkyti kitą eksperimentą su egzotiškom periferijom, tačiau tai jau kito straipsnio tema.
Aišku kompas atėjo su legalia windows Vista licenzija. Tačiau vištos neinstaliavau- naudojau senus XP ir kiek naujesnius Linux mint. Windows XP sekmingai persikėlė iš seno kompo be jokių perinstaliavimų (teko tik pažaisti su IDE/AHCI draiveriais).
Dar norėjau pridurti, kad į komplektą eina originali HP klavietūra su smart kortelių skaitytuvu (tinka Lietuviška ID kortelė- jungiasi prie sodros tikrai) ir paprasta HP pelė. Tačiau ši egzotiška klavietūra kogero neina į xw4600 komplektaciją, tai labiau buvusio naudotojo prigulnybė- šie kompai ir serveriai atliko SWIFT operacijas, todėl papildomi security featurai tikrai reikalingi.

Dar noriu pridurti, kad kiek lengvesnės konfiguracijos kompiuteriai iš tos pačios partijos (Intel Core 2 duo) visi turėjo kondikų gedimus. Čia jau gėda HP. Nors šiaip, kompai veikė ir su tokiais pagedusiais kondensatoriais.

Beja, gal kam reikia Drum skanerio?

Pirminis laikrodis ЭПЧМ

May 8th, 2016

Šitą laikrodį radau buvusiam Kauno Medžio apdirbimo kombinate, ryšininkų kamurkėje. Jis jau ten buvo atjungtas nuo sistemos, nes kombinate jau kabėjo elektroniniai laikrodžiai, su VFD indikatoriais, ala “Электроника 7″.
Tai tikras elektromechaninis “šedevras". Šedevras todėl, kad tai prietaisas kuris turi rusišką interfeisą (тонкая настройка неведомой хуйни), be kurio įvaldymo negalima paleisti prietaiso. Reikia ne tik laikrodį teisingai pakabinti, bet pavargti su mechanikos ir kontakčiukų sureguliavimu. Jei to nepadarai, švytuoklė nepasimaitina iš elektros arba švytuoklė nepastumia sekundinio disko per tuos visus “храпавиkus".

Beja, modelis “ЭПЧМ" išsišifruojasi kaip “электрические первичные часы мощные", tipo “elektrinis pirminis laikrodis galingas". Galingas…

pirminis mechaninis laikrodis
Štai laikrodukas kabo pas mane fazendoje ant sienos.

Teoriškai sistema visiškai paprasta- švytuoklinis laikrodis, kurio švytuoklė suka diską. Švytuoklė supasi sekundės periodu, todėl sekundinis krumpliaratis padaro vieną ratą per 2 minutes. Ant to krumpliaračio disko yra vienas bybukas, kuris paspaudžia kontaktus dešinėje ir kairėje disko pusėje. Taip suformuojami minutiniai impulsai. Impulsai su priešingo poliariškumo signalu. Impulso trukmė- viena sekundė. Tas impulsas, sustiprintas rėlių, valdo visą eilę “slave" (antrinių) laikrodžių. Tiksliau, rėlės generuoja kvazi sinusoidę- į grandinę pirma įjungia 150Ω, poto 75Ω ir paskui 25Ω varžas. Tokia pat seka tik priešingai ir atjungia.
Švytuoklė energiją gauna iš elektros, per elektromagnetą. Tačiau magnetas įsijungia ne visada- va čia pats įdomumas. Kol švytuoklės eiga didelė, keistas mechaninis jungtukas nesujungia kontakto (matosi video), tačiau kai eiga kiek sumažėja, kontaktai susijungia ir sukomutuoja švytuoklės elektromagnetus- švytuoklė vėl padidina savo eigą ir kontakčiukai išsijungia.

laikrodzio svytuokles mygtukas
(5 daiGtas vadinasi “sobačka" :) )

Tie impulsai turėtu judinti mano turimo laikrodžio “kontrolinį" ciferblatą. Deja, aš neturiu gana aukštos įtampos maitinimo šaltinio (net nežinau kiek voltų reikia. Kažkas tokio stipriai virš 12V, nes 12V maitblokis nesugebėjo net švytuoklę išsupti.). Todė mano laikrodžio rodyklės nesisuka, o tik vos vos trukčioja. Dar biški viena rėlė duoda per trumpą impulsą, todėl signalai dar ir asimetriški. Beja, toks laikrodis kambaryje tai nelabai, nes minutinės relės gana rimtai klaksi ir gali pažadinti :) .

Nu ir įrodymas, kad laikrodis tikrai veikia:

Tik-tak, tik-tak, tik-triakšti-kliok-tak, tik tak…

Elegantiškas windowsų 7 nulaužimas

April 24th, 2016

Kartais reikia iš šrotinio kompo padaryti veikiantį produktą. Aišku galima ten viską perinstaliuoti, bet mano tingumas pasiekė jau gana dideles aukštumas, todėl jei yra galimybė pasinaudoti esama operacine sistema, tai ir ją ir laužiam ir naudojam. Ypač jei tai legalūs 7 windowsai. Kartais kompai papuola ir su domeinu, ir lokalus administratoriaus slaptažodis nežinomas… Seniau ten leisdavo specialų softą, kuris dar traukdavo kažką iš registro ir kartais neveikdavo. O štai šiandien prisireikė vieną kompą ištraukti iš domeino, pravalyti ir atiduoti second-hand naudojimui. Internetas pasiūlė paprastą sprendimą ir jis suveikė. Kad neužmiršti, surašau čia, nes tai labai elegantiškas sprendimas:

  1. Bootinam kompą iš live-CD, aš naudojau linux mint kompaktą.
  2. Einam į C:\windows\system32\ direktoriją ir ten surandam failą “sethc.exe". Jį persikeliam kur nors, kad į C:\ disko root direktoriją.
  3. Tame pat system32 folderyje, kopijuojam cmd.exe į sethc.exe. T.y. pakišam kitą failą vietoje sethc.exe
  4. Perkraunam kompą į windows ir sulaukiam login screen. Tada penkis kartus spaudžiam shift klavišą.
  5. Iššokusiam komandinės eilutės ekrane rašom komandą: net user administrator naujasslaptazodis. Arba vietoje admino rašom bet kurį kitą vartotoją.
  6. Logino ekrane suvedam naują slaptažodį ir siautėjam windowsuose.

Kaip ir viskas…

Aišku, gal reikėtu atstatyti “sethc.exe" programą, bet kam? Geriau pasilikti “backdorą" :P

Kiniškas powerbankas be akumų

April 22nd, 2016

Jau senokai pas mane mėtosi palaidos Ličio jonų “bačkutės" (18650), kurios kartais susitrumpina su visokiais gelžgaliais ir gana efektyviai smirda ir bando sukelti gaisrą. Todėl nutariau jas sudėti į dėžutę ir gal panaudoti, nes prožektoriui ir dar kažkam užtenka vos kelių bačkelių. O dar ir nusimato maišiukų panaudojimas kol jie nesprogo… Pasakyta- padaryta ir iš kinų atvažiavo power bankas be akumų, toks alia DIY komplektėlis.

power bank

Tai plastiko dėžutė su kažkokia krovimo schema, voltmetriuku ir panašiai. Visi akumuliatoriai jungiasi lygiagrečiai, todėl nėra jokios balansavimo sistemos. Kol kas viskas veikia. Aišku, čia neapsėjo be mėlynų LEDų, bet ką jau padarysi. Beja, pirkinys kainavo 4.35$.
Read the rest of this entry »

Bugas ir šiaip nesamonė

April 15th, 2016

Nieko naujo nesugalvojau, nes vis dar po truputi remontuoju fazendą. Todėl rašau bet ką… tiesa, keletas projektų dar gaminama, bet juos vilkina kinijos logistika. Todėl parašysiu bet ką…

Aš šiaip, kompiuterinių žaidimų nežaidžiu. Tačiau per paskutinius 5 metus žaidžiau trys žaidimus: telefone tą clanų mušį (čia kaip buna momentas kai visiškai nėra ką veikti) ir du žaidimus kur vaikšto žmogutis: Skyrimas ir Vičeris 3. Tuos pastaruosius žaidžiau todėl, kad pamačiau, kad ten yra arkliukai. Tačiau skairime arkliukai užsimuša kartais, o man kaip turėjusiam arklį tai jau per žiauru. Todėl skairimą ėjau toliau be arklio, poto atsibodo.
Neseniai pamačiau vičerį ir ten irgi arkliukai. Tačiau čia jie rodos neužsimuša (nors разчленёнкėс iš arklienos ten daug), todėl šita biški pažaidžiau. Tačiau vėl suveikia mano arkliška patirtis- negaliu aš arklio numesti bet kur ir eiti dubasinti monstrų. Nes arklys gali nuklysti, jį gali ir nupyzdinti, o ir koks blogis gali užpulti. Gavosi taip, kad Tarakoninis arklys buna pastatomas į arklides, o Geraltas eina per visą šalį pėsčiom… :)

Taip bevaikščiodamas užtikau tokį arklį:
Witcher 3: undergroung horse
Tai požeminis arklys. Jis kažkaip nepadoriai trukčiojo, o jo kojos išlenktos anatomiškai neįmanomu kampu. Tačiau kanopos liečia žemę. Geraltui pavyko ant šito reikalo užsisėsti, nors pradžioje jis sėdėjo ore. Bet poto arklys, kaip kamštis išlėkė iš uolos ir viskas ėjosi kaip reikia.

Čia šiaip, juokingas bugas.

Dar buvo trigalviai arkliai, tačiau nepadariau screenšoto.

AVR80: OLED displėjukas ir SD kortelė

April 2nd, 2016

Jau daug metų norėjau ir pagaliau padariau SD kortelės rašymo eksperimentą su ATMEGA16 mikroschema. Man kažkodėl visiškai viskas neveikė ir teko kankintis su vos vos veikiančiu LCD ekraniuku debuginimui. Vėliau nusprendžiau panaudoti maža nereikalingą OLED displėjuką iš kinijos. Ekraniukas veikia nuo 3V todėl nereikėjo vargti su signalo lygiai ir panašiai. Ekraniukas kabo ant tų pačių SPI laidų kaip ir SD kortelė, aišku CS/SS signalas skirtingas. Labai ilgai kažkodėl neveikė. O šiandien, vakare bet kaip sujungiau laidelius ant savo mega-dev-boardo ir viskas suveikė.

OLED is SD

Failas gavosi ir 1G standartinėje SD kortelėje ir kogero toje mažesnėje, 64Mb multimedia card.

OLED is SD
Kadangi nenaudojam RTC modulio, tai failo sukurimo data hardcodinta programoje.

Šioje konstrukcijoje panaudojau FatFs modulius iš elm-chan.org puslapių, o OLED displėjau modulio paprogramės irgi paremtos svetimu darbu, tiesa ten kiek daugiau padirbėjau. Visa šita sistema suėdė beveik visą ATMEGA16 atmintį:

AVR Memory Usage
—————-
Device: atmega16

Program: 13700 bytes (83.6% Full)
(.text + .data + .bootloader)

Data: 227 bytes (22.2% Full)
(.data + .bss + .noinit)

Todėl, jei norima konstruoti kažka protingesnio, deja teks imti “storesnį" mikroprocesoriuką.

Ir visas source kodas bei sukompiliuota programa tiems žmonėms kurie jau neturės rankioti gabaliukais ir kankintis kol kodas pradeda veikti:SD kortele ir OLED displejaus source code / ATMEGA and SDcard source code.
Apie hardwarę- SD kortelė pajungta prie MISO/MOSI/SCK/SS kojų, OLED ekraniukas prie tų pačių MOSI/SCK, o kiti specialūs OLED signalai paimami iš C porto (3 laidai: CS, C/D, RESET).

Ličio polimerizacija

March 31st, 2016

Kadangi utilizacijai papuolė biški broko:
Samsung SDI packs
(tai kažkokie “universalūs" akumuliatoriai, 45Wh)

Buvo ir bačkelių tipo, bet juos užsirezervavo vienas žmogus, bet liko visas kalnas polimero. Pradėjau juos lupinėti, įsipjoviau du pirštus ir surinkau po 10 maišelių. Kas įdomu- akumuliatorių baterija 7.4V, reiškia du akumai nuosekliai. Viduje- 4 maišeliai, dviejų dydžių. Didesni PGF4960C3A (pats samsungas sako, kad tai 4.8Ah talpos), o mažesni PGF463998A (2.2Ah).
Read the rest of this entry »

Biški C optimizacijos

March 22nd, 2016

Jau ne pirmą kartą randu svetimam softe vieną dalykėlį. Įdedu čia du fragmentus- originalų ir mano rašyta:

Originalus:

for(int8_t bit = 7; bit >= 0; bit–)
{
L(PORTC, SS1306_OLED_CLK);
if((1 < < bit) & data) { H(PORTC, SS1306_OLED_DAT); }
else { L(PORTC, SS1306_OLED_DAT); }
H(PORTC, SS1306_OLED_CLK);
}

Mano:

for(unsigned char bit=0;bit<8;bit++)
{
L(PORTC, SS1306_OLED_CLK);
if(data & 0×80) {H(PORTC,SS1306_OLED_DAT);} else { L(PORTC, SS1306_OLED_DAT); }
data = data < < 1;
H(PORTC, SS1306_OLED_CLK);
}

H() ir L() procedūros tai ne mano rašytos ir jos neturi įtakos. Pagrindinis skirtumas yra pakeisti “(1<<bit)" į “(data=data1<<1)". Atrodo paprastas pakeitimas, bet pagalvokim koks bereikalingas darbas stumti tuos bitus per visą ciklą… 7+6+5+4+3+2+1 bitų pastumimai originaliam softe ir 7 pastumimai mano softe. Skirtumas gerai matosi oscilografo ekrane…

AVR GCC optimization
Čia originalus softas.

AVR GCC optimization
Čia mano.

Grubiai šnekant, su tuo pačiu MCU greitis padidėjo nuo 22μs iki 9μs vienam perduotam baitui, du su biškiu karto (ir 16 baitų mažesnis softas). O čia gi grafinis ekraniukas!
Ir kaip sakiau, jau ne pirmas kartas randu šitą klaidelę svetimam softe, kai daroma duomenu serializacija programiškai.

Aišku vienas loginis niuansas, mano algoritmas sunaikina kintamąjį data. Tačiau jį galima ir atsiminti, bet dažniausiai jis jau nereikalingas.

Kodėl tokios klaidos? Manau todėl, kad mąstoma šabloniškai- tikrinam duomenų bitus su “maske" ir pagal rezultatą išsiunčiam. Čia labai žmogiška, tačiau reikia galvoti plačiau- kam generuoti “maskę", jei galima taip pat stumdyti pačius duomenis. O jei tai būtų ciklinis stumimas ROL/ROR, tai netgi duomenys nesusigadintu- galima “apsukti" visą baitą ir vėl viskas bus kaip pradžioje.

[dar galimi kiti variantai, kai “maskę" galima irgi “sukti" ir ciklo sąlygas tikrinti pagal tai. Kodas gausis dar geresnis. Laukiam skaitytojų versijų.]

Rastinukas

March 6th, 2016

Jau visko mačiau išmesto, jau prie daug ko pripratau, bet visdėlto retokai atsitinka, kad išmestu old skūlinę techniką. Šį kartą tai buvo Pioneer A-757 ar A-717, ar panašus garso stiprintuvas. Tiksliau pusė jo. Tačiau aš pamačiau trafukus ir negalėjau leisti juos sugadinti. Nes teoriškai, mano garso stiprintuvui reikia normalaus maitinimo šaltinio. Visa bėda, kad šis donorinis stiprintuvas ar tik ne 800W ima iš tinklo. Dėl to transformatoriai milžiniški ir labai sunkūs. Dar kita bėda, kad trafai du. Aš nežinau ar tilps į mano stiprintuvo korpusą. O ir stiprintuvas tada svers virš 19 kilogramų…

A-757 pioneer parts
Taip atrodo maitblokis su savo sub-šasi. Viršuje su transformatoriai ir du kondensatoriai, “rusyje" lygintuvas ir stabilizatorius pradiniam stiprintuvui. Beja dar nugvelbiau kolonėlių gnybtus, nes jie tikrai žymiai stipresni ir geresni už esamus.
Read the rest of this entry »

AVR79: WS2812 RBG LED juostelė

February 21st, 2016

Trumpas eksperimentas su kiniškais, individualiai kontroliuojamai (addressable) RBG LEDais. T.y. tai kaip ir ilga juostele su RGB LEDais kuriuose sumontuota maža mikroschema kuri leidžia užprogramuoti trijų RGB šviesos diodų intensivumą. Šviesos diodai (ir pati juostelė) valdosi tik per vieną duomenų laidą, t.y. protokolas asinchroninis ir jo veikimas priklauso nuo teisingo taimingo.

WS2812 individually addressable RGB LED control AVR

Pradžioje galvojau rašyti viską nuo nulio, bet poto nutariau ne vargti ir pasiieškojau source code internete. Radau kažkokį universalų, AVR procesoriukams. Nors pats kodas kaip ir universalus, ir turėtu duoti ispėjimus, kai makrosai nesuskaičiuoja, tačiau net kokią valandą kankinausi su kodu, nes signalai nesigavo su teisingais intervalais. Pasirodo, kad mano turimas ATMEGA162, grojantis ant 3,686MHz (cominis) yra kaip tik ant tos ribos, kada softas dar mano, kad sugebės taimingus suformuoti, bet WS2812 mikroschema visiškai su tuom nesutinka. Pakeitus kvarcą į 12MHz (USBinis), viskas iškarto pradėjo veikti.

Tavo vamzdyje arba tu vamzdis (Youtube) pilna filmukų, kur iš tokių LED eilučių pasidaro ištisus ekranus. Tačiau, norint pasidaryti normalios raiškos LED ekraną reikia investuoti į gana daug tokių LED eilučių. Gaunasi brangokas projektas. O ir tada su paprasta ATMEGA neprasisuksi, nes reikia organizuoti video informacijos apdorojimą ir video buferį atmintyje.

Ir aišku: WS2812 AVR ATMEGA source code ir kompiliuotas hex failas.

P.S. Vienas bugas WS2812 juostelėje- kažkodėl neteisingai veikia kai maitinimo įtampa daugiau kaip ~4V. Pradeda fušeruoti. Gal dėl to, kad sujungtas Vcc ir Vled juostelėje, muša stiprius trigdžius? Nes teoriškai, turi veikti net ir nuo 7V…

Unhappy Tikbalang