[ bogdan.kecman @ 13.06.2020. 18:17 ] @
uspeo sam da uhvatim ovih dana nesto praznog hoda i napravio sam sebi mehanicki deo za novu tastaturu posto me vecina ovih koje su dostupne prilicno iritira (i iritira moje bolesne ruke) ... stoji mi kesa puna cherry mx blue tastera vec 3 godine na stolu (preko 300eur je 100 original tastera koliko treba za tastaturu) i evo blizi se ceo mehanicki build kraju... sad treba da vidim sta cu za elektroniku ... vecina ekipe koja se bavi ovakvim projektima koristi polutadirani dev board (teensy) sa usb-om koji glumi tastaturu i skenira tastaturu kao matricu.. to je za "normalnu" upotrebu ok ali posto ja igram i igrice i kad vec pravim sam svoju tastaturu probao bi da resim problem ghostinga

Citat:

We've already seen how pressing multiple keys in the same row may disturb the readings, but that problem can already be considered solved. Now let's see what happens if multiple keys are pressed both in the same row and in the same column.

In the picture on the right three switches were pressed simultaneously. Two of them share column 2 and two row m. That means one of those three pressed switches shares both its row and its column with some other pressed switch. This situation is commonly referred to as ghosting. Suppose we're currently reading column 1 (so it's output pin at the bottom is pulled down to ground - "0" state). Because of this characteristic setting of pressed switches, even though the remaining switch (top-left in the picture) is not pressed, the state of the R2 line is "0", because it is pulled down by C1 (currently at "0") through all the 3 pressed switches. This causes the keyboard controller to read the state of that key as "pressed" no matter if it's actually pressed or not. The word ghosting comes from the fact that some key combinations pressed together cause such "ghost" keypresses to appear, even though the keys are not physically pressed.



e sad, navodno sa mnogo dioda ovo bi trebalo da bude reseno



ali ja sam sad nesto skeptican i razmisljam se da li da idem na ovu varijantu, sa matricom i mnogo dioda, ili da uzmem lepo mcu sa 100 io pinova i citam taster po taster i a u pm .. pcb mora pravim pa mora pravim (ili vucem zice videcemo), mcu dal ce kosta 3$ ili 5$ ne pravi nikakvu razliku (dadoh vec 300+eur samo za tastere) ... pa reko da pitam kolege sta misle o celoj prici ? dal neko ima bolju ideju?

fora je sto bih ja zeleo NKRO (dakle bilo koju kolicinu tastera pritisnutih u isto vreme da mogu da budu detektovani).

[ PedjaZ @ 14.06.2020. 20:39 ] @
A da malo pogledas kako je to kod klavijatura reseno?
Bolje od toga ti ne bi trebalo.




...dodatak....

Sto ne ukrades elektroniku sa vec neke postojece tastature?
[ goran_68 @ 15.06.2020. 09:52 ] @
Baci pogled na:

https://github.com/tmk/tmk_keyboard
https://github.com/qmk/qmk_firmware
[ bogdan.kecman @ 15.06.2020. 11:53 ] @
Citat:
PedjaZ: A da malo pogledas kako je to kod klavijatura reseno?
Bolje od toga ti ne bi trebalo.

prekomplikovano (i preskupo) kvalitetne klavijature vuku po 2 signala sa svakog tastera da bi merile brzinu prolaza od jednog do drugog davaca i na taj nacin odredile koliko si "jako" (tj brzo) pritisnuo taster, a one extra kvalitetne imaju posebne davace i analogni ulaz za svaki taster... ko sto rekoh, to mi ne treba .. ima razlog zasto to toliko kosta



Citat:
PedjaZ:
Sto ne ukrades elektroniku sa vec neke postojece tastature?


zato sto "postojece" tastature koriste mesh i nisu ni za .!. ... ove jeftine mogu 2-3 tastera max da podnesu i imaju ogroman ghosting a one gejmerske "kao kvalitetne" mogu da podnesu po 4-5 tastera i nemaju ghosting .. sve u svemu nije zadovoljavajuce resenje, hocu bolje ... e sad one "najbolje" tastature kostaju po 400+ eura, da ih kupim da bi uzo elektroniku je budalastina, bolje napravim svoju :D
[ bogdan.kecman @ 15.06.2020. 11:58 ] @


gledam i to i neke druge projekte ali svi su uglavnom prilicno okrenuti nekim drugim stvarima i imaju mali KRO .. vecina ima 3KRO eventualno 4KRO ...

krenuo sam da pisem firmware from scratch, gadjam 20KRO (kontam to su 4 ruke istovremeno na tastaturi :D ), koristim STM32F429 .. videcemo .. za pocetak mehanika pocinje da dobija oblik


[ jozimir @ 15.06.2020. 14:26 ] @

Napravi matricu na malo drugačiji način.

Uzmeš recimo 8 x SN74LS647 - 16. bitni sift registar, paralelni ulaz- serijski izlaz.
Na svaki ulaz vežeš po jedan taster i pulup otpornik.
Clock, clear i load za šift registre veži zajedno.

Izlaze iz ovih šift registra vežeš redom na ulaze porta mikrokontrolera (PortA_0 ... PortA_7).

Ulaze šift registra posmatraj kao kolone, a podatke na portu kao redove.

Iz šift registra čitaš 'kolonu' po 'kolonu' i analiziraš po 'redovima' šta je pritisnuto.

Svaki taster ti je nezavisan i nemaš 'duhova'.

Nadan se da si shvatio ideju, ako ne reci pa da nacrtam.

Ovo bi bili registri koji ulaze u igru:
SN74LS647 parallel-in/ serial-out 16-bit shift register, synchronous load
SN74ALS165 parallel-in/ serial-out 8-bit shift register, asynchronous load
CD4014B parallel-in/ serial-out 8-bit shift register, synchronous load
[ bogdan.kecman @ 15.06.2020. 16:38 ] @
Citat:
jozimir:
Uzmeš recimo 8 x SN74LS647


jasno je na sta mislis ali ne kontam sta dobijam time?
umesto jednog imam 9 cipova? veca potrosnja struje, sporije skeniranje? veca cena uredjaja, da ne spominjem da 74LS647 nema nigde na lageru... a neki hct, lcx i slicno nisam video ni da su pravili ... teoretski bi mogao da stavim jedan cpld i da u njemu simuliram 8x16bita paralel in serial out ali cemu razlika izmedju 64 pina mcu i 144 pina mcu je par dolara manja nego da dodajem 74...

STM32F429IGT6 kosta 5 evra ima 176 pinova :D ... vozicu sve direkt na njega... razmisljam se samo dal da uzmem 2 komada pa da stavim jedan levo jedan desno i spojim samo sa 4 zice spi ili da guram sve sa jednim cipom..
[ bogdan.kecman @ 15.06.2020. 19:10 ] @
ovako izgleda 99.9% sema mehanickih tastatura .. dal se koristi i2c port expander ili spi port expander, dal su na jednom ili na dva, dal je teensy ili neki mbed ili .. realno nebitno ali gist je otprilike ova matrica ...

ali iz nekog razloga ja ne verujem u tu matricu, da me ... ako sam siguran zasto ne verujem a realno ako bi isao sa ovom matricom imam do jaja firmware gotov ne moram ja da se cimam uopste oko njega, na tri klika sve gotovo .. uh..

