Fazendos grindų klojimas

Darbe kalbėjausi su vienu diedu ir pasakojau, kad dedu savo fazendoje laminuotą parketą. Ir mano pašnekovas labai nustebo, kad dedu pats, nes tai sudėtingas darbas… Bandžiau paaiškinti žodžiais, bet nelabai gavosi. Galu gale nusprendžiau, kad ne visi turi “erdvinį mąstymą” ir nelabai suvokia kaip čia viskas paprasta. Internetas pilnas instrukcijų kaip dėti tą laminatą ar parketą, tačiau nutariau parašyti savo variantą. Tuo ir užpildysiu spragą interneto puslapiuose. Nors nereikia čia jokių instrukcijų- reikia erdvinio mąstymo :).

Pirmiausia reikia laminato ar kokio klijuoto parketo. Pirmos mano dėtos grindys buvo paprasto kartoninio laminato. Antros dėtos grindys- trisluoksnis ąžuolo parketas kurį prieš kokius metus ir biški labai akciingai nupirkau už <10€ už kvadratą. Tai buvo savikaina, išpardavimas, transportavimo brokas, nelikvidiniai likučiai ir panašiai, tikrai tokiom kainom gauti sunku. Oj, pamelavau, antros grindys buvo mažam kambarėlyje irgi laminuotas parketas, bet jau po 16€ už kvadratą iš senukų per trečiadieno akcijas.

Dar reikia instrumentų- plaktuko, minkštos medienos lentos gabalo (kad per ją daužyti parketą kai jis neklauso), stataus kampo liniuotės, pieštuko, būtinai- kreiziuko (diskinio pjūklo, pačio pigiausio, iš senuku už ~40€), klijų. Optional- elektrinis lobzikas, bet jis labai drasko medieną. Bet jei reikės pjauti kreivę, tikrai pravers. Elektrinio kreiziuko diskinis pjūklas turi būti aštrus. Ir nenustebkit, kad kiniškas kietmetalio pjūklas ims ir atšips. Šiuolaikinis parketas tikriausiai kietesnis už kinišką “pabeditą”. Todėl man reikėjo kito diskelio- su daugiau dantukų:
laminato klojimas
Continue reading →

Apple Cinema irgi genda

Abuoliai irgi genda. Ypač, kai baigiasi garantinis. Buvo čia toks ligonis, vienas iš Apple Cinema serijos monitorių. Ir jis biški ėmė ir neberodė vaizdo.
Apple cinema LED refurbishing
Čia jis taip atrodo visas. USB, display port laideliai ir laidelis pajungti abuolinio notebuko krovimą. Jokių mygtukų. Gedimas paprastas- neveikia pašvietimas (pasitikrino su prožektorium). Buvau užterorizuotas- diagnostiką pratesiau ir nustačiau, kad viena LED eilutė pradėjo svilti- jos užsižiebimo įtampa stipriai paaugo. Toliau remontuoti atsisakiau. Vėliau buvo visa epopėja netgi su oficialiu servisu ir kažkoks meistrelis tipo pataisė. Monitorius kurį laiką veikė, tik atsirado vertikali juosta. Matyt lindo į matricą… Monitorius kiek paveikė, bet gana greitai vėl nustojo šviesti. O čia buvau užšantažuotas ir monitories atsidūrė pas mane. Remontas buvo daromas su tokiom sąlygom: kada kils noras remontuoti, darau bet ką, neatsakau už kokybę ir nebūtinai suremontuoju. Taigis monitorius pragulėjo gal metus, o gal daugiau 🙂 .
Continue reading →

AVR87: TXC101 UHF siustuvėlis

Tai mano pirmas eksperimentas radio dažnių generavime. Todėl labai jau nekritikuokite. Viskas prasidėjo nuo signalizacijos siustuvėlio, kurio nesugebėjau paleisti. Poto iš kinijos nusipirkau pirmą pasitaikiusi mikroscheminą kuris generuoja aukštus dažnius. Tai buvo TXC101, 300-1000MHz transmitter. Kuris gali veikti kaip savarankiškas prietaisas, o gali veikti valdomas mikrokontrolerio. Poto vėl buvo viskas užmiršta, kol kitame projekte liko vietos PCB (nes jos dabar didelės). Taip ir gimė šis visiškai žalias projektas su klaidom.
Schema paprasta- MCU (ATMEGA8), sintezatorius TXC101, biški pasyvių element ir dviejų tranzų stiprintuvas. Mažesnis tranzistorius tai kažkas su užrašu “7Y 1”, kas savo ruožtu gali būti: MMBR941, MMBR951 kas visai tinkama (arba ten visai ne tokia detalė, nors lupau iš kažko aukštadažnio), o didesnis buvo BLT50, kas gerai 470MHz, bet tikriausiai negerai prie 900MHz. Tačiau visiškai tranzo patikrinti prie aukštesnio dažnio nepavyko, nes traukiojant laidus ir jungiant visokiausias apkrovas tranzistorius biški užkaito ir jau nebeveikė. Toliau eksperimentus dariau be galinio tranzo…
TXC101 transmitter and AVR ATMEGA8
(foto pasididina)
Continue reading →

