Hirdetés

2024. május 1., szerda

Gyorskeresés

Hozzászólások

(#1) Domonkos


Domonkos
Ármester

Hey! A mai napon a vilag legpompasabb beviteli eszkoz szerencses felhasznaloiva valtunk!
Szerencsetlensegunkre ehhez nem pont szerencsebol kellett a legtobb.

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#2) 0xmilan


0xmilan
addikt

:Y
Forintra atkonvertalva mennyi szerencse kellett a megszerzesehez?
Ezt gondolom lattad mar. Te is tervezel biliard golyot tenni bele? :D

(#3) Domonkos válasza 0xmilan (#2) üzenetére


Domonkos
Ármester

Szamokat nem irnek - itt a legelejen biztosan nem - de amiota kovetem a piacat, azota ez volt a legolcsobb, ami szembejott.
Az allapota ellenere is - ami majd a tovabbi kepeken latszodni fog - meg mindig inkabb a tobbi Datahand-hez van kozelebb arban, mint mondjuk egy ritkabb IBM-hez. Hogy ezt tudja-e valamivel igazolni, az majd hamarosan kiderul. ;)

Persze hogy lattam! Amennyire keves info van errol a peldanyrol, ugy azt hiszem, hogy a postai szallitas ideje alatt sikerult mar mindent vegigolvasnom rola.

Bar szimpatikus az altala leirt mod, nem biztos, hogy azt fogom kovetni. Ha sikerulne egy pin-kompatibilis kontrollert talaljak az eredeti helyere, akkor lehet, hogy csak szoftveres mokolas lenne az egesz - amit sokkal jobban szeretek, mint hardverrel butykolni.

Az egermutato mozgatasat nem egyelore terveztem bele - a munkafolyamataim legnagyobb resze egyaltalan nem igenyel semmi egerezest, a tobbi resze pedig szinte csak azt - oda pedig van normalis egerem.
Meglatom.
Ha minden mas nagyon siman megy, akkor miert is ne? :)

De ezekrol reszletesebben csak kesobb, ha majd odaerek. Viszont akkor mar kepekkel! ;)

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#4) Domonkos válasza Domonkos (#1) üzenetére


Domonkos
Ármester

De nezzuk is, mikkel gazdagodtunk az uzlet altal!
Hasznalati utmutato, garancialevel, egy rajz a billentyuzes kozben javasolt testtartasrol, egy a gyakorlast segito szoftver es persze maga a billentyuzet ket megsargult fele, DE nem az egesze! Ugyanis a DH-200 eredetileg egy "interface box"-szal jott, ami a szamitogeppel valo kommunikaciot tenylegesen vegezte, es amibe a billentyuzet felei (pod-ok) be voltak dugva. Tovabba a kabelek sem voltak reszei az uzletnek - amit csak azert emlitenek meg, mert egy tepozaras kabelkotozot azert kaptam. :)
Az elozo tulajdonos elmondasa szerint ezeket nem o hagyta el, mar hozza is hianyosan erkezett a klavi. Ami a projekt szempontjabol nem egy rossz dolog, hiszen igyis-ugyis atepitem, bar tuti adott volna egy kis megnyugvast ha legalabb egyszer latom mukodni meg mielott felboncolom. Viszont akkor egy sokkal rosszabb alkupoziciobol indultam volna, mert igy a sargulas mellett a teszteletlensegre is hivatkozhattam.
Nem gondolom, hogy amugy egy ilyen eszkoz kepes elromlani.
Holnap talan fel is nyitom. :))

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#5) TheLázs


TheLázs
csendes tag

Az első gondolatom volt, amikor láttam a mellbevágó árat, hogy ezt simán lehetne kisszériában másolni...

Na jó, talán annyira nem simán, de elég simán ahhoz, hogy a rettenetes árba sokszor beleférjen.

"Annyi mindenféléhez nem értek, hogy az már sokoldalúságnak számít” – Örkény István

(#6) Domonkos


Domonkos
Ármester

Igen. Es nem olyan regota letezik is legalabb egy, 3D nyomtatott valtozata amit akar DIY kitben, akar hasznalatra keszen is meg lehet venni. Bar ezeknek az ara az utobbi honapokban tobbszor valtozott, jelenleg 290 es 720 eurot kell ertuk fizetni.
Ami egyfelol elegge szimpatikus, mert nem csak az ar es a javithatosag szempontjabol jobb, mint az eredeti, de a szemelyre szabhatosag teren is sikerult egy kicsit elorebb lepniuk, meg a a Professional 2-hoz kepest is.
Plusz ugye a kibontas utan egybol hasznalhato - amivel ezt a blogot is meg lehetett volna sporolni. ;]

Ellenben ugye 3D nyomtatott. Amivel amugy nem kellene hogy legyen semmi bajom - elvegre 4+ eve csak 3D nyomtatott billencseken gepelek, de nem tudom, hogy mennyire szeretnem a 3D nyomtatott reszeit tapizni a billentyuzetnek. Voltak korai kiserleteim kupak gyartasara, de azt az otletet elegge hamar elvetettem. Bar ez minosegben jobbnak tunik, mint az en probalkozasom, egy valamire valo froccsontott darabtol meg igy is elegge messze lehet.

Amugy nem mondom, volt egy ket pillanat, hogy fontolora vettem a Svalboard beszerzeset. Szerencsere(?) most megint nem aktualis.

Bar a weblap is megemliti, a Svalboard a lalboard mintajara, otleteit es modelljeit feldolgozva keszul.

Gender of electrical connectors is defined by the pins.