[ goran_68 @ 15.06.2020. 19:50 ] @
Što bi gurao dva STM? Komplikuješ sebi softver. Ja bih pre išao na jedan. Malo bi linije sa tastera do njega bile duže ali pošto ti ne skeniraš neku matricu nego ide jedan taster jedan pin onda ti je hardver "miran". Samo debouncing i vozi.
[ mikikg @ 15.06.2020. 20:26 ] @
Ja dajem glas za dva F429 i direktno taster na pin, kakve matrice, izmedju spojen JTAG na red i jedan kanal za sinhronizaciju i posle u software radi sta hoces :)
Odavno spominjem ideje da se MCU koristi umesto expandera, pa de ces lepse od toga ...
F429 je bas ono overkill ali kakve veze ima, jedino sto malo vise struje trosi tj zavisi da li je zicana USB ili neke bezicna tastatura pa da se vodi racuna o potrosnji i baterijama.
Ja sam cak za to da uradi i opciono R/C filter na svakoj linij i to da odradi jednom i u zivotu coveku ne treba nista vise kada je vec krenuo to da napravi, to ima da radi ko sat :)

PS: Generalno morace da filtrira linije, da ne pocne tastatura da kucka sama kad prikljuci tamo neke 3d "zujalice" :)
[ mikikg @ 15.06.2020. 20:58 ] @
Citat:
goran_68:
Što bi gurao dva STM? Komplikuješ sebi softver.


Hehe, Bogdanu pricas da komplikuje software? :) Pa njemu treba vise vremena da nadje programator za taj kontroler u svom labu nego vremena da napise software za tastaturu :) Koliko je samo vremena uzelo ono crtanje i stampanje na 3D printeru, SW je smesan ...
[ bogdan.kecman @ 15.06.2020. 20:59 ] @
ideja da stavim 429 je zato sto njega imam :) ... zasto dva komada, pa levi i desni deo tastature su odvojeni, ne vuce mi se bas 50 zica izmedju dva dela, previse prostora za problem u buducnosti...

no, evo drndam se vec 2 sata sa ovom matricom koju svi koriste, kontam nemoguce da su bas svi potpuno ludi da svi koriste matricu obzirom da znamo da su cipovi sami po sebi bedza ... i realno, ova matrica radi, ja ne vidim kako matrica moze da ima problem... bice da sam se ja previse smorio onda davno kada sam pravio tu matricu bez dioda da mi sad frka ali realno sa diodama ovo radi 1/1 u matrici ..

u tom slucaju vec ima smisla da idem sa nekim od vec koristenih resenja jer nema potrebe da gubim vreme na pisanje software-a .. ovaj projekat mi stoji vec duze od godinu dana (ja mislim da su ovi tasteri stigli pre vise od 2 godine) ne bi da odlazem duze nego sto moram :D ... ali evo cak sam, da proverim svoje razmisljanje, instalirao proteus i simulirao tastaturu i def nema kuda da prodje problem :D tako da .. odo sad da vidim sta imam od ovih manje velikih cipova :D ...

sto se tice potrosnje, nije problem, na kablu sam, ja radim 12+ sati dnevno na tastaturi, nikakve baterije ne dolaze u obzir
[ bogdan.kecman @ 15.06.2020. 21:07 ] @

Citat:
goran_68:
Što bi gurao dva STM? Komplikuješ sebi softver.


iskreno, manje mi je problem da pisem za STM nego za neki atmel ili pic .. batalio sam ove 8/16 bit kontrolere skroz i razdelio sve cipove sto sam imao, ostalo mi je nesto 12F508 posto je zgodno to imati ono kosta manje od ne555 a radi vise stvari :D .. za sve ostalo stm32... bolji kompajler, vise alata, brze se radi, kosta ko grisine...

Citat:
mikikg:
Hehe, Bogdanu pricas da komplikuje software? :) Pa njemu treba vise vremena da nadje programator za taj kontroler u svom labu nego vremena da napise software za tastaturu :) Koliko je samo vremena uzelo ono crtanje i stampanje na 3D printeru, SW je smesan ...


radim vec par godina na 2 velika arm projekta tako da mi je 2 stlink-a non stop na stolu + segger j-link :D tako da potraznja nije problem... pazi ja sam app za tastaturu napisao za nekih 15tak minuta, osnovni, ono da se enumerise kao hid, prijavi kao tastatura, skenira pinove i u odnosu na pin sajle taster kompu .. to je ono bukvalno 15min, duze mi je trebalo da podesim konfiguraciju za kristal nego da nacukam sw :D .. to jeste, ali realno, ova tastatura nije probana, ne znam dal ce mi pasuje raspored, nisam uradio debouncing, nisam uradio nikakav test ozbiljniji kako se ponasa, imam limit na 6 tastera istovremeno (default keyboard deskriptor) etc etc ... ignorisem podatke koje mi salje komp (salje ti ono sta od ledica da upalis i slicno) etc etc... ima tu jos min 2-3 sata posla da se to uoblici ali je smor svaka promena sve traje + nema nista od "fancy" funkcija... ima ljudi pisu fw za tastature godinama, napucali su pun k. opcija i fancy feature-a, imaju graficki maper za tastere... sto da ne iskoristim ako mogu :D .. a lakse onda njihov fw da prilagodim sebi nego sve ispocetka ... videcemo
[ PedjaZ @ 15.06.2020. 22:14 ] @
Moja zamerka je da na mesto slova "Y" treba da bude "Z" i da ti fali ĐŽĆ...
Pri kupovini laptopa i tastatura, to je prvo sto pitam.
:)

Bogdane, postojale su klavijature i pre ovih komplikovanih.
Opet dovoljno brze i u stanju da pohvataju deset prstiju.


Mada, odmakao si daleko sa ovim svojim, a i deluje jednostavnije.
[ bogdan.kecman @ 16.06.2020. 04:35 ] @
Citat:
PedjaZ: Moja zamerka je da na mesto slova "Y" treba da bude "Z" i da ti fali ĐŽĆ...


raspored nije finalni ali SIGURNO na sredini nece biti Z, to je nemacki raspored koji je po meni retardiran

ĐŽĆ se na mojoj tastaturi koristi gotovo nikad ... ja srpski pisem ponekad na FB, ovde i ono kad narucujem vodu mailom iz lafantane tako da..
no u svakom slucaju finalne kapice nece imati nikakve oznake na sebi .. ovo sam ja sada za test stampao kapice da vidim koji profili kapica mi odgovaraju najbolje, testiram oem, sa i dsa .. ovo na slici u sa profili red 3, videcemo jos uradio sam i dsa 3,4,5,6 redove, uradio sam par oem ... videcemo, deluje mi da ce sa(3) profili biti najbolji .. pa kad istestiram koji mi profili leze kupicu kapice necu koristiti ove 3d printane one su samo za test
[ goran_68 @ 16.06.2020. 14:00 ] @
A šta misliš, da li bi mogle da idu odvojeno dve tastature, leva i desna?
Svaka da ima svoj STM32F429.
[ bogdan.kecman @ 16.06.2020. 14:11 ] @
naravno da bi moglo ali glupo da spajam sa 2 usb-a, lakse da 2 arm-a
pricaju preko spi :) .. vec ide preko usb-a externi numeric pad
[ Predrag Supurovic @ 16.06.2020. 14:38 ] @
Možda da probaš sa optornicima? Nešto kao osam tastera namestiš da spajaju 8 otpornika pa čitaš analogno vrednosti optornika.
Tako bi jednim (analognim) očitavanjem mogao da znaš stanja svih 8 tastera (uz dobar izbor otpornika).
[ bogdan.kecman @ 16.06.2020. 14:41 ] @
to koristim kad imam manjak pinova da citam one 4x4 tastature na malim
projektima, ali to je sporo i nesigurno za mehanicku tastaturu... plus
broj pinova nije problematican, ne moram da stedim pinove
[ Zlatni_bg @ 16.06.2020. 15:19 ] @
6KRO ti je dovoljan, veruj mi. Ja imam HyperX alloy sa NKRO, ali se pali na posebnu neku kombinaciju tastera, nikad ga nisam palio. Fizicki ne vidim nacin da pritisnem preko 6 tastera u isto vreme a ni potrebu u bilo kojoj primeni do sad.