ARM:0002 versija B, TXT LCD

Kol kas visiškai neapsisprendžiau kokia “baze” remtis programuojant STM32 mikroschemą. Dabar tik eksperimentuoju ir paprasčiausiai pakartojau senesnį ARM projektą su tekstiniu LCD ekranėliu. Kol kas nebraidžiojau optimizacijos pinklėse ir naudojausi kažkieno sukurtais primityvais, kurie gana griozdiški viduje. Tačiau šaip – ne taip pavyko paleisti.

STM32 LCD tXT
(dešinėje skaičiukas kur neaiškus tai fotikas pagavo momentą kai keičiasi reikšmė)

Kokios iškilo bėdos? Pagrindinė bėda buvo suvokti kaip galima duomenų pinus operatyviai perprogramuoti iš OUTPUT į INPUT. Pas mano naudojamas bibliotekas ten naudojamos griozdiškos struktūros. Ir aišku tingėjau skaityti instrukcijas.
Pradinė užduotis buvo, kad LCD gali būti prijungtas prie bet kurios kojos, bet poto teko supaprastinti, kad visdėlto jungiasi prie to pačio banko. Čia išlindo pirmas skirtumas tarp atmelio SAM7 ir STM32. Pas atmelį PIO kojos bent jau 32, priklauso vienam bankui. Gana logiška- CPU tai 32 bitų ir vienu smūgiu galima pakeisti 32 kojas. Pas STM32 kojos suskirstytos po 16 kiekvienam bankui. Kas baisiau, rodos viduje ten dar suskirstyta po 8 bitus ir išmaukyti tie bitai kažkokia tvarka. Aišku, gal galima skirtingus bankus valdyti skirtingais laikrodukais, o gal taupyti elektrą ir gal juos išjunginėti? Tačiau dingsta paprastumas… Kodėl taip padaryta aš nežinau. Bet man nepatiko.

A! dar kažkaip užmiršau, kad mano LCD tai 5V technologija, o STM32 tai 3V. Tai vieną vakarą prasikankinau be reikalo. Kažkaip galvojau, kad mano testinis ekranėlis veikia su 3V maitinimu.

ARM STM32F103 TXT LCD source code.

ARM:0001 versija B arba STM32

Kažkada gavau Atmelio ARM šroto. O dabar gavau ST produkcijos beveik šroto. Tiksliau pamačiau, kai metė į šiukšlyną “paletėlę”* su STM32 čipais. Dalis čipų nukrito neatgaunamai, o keliasdešimt buvo sugauta ir parkeliavo namo. Tai buvo STM32F103RET6 – 512kB flash ROM, 64kB RAM ir 64 plonos kojos (gana daug kojų palinko gelbėjimo operacijos metu) … LEDų mirkčiojimui pats tas čipukas. 🙂

STM32F103RE
Gryni čipai neveikia, todėl sukurpiau savo PCB. Ji gavosi kraupiai raudona. Dar pakeliui nupirkau kinišką dev boarduką su mažesniu čipuku. Bet PCB iš kinijos atėjo greičiau. Į tą UNIBUS dalį nereikia kreipti dėmesio, čia eksperimentai- ten nebesiekia Eagle free softas ir ta dalis PCB kaip ir nesinaudojasi. Ten “menas” gerberiuose.
Aišku padariau kaip minimum dvi klaidas. Abi gana lengvai pataisomos- užmiršau RESET liniją patempti į pliusą. Ir panašus patempimas reikalingas prie USB jei jį naudoti. Ten reikėtu statyti gal net tranzu valdomą pull-up.

Apie softą kita šneka. Kažkaip seniokiškai piktybiškai nenorėjau jokio IDE. Man užteko tų “user friendly” nesamonių. Tik oldskūlas, tik hardkoras. Žodžiu dabar kompiliuojasi iš to pačio notepado- ir AVR ir STM ir atmelio ARMas. Ir iš ten pat ir programuojasi.