(#7) Domonkos válasza Domonkos (#4) üzenetére


Domonkos
Ármester

Fel is nyitottam! :))
A hazat igazabol csak 3 rovid Phillips csavar tartja ossze. Egyik sincs leragasztva vagy eldugva - mindharmat elsore meg lehet talalni. Ha ezeket kiszedtuk, a billentyuzet teteje egy darabban leemelheto, miutan kihuztuk a ledekhez futo FFC-t (tokom tudja, hogy mi a magyar neve...). Semmi titkos muanyag ful vagy pocok amit keresgetni kellene. Ez egy hatalmas plusz szerintem. :K
Belul sincs tul sok meglepetes. A tenyertamasz alatti reszt csak a por es kosz tolti ki. A tobbin pedig 3 NYAK osztozik, meglehetosen szellosen, szalagkabelekkel osszekotve. A 90-es evekhek kepest is rettento kis komplexitasu.
Mar ilyen tavolbol is latszik, hogy itt bizony eleg sok minden kezzel kerult osszeszerelesre. Ami a projekt szempontjabol megint csak egy pozitivum, szerintem. :)

Gender of electrical connectors is defined by the pins.

(#8) TheLázs


TheLázs
csendes tag

A technológiákkal nagyon hasznos rendesen tisztában lenni, ha valaki ilyen projektbe vág (mármint újragyártás itt). A tapizható felületeket én SLA gyantás nyomtatóval készíteném el, teherviselő elemeket pedig FDM-nyomtatással, lehetőleg még másmilyen orientációban is

Más érdekesség, hogyha az ember tervez, akkor általában a technológia sajátosságait is figyelembe veszi, így a "gyengébb technológiával" ideális esetben "erősebb alkatrész" készíthető.

"Annyi mindenféléhez nem értek, hogy az már sokoldalúságnak számít” – Örkény István

(#9) Domonkos válasza Domonkos (#7) üzenetére


Domonkos
Ármester

A finger-well-ek korul egy vekonyka szivacsreteg van. Ennek szerintem pusztan esztetikai szerepe lehet. Ezt egyben le lehet huzni a gomb-kutakrol.
Ez a resze a billentyuzetnek egyebkent mindket oldalrol emelheto, igy tetszoleges magassagba, vagy dolesszogbe allithato egy kelloen nagy tartomanyban. Az allitashoz a ketoldalt talalhato szarnyasanyakat kell meglazitani, kezzel beallitan a megfelelo magassagot, majd visszaszoritani.
Ha teljesen lecsavarjuk az anyakat, akkor a finger-well-ek a NYAKkal egyutt egyben kijonnek.
Bar nem tudom, hogy gyari megoldas volt-e (van egy tippem), de a szalagkabel csatlakozoja, mindket oldalon par csepp ragasztoval a tuskesorra van ragasztva.
A NYAKon egyebkent egyetlen egy 150 Ohm-os ellenallas talalhato.

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#10) 0xmilan válasza Domonkos (#9) üzenetére


0xmilan
addikt

Szerintem annak a tortenelmi pillanatnak lehettunk a szemtanui, amikor valaki eloszor forditotta magyarra a key-well kifejezest. 🥹 :D

(#11) Domonkos


Domonkos
Ármester

Az 5 huvelykujji billentyu egy kulon NYAKlemezen kapott helyet. Ezt ket csavar tartja a helyen, a lap masik ket sarka egy-egy muanyag pockon tamaszkodik.
Komplexitasa ennek a resznek a legegyszerubb - huzalozas csak az egyik oldalon van. Itt is talalhato egy ellenallas, am ez 180 Ohm-os.

Ennek a panelnek az erdekessege, hogy annak ellenere, hogy csak 5 fizikai billentyu van rajta, megis 6 kulon "kapcsolot" lehet veluk mukodtetni.
Az oldalsokban semmi kulonos nincs. Magnesek altal visszatartott lemezket kell egy infravoros led es egy infravoros fenyre erzeken fotoellenallas kozul kitolni, hogy azt az elektronika "lenyomasnak" erzekelje. A huvelykujj feletti kapcsolo is ugyanigy mukodik, bar ott felfele kell tolni/emelni a kapcsolot. Viszont a lenti kapcsolonak ket lenyomott allasa is van. Van egy sima, es van egy olyan, amit erosebben kell nyomni - mintha nem egy de ketto magnes ellen nyomnank. Az also funkcio nem erheto el a felso aktivalasa nelkul, igy az eredeti firmware a shift es caps-lock valamint a NAP es NAP-lock funkciokat adtak nekik. Ezek ugye egymast nem utik. A belso ketto es a felso-belso es also billentyuket egyebkent nagyon egyszeru egyszerre lenyomni. A felso billentyut nem igazan lehet semmi massal sem egyutt egy ujjal mukodtetni.

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#12) Domonkos válasza 0xmilan (#10) üzenetére


Domonkos
Ármester

... hat ez van. En csak egy kurva macska forumozo vagyok, nem egy kibaszott tudos.

Gender of electrical connectors is defined by the pins.

(#13) 0xmilan válasza Domonkos (#12) üzenetére


0xmilan
addikt

Ez meg angolban sem egy elterjedt valami, szoval szerintem annak hivod, aminek akarod. Sorry, egyaltalan nem egy negativ megjegyzes volt. :)

(#14) Domonkos válasza 0xmilan (#13) üzenetére


Domonkos
Ármester

Ohh, egyaltalan nem olvastam negativnak. :N
A valaszom pedig csak egy Narancs Tetves es Dugo idezet lett volna az elso epizod elso percebol. :D Mondjuk amennyire kevesen ismerik mar manapsag, lassan le kellene szokjak az ismetelgeteserol. :O

Gender of electrical connectors is defined by the pins.

(#15) Phülöp


Phülöp
addikt

sokat nem fogok/tudok idepötyögni - szakmai hiányosságok miatt főleg - de mostantól követem a projektet

szóval +1 érdeklődő jelen

A Bretagne-félsziget meredek ormai alatt Otthont találnak kóbor csikóhalak. /Mesterem

(#16) 0xmilan válasza Domonkos (#14) üzenetére


0xmilan
addikt

Utolag megtalaltam am a referenciat. A macskas resz miatt egyertelmu volt, hogy valami idezet. Meg nem is szoktal igy beszelni. :D

...de legalabb neked is tok jo az alvasi ciklusod.

[ Szerkesztve ]

(#17) Domonkos válasza Phülöp (#15) üzenetére


Domonkos
Ármester

Ohh, szuper! :))

Tudtam, hogy a Narancs Tetves es Dugo idezetek be fognak vonzani par embert! :C

Gender of electrical connectors is defined by the pins.

(#18) Domonkos válasza Domonkos (#11) üzenetére


Domonkos
Ármester

A 3. NYAK a legnagyobb. Itt kapott helyet az osszes logika.
Bar arrol napokig lehetne meselni, hogy mi mit csinal es mi miert felelos, ma megsem reszletezem ki az osszes komponenst, csak azokat, amik szamunkra hamarosan fontosak lehetnek.*
Ezek pedig szerintem a kovetkezok:
- Jobb alul, vertikalis tajolasban van egy Intel 8051. Ami a billentyuzetes szempontokbol fontos az az, hogy a processzor 5V-rol mukodik, van rajta 4 I/O port, es hogy egy olyan utasitaskeszletet hasznal, amivel meg nem volt dolgom. :B
- Tovabba balrol a 3. chip (= integralt aramkor) az egy 74hc154, ami egy 16 csatornas, digitalis (de)multiplexer. Ami fuszerezett (= seasoned) billentyuzet-epitokent arra enged kovetkeztetni, hogy ez a billentyuzet-matrix igencsak unorthodox lehet. Megis hova kellhet 16(!) csatorna, hogy leolvassuk a 26 billentyu allapotat?!? Ha a napokban sikerul egy multimetert szerezzek, akkor konnyebb lesz kideritenem a miertjet. :K - bar a szemfulesebbek a tegnapi keprol mar sejthetik a trukkot.

* probaltam kelloen jo kepet kesziteni, hogy az osszes felirat olvashato maradjon, ha valaki megis, mar most kivancsi lenne...

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#19) 0xmilan válasza Domonkos (#18) üzenetére


0xmilan
addikt

fuszerezett (= seasoned)
:DDD

(#20) dugo_ válasza Domonkos (#18) üzenetére


dugo_
veterán

Ha a napokban sikerul egy multimetert szerezzek

Világ dőlne össze bennem, ha kiderül, hogy nincs legalább 3 multimétered a fiókban. ;]

(#21) Domonkos válasza Domonkos (#18) üzenetére


Domonkos
Ármester

A mai nap sok effort-ot nem raktam a projektbe - itt egy kep a tegnapi PCB hatuljarol. Hatha valaki tenyleg vissza szeretne fejteni, hogy mi is tortenik igazabol. Meg talan prezervacio szempontjabol sem rossz, ha megmarad...
A trapez korrekciot nektek kell megcsinalnotok! A kepek egy 28mm (FF ekvivalens) gyujtotavolsagu objektivvel keszultek.

Pontositas a tegnapi szoveghez: Az Intel chip tajolasa termeszetesen horizontalis. De igy jar az a blogger, aki az elore megirt szoveg melle az utolso pillanatokban forgatgatja be a kepet. Es a multimeteremet is tuti, hogy elveszitettem legalabb szerdaig. :B

Gender of electrical connectors is defined by the pins.

(#22) 0xmilan válasza Domonkos (#21) üzenetére


0xmilan
addikt

> A trapez korrekciot nektek kell megcsinalnotok!

Bar nem tudom, hogy ez most segittet-e barmin is. :D

(#23) Domonkos válasza 0xmilan (#22) üzenetére


Domonkos
Ármester

Persze, hogy segitett! :))
Igy nagyon konnyu lesz egymasra illeszteni az elozo keppel, a felso atlatszosagat 50%-ra allitani, es visszakovetni, hogy mi mivel van osszehuzalozva. :K multimeter sem kell hozza!
A NYAK 2 retegu.

Gender of electrical connectors is defined by the pins.

(#24) cappa72 válasza Domonkos (#7) üzenetére


cappa72
nagyúr

FFC lapos rugalmas vezeték ;)
Mondjuk sosem hallottam lefordítva még. (Dolgoztam régen kábelkonfekcionáló gyárban, igaz, nem az FFC részlegen.)

Selenia 5w-40 motorolaj eladó! Na meg 4db Ford Kuga TPMS szenzor, 12k-ért

(#25) Domonkos válasza Domonkos (#21) üzenetére


Domonkos
Ármester

Hat. Nem mondom, hogy a chip nem szenvedte meg a kivetelt, de vegul csak kijott.
A kiforrasztas amugy sem a kedvenc mufajom, es a tudat, hogy egyebkent unobtainium-ot forrasztok szinten nem segitett, de munka kozben arra probaltam gondolni, hogy ez is csak egy sima billencs es semmiben sem kulonb azoknal, amiken mar amugy unalmas dolgozni.
Mivel most a rework station-hoz nem fertem hozza, es a wick-et is csak a folyamat befejeztevel talaltam meg, igy a munka csak egy pakaval es onszippantoval tortent. Eddig sokszor bevalt, es most is probaltam, hogy ha a szippantas elott egy kis extra forraszoont rakok a labakra, akkor konnyebb a szippantot ugy beleszurni a megoldvadt onba, hogy az egybol kijojjon, viszont most az extra on inkabb csak atfolyt a NYAK masik oldalara es ott hatalmas csomokban felgyulemlett. Ezt nem volt egy kifejezetten nagy elmeny eltavolitani.
Szoval az egesz folyamat kb. 30 percet vett igenybe.

A kiforrasztott chip-pel nem tudom, hogy mit kezdjek. Ujraprogramozni nincs sok ertelme, mert nem fog kozelebb vinni a celhoz. Esetleg a rajta futo kodot probalhatnank meg valahogy lementeni rola, de nem tudom, hogy annak mennyi ertelme lenne.
Sem az ISA, sem a licensz (amit sejtek) nem tetszik.
Lehet, hogy csak felrerakom es majd kesobb lesz egy masik projekt amibe fel tudom hasznalni.

A kep tetejen lathato blue-pill bar egy igen kezenfekvo alternativa lehetne a 8051 helyere, asszem nala tudunk majd egy jobb megoldast talalni.

Ha a posta kelloen gyors, esetleg en tudom majd az idot kelloen sokaig huzni, akkor kiderul, hogy mi is lesz a kivalasztott. :K

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#26) Domonkos válasza Domonkos (#25) üzenetére


Domonkos
Ármester

Amig a rendelesre varok, addig beforrasztottam egy DIP socketet.
Jo lesz meghagyni a lehetoseget, hogyha visszaszerzem a muszereimet, hogy az eredetin is tudjak majd tesztelni. Hatha abbol tudunk meg majd valamit.

Ez a tegnapihoz kepest nagyon konnyen ment. Bar a socket hajlamos elhagyni a labait, ha nem sikerul pont keresztul vezetni azokat a furatokon; de csak egy pici ugyeskedes kell ahhoz, hogy az osszessel egyszerre betalaljunk es az egesz beuljon a helyere. Onnantol a forrasztas pedig sima rutinmuvelet. :K

Gender of electrical connectors is defined by the pins.

(#27) Domonkos válasza Domonkos (#26) üzenetére


Domonkos
Ármester

Dino

Gender of electrical connectors is defined by the pins.

(#28) 0xmilan válasza Domonkos (#27) üzenetére


0xmilan
addikt

This is the keyboard content I never knew I needed.

(#29) Domonkos válasza Domonkos (#27) üzenetére


Domonkos
Ármester

Jo hir, hogy ido kozben visszakerult hozzam a multimeterem. Rossz, hogy a het tovabbi reszeben szinte semmi lehetosegem nem lesz a projektel erdemben foglalkozni.
Par imazs kep mar be van keszitve a kesobbi hozzaszolasokhoz, de nagy elorelepesek biztosan nem lesznek.
Viszont ha vannak kerdesek, vagy elmelkedesek, akkor azokra valoszinuleg fog jutni egy kis ido! :K

A mai kepen a kiszerelt bal oldali billentyukutak vannak a juzer felol, lapos szogbol fotozva.
A kozepso ujjhoz tartozo kut, nem csak a perspektiva es a rovidules miatt latszik alacsonyabbnak, hanem mert amugy is az.
Szerintem elegge jol el van talalva a magassag - mondom ugy, hogy ami billentyuzetrol ezt a szoveget is gepelem kb. hasonlo magassagbeli kulonbsegekkel bir - viszont paran akik itt a kornyezetembol probaltak azoknak fura volt. (-> a lapos billentyuzeteken gepelok :P )
Nekem leginkabb csak az a nem tetszo benne, hogy az azonos billentyuk kozepei egy kicsit tavolabb vannak, mint a hagyomanyos klaviaturakon (> 3/4") - ami extra tavolinak hat a choc-spacing-es billentyuzetektol atulve. Bar szerintem szokhato lesz, mert azert nem kell nyujtozkodni, de a prototipizalaskor biztos nem a kis kezu vagy rovid ujju emberekkel tesztelhettek. :U

Gender of electrical connectors is defined by the pins.

(#30) Domonkos válasza Domonkos (#29) üzenetére


Domonkos
Ármester

Rossz hir, hogy a programomat kb. egy nappal elore sem tudom, jo hogy igy legalabb egy picit meg elorebb sikerult a projektet loknom.
A billentyuzet beviteli eszkozkent valo hasznalatahoz sikerult az osszes fontos huzalt osszecsipogtatnom a multimeterrel.
Ezek egy resze a multiplexeren vannak:

pin funkcio
1 R4
2 R5
3 R7
4 R9
5 R11
6 R13
7 R12
8 R10
9 R8
10 R6
11 R0
12 (GND)
13 R1
14 R3
15 R2
16 (JP5/1)
17 (NC)
18 (GND)
19 (GND)
20 P1.5
21 P1.4
22 P1.3
23 P1.2
24 (VCC)

Ahol a 20-23 pinekkel - amik az Intel-en az 1-es port 2-5 labaira van huzalozva - valaszthatjuk ki, hogy melyik sor (R#) LED-jeit szeretnenk felkapcsolni; amiket a szinten az 1-es port 0 es 1 pinein olvashatunk vissza.
A visszaolvasott ertek az termeszetesen a LED-ekkel szemben elhelyezett fotoellenallasoktol jon, am azok nem kozvetlenul a processzorba jonnek vissza, hanem egy-egy Schmitt trigger-en keresztul. Ezek a vonalak amugy szinten 5V-ra vannak felhuzva egy-egy 4.7k-s ellenallason keresztul. Bar a jelet meg nem lattam, gyanitom, hogy kellemesen "digitalis" es pergestol mentes lesz. Nem szeretnek meg egyszer pergesmentesito algoritmusokat implementalni.

Gender of electrical connectors is defined by the pins.

(#31) Domonkos válasza Domonkos (#30) üzenetére


Domonkos
Ármester

Mivel nagyon sikerult belejonnom a kiforrasztasba, igy megcsinaltam a jobb oldal-t is. A ket oldal ezen NYAK-jai egyebkent semmiben sem kulonboznek. Egyetlenegy berakott jumper-rel tobb van ezen az oldalon, mint a balon. - Amit nem igazan tudom, hogy mire hasznalhatott az eredeti logika, mert a DH200-nal az oldalak nem egymashoz, hanem egy Interface Box-hoz voltak kapcsolva. Azt gondoltam, hogy ha azon amugy is van 2 kulon bemenet, akkor nincs nagyon ertelme plusszban megkulonboztetni az oldalakat, mert hogy melyiket hova dugom, ugyis egyertelmuve tenne. Bar ebben az esetben a ket Pod-nak nem tul sok mindent kellett volna csinalniuk. A LED-ek kapcsolgatasara szerintem meg lett volna olcsobb megoldas is.
No, mindegy. Ha lesz lehetosegem, akkor belekukkantok abba a firmware-be! :K

Gender of electrical connectors is defined by the pins.

(#32) Domonkos válasza Domonkos (#31) üzenetére


Domonkos
Ármester

Kozben kaptam kolcson egy Teensy++ 2.0-t, amig az enyem meg nem erkezik - innen is koszi! :R - szoval hamarosan elkezdhetjuk a projekt izgalmasabb reszet. :))

A hardvert igazabol mar majdnem felterkepeztuk - legalabbis azokat a reszeket, amik a minimum hasznalhatosaghoz szuksegesek lesznek - szoval nincs akadalya, hogy a Teensy-t bepattintsuk az Intel volt helyere beforrasztott socket-be es irjunk ra valami firmware-t.
Vagyis de.
A Teensy labkiosztasat elnezve, az 1-es labon GND van. Az nem annyira jo, mert a DH200-on ott tudnank az egyik oszlopot olvasni. Jobb lenne, hogyha azt valahogy at tudnank vinni egy masik labra, ami szabad.

Na, de hogy? :F

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#33) Domonkos válasza Domonkos (#32) üzenetére


Domonkos
Ármester

Mondjuk igy.

A Teensy-n az elso GND labat kihajlitottam es egy ujabb socket-tel az E port 6-os labat atvittem a helyere.
>inb4 Nem lesz ez egy extra antenna?
De. - igazabol minden az - De max. ~14kHz-en, amin ez jelet fog tovabbitani, ugy nem fogok vele foglalkozni.

Amugy barmi mas nem hasznalt labat is valaszthattunk volna, az E6 megis kezenfekvo volt, mert az az Intel-en a VPP, amire itt biztos nem lesz szuksegunk.
A socket-en azt a labat szinten kihajtottam oldalra, hogy ne zavarhasson be.

Ha ezeket mind beraktuk a helyukre, akkor holnap mar a szoftver resze johet. :))

Gender of electrical connectors is defined by the pins.

(#34) Phülöp válasza Domonkos (#33) üzenetére


Phülöp
addikt

Frappáns.

A Bretagne-félsziget meredek ormai alatt Otthont találnak kóbor csikóhalak. /Mesterem

(#35) Domonkos válasza Domonkos (#33) üzenetére


Domonkos
Ármester

These panels may then be attached to the sides of your computer monitor.

Na jo; akkor szoftver.
Szoval az egyik oka, hogy a Teensy++ 2.0 lett a kivalasztott, az az, hogy szinte majdnem teljesen pin-kompatibilis az eredeti 8051-el, a masik, hogy a gyarto honlapjan az 5 elerheto peldaprogram kozul az egyik az pont egy billentyuzetes.*

Szoval ha a Teensy-s peldaprogramot letoltottuk, akkor csak par tovabbi szoftverre es konyvtarra lesz szuksegunk. A GNU szoftvergyujtemenybol ezeket mind kedvezo licensz alatt szerezhetjuk be. A gcc, binutils es glibc AVR-es valtozataira lesz szuksegunk az Intel :B .hex file eloallitasara, amit a szinten GPL licenszu Teensy Loader-el juttathatunk fel az eszkozre.

A peldaprogramhoz kapott makefile azt sugallja, hogy a forditas is rettenet egyszeru lesz, bar mielott ezt megtennenk, mar most erdemes lehet 2 dolgot atirni. Az egyik a TARGET, hogy ne example* legyen a file-ok neve, illetve az MCU, mert az meg kulonbozik attol, ami a ++ 2.0-ban van.
Innen pedig egyszeru:
make

Es bumm!
7 hiba es 1 figyelmeztetes. :))

Ezek szerencsere egyaltalan nem nehezen javithato gondok. A figyelmeztetest azt egy nem hasznalt valtozo miatt kaptuk, a 7 hibat pedig azert, mert az ujabb fordito mindenkepp const-qualified valtozokat akar a programmemoriaba helyezett "valtozokhoz"...
warning: unused variable ‘t’ [-Wunused-variable]
error: variable ‘device_descriptor’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
...

Fair.
7 const kulcsszo beillesztese es a nem hasznalt valtozo kitorlese utan minden szepen fordul.

*Bar tudom, hogy nemreg QMK altal is szupportalt billentyuzet lett a Pro 2 - es hogy azt kb. 5 sor atirasaval valoszinuleg mukodokepesse lehetne ezen a billentyuzeten is tenni - a projekt egy ideje nem tetszik. Amilyen iranyba megy es amilyen modon hozzak meg a fontosabb donteseket en inkabb nem veszek reszt benne. De a kodjuk core resze az biztosan az egyik legjobb forrasa a billentyuzetes logika helyes implementacioinak.

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#36) Domonkos válasza Domonkos (#35) üzenetére


Domonkos
Ármester

Instead of making your fingers move to the keys, they (the hand units) bring the keys to your fingers.

Szoval miutan a make vegzett, tobbek kozt egy datahand.hex file-al lettunk gazdagabbak. A Teensy Loader-nek ez lesz az inputja.
Ha a Teensy-t csatlakoztatjuk a gephez, mikozben nyomva tartjuk rajta az (egyetlen) reset-re kotott gombot, akkor az Program modban indul. Ekkor "varja" az uj programot.*
Egy teensy_loader_cli --mcu=TEENSY2PP -w datahand.hex kiadasaval pedig oda is adhatjuk neki.
A loader automatikusan, az iras vegeztevel ujra is inditja a mikrovezerlot, ami a programnak megfeleloen ~10 masodperc inaktivitas utan "ut" egy-egy space-t.
Ha pedig a port B-n vagy D-n levo labait egy vezetekkel a foldre huzom, akkor a labnak megfelelo billentyut.

Szuper! Mar nagyon kozel vagyunk! :))

Bar Program modba ugrasztani csatlakoztatas utan is barmikor lehet, elso flash-eleskor a kolcson kapott eszkozt azert erdemes ovatosabban kezelni. :B

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#37) Domonkos válasza Domonkos (#36) üzenetére


Domonkos
Ármester

Using the DataHand System is Good for You

A belepesi pont a main() fuggveny lesz.
A belseje ennek igencsak egyszeru, lenyegeben ez csak a peldaprogram egy kicsit strukturaltabban es a timer nelkul:

int
main(void)
{
CLKPR = 0x80, CLKPR = 0;

init_ports();

usb_init();
while (!usb_configured()) {
const double freq_ms = 111;

set_led(NAP_LED, true);
_delay_ms(freq_ms);
set_led(NAP_LED, false);
_delay_ms(freq_ms);
}

greet_user();
run();
}

Az orajelet erdemes a legelejen lerendezni. Ezt a prescaler allitasaval tudjuk megtenni. 16MHz-et kerunk.
Utana a port-okat erdemes egybol inicializalni. Bar ezt is csak egyszer kell megtenni, a kod konnyebben lesz ertheto ha azt egy kulon fuggvenybe szervezzuk ki.
Utana az USB kapcsolatot lehet kiepiteni. Itt mi tul sokat nem rakunk az egeszhez, a peldaprogramhoz kapott konyvtarbol hivogatunk 2 fuggvenyt, amig a kapcsolat ki nem epul. Annyi extra van csak az egeszben, hogy en szeretem latni, hogy eppen a folyamat melyik statuszban van, es mivel elegg kezenfekvonek talaltam erre a feladatra a billentyuzet egyik LED-jet villogtatni, igy amig az USB-re varunk, addig a NAP LED fog villogni ~4.5Hz-en. A kedvenc frekvenciamon. :)
Utana udvozoljuk a juzert a billentyuzet kepessegeinek megfeleloen. Ez a fuggveny egyebkent arra is jo lesz, hogy meg egy napi kontentet adjon a blognak, ha a csomagjaim tovabb kesnek.
Legvegul pedig belepunk a run() fuggvenybe, ami az egesz logikat fogja keretezni. Ez a fuggveny nem ter vissza, addig fut, amig az eszkozt ki nem huzzuk, vagy a Reset gombot meg nem nyomjuk. Ez lesz felelos a tovabbi feladatokert.
Egyszeru. :K

Extra info a tovabbiakhoz:
Bar a kod lenyegi resze az ide mind be lesz masolva, a boilerplate es trivialis dolgokat nem fogom mind kiirni. Ha valakinek megis kell, akkor azokat kulon kerdesre be tudom masolni, de szeretnem ha a blognak ez a resze is konnyen ertheto tudna maradni.
Szoval a kodnak nem feltetlen celja lesz az, hogy "jo" legyen. Elsodlegesen csupan annyi, hogy feltamassza a billencset es hogy jo alapja legyen ha kesobb tovabb szeretnem majd fejleszteni.
A sebesseg, meret, fogyasztas kibalanszolasa az olvaso feladata marad. ;)

Ellenben a kerdesekre a meglevo kodhoz nyitott vagyok!
Esetleg ha van "feature-request", akkor azokat is megfontolom a meg meg nem irt reszekhez, de ha nem lesznek az sem baj. A blog vegere egy 6KRO firmware azert el fog keszulni. :K

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#38) Domonkos válasza Domonkos (#37) üzenetére


Domonkos
Ármester

This reduction of finger workload can boost your productivity.

A portok inicializalasa egyszeru:

static void
init_ports(void)
{
DDRB = 0b01111111;
PORTB = 0b10000000;
DDRC = 0b11111111;
PORTC = 0b00000000;
DDRD = 0b11111111;
PORTD = 0b00000000;
DDRE = 0b10111111;
PORTE = 0b01000000;
DDRF = 0b11111111;
PORTF = 0b00000000;
}

2 dolgot kell megtenni az osszes portnal:
- Beallitani az "iranyat", hogy input vagy output
- Illetve az "allapotat"
-- Kimeneti iranynal a 0 az GND-kozeli feszultsegre kapcsolja a labat, az 1 pedig VCC-kozelire
-- Bemeneti iranynal pedig a 0 az "normal" mukodest eredmenyez, az 1 pedig egy beepitett felhuzo ellenallast kapcsol be.

Elobbire a DDR_ valtozok, utobbira a PORT_ "valtozok" hasznalhatok. A portokon talalhato 8 I/O pin-t egyszerre lehet beallitani, kulon-kulon nem; vagyis de, de ahhoz egy kis bitmagiat kell hasznalni. Itt meg nem, de kesobb majd fogunk egy keveset. :K

Hogy honnet tudjuk, hogy mit mire kell kapcsolni?
A pin-eknel, amiket a korabbi napokon kimertunk, ott egyertelmu.
A nem hasznaltak iranyat pedig en szeretem kimenetire es alacsony logikai ertekure allitani, mert amellett, hogy a fogyasztasra is jo hatassal van, a PCB-t sem cuck-olja tovabb. :K

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#39) Domonkos válasza Domonkos (#38) üzenetére


Domonkos
Ármester

Step 1. Power down your computer.

A run() fuggveny egyszeru:

static void
run(void)
{
for (;;) {
read_keyboard();
process_keys();
send_updates();
}
}

Ahogy azt a main() fuggveny targyalasanal emlitettem ennek nem kell visszaternie. A for ciklus kontroll kifejezeset ezert uresen is hagyhatjuk.
Egyebkent meg 3 dolgot kell ismetelgetni:
- Kideriteni, hogy mely billentyuk vannak lenyomva
- Hozza kell rendelni az epp lenyomott (vagy felengedett) billentyukhoz a tenyleges billentyuzet-funkciokat
- Vegul tudatni a hoszttal, hogy mik is az esemenyek

Az eredeti kodban van egy 4. akcio is, egy szimpla 2ms-es varakozas. A komment szerint ez a szoftveres pergesmentesites miatt van. Bar ez az altalanos mikrokapcsoloknal tenyleg szukseges, nekunk megsem fog kelleni, mert a Schmitt trigger-en keresztul olvasott optikai kapcsolok nem peregnek. Egyebkent ennek lennenek szofisztikaltabb implementacioi is, de egy eredetileg breadboard-ra epitett billentyuzetnek nem nagyon kell semmi tobb.
Szoval en ezt most lehagyom. :K

Gender of electrical connectors is defined by the pins.

(#40) Domonkos válasza Domonkos (#39) üzenetére


Domonkos
Ármester

Learning the DATAHAND SYSTEM Makes You a Winner!

A billentyuk allapotat beolvasni egyszeru:

static void
read_keyboard(void)
{
keys_down = 0;

for (uint8_t row = 0; row < N_ROWS; row++) {
const uint8_t b = read_row(row);
const uint64_t b64 = b;
const uint8_t offset = row * N_COLUMNS;

keys_down |= b64 << offset;
}
}

Ennek a fuggvenynek a celja az az, hogy a keys_down valtozo erteket egy olyan allapotba hozza, ami a billentyuzet billentyuinek tenyleges allapotanak megfeleltetheto. A kesobb meghivott fuggvenyek ennek a valtozonak az erteke alapjan fognak mukodni.

A billentyuk azok vagy lenyomva, vagy felengedve vannak - egyszerre a ket allapot egyikeben - szoval azok reprezentalasahoz egy-egy bit is elegendo.
Korabban kideritettuk, hogy a billentyuzet matrixa az 14x2-es mindket oldalon. - bar oldalankent csak 26 billentyuvel - Hogy ezt mind beolvassuk, vegig kell iteralnunk az osszes soron, es soronkent ket-ket billentyut (vagy 4-et, ha a ket felet egyszerre olvassuk) kell elraknunk a valtozoba.
Mivel egy sor beolvasasa onmagaban egy kulon lepesnek tekintheto, ezert azt kiszerveztem egy kulon fuggvenybe.
Szoval ha megelolegezzuk, hogy a read_row() fuggveny helyes erteket ad vissza, akkor nincs mas dolgunk, mint azt a billentyuzet poziciojanak megfelelo helyre "tolni" a keys_down valtozoba.
A fenti kod pont ezt teszi.

Magat a valtozot pedig definialhatjuk a megfelelo scope-ban mondjuk igy:
typedef uint64_t kb_state_t;
kb_state_t keys_down = 0;
#if ( N_KEYS > 64 )
#error "Too many keys on the keyboard"
#endif

Kenyelmes, mert nincs 64 billentyunel tobb billentyunk. Mondjuk kinek is kellhet annyi? :U

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#41) Domonkos válasza Domonkos (#40) üzenetére


Domonkos
Ármester

Warning! Typing on your DataHand System is much faster than it appears!

Egy sort beolvasni egyszeru:

static uint8_t
read_row(const uint8_t row)
{
select_row(row);
_delay_us((double)ROW_SWITCH_TIME_us);

return read_keys();
}

Csak ki kell valasztanunk a multiplexeren a megfelelo csatornat, varni egy picit amig a hardver propagal, majd kiolvasni az ertekeket.
A fenti kod pont ezt csinalja.
Hogy pontosan mennyit kell varni a ket akcio kozt, azt leginkabb majd kiserletezgetessel fogjuk csak kideriteni. Bar a multiplexer es az inverter ertekeit a datasheet-jeikbol konnyen kiolvashatjuk, a fotoellenallas pontos tipusanak ismeretenek hianyaban, ott csak tippelni tudunk. Bar tipikus ertekeket ismerek, jelenleg inkabb hajlok arra, hogy egy boven hosszu varakozast allitsak be, minthogy azert szivjak majd kesobb, mert tul keves idot hagyok a propagaciora...

Szoval amig nem latom a dolgot mukodni, addig:
#define ROW_SWITCH_TIME_us 1000

Es ha majd kesobb hianyzik a sebessegbol, akkor ezt lehet csokkenteni. :K

Gender of electrical connectors is defined by the pins.

(#42) Phülöp válasza Domonkos (#41) üzenetére


Phülöp
addikt

ez az 1000-es érték nekem is szinte mindig a biztonsági zónát jelenti, bár nálam tényleges, fizikai sebesség
ha ezt választom, nagy baj nem lehet :DDD

[ Szerkesztve ]

A Bretagne-félsziget meredek ormai alatt Otthont találnak kóbor csikóhalak. /Mesterem

(#43) Domonkos válasza Phülöp (#42) üzenetére


Domonkos
Ármester

Melyik egyseget hasznalod a sebessegekhez? :F

Gender of electrical connectors is defined by the pins.

(#44) Domonkos válasza Domonkos (#41) üzenetére


Domonkos
Ármester

Yes!

A tegnapi kod megelolegezte a select_row() es a read_keys() helyes mukodeset a sajat helyes mukodesehez. Ma ezek kozul kellene egyet megirnunk. Kis szerencsevel ezek is egyszeruek lesznek.
A sor kivalasztasat implementalhatjuk mondjuk igy:

static void
select_row(const uint8_t row)
{
uint8_t d = PORTD;

d &= 0b11110000;
d |= row;
PORTD = d;
}

A row valtozo a read_keyboard() fuggvenybol jon. Ez a Teensy-n a jelenlegi setup-ban egy kettes komplemens abrazolasu szam a [0, N_ROWS) tartomanybol. Es ez pont alkalmassa teszi arra, hogy egybol a multiplexer inputjaira irjuk. :))
A fenti kod azert ennyire egyszeru, mert az inputok azok a mikrokontroller ugyanazon portjanak 4 egymas melletti labara vannak kotve. Ez egy nagyon kedves gesztus volt a hardver eredeti tervezojetol. Innen is koszi! :R

Ha az elrendezes egy kicsit kuszabb volna, akkor a biteket egyenkent kellene ide-oda irjuk. Ami meg szinten nem a vilag veget jelentene, de a kodot is egy kicsit osszekuszalna.

Kis erdkesseg:
A 0-13 tartomanyhoz egyebkent talalhato egy nagyon jo Gray szekvencia. Szoval ha valaki egy kicsit szerencsetlenebb labkiosztassal talalja magat szemben - Professional 2 - akkor ajanlom ennek a hasznalatat. - viszont mivel ez a blog a DH200-rol szol, igy annak az algoritmusnak az implementalasa az olvaso feladata marad. ;)

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#45) Phülöp válasza Domonkos (#43) üzenetére


Phülöp
addikt

Az én szakmámban a sebesség mértékegysége m/min, kerületi sebesség forgástesten, annak a fizikai kivetülése (átmérő függvényében) a fordulatszám.

[ Szerkesztve ]

A Bretagne-félsziget meredek ormai alatt Otthont találnak kóbor csikóhalak. /Mesterem

(#46) Domonkos válasza Phülöp (#45) üzenetére


Domonkos
Ármester

hmmm... Azert az 1000m/min -t azt nem tartanam lassunak, akarmirol is legyen szo :D Milyenek a biztonsagi zonan kivuli sebessegek? :B

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#47) Domonkos válasza Domonkos (#44) üzenetére


Domonkos
Ármester

💾🖐️ > 🎹

Vegul mar csak egy fuggveny kell, hogy az osszes billentyu allapotat megkapjuk. Ez a fuggveny szerencsere egyszeru:

static uint8_t
read_keys(void)
{
uint8_t b;
uint8_t e;
uint8_t s;

b = PINB;
b &= 0b10000000;
b >>= 7;

e = PINE;
e &= 0b01000000;
e >>= 6;

s = b | (e << 1);
s <<= 2;

return s;
}

Mivel ezen a ponton a multiplexer mar a jo sorra van allitva es a propagaciora is vartunk eleget, igy itt mar nincs mas dolgunk, mint kiolvasni az adott soron az osszes billentyut, majd azt visszajuttatni a hivonak. A fenti kod pont ezt teszi.
Bar trukkosen nezhet ki, a fuggveny nem csinal mast, mint a bal oldali hand unit 2 billentyujet olvassa ki a megfelelo portok megfelelo labairol es azt az s valtozon keresztul, annak a 2-3. bitjein visszajuttatja a hivonak. Ha a hardver ott tartana, hogy a ket felet ossze tudtuk kapcsolni, akkor itt kellene kiszednunk a jobb fel ertekeit is, amit a 0-1 bitekben tarolhatnank. Amig ez nincs meg, addig az a ket bit fixen 0 lesz, es a firmware ugy fogja kezelni, hogy azokat a billentyuket sosem nyomtuk le.
A read_keys() es a read_keyboard() kozott iratlan egyezmeny, hogy a billentyuk allapotat azt a legalso 4 bit-en cserelik ki egymas kozt. :K

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#48) Phülöp válasza Domonkos (#46) üzenetére


Phülöp
addikt

csak a fordualtszám 1000 (ami a kerületi sebességből adódik), nem sietünk sehova

/de ez a topik nem rólam szól, nyomassad te a kontentot

[ Szerkesztve ]

A Bretagne-félsziget meredek ormai alatt Otthont találnak kóbor csikóhalak. /Mesterem

(#49) Domonkos válasza Domonkos (#47) üzenetére


Domonkos
Ármester

NAPster

NAPster, NORMan tesoja a bal oldali hand unit-on lakik es a szamokert es az irasjelekert felel. A dino-tesojatol onnan lehet megkulonboztetni, hogy neki piros a szeme es legtobbszor balra nez.

Szerk: Most olvasom, hogy NORMan tesoja az igazabol a funkciokert felel, tovabba nem is NAPsternek hivjak, hanem valami F-betus neve van. :(

[ Szerkesztve ]

Gender of electrical connectors is defined by the pins.

(#50) Domonkos válasza Domonkos (#49) üzenetére


Domonkos
Ármester

Egyebkent tudjatok, hogy a dinok miert tudnak olyan konnyen kikukucskalni azokonn a szuk reseken?
Azert, mert azok egyaltalan nem szuk resek.
Nem tudom, hogy ez milyen mertekben lehet a gyari allapota a tenyertamasznak, de ha egy kicsit kozelebbrol nezzuk a billencs egyeb reszeit - foleg a muanyag darabokat - akkor azert talalni meg hasonlo megoldasokat. Noha, a tobbi egy kicsit talan szofisztikaltabb.

Ha tovabb kesik a postam, akkor majd azokrol is rakok be kepeket. :K

Gender of electrical connectors is defined by the pins.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.