Takodje, ako ces da cepas 1000Hz polling rate, em moras da pazis koji USB port koristis, da odrzavas USB3.0 vezu, itd, ne znam da li STM to moze?

I krajnje, znam da si ekstreman u svojim projektima, ali ja sam krenuo sa buildom 65% tastature iz zezanja, vrlo skupog zezanja i nemam vremena da je zavrsim, fali mi i ulje za cherry brown tastere, najvise za stabilizatore. Ono sto ima elektronika za takve stvari je prilicno "basic", tako da znam zasto si se odlucio za custom resenje, ali... ja sam prvo poceo sa moddovanjem postojece tastature, kasnije krenuo na pravljenje male tastature (bilo mi je bitno da ima strelice, posto je to noviji tip 65% drasticno je skuplje nazalost), video sam koja je zaj... i stavio na cekanje ceo projekat.

Igrice i blue bas tesko idu iz mog iskustva. Jedva sam i na brown navikao kad vozim auto recimo, bas mora da se drzi na "klackalici". Retardirano resenje koje sam nasao za to je da stavim red switcheve na strelice. Tesko je napraviti balans.
[ bogdan.kecman @ 16.06.2020. 15:45 ] @
Citat:
Zlatni_bg: 6KRO ti je dovoljan, veruj mi. Ja imam HyperX alloy sa NKRO, ali se pali na posebnu neku kombinaciju tastera, nikad ga nisam palio. Fizicki ne vidim nacin da pritisnem preko 6 tastera u isto vreme a ni potrebu u bilo kojoj primeni do sad.


HELL NO!!!

vidi, zavisi sta radis, dok programiram 4KRO mi je dovoljan!! (za one koji ne prate u KRO ne ulaze modifikatori dakle shift/ctrl/alt... samo "obicni" tasteri) ali brate dok se igram, uh, imam situacije da drzim levom 7-8 tastera i skidam desnu sa misa da stisnem jos koji... tako da.. treba :D ... po nekom testu koji sam radio 8KRO bi mi resio posao za 99.99% slucajeva ali kad vec budzim 8 onda cu nabudzim 20 isti mi djavo.

e sad, to je za igrice, a onda ima i drugih primera (npr sekvencer gde je 10tka potpuno ocekivana), razni simulatori..

fora je sto regularni hid report ima 8 pozicija, prva je kompozit svih modifier keys (bitmapa), druga je "reserved", i onda ima 6 pozicija za tastere (press ili depress) i zato je 6KRO standardan. "stari" standard, ili ako koristis boot mode je 4KRO jer ima 4 pozicije za tastere ... e sad, ako implementiram custom da bi imao preko 6 onda mi je isto jbg dal ce bude 8 ili 20 imam vise nego dovoljno memorije u ovom mcu... samo pitanje dal cu iskopam dovoljno usb dokumentacije da vidim kako se implementira ta prica i da li moram da imam poseban driver sa PC strane ili ne... ako bude moralo sa drajverom ostajem na 6KRO posto drajver necu pisem nema j...e teorije


Citat:
Zlatni_bg:
Takodje, ako ces da cepas 1000Hz polling rate, em moras da pazis koji USB port koristis, da odrzavas USB3.0 vezu, itd, ne znam da li STM to moze?


pulling rate i report rate su razliciti. koristim FS USB, cak necu ni HS da koristim (FS je 12MHz, HS je 48MHz) posto je to vise nego dovoljno za "report rate", a scan rate ce biti veliki zbog drugih stvari (bolji debouncing pod jedan)

Citat:
Zlatni_bg:
I krajnje, znam da si ekstreman u svojim projektima, ali ja sam krenuo sa buildom 65% tastature iz zezanja, vrlo skupog zezanja i nemam vremena da je zavrsim, fali mi i ulje za cherry brown tastere, najvise za stabilizatore. Ono sto ima elektronika za takve stvari je prilicno "basic", tako da znam zasto si se odlucio za custom resenje, ali... ja sam prvo poceo sa moddovanjem postojece tastature, kasnije krenuo na pravljenje male tastature (bilo mi je bitno da ima strelice, posto je to noviji tip 65% drasticno je skuplje nazalost), video sam koja je zaj... i stavio na cekanje ceo projekat.

Igrice i blue bas tesko idu iz mog iskustva. Jedva sam i na brown navikao kad vozim auto recimo, bas mora da se drzi na "klackalici". Retardirano resenje koje sam nasao za to je da stavim red switcheve na strelice. Tesko je napraviti balans.