Kad ir ką nešnekėtu vartotojai- nėra labai patogaus softo. Kažkaip eina tendencija, kad jei reikia pamirksėti LEDą, tai reikia į čipuką supusti visa operacinę sistemą ir krūvas pričindalų… Aišku periferiją reikia suprogramuoti ir kuo toliau, ji sudėtingesnė. Bet dėti šimtus eilučių chaotiško kodo? ST išleido gerą įdėją- grafinį periferijos konfiguratorių STM Cube, ten aš jo sugeneruoto kodo nesugebėjau netik suprasti, bet ir sukompiliuoti su gcc. Poto skaičiau nemūsiškus forumus ir atsiliepimai buvo ne kokie… Matyt tokie oldfagai rašė.

Todėl teko pažaisti kokius trys vakarus ir pavyko visdėlto paleisti MCU kojas taip, kad jos duotu kažkokius signalus.
Deja, nepavyko svetimų bibliotekų privesti tiek, kad nerodytu nei vieno warning. Man nepatinka warningai…


gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors)
Building file: stm32f10x_vector.o
Invoking: MCU C Compiler
arm-none-eabi-gcc -Os -Wall -fno-strict-aliasing -fmessage-length=0 -fno-builtin -mthumb -mcpu=cortex-m3 -MMD -MP -ffunction-sections -fdata-sections -I ../src -I ../src/includes -I ../libSTM32F103 -I ../libSTM32F103/inc -MF objs/stm32f10x_vector.d -MT objs/stm32f10x_vector.d -c ../src/includes/stm32f10x_vector.c -o objs/stm32f10x_vector.o
../src/includes/stm32f10x_vector.c:114:4: warning: taking address of expression of type 'void'
&_estack, // The initial stack pointer
^
Finished building: stm32f10x_vector.o

Building target: blinky_stm32f103.elf
Invoking: MCU Linker
arm-none-eabi-gcc -Wl,--gc-sections,-Map=blinky_stm32f103.map -Os -Wall -fno-strict-aliasing -fmessage-length=0 -fno-builtin -mthumb -mcpu=cortex-m3 -MMD -MP -ffunction-sections -fdata-sections -L ../ -T ../loaders/stm32.ld -I ../src -I ../src/includes -I ../libSTM32F103 -I ../libSTM32F103/inc objs/main.o objs/stm32f10x_it.o objs/stm32f10x_vector.o ../libSTM32F103/Release/libstm32f103.a -oblinky_stm32f103.elf
Finished building target: blinky_stm32f103.elf

Visas source kodas čia, su visom bibliotekom.

*) jei kas nesuprato, “paletelė” tai toks plastikinis laikiklis mikroschemom. Kaip šitas iš to pačio šaltinio:
STM32F205ZGT6
Tik čia daugiau kojų turinti mikroschema STM32F205ZGT6 (1M flash, 132kb RAM ir 144 kojos…) biški per daug.

Vieno nixio laikrodis

Per naujų metų sveikinimą panaudojau šią iliustraciją:

2017 year nixie in-18

Tai vieno nixio laikrodis. Visos detalės tipinės, hardwarėje nieko specifinio. Vienintelė naujovė- viskas valdoma vienu mygtuku. Kadangi reikia daugiau funkcijų, tai mygtukas atskiria “trumpą” ir “ilgą” paspaudimą.
Dar vienas skirtumas- RTC panaudotas iš kažkokio DVRo. Tai Dallas Semiconductors/Maxim čipas DS1338. Jis turi “tick” išėjimą kuris užprogramuotas 1s impulsams ir aktyviai naudojamas programos. Dar naudojama IPS511G mikroschema- smart switch, kuri tik reikiamu metu įjungia aukštos įtampos šaltinį. Lempa didoka, o ir keitiklis nėra labai ekonomiškas. Todėl kai nenaudojama lempa, iš ~7V maitblokio srebia apie 14mA srovės, tačiau kai užsikuria lemputė, srovė užkyla iki maždaug 290mA. Jei neišjunginėti maitinimo, tai raktinis FETas kiek kaista ir jaučiasi šiluma per korpusą. Naudojant atjungimą viskas spėja ataušti.

Laikrodis kokias 7 sekundes nieko nerodo, poto parodo valandas ir minutes nuosekliai. Kiekvienas skaičius rodomas vieną sekundę.Daromos nedidelės pauzelės, kad matytusi kaip keičiasi skaičiai net tada, kai laikrodis turi rodyti tą patį skaitmenį.
Norint iš karto pažiūrėti laiką, reikia nuspausti trumpam mygtuką, tada laikrodis pradeda skaičių rodymo ciklą. Jei niekas neliečiama, skaičiai atsiranda savaime.
Norint nustatyti laiką, reikia spausti ir palaikyti mygtuką. Tada laikrodis rodo visus skaičius iš eilės ir nesiblaško tarp jų. Tada trumpu nuspausdimu galima padidinti skaičius. Penktas ilgas nuspaudimas išjungia nustatymo režimą. Tai indikuojama “vaiduoklišku” švytėjimu (ne visos nixies tai padaro)- visa lempa truputi švyti, bet konkrečių skaičių nerodo. Tai gaunama paduodant aukštą įtampą, bet nejungiant jokio segmento. Per parazitines talpas ir rezistorius yra įtampos nutekėjimas ir lempa švyti.