pa vidi, napisah vec, ovaj projekat je vec preko 3 godine u procesu :D .. sad gledam istoriju, naruceni 26. aprin 2016 :D
pritom, "blue" je bila odluka drugara koji je inicijalno hteo njemu da pravim pa odustao, pa su ostali meni, ja nisam iskreno nikad uzeo onaj paket sa svim "bojama" da probam jedne po jedne ... tako da mi ostalo blue .. sad sam imao malo vremena da pustim ovo da se stampa, ugurao tastere, printno par profila (key2 lib ako nisi video, extremno je do jaja - https://github.com/rsheldiii/keyV2 ) .. pa reko da probam cisto dal ovaj konfig ima smisla (nisam ja dizajnirao oblik, to je dactyl - https://github.com/adereth/dactyl-keyboard ) posto je adereth napravio ovaj level iznad openscad-a moze relativno lako da se promeni dizajn, uglovi, raspored... pa onda reko aj pustim da vidim kako to pasuje ... posto iskreno, upropastise me ove tastature sve sa kojima radim, ima dobrih "tastera" na gejmerskim tastaturama ali ne mogu, krene mi trnu ruke posle sat vremena :( posle dan sam na inekcijama :( .. ovaj natural 4000 odradjuje posao ali je bas tezak.. blue deluje da nece umara... kako ce za igrice, videcemo, ja igram fps/frp tako da bi trebalo da nemam problema, evo ovih dana assassin creed malo .. ako se uvatim simulacija volim kvalitetan joystick / volan :) ne mogu ja to na tastaturi :)

e sad, za sada opet ovo ne trosi puno vremena, pustio da se stampa, nije da mora ga gledam, tasteri se brzo iznabadaju.. nije frka... e sad, ubio sam 2h oko citanja usb dokumentacije i nacukao program za ovaj arm da ono imam osnovni neki info kako to radi .. video sta drugi rade u jos jednom celom danu i jedno po dana potrosio da uopste iskopam koji mcu imam dostupan posto mi je radni prostor u potpunom haosu u poluselidbi jbg.. uzas.. i to je to .. da pisem sad ozbiljan fw nemam kad, plus sad opet krece frka (mora od necega se zavrsi ono renoviranje, preterao sam) tako da ce verovatno ovo sad opet na pauzu pa ... videcemo..
[ Zlatni_bg @ 16.06.2020. 16:39 ] @
Razumem te skroz. Da ne zalazim preterano u sw pricu jer si 101% jaci od mene, najvise me plasi da ono sto zelis neces moci da postignes bez custom drajvera sto ce biti nocna mora. Sve verovatno zavisi od fwa koji napises u mcu, ali ne znam kako da adekvatno zaobidjes HID compliant registrovanje a da stvarno sebi ne napravis pakao od zivota. Ono sto meni pada na pamet je da na hw nivou svedes latency na minimum i onda na racunaru da peglas sve to kroz daemon (procitaj dalje da vidis na sta mislim)? Tu je takodje upitan latency, ali... znam koji je pakao da predjes 6KRO. Generalno, predlog mi je "emulacija" tastature umesto fizickog detektovanja iste, cisto ideja. Znaci da uredjaj ne bude "tastatura", ali ono, tu dolazis do drugih problema, tipa UEFI ti nece biti dostupan i slicno. A mozes i da svakih 2x saljes razlicite podatke o pritisnutim tasterima u T*2? Ili zaista da koristis 2 MCU sa 6NKRO po jednom i imas 12NKRO. Generalno mozes da uzmes i 4 MCU i cepas na kolicinu fizickih uredjaja :D Taman mi sad pade na pamet da pre par dana pri klokovanju memorije UEFI izbaci gresku u overklokingu, i pisalo mi da imam 3 misa i 4 tastature zakacene...

A ako novac nije upitan, pazi, ove hyperx poput moje su prilicno jeftine sad, iz njih mozes da izvuces cherry switcheve i elektroniku pa da se igras sa tim. Ako postoji neki nacin da odradim benchmark kasnjenja i da li je stvarno polling na USBu i report rate 1000Hz, da odradimo i to. Ono sto sam siguran je da NKRO radi kako treba po testovima na netu koje sam gledao. Sad, kako to resavaju, bem li ga... sve u svemu tastatura je najjeftinija moguca a da nije kinez tipa redragon, i trebalo mi je vremena da se naviknem na "visoke" tastere i da ne lupam do kraja dugme kada ga pritiskam, ali kad sam se navikao, za 100eur vrednosti je banja. Nemam fatigue ni posle 10h+ kodiranja niti bilo kakvih posledica, samo mi je malo zamorno nekad prebacivanje sa laptopa na desktop zbog hoda tastera i sile pritiska. Takodje, imaj u vidu da blue ima i najvecu silu pritiska, i iako je razlika u 10 grama, oooo kad bi znao koliko i brown ume da nervira nekad sto mora jako da se pritisne.

Razmisljao sam da isprobam kailh silver, 1.1mm hod, i mislim 35g pritisak, ali ljudi kazu da bukvalno slucajno pritisnu taster nekad kad rukom predju preko tastature. A veruj mi, pola zamora od kucanja koji osetim posle duzeg perioda je zbog sile koja je potrebna da se taster pritisne.
[ Zurg @ 16.06.2020. 17:19 ] @
Zanimljiv projekat, samo oni štampani tasteri izgledaju užasno. Sa slike je očigledno da je temperatura beda bila previsoka, tako da tasteri liče na slonovo stopalo.
[ bogdan.kecman @ 16.06.2020. 17:49 ] @
Citat:
Zlatni_bg: najvise me plasi da ono sto zelis neces moci da postignes bez custom drajvera sto ce biti nocna mora. Sve verovatno zavisi od fwa koji napises u mcu


pazi ja sam do sada uvek terao CDC i jednom sam pravio mass storage ali to je ono "copy/paste" uz malo adaptacije iz primera tako da HID ja licno nikad nisam pravio... ovo mi je prvi put, nikad mi jbg nije trebalo ... e sad, u par desetina minuta sam napravio hid tastaturu... u osnovi report je 6 karaktera+status ovih modifikatora .. e sad, ja imam taj kod i pre nego krenem uopste da se drndam sa skeniranjem, mapiranjem i svim ostalim ja cu da vidim kako funkcionise malo dublje ta prica... ima 2 mgoucnosti
1. napravim 2 endpointa, oba su po tastatura, saljem report sa jednog pa sa drugog, dobijem 12KRO sto je dovoljno
2. napravim custom report!! sam hid spec je vrlo lose definisan ovde, boot je limitiran na 4 karaktera ali ovaj normalni keyboard hid enumerator postavlja koliko je velik report!!! i sad u default hid desckriptoru je tu setovana duzina 8 ali ako pogledam razliku u odnosu na boot koji je 2 polja kraci ili misa koji je 30 polja duzi (jer podrzava 30 i nesto tastera + ose + ...) sve se svodi na to kako ti definises report u samom deskriptoru, ako ja mogu da definisem da mi je report 20 bajtova a ne 8 i doza i linux to progutaju, ja sam resio problem 1/1
3. imamo tmk i njegov fork qmk koji podrzavaju cuda i karate opcija, boot mod, normalni mod .. treba da vidim da li i kako oni implementiraju NKRO, nebitno za koji mcu, ptianje je samo desktriptora za HID i reporta.. i onda to iskopirati...

[2] je pdim da se proba i za to imam najvece nade :) .. i probacu verovatno veceras ili ujutro (zavisno kako deca veceras odluce dal ce da veceraju sta im majka servira ili ce opet da navale meni na dzigericu)... [1] ne znam uopste dal je moguce nikad to nisam radio ali je svakako nesto sto zelim da probam vec vise godina (da napravim 2 ista ili razlicita uredjaja sa mcu strane preko tih endpointa, nikad to nisam radio, mnogo mi je malo iskustvo sa USB i hteo bih to malo vise da savladam) ... [3] je zanimljivo iz vise uglova, izmedju ostalog, da vidim koliko je tesko tamo dodati support za potpuno novi hardware... imalo bi koristi velike od celog tog velikog community-a... to sve ludaci realno a medju ludima sam se uvek dobro osecao :)

Citat:
Zlatni_bg:ali ne znam kako da adekvatno zaobidjes HID compliant registrovanje a da stvarno sebi ne napravis pakao od zivota.

a vidi, ja sam pravio custom USB protokol, low latency, jos odavno, imam negde taj kod, cini mi se pic32mx, i nisam imao drajver ovamo uopste nego direkt app koja prica sa usb uredjajem (bese libusb, nemoj me drzis za rec ima tome 10 godina ako ne i 20) ... ali ne bi to radio u ovom slucaju ni slucajno ... prvo *nikad* nisam pisao drajvere za windoze, niti mislim da ce mi to znanje ikad u buducnosti trebati, dakle necu gubim vreme da to ucim, drugo, pakao sa bootovanjem, drajverom za linux, bsd, realno dobijam uredjaj koji ne radi kako treba jbg ma koliko je " do jaja " .. ako ja mora pisem za svaki os drajver, nije to to .. tako da necu to da radim .. da ne spominjem koliko to sutra moze da ne radi ok sa igrama ili da pravi problem sa synergy ili vm ili ... ma koliko bi to cak mozda bio najlaksi put, ne, ne za tastaturu..

Citat:
Zlatni_bg:
A mozes i da svakih 2x saljes razlicite podatke o pritisnutim tasterima u T*2?

pa ne, posto "report" koji saljes ima
MODS - bitmap
RESERVED
CH1
CH2
...
CH6

i sad u CHx ti pises keycode tastera koji je u tom trenutku pritisnut (ne saljes event "pritisnut" nego saljes svaki put spisak tastera koji su pritisnuti) i to je to, ostalo su 0 (nije pritisnuto) tako da saljes nesto tipa (recimo da niko nije diro modse da ne bitmapiramo)

0,0,7,0,0,0,0,0 ; PRITISNUTO D
0,0,7,0,0,0,0,0 ; I DALJE PRITISNUTO D
0,0,7,8,0,0,0,0 ; PRITISNUTO D + E
0,0,7,8,9,0,0,0 ; PRITISNUTO D + E + F
0,0,7,9,0,0,0,0 ; PRITISNUTO D + F, PUSTENO E
0,0,0,0,0,0,0,0 ; PUSTENO SVE

znaci nije da ti na event stisnutog tastera saljes sta je pritisnuto nego bukvalno saljes "stanja" trenutna

a on tebi nazad salje isto tako "statuse" (ledovi koji su upaljeni/ugaseni, neki templejti bem li ga ...)


Citat:
Zlatni_bg:
Ili zaista da koristis 2 MCU sa 6NKRO po jednom i imas 12NKRO. Generalno mozes da uzmes i 4 MCU i cepas na kolicinu fizickih uredjaja :D Taman mi sad pade na pamet da pre par dana pri klokovanju memorije UEFI izbaci gresku u overklokingu, i pisalo mi da imam 3 misa i 4 tastature zakacene...

to je poseban pakao, jer bi oni morali svaki da prica na usb (Znaci morao bi da turim i usb hub cip) + morali bi da pricaju izmedju sebe oko modifier i ko zna sta jos, deluje mi kao glavobolja bez razlozna


Citat:

A ako novac nije upitan


vidi, ja od ovoga zivim, tastatura dobra me ne interesuje koliko kosta ako mi radi posao ... sta da ti kazem imam jednu ovu natural 4000 u steku ako ova slucajno crkne da mogu odma da zamenim da mogu da nastavim da radim ako je vikend, praznici, po noci... kada je bread & butter u pitanju cena me ne interesuje... a obe sake su mi unistene skroz tako da mi je tu kvalitet znacajno bitan... ova igra sa daktilom je zanimljiva zato sto mozda mogu da napravim raspored koji ce mi pije vodu posto nije samo pitanje pravilnog kucanja (posto ja ne kucam pravilno) vec vise pravilnog drzanja ruku... za pocetak ja nemam mali prst na levoj ruci (tj skroz je zgrcen - dipitrenova kontraktura jos iz doba srednje skole, medicinsko cudo od previse tastature, to obicno sa 50 dobiju operatori na pneumatskim cekicima!!), slabo mi je pokretljiv mali prst na desnoj, srednji i domali na desnoj imaju trigger finger i imam i na levoj i desnoj neke upale nekih vulvi i na sve to jos i tumor neki, higrom, u zglobu domalog ili srednjeg ne secam se na desnoj... znaci ne pricam bez veze ruke su mi u .!. zato sam i prestao sa treniranjem, dobio 70kg viska ..

Citat:

za 100eur vrednosti je banja.

ja sam i ove natural 4000 placao tako oko 100eur komad .. baci link, prodaje neko kod nas?

Citat:

Nemam fatigue ni posle 10h+ kodiranja niti bilo kakvih posledica, samo mi je malo zamorno nekad prebacivanje sa laptopa na desktop zbog hoda tastera i sile pritiska. Takodje, imaj u vidu da blue ima i najvecu silu pritiska, i iako je razlika u 10 grama, oooo kad bi znao koliko i brown ume da nervira nekad sto mora jako da se pritisne.

ja laptope realno ne koristim... to je ono eventualno da imam za nedaj boze za par min posla ali ... a za silu, pa pazi, u odnosu na ove gume na kojima sam se ja nabildovao, plava je pesma :D... meni samo smeta sto joj je glasan klik al..


Citat:
Zlatni_bg:
Razmisljao sam da isprobam kailh silver, 1.1mm hod, i mislim 35g pritisak, ali ljudi kazu da bukvalno slucajno pritisnu taster nekad kad rukom predju preko tastature. A veruj mi, pola zamora od kucanja koji osetim posle duzeg perioda je zbog sile koja je potrebna da se taster pritisne.



ja sam hteo 10 puta vec da narucim set tastera ... imaju svi ti prozivodjaci ono kupis tablu i po 2 od svih tastera i moz probas i uvek ima nesto prece, neki problem, neka arina, neki dhl... i jbg ..
[ bogdan.kecman @ 16.06.2020. 17:53 ] @
Citat:
Zurg:
Zanimljiv projekat, samo oni štampani tasteri izgledaju užasno. Sa slike je očigledno da je temperatura beda bila previsoka, tako da tasteri liče na slonovo stopalo.


jok, temp je skroz ok nego je u pitanju PETG koji je stampan malo blize bedu nego sto bi trebalo i stampano je sa 0.8mm nozlom 100mm/sec 0.6mm layer jer je u pitanju draft samo da vidim na sta ce to sve da lici i kako pasuje .. a to na "licu" ako si koristio nekad 0.8mm nozlu valjda ti je jasno da nema teorije da izvuces "slovo" malo da se vidi kako treba :D ja sam odusevljen kako su ispala slova :D ... nego profil nije 1/1 posto treba da ima mali "dome" na vrhu ali posto sam ih stampao sa licem na dole skroz su ravni tasteri .. takodje sa 0.6mm layer dome bi imao 2 layera sto nema svrhe :D .. no za test do jaja .. mora probam jos 5-6 razlicitih profila pre nego narucim gotove tastere
[ bogdan.kecman @ 16.06.2020. 18:56 ] @
EUREKA :D

Citat:

[2] je pdim da se proba i za to imam najvece nade :)



deskriptor za report

Code:

__ALIGN_BEGIN static uint8_t HID_ARMKEY_ReportDesc[45U] __ALIGN_END = {
      0x05, 0x01, // USAGE_PAGE (Generic Desktop)
      0x09, 0x06, // USAGE (Keyboard)
      0xa1, 0x01, // COLLECTION (Application)
      0x05, 0x07, // USAGE_PAGE (Keyboard)
      0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
      0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
      0x15, 0x00, // LOGICAL_MINIMUM (0)
      0x25, 0x01, // LOGICAL_MAXIMUM (1)

      0x75, 0x01, // REPORT_SIZE (1)
      0x95, 0x08, // REPORT_COUNT (8)
      0x81, 0x02, // INPUT (Data,Var,Abs) //1 byte

      0x95, 0x01, // REPORT_COUNT (1)
      0x75, 0x08, // REPORT_SIZE (8)
      0x81, 0x03, // INPUT (Cnst,Var,Abs) //1 byte

      0x95, 20, // REPORT_COUNT - default 6 - OVO SAM DIGO NA 20
      0x75, 0x08, // REPORT_SIZE (8)

      0x15, 0x00, // LOGICAL_MINIMUM (0)
      0x25, 0x65, // LOGICAL_MAXIMUM (101)
      0x05, 0x07, // USAGE_PAGE (Keyboard)
      0x19, 0x00, // USAGE_MINIMUM (Reserved (no event indicated))
      0x29, 0x65, // USAGE_MAXIMUM (Keyboard Application)
      0x81, 0x00, // INPUT (Data,Ary,Abs) //6 bytes

      0xc0 // END_COLLECTION
};



i kod tamo koji odradjuje sta treba

Code:

#define PRESS_REPORT_SIZE 22
uint8_t press_report[PRESS_REPORT_SIZE] = {0};
extern USBD_HandleTypeDef hUsbDeviceHS;