Kiek apie softą: naudojami trys darbiniai algoritmai vienu metu:
Pirmas- sekundinis “tick” iš RTC mikroschemos per INT0 koją. Čia beveik viskas ir atliekama: nuskaitomas RTC, pagal mygtuko reikšmę atliekamos funkcijos, rodomas laikas.
Antras- taimeris. Čia, neatsimenu kokiu intervalu dirba, bet čia pagal mygtuko rezultatą persijungia režimai. Taip pat generuojama “kintama” įtampa nixio uždegimui per kondensatorių. Taip uždegiamas indikatorius, nes išjungiant aukštos įtampos šaltinį įtampa “pasibaigia” ne iškarto, o poto, kai išsikrauna kondensatorius. O dar, čia galima reguliuoti nixio švietimo ryškumą.
Trečias- pagrindinis ciklas. Čia tikriausiai reikėtu irgi panaudoti kitą taimerį, bet šioje softo versijoje daromas sisteminis mygtukų būklės apklausimas kas 10ms.

Ir aišku:
Single nixie RTC clock with single button control. Source code and hex.

Kiniškos PCB, pigiau ir spalvingiau

Kaip ir žadėjau, kai tik gavau PCB iš Kinijos, tai iš karto dedu kelias nuotraukas ir kiek komentarų.

kiniska PCB plokste

Pirmiausia- seniau buvo 5×5 ir tik žalios. Dabar, dėl konkurencijos, mažiausia PCB tai 10×10 ir bet kokios spalvos. Teoriškai galima jas panelizuoti ir frezuoti, bet tada kaina pasidaro nebe pigi. Ši kainuoja ~10$ (10vnt) plius siuntimas (apie 5$). Pagamina iš gerberių per kelias dienas, deja siuntimas užtrunka Kinišką mėnesį. Tai kiek ištemptas ir neapibrėžtas laiko tarpas kiek panašus į kalendorinį mėnesį.
Continue reading →

Drėlės akumuliatoriaus perdarymas

Nors ir žiemos metas, laikas nuo laiko važiuoju į fazendą ir ten ką nors statau ar remontuoju. Palyginus su remontais Kaune (kur kaimynai užliejo sienas- lubas ir rusį, bet pas “juos nebėga”), šis fazendinis remontas ramina nervus. Ten kovojama su sena sienų izoliacija ir dabar reikia įsukti vieną kitą milijoną medvaržčių… Buvau pasiskolinęs normalų suktuką iš darbo, bet ji reikia atiduoti atgal. Pirkti naują kažkaip nenoriu. Aš prisiminiau, kad kai stačiau garažiuką arkliui, buvau nusipirkęs kinišką suktuką. Jo akumuliatorius jau kokį dešimt metų kažkodėl padėtas ant palangės iš kiemo pusės… Taigis, jis tikriausiai jau nebeveikia 🙂 Todėl nutariau akumuliatoriau elementus pakeisti į kitus, juolab mėtosi visas kalnas ličio bačkučių iš “garantinių” kompų akumuliatorių. Garantiniai reiškia, kad tie akumai susifeilino dėl gamyklinio defekto ir ten dažniausiai 66,66% ličio elementų visiškai geri ir beveik nauji. Paėmiau vieną samsung akumą ir jo skrodimas parodė, kad 100% “bačkelių” geros- paprasčiausiai kontrolerio PCB perlūžusi per pusę.

Akume buvo 6 elementai, sujungti pagal 3S2P schemą. Elemento talpa kažkur 2Ah (teoriškai, naudojami samsungėliai, nors ir nauji kogero bus 1.8Ah talpos). Įtampa kažkur gausis apie 12V. Norėjau pažiūrėti kas parašyta ant suktuvo… bet suktuvo neradau. Prisiminiau, kad darbe kažkur mėtėsi suktuvas (aišku kiniškas) be akumo kur radau šiukšlėse ir pasiėmiau dėl patrono… laime, kad ta vieta nelankoma vos ne penkmečiais, tai drėlę radau 🙂 . Ji buvo be jokių užrašu… dzin.

dreles akumuliatoriaus remontas
Mechaniškai sutvirtinti elementus patodu su kiniškai akumų laikikliais, kurie kaip kokios lego kaladėlės susijungia viena su kita. Nuotraukoje kitos celės, nes fotkinau po eksperimento.
Continue reading →