...
     if(HAL_GPIO_ReadPin(GPIOA, B1_Pin) == GPIO_PIN_SET){
        for(i = 2; i< PRESS_REPORT_SIZE; i++) press_report[i]  =  i+2; // pritisni tastere A do T
   
       USBD_HID_SendReport(&hUsbDeviceHS, press_report, PRESS_REPORT_SIZE);
       osDelay(50);
       for(i = 2; i< PRESS_REPORT_SIZE; i++) press_report[i]  =  0;
   
       USBD_HID_SendReport(&hUsbDeviceHS, press_report, PRESS_REPORT_SIZE);

       osDelay(200);
...


i radiiiiiiiiiiiiii :D znaci sto se tice KRO, 20KRO nije problem o tom delu ne moram da brinem, bar na dozi 10, mora probam sutra na meku i na linuxu kako ce oni da se ponasaju ali i tamo radi 1/1 to je to sto se KRO-a tice
[ mikikg @ 16.06.2020. 22:20 ] @
Odlicno, proradio ti HID na ARM-u sa HAL bibliotekom, pa onda si skoro sve resio :)
Sad samo vidi kako ces da ozicis to i dal ces da stavljas filtere ...
[ Zlatni_bg @ 17.06.2020. 00:21 ] @
Ove moje sa Cherry tasterima vise nema a bila je jeftinija za 10ak eur, ostavili su noviju RGB verziju sa kailh switchevima koji ce ti mozda delovati kao ogromna kontra - bukvalno su red sa duplo kracim travelom i laksim pritiskom - https://www.games.rs/tastature...-hyperx-alloy-fps-silver-speed (nije reklama nego je na lageru kod ovih). Da imas u vidu, koriste switcheve sa osvetljenjem u sebi, moja je jednobojna, ne znam kako je za RGB izvedeno i znam da te to najmanje zanima al kapiram da imaju drugaciji pinout :) Na tvom mestu, uzeo bih ovo da iscupam elektroniku i odradim neko poredjenje latencyja i iskoristim kailh switcheve. Ako uspes da nadjes sa cherry switchevima, jos bolje, niza cena, jedna boja - manje pinova + moja nema NIKAKAV softver, sve sto ima je ugradjeno u nju pa bi imao slobodu da radis sta hoces s njom. Takodje, po iskustvima mnogih, kingstonovi tasteri su jedni od boljih na trzistu, imaju lepo ulegnuce, laserski gravirana slova/brojevi, itd. Meni odgovara i kao sto sam ti rekao, jedini zamor osetim kada sam tipa igrao F1 2015 i vidim da mi je tesko posle nekog vremena da drzim klackalicu pri mikro pokretima, prst mora da odrzi tu neku granicu od 45 grama pritiska, i to ti je konstantan otpor. Nadam se da znas da toga ima kod mehanickih, pogotovu ovih nelinearnih, nema da nabodes dugme do kraja ili ga pustis, drzis ga pritisnutog do mesta aktuacije i onda po osecaju pritiskas delic milietra gore/dole. Ako stvarno koristis 10 prstiju za igrice, pogledaj neke druge switcheve, blue su vrh za kuckanje, zvuk ti nije neophodan, meni je brown davao dovoljan zvuk i feedback na prstu sta sam pritisnuo, a ako podmazes oprugu dovoljno na blue prekidacu dobijes brown ili cak red, u zavisnosti od viskoznosti ulja/masti. Elem, od tih kingstonovih alloy tastatura imaces bar set switcheva, keycapove, elektroniku, i kuciste ako ti ikad zatreba, ima stvarno dobre vrednosti i rasturiti je.

Da znas da je blue inace nusprodukt drugog tastera, nije namena bila da nastane ikad :) Malo sam vise u toj prici oko sklapanja i "dorade" tastature vise nego pisanja sw-a/fw-a za istu, znas i sam da vecina koristi gotove hexove koji se upisu i to je to, kad raspodelis tastere kako ti odgovaraju. Moj projekat je vise nastao iz zelje da razumem kako da gotov proizvod bolje prilagodim sebi nego da stvarno napravim nesto sto cu koristiti 24/7 ili kad kodiram, al' eto, kao i tebi, ostao mi je nedovrsen.

Dobro je da si uspeo da nateras STM tako lako da radi rollover, iskreno zadivljujuce mi je, med i mleko :) Sad ne znam da li ima potrebe da se cimas uopste oko pollinga i ostalih stvari oko USB standarda i kako STM to resava. Upitno je i kako ces razlikovati 125Hz od 1000Hz na tastaturi, ja bar nikad nisam skapirao za razliku od misa :) Ostaje ti igranje sad i generalno najtezi deo da to sve postane nesto sto ce ti prijati i odgovarati svakodnevnom radu. Divim ti se na upornosti pored svega ostalog sto radis, maltene si zgazio celu zajednicu koja se bavi DIY tastaturama, pa cak i celu firmu koja radi tako nesto.

Sto se tice testera, nece ti puno ni trebati, ja sam isprobao 3 tipa switcheva na tastaturama, bez testera vec full, i posle nekih 10-15 dana koriscenja prve tastature vec sam znao sta da ocekujem od ostalih. Ti testeri sa po dva dugmeta ti ni ne znace apsolutno nista, jer sam tastature isprobavao u realnim situacijama, znaci igranje igrice min pola sata, 500-700 linija koda i slicno, pa onda u igricama gledao kakav mi je dozivljaj i zamor, u kodu uglavnom gledao da li imam greske pri kucanju i takodje da li mi je naporno da kucam na tome. Sa pritiskanjem dva dugmeta na testeru pola sata nista od toga ne bi saznao (radio sam to kada sam tripovao da mi z trazi vise sile od y za pritisak 2h, psihijatrija :D). Ako imas mogucnost pokusaj da napravis neki hot-swappable plate gde mozes da se igras sa par tih tastera, stavis standardne koje koristis u igrama i vidis kako ti odgovaraju. I podnozje u kom ti je elektronika ispuni nekim izolacionim materijalom, pa makar bio i toalet papir, jer kad lupis tasterom pri kucanju ima da se cuje k'o bubanj.

Raspisao sam se pred spavanje a nista ti spec nisam rekao, mada jbga, kad resis tu sw/hw stranu i da ti tastatura prica s pc-jem krenuce ti druge muke da je napravis da bude kako zelis. Tu ces vise vremena da potrosis nego bilo gde drugde. Zato je nekako moja logika da kupim sto skuplje periferije za koje sam procitao bas ono jake tehnicke reviewove i onda se priviknem na njih, mada eto, misa sam platio 150eur (cene ne idu puno na gore odatle, al mogu da menjam omron switcheve i maltene ga celog sklapam i rasklapam) a zaglavio sam sa najosnovnijom mehanickom tastaturom, koja mi odgovara :) Jedina muka, po meni, ce ti kad dovedes sve to u red biti ta sila pritiska. I ja sam oguglao sa 28 godina od kucanja na gumi, ali znas kako, kao u primeru sa F1 igrom gore, feder ima da ti gura prst i stvara "strain"... na sve ces morati da se privikavas, sad, koliko ces moci da prilagodis umesto toga... 'bem li ga. Poruci vec sad ulje za podmazivanje tastera (ako nadjes gde jer ja ne mogu da nadjem kvalitetno a da ima shipping ovamo) jer ce sigurno da se desi da nece svi davati isti otpor. U pocektu neces primetiti, kasnije hoces.

Ima tu jos zaj... oko ergonomije.
[ bogdan.kecman @ 17.06.2020. 07:49 ] @
Citat:
mikikg:
Odlicno, proradio ti HID na ARM-u sa HAL bibliotekom, pa onda si skoro sve resio :)


ma to je proradilo u prvih 3 minuta (freertos, hal, hid ..) taj deo nikad nije bio problem... bio je problem da napravim da report za tastaturu bude sa vise od 6 tastera jer ga to limitira na 6KRO.. to nisam bio siguran da ce moci tako jednostavno... nisam i dalje, windoza 10 je popila taj moj report deskriptor sa vecim brojem karaktera, sad da zakacim ovu kontrapciju na meka i na par razlicitih linux kernela da vidim dal ce i oni da prihvate taj deskriptor ili nece (posto je klasican deskriptor za tastaturu sa 4 i sa 6 tastera)


Citat:
mikikg:
Sad samo vidi kako ces da ozicis to i dal ces da stavljas filtere ...


pa oko ozicavanja je cela ova tema... dal taster-pin ili mreza .. ali izgleda da mreza radi ok majku mu.. a onda stvarno nema poente da teram cortex m4 za tastaturu :D to bi napravilo i ozicenje i mnogo sta drugo jednostavnije ... taster pin radi isto ok .. tu imam pullape u samom cipu nije frka znaci samo razvucem svuda ground i sto zicki ka pinovima, tu mi je jedino problematicno sta cu izmedju dva dela tastature, 50zilni kabl mi se ne javlja kao dobro resenje.. zato se razmisljam da ipak idem sa mrezom

filtere cu pravim u sw-u, ne u hw-u

ono sto ce biti zezanje je sto ce ozicenje morati rucno, zicom, sva sreca imam onaj wirestrap tool pa jbg taster po taster.. ne pravi mi se kapton pcb nikako
[ bogdan.kecman @ 17.06.2020. 09:01 ] @

uh, na ovome ja ni u ludilu ne bi mogo da kucam :(

Citat:
Zlatni_bg:
Na tvom mestu, uzeo bih ovo da iscupam elektroniku i odradim neko poredjenje latencyja i iskoristim kailh switcheve.

pa pazi sto se elektronije tice, ako nije open source firmware ne znaci mnogo.... e sad sto se switcheva tice to je druga prica skroz jeftinije izvaditi switcheve odavde nego kupiti nove .. 300eur na dobar dan izadju ovih 100 cherry switcheva

Citat:
Zlatni_bg:
imaju lepo ulegnuce, laserski gravirana slova/brojevi, itd.

pricas o kapicama, ne pasuju te kapice od ravnih tastatura na ovo .. to su OEM profili OEM(1), OEM(2), .. do OEM(4) ... ja bi mogao eventualno OEM(3) da gurnem svuda ali pitanje, ovi SA(3) mi nekako najbolje posuju za sada (uporedi oblik VBNM kapica sa kapicom na 5678 kod tebe na tastaturi bice ti jasno o cemu pricam)

Citat:
Zlatni_bg:
Nadam se da znas da toga ima kod mehanickih, pogotovu ovih nelinearnih, nema da nabodes dugme do kraja ili ga pustis, drzis ga pritisnutog do mesta aktuacije i onda po osecaju pritiskas delic milietra gore/dole.


pa vidi, kod blue nije tako :)
znaci blue ostvaruje kontakt kod klika i drzi kontakt do kraja hoda, znaci mozes da ga zabodes do kraja i drzi zabodenog do kraja i sve vreme imas kontakt. znam da su bili neki (dal braon ili crveni) koji ostvaruju kontakt samo na dole u jednom delu puta a kad ih zabodes do kraja puste kontakt, to je za igrice pakao, plavi je ok, pritisnes, negde na pola puta uradi klik i uspostavi kontakt, drzi kontakt do dna tastera, kada ga pustas negde pri vrhu pusti kontakt (nema klika u nazad)

Citat:
Zlatni_bg:
zvuk ti nije neophodan, meni je brown davao dovoljan zvuk i feedback na prstu sta sam pritisnuo, a ako podmazes oprugu dovoljno na blue prekidacu dobijes brown ili cak red, u zavisnosti od viskoznosti ulja/masti. Elem, od tih kingstonovih alloy tastatura imaces bar set switcheva, keycapove, elektroniku, i kuciste ako ti ikad zatreba, ima stvarno dobre vrednosti i rasturiti je.


videcemo, zvuk meni ne treba uopste, cak i feedback na prstu meni ne znaci toliko, meni se naviknu ruke koliko da zabodem da ne moram da idem do kraja posebno sto ja ne kucam pravilno (objasnih vec, nemam bas sve prste a i ovi koje imam ne rade bas najbolje pa sam morao da se prilagodim)

Citat:
Zlatni_bg:
Da znas da je blue inace nusprodukt drugog tastera, nije namena bila da nastane ikad :) Malo sam vise u toj prici oko sklapanja i "dorade" tastature vise nego pisanja sw-a/fw-a za istu, znas i sam da vecina koristi gotove hexove koji se upisu i to je to, kad raspodelis tastere kako ti odgovaraju. Moj projekat je vise nastao iz zelje da razumem kako da gotov proizvod bolje prilagodim sebi nego da stvarno napravim nesto sto cu koristiti 24/7 ili kad kodiram, al' eto, kao i tebi, ostao mi je nedovrsen.

ma citao sam o tome pre x godina ali krenule stvari da lape iskreno da kazem ne secam se vise nicega, ovako kad neko nesto spomene setim se ili mi je "poznato" ali realno ne secam se vise nicega ... dok nisam zavirio u kesu nisam ni znao dal sam uzo plave ili neke druge tastere, kako sam dosao do plavih isto se ne secam, znam da je bila prica sa sinisom jer je on hteo inicijalno njemu da pravim (pa je odustao i kupio neko g*no za meka) a ja sam hteo sebi da kupim kinesis ili mozda maltron ali je bilo dr...nje da je dovucem za srbistan.. neki komadi tu kostaju po soma evra, domaci mafijasi su mi trazili preko 500eur za poreze, carine, potvrde o samoobraznosti i razna jos neka sra.. i to je jos kao bilo jeftino posto su u originalu trazili jednu celu tastaturu da zadrze... ma.. pa je ostalo da cu uzmem kad budem isao napolje pa donesem al jbg to je cimanje nije fora da mozes udjes u radnju i kupis nego mora narucujes pa nece salju u hotel pa .. i jbg.. kucam na natural 4000 godinama :( ... imam i 2 elite, ne secam se sta se sa prvom desilo a drugu mi je sje.. sekretarica, resila da "opere" i poje.. space i enter :( .. (one zice i oni nosaci za zice i ..)


Citat:
Zlatni_bg:
Dobro je da si uspeo da nateras STM tako lako da radi rollover, iskreno zadivljujuce mi je, med i mleko :) Sad ne znam da li ima potrebe da se cimas uopste oko pollinga i ostalih stvari oko USB standarda i kako STM to resava.


pa pazi nema tu nista sa STM-om, usb library ti daje te funkcije za pricu sa usb-om koje su standardne, to ti da usb lib za bilo koji mcu, fora je "Sta ce posaljes" ... ti pri enumeraciji saljes deskriptor uredjaja gde pises jos koliko razlicitih deskriptora ces da saljes (najmanje 1 posto mora imas bar jedan report), i onda posaljes te dodatne deskriptore koji imaju za zadatak da opisu komunikaciju ... deskriptor za tastaturu samo copy/paste iz usb standarda i taj prvi deskriptor za report sam isto copy/paste iz usb standarda (HID1_11.pdf - Device Class Definition for Human Interface Devices) a posle punim report po tabelama opet copy/paste iz standarda (HUT1_12V2.pdf - HID Usage Tables) ... to sam uradio u prvih 20 minuta kad sam postavio projekat taj deo nije bio problm... ono sto je problem je bilo kako da imam "vise tastera" posto po dokumentaciji 4 tastera je u boot modu, 6 tastera normalno, ali nisam bas citao ove pdf-ove od pocetka do kraja (svaki 100+ strana jbg nemam nerava) nego nako po dijagonali :D .. i moram da priznam da mi i dalje nije 100% sigurno kako ovaj report deskriptor izgleda ali prvo providjenje mi je bilo kada sam sinoc video da "varijabla" nije unique vec da to ide po nekom "redu" pa se ista "varijabla" ponavlja, takodje da REPORT_SIZE nije velicina u bajtovima a REPORT_COUNT koliko se puta taj report ponavlja :D sto mi je bilo originalno jer ako znam da saljem 8 bajtova i vidim

Code:

      0x95, 0x01, // REPORT_COUNT (1)
      0x75, 0x08, // REPORT_SIZE (8)


moj zakljucak je 8 bajtova duzine, 1 put

no onda sam provalio da to ide "po redu" i da u stvari treba gledam malo "sire" te se onda to pretvara u

Code:

      0x95, 0x01, // REPORT_COUNT (1)
      0x75, 0x08, // REPORT_SIZE (8)
      0x81, 0x03, // INPUT (Cnst,Var,Abs) //1 byte


sto ce reci da je ulaz 0x03 velicine 1 puta 8 bita iliti 1 bajt i da je to nebitan za mene deo reporta vec da mene zanima

Code:

      0x95, 0x06, // REPORT_COUNT (6)
      0x75, 0x08, // REPORT_SIZE (8)


posle cega nema 0x81 koji definise koji je input pa se valjda podrazumeva da je to output, a posto sam video u pdf-u da je size u bitovima vidim da ovde prica o 6 bajtova reportu...

a kako znamo da saljem 8 bajtova to znaci

Code:

      0x75, 0x01, 
      0x95, 0x08, 
      0x81, 0x02, // OVO JE NESTO 1 bajt

      0x95, 0x01, 
      0x75, 0x08, 
      0x81, 0x03, // OVO JE NESTO 1 bajt

      0x95, 0x06, 
      0x75, 0x08, // i zavrsavo ceo report sa jos 6 bajtova


znaci ovaj ceo decriptor je JEDAN report a ne 3 kao sto sam ja mislio, i to je 1 bajt koji je nesto (znamo iz drugog doc-a da je to bitmapa modifier tastera, ctrl, alt...) drugi bajt je reserved i onda ide 6 bajtova tasteri.. i reko jbg, daj povecam tih 6 bajtova na 20 da vidim sta ce bude :D i proradilo :D

e sad, potpuno isti descriptor imas u usb biblioteci na pic-u ili avr-u nema razlike, tako da postavljanje report descriptora i slanje reporta posle toga ocigledno radi posao ok... po usb spec ti realno mozes da definises report desc kako god oces i drajver sa druge strane bi to morao da razume i procita... sad je samo pitanje koliko je drajver za hid sa druge strane dobro napisan, za dozu10 ocigledno jeste, za druge OS ce vidimo ...

realno ovo je za nekoga ko radi usb hid verovatno smesno i "given" ali posto ja nikad pre nisam radio ovo izgubio sam par sati na citanje dokumentacije

Citat:
Zlatni_bg:
Upitno je i kako ces razlikovati 125Hz od 1000Hz na tastaturi, ja bar nikad nisam skapirao za razliku od misa :)

pa vidi, ti saljes ovaj report na 1ms otprilike, znaci dal ces da skeniras svaku nano sekundu ili na 1ms nema razlike sto se kompa tice, e sad, sto se tice firmware-a razlika je sto sa vecim scan rate ja mogu da ubacim neki filter da pojede bouncing da ne moram da pravim hardwerski debouncing i komplikujem elektroniku vec to resim u sw-u

kod misa je delay mnogo bitniji svakako, ja npr ne mogu igram fps na bezicnom misu, jos nisam nasao bezicni mis sa dovoljno malim latency da mogu lepo da igram, a nisam neki profesionalac, cak naprotiv... ali ko sto rekoh ovde je mnogo vazniji sam rate zbog bounce-a

Citat:
Zlatni_bg:
Ostaje ti igranje sad i generalno najtezi deo da to sve postane nesto sto ce ti prijati i odgovarati svakodnevnom radu.

pa to je najveci deo price u stvari .. meni je bitno da mi to "radi posao" i da mi "lezi pod rukom" .. ovo je napravljeno za profi typists, ja to nisam, ne rade mi prsti kao profesionalnom tipkacu, to sto su tasteri tacno jedan iznad drugog bi trebalo da pomogne u startu, sa druge strane pitanje dal ce skroz leva i skroz desna kolona praviti problem ili ne i kako ce moj sistem kucanja podneti uopste ovakav oblik.. i koliko iteracija ce proci dok ne nadjem oblik koji mi radi posao..

Citat:
Zlatni_bg:
Divim ti se na upornosti pored svega ostalog sto radis, maltene si zgazio celu zajednicu koja se bavi DIY tastaturama, pa cak i celu firmu koja radi tako nesto.


pa vidi, ovo je ono sto kazu "on the back of giants", adereth je napravio ovaj layer preko openscad-a u clojure i u njemu napravio ovaj ceo sistem za generisanje frame-a tastature
https://github.com/adereth/dactyl-keyboard

mozes ovde da vidis malo vise o tom njegovom projektu samog ott sistema
http://adereth.github.io/blog/...4/09/3d-printing-with-clojure/

iskreno meni je openSCAD dovoljno ok i ne vidim sto se toliko smarao sa clojure ali ... u svakom slucaju sa tim njegovim sistemom imamo tastaturu koju lako modifikujemo i dobijamo STL koji stampamo ..

lik koji je odradio keyV2 je isto odradio zmajski deo posla
https://github.com/rsheldiii/keyV2
znaci podrzava sve popularne oblike kapica za tastere tako da za 2 min odaberes kakav taster oces i pustis na stampu i onda mozes da probas koji ti profili piju vodu za tvoju tastaturu za tvoj use case ..

tako da sam ja samo spojio stvari koje su ljudi vec napravili nisam uradio nista znacajno

jos ako uspem da se uglavim u QMK .. pesma

Citat:
Zlatni_bg:
Sto se tice testera, nece ti puno ni trebati, ja sam isprobao 3 tipa switcheva na tastaturama, bez testera vec full, i posle nekih 10-15 dana koriscenja prve tastature vec sam znao sta da ocekujem od ostalih. Ti testeri sa po dva dugmeta ti ni ne znace apsolutno nista, jer sam tastature isprobavao u realnim situacijama, znaci igranje igrice min pola sata, 500-700 linija koda i slicno, pa onda u igricama gledao kakav mi je dozivljaj i zamor, u kodu uglavnom gledao da li imam greske pri kucanju i takodje da li mi je naporno da kucam na tome. Sa pritiskanjem dva dugmeta na testeru pola sata nista od toga ne bi saznao (radio sam to kada sam tripovao da mi z trazi vise sile od y za pritisak 2h, psihijatrija :D). Ako imas mogucnost pokusaj da napravis neki hot-swappable plate gde mozes da se igras sa par tih tastera, stavis standardne koje koristis u igrama i vidis kako ti odgovaraju. I podnozje u kom ti je elektronika ispuni nekim izolacionim materijalom, pa makar bio i toalet papir, jer kad lupis tasterom pri kucanju ima da se cuje k'o bubanj.


problem je sto su ovde tasteri na krivom nosacu, nema sanse da napravim bilo kakav plate pozadi, morace tasteri da se leme sa zadnje strane i bice dr... do jaja sto kada menjam frame moracu da odlemim sve tastere da bi ih skino, pa da ih zalemim sve posle opet... al jbg.. mislim da cu da uradim 2-3 iteracije pre nego ista zalemim

Citat:
Zlatni_bg:
misa sam platio 150eur

kupio nekog od 250+ francuskog sa 3 joysticka na sebi cuda muda .. UZAS .. drajveri neupotrebljivi, mis prelagan, dignes ruku sa njega on pobegne povuce ga tezina kabla... uzas... igram sa prastarim G9 oblepljenim krep trakom jer se ona guma izgulila, sad skoro nasao na amazonu nov poklopac za njega, nije ko original al radi posao... a radim sa kensington expert mouse (track ball) posto to jedino mogu na duze staze ... sa misem mogu da se igram max max 30min i onda moram prekidam na nekoliko sati, sa kensingtonom mogu radi ceo dan bez problema (ali ne mogu da se igram)

[ goran_68 @ 17.06.2020. 12:28 ] @
Vidim da si skoro odradio posao a zaboravio sam da ti napomenem da imaš HID descriptor tool-ove kao pomoć. Izvinjavam se.
Jbg. ja sam usb tastaturu pravio pre skoro 20god. sa PIC-om 16Cnešto i što kažeš izvetrelo je.