レイアウト (一応確定)
これでいこうと思う。太字の右はシフト。右上は FN キーを押したとき。
-- ◇は カーソルの4キー。
-- SysRQ は、"Print Scr" になるかも知れない。
-- QWER に割り当てがあるが、 最初の版にない、ESC と \ の代替。
-- FN+R は、SCANCODE1, HID では無理かも。FN+SHIFT+E
マトリックス (確定)
ROW1 ROW2 ROW3 ROW4 ROW5 ROW6 ROW7 ROW8
COL1 1 TAB CTRL ALT BS ] ENTER ESC
COL2 2 Q A Z = [ ' SHIFT
COL3 3 W S X - P : /
COL4 4 E D C 0 O L .
COL5 5 R F V 9 I K ,
COL6 6 T G B 8 U J M
COL7 7 Y H N \ FN SP2 SP3
発注したキーボードが 2 種類あって、さらにもう一つ検討中であるが、同一である。
-- COL に L レベルを出力し、ROW 側で読み取る。
-- 特殊キーは、ダイオードを入れて 同時押しをサポート。
-- version 1 には、ESC と \ がない。(ファイルを修正はした)
version 1 (i2c_keyboard-02-2313 (修正版))
キーボード + ATtiny2313 コントローラボード
version 2 (i2c_keyboard-02-861)
キーボード + ATtiny861 コントローラボード
コントローラが違うだけで、基本同じものである。ATtiny2313 で、お手軽に I2C キーボードを作ろうとしたのがそもそもの発端だが、作りたい機能に対してメモリが足りないので、ATtiny861に変更。I/O が足りないのを HCF4051 を2つ使うことでカバー。さらに V-USB 用の配線も追加。そのときに 足りない ESC と \ を追加。ATtiny2313 版もファイルの修正はしたが、発注した基板は足りないまま。
作りたい機能とは?
-- i2c ローカルスキャンコード (v1)
-- i2c ASCIIコード (v1 可能なら)
-- i2c スキャンコード (SCANCODE1) (v2 〜)
-- HID over I2C (v2 〜)
-- USB HID (v2 〜)
HID over I2C なんてものがあることを知り Linux にドライバがあることも分かった、じゃぁ対応したいとなり、USB の HID と同じなら USB も対応できるじゃないかと・・・こうやって膨れ上がったのである。
スキャンコードについては、なんとなく。作るつもりもないのだが、I2C の代わりに PS/2 にできるかも。とか考えて。
ソフトの話は作りつつ、書いていこうと思うのだが、ATtiny23113 では、単純なものしか無理だろうと思う。
キーには、3x4mm 2ピン SMD のタクトスイッチ を使う。手はんだはたぶん可能だが、まずはリフローしてみたい。手はんだだと綺麗に並べられない。デザイン優先なのに見栄えが悪いと萎える。
... と書いたが予定が変わった。この程度手はんだできなくてはダメである。次の SMD タイプは難易度が高いので練習を兼ねて手はんだで行く。
version 3 (i2c_keyboard-03-t88a)
キーボード + ATtiny88 コントローラボード(TypeA)
version 3 (i2c_keyboard-03-t88b)
キーボード + ATtiny88 コントローラボード(TypeB)
6x6mm のタクトスイッチに 2ピンのものがある。これを使うと、割とうまく配置できそうなので、再々度設計することに。その代わりにシルクが見えず完全なブラインドになってしまう。冒頭のレイアウトの図は、この基板のシルクなのだが、これを印刷・穴あけして、キーボードに被せることができれば、割と見栄えのするものになるのではないか?
他に 6x6mm の 2ピンの SMD タイプがある。ラバードームっぽいタイプで、ひょっとしたら付けられるかも知れない。
キーピッチは、左右、上下ともに 6.3mm である。少し隙間があく。SMD タイプは端子がはみ出していて、6.7mm ある。端子を曲げるとか折ってしまうとか、加工が必要になる。それでもダメかも知れないのだが、一応パッド外径を少し大きくしている。
本物は ALPS SKPM シリーズのようだ。ストロークは 1.3mm ( 普通のタクトスイッチは、0.25mm )。
注文したのが届いた。ゲームパッドのような感じで、途中まで押すと急に沈む。使いやすいかどうか判断できないが、綺麗に並べられればデザイン的には良い感じになりそう。
取り付けだが、手はんだでいけるかも。片側(下)だけハンダして、仮固定したら、裏返してスルーホールからハンダを流し込む。流し込むのが難しいようならクリームハンダを注射器で。これを上段から一段づつやっていくのである。なお、電極は加工しなくて良さそう。外形が八角形なので、電極がうまく収まる(ような気がする)。いけるとは思うのだが、最上段のとりつけで試してみてやりかたを見極めないといけない。
このタクトスイッチは、aitendo でも扱っている (6個 120円)。揃えるには、60個 1200円になる。また、よく見ると底に空気抜きの穴が開いている。私が aliexpress で買ったのは空いてないタイプだった。たぶん押しごこちが違うので、混ぜて使わないようにしないと。
6.3mm ピッチにしたのは理由がある。2.54/2 倍にガーバーを 拡大すると 8mm ピッチになるのだ。コネクタは、2mm ピッチに変更し、ダイオードも 2012 → 1608 に変更する。
8mm ピッチにすることで、今度は 2ピンタイプの ラバードームが付けられる。作りはしないと思うが想定だけしておくのだ。
コントローラは、ATtiny88 の QFN32 である。I/O 数が多く、キーマトリックスを単独で作れる。ATtiny861 と違うのは、I2C が USI から TWI に変わる。2 枚に分ける TypeB か、1 枚にしてしまう TypeA か悩み中で、2タイプとも設計はする。typeA は、10mm ほど奥行が長くなり 93mm x 46.5mm となった。typeB の コントローラ基板の奥行は、12.5mm で 発注するサイズは、93mm x 52mm 。
コントローラ基板の製作は QFN なので難易度が高い。ちゃんとテストしてから タクトスイッチの取り付けをすれば良い・・・と思って、typeA も、テスト用にコネクタ穴を付けてある。だがキーマトリックス部も実は難易度が高いのではないか? 見栄えが重要なので気に入らない出来になってしまうかも知れない。特に SMD タイプは厳しい。一から作り直しでは気力が続かない。やはり TypeB が良さそうだ。
・・・とか書いたのだが、発注する段になって、elecrow がつながらない。fusion pcb を覗いたら $7.9 セールをやっている。typeB だと異種面付扱いにされる不安があるので、typeA を試しに発注してみることに。ちなみに elecrow は、TypeA で $4.9 + 送料 $5.88 = $10.78 である。
TypeA を発注してしまったのだからしょうがない。TypeB のほうが良いとは言っても、作る手順上だけの話。分離したコントローラを他の目的に使おうと思わないし、単体のキーボードには、結局は、コントローラが必要。ESP32 をコントローラにするというのを、いずれは検討したいが、TypeA の基板を使っても別に良いのである。せっかくだから I2C 接続でも良いし。 そういえば、8mm ピッチ拡大版のことをすっかり忘れていた。不格好になるが、コントローラに TypeA を使えるよう考えておこう。考えはするが、10cm を超えると基板の価格がハネ上がる。
QFN32 にしたのは、安いというのも理由だが、はんだ付けの経験を積むため。気軽に作れるようになれば、ちょっとお高い FPGA も躊躇なく組み立てられる -- という理由が大きい。
version 3 (i2c_keyboard-07-t88p)
パネル
ひょっとして、パネルを基板として作ってしまえば良いのだろうか? 1.6mm 厚ではちょっと厚いし、色も緑ではどうかと思うが、検討してみる。
追記:一旦発注したのだが、「片面基板だよファイルが間違っているんじゃない?」とか言われて提出しなおしになった。なにか言われると面倒なので、ベタを入れた。ついでに シルクも少し大きく。
5mm 高のタイプは、0.9mm 程度しか出っ張っていない。そのまま被せるのであれば、6mm 高が必要。逆に なにかキートップを間に挟むのであれば、高さがない方が良く、パネルは厚い方が安定するだろう。特にサイレントタイプであれば、キートップが欲しい。さて、どうする?
2ピン 6x6x6,6x6x7 のタイプもあった! 他にこことかにもある。6x6x7 だと 1.4mm ほど 出る計算なのでこれを使ってみる。
また、サイレントタイプだが、タクトスイッチのボタンだけ取り外してパネルとの間に入れれば良いのではないか? 移動量は 1.3mm で 基板厚 1.6mm だから ツバから 2.9mm 以上ないといけない。
ATtiny88 について
趣味でこれを使う人はほぼいないと思われるが、ちょっと説明。
ATmega328p が良く使われるチップだが、その機能縮小版。UART がないとか、水晶発振器がないとか、重要な機能までなくなっているので注意が必要。その代わり I/O が増えている。
DIP では、 AREF がなくなって、PC7 になっているだけであるが、32ピンの TQFP/QFN では、
AREF → PC7
ADC6 → ADC6 + PA0
ADC7 → ADC7 + PA1
GND(#3) → PA2
VCC(#6) → PA3
とまぁ随分と変わっているのだ。これらのピンを使ってしまうと、ATmega328p とかに差し替えできなくなるわけだが、今回は単に I/O が多いチップとして使ったため、差し替え不可になった。
I/O は、TQFP32/QFN32 で、電源ピン4 つと RESET を除いた 27 本。キーマトリックスに 15 本使った残りが 12 もある。V-USB 2 本、TWI 2 本、外部クロック 1本、VBUS 電源センス 1本、ISP 3本 使用で 合計 24 本を使用している。ATmega328p では I/O が足りないのである。version 3 のようにコンパクトにまとめるには、これが丁度良かったのだ。TQFP32/QFN32 で I/O が多いというと 他に ATmega16u2 がある。が、これは I2C のインターフェイスがなく、今回は使えない。
あと、水晶発振器がないわけだが、外部クロックは使える。1ゲートの 1G14 を入手したのでこれを使う。
あれ?本当に足りなかったのか? 24 ピン使用だが、ISP を共用すれば、とりあえず 2 本節約できる。一方 maga328p は、I/O 22 である。共用を前提とすると外部クロックだが、専用なら 水晶直付けにしたいので 1ピンたりない。だが、VBUS 電源センスに ADC を使う手がある。結局 I/O が足りないということはないようだ。あとは全線引き出せるかどうか? これが難しい。無理だったということにして、この件は忘れよう。
とか書いたが、共用の基板を描いた(TypeC)。専用の基板にするには、配線がきついということでヤメ。水晶発振に 1G14 を使う。作らないつもりだが、あったほうが良いかと思い作成。また、ISP コネクタの RESET をジャンパ化 。なお、ライタとして使う場合の RESET に割り当てる I/O は手近なものにした。Type によって割り当てが変わる。
ATtiny88 の価格だが aliexpress で検索すると TQFP で、20個 $9.5 というのがある。まぁ mega8a TQFP も 10 個 $4.75 と相当に安いのだが。
今回は QFN を使いたいということで、tiny88 は、10 個 $7.92 とか。ちなみに、atmega328p QFN は、5 個 $6.18 、at90usb162 は、5個 $4.8 。
aliexpress は、出回ってる IC だと安いことがあるようだ。かつて出回っていたとか、そういうものだと あれば安く手に入る。
3.3V レギュレータについて
なんでも良いとは思ったが、TAR5SB33 とピン互換性がある MIC5205 にした。
MIC5205 を使う場合は、#4 は NC で良い。TAR5SB33 では、0.01uF を付ける。
MIC5205 は、10個で $1 前後と かなりお安い。レギュレータで 3.3V を作るケースは少なくなったが、3.3V と 5V は、これを使っていこうと思う。(1.2V と 1.8V の場合は、SOT23 の XC6206P や MCP1702。)
LDO ではなく、DC/DC コンバータIC を使うことのほうが多くなった。いろいろな型番があるが、MT3410L が 特にお安い。以下のものが互換性がある。FB 電圧 は全部 0.6V である。
参考価格(aliexpress)
SY8089A 2A 1MHz KVxxx 10個$1.5
SY8009A 1.5A 1.5MHz ADxxx
SY8008C 1.2A 1.5MHz ACxxx 10個$1.2
SY8008B 1A 1.5MHz ABxxx
NCP1529 1A 1.7MHz DXJAYW 10個$1.1
MT3410L 1.3A 1.5MHz 10個 AS11 10個$0.9 (〜 6V)
これらの入力電圧の上限は、5.5v が普通。Nanopi DUO とか SBC の場合、MP2307 を使うことが多い。4.75V 〜 23V の入力電圧範囲で、12V を 5v にするのだ。
水晶について
水晶は、3225 タイプ 16MHz を採用。秋月だと FA238 。手ハンダするのが超苦手 。だが、背を低くするためにあえて使う。
発振には、シュミットトリガ入力・インバータの LVC1G14 を使う。実はうまく行くかどうか分からない。
もしダメなら 内蔵発振器を使い i2c 専用となる。
一応 74HC1G14 や 74AHC1G14 というのもある。mouser だと VHC1G14 や AHCT1G14 なども。どれかはちゃんと発振すると思うのではあるが、どうしたものか。杞憂だと良いのだが。 74HCU04 を使えだとか、高速すぎるものは使わないほうが無難だとか。
LVC14 を最初に試すが、ダメなら AHC14 でやってみる。AHC14 は、遅延が 8ns 〜 10ns で、LVC14 の倍ぐらい遅い。
ATtiny861 版とHCF4051
HCF4051(CD4051) は、8 to 1 のアナログマルチプレクサで、1つめは、GND を入力として COL1〜COL7 のどれかを GND に接続する。もうひとつは、ROW1〜ROW8 のどれかを選んで 入力ピンに接続。入力ピンは プルアップしておいて、L になれば、押されたと判断する。2個使うと 7 ピンで制御でき外付けのプルアップ抵抗も不要。
これが相当に安いので、version 2 では 2 個使い、ピンが少なめの ATtiny861 と組み合わせることにした。
ATtiny861 は、20ピンのAVR で、電源ピンが 4 つある。RESET もあるので、I/O は 15 ピンしかない。だが、7 ピンで キーマトリックスが扱えれば、8 ピン使える。割り当てを I2C に 2ピン、水晶に 2 ピン、V-USB に 2 ピン、VBUS 電源のセンスに 1ピン、LED に 1ピン とした。
冶具について
コネクタを付けてしまった後に、ハンダ付け失敗が判明すると直すのが困難になってしまう。コネクタを付けずにテストできると良いのだが、どうしたら良いか?
一枚をテスト用として作り、テストプローブを コネクタに立てる。ターゲットをそれに重ねてテストするのはどうだろう?
... ということを考えてみた。
例えば、キーマトリックスだけをテスト用に作り、テストプローブを下向きに付ける。そうすれば、タクトスイッチを付ける前にテストができる。別に完成したものに付けても良い。完成した方はブランクにしておけば良い。テスト用のファームウェアを書き込んでも良い。
例えば、コントローラだけをテスト用に作り、キーマトリックスだけを作った基板のテストをする。この時は上向きでないとダメである。SMD のラバードームの方は、ちょっと作れるか自信がないので そこまでするかも知れない。
さらに言うと、片側の ISP コネクタの RESET を切って I/O につなぐ。ライタのファームウェアを書き込めば、コネクタを一切つけずに、いろいろなテストができる。
・・・のだが、検討しきれずに発注してしまった。スペース的に厳しいのと、ライタに使った側を綺麗に戻せるかどうかという検討が必要で、途中でめんどくさくなってしまった。
ライタは、USBasp で良いので移植が難しいわけではない。やはり、ちゃんと仕組みを入れるべきだった。
ところで、usbasploader -- ブートローダ機能のある AVR 用ではあるが、ルールを作ることで tiny 用も実現できるようだ。
・http://www.embedded-creations.com/projects/attiny85-usb-bootloader-overview/
こういうのがあると、ファームウェアの入れ替えが捗る。キーボードがあるのだから、特定のキーを押しての起動ということも可能。ただし、メモリの消費が多い。2.8KB だそうで。V-USB のコードを共有できると、実装は可能か。ソフト編で検討しよう。
t88 版だが c 〜 e まで派生バージョンが出来てしまった。
t88c : 一体型の t88a をベースに mega328 に対応
t88d : 2階建ての t88b をベースに mega328 に対応
t88e : t88d のコントロール基板を大きくして TQFP にも対応 (発注サイズ 93 x 59)
新版は、またポートの割り当てが変わった。
Fusion PCB に注文した t88a が随分と時間がかかりそうな気がして、 また TQFP なら手持ちがあるからチップが来るのに時間がかかった場合でも、とりあえず組むことができるし ... みたいなことを考えて t88e を elecrow に発注してしまった。色は黒。
ただ、t88e は、TQFP の中に QFN を入れてあるので、DRC がギリギリ。また QFN のランドを小さくしてしまったので、はんだ付けの難易度が上がっている。TQFP なら楽なんだが、基板のチェックをしてから組まないといけない。2階建てで基板が大きくなっているが、上辺にしかネジ止めできない。下辺が接触しないよう、なにか工夫しないといけなくなった。
付録)
EAGLE ファイルと提出用ガーバー
・i2c_keyboard-07.zip
・i2c_keyboard-02-2313-out.zip
・i2c_keyboard-07-861-out.zip
・i2c_keyboard-03-t88a-out.zip
・i2c_keyboard-03-t88b-out.zip
・i2c_keyboard-05-t88e-out.zip
・i2c_keyboard-07-t88p-out.zip
※ 提出用ガーバファイルは、https://gerber-viewer.easyeda.com/ で確認できる。
コード表
ESC 1 2 3 4 5 6 7 8 9 0 - = BS
C1R8 C1R1 C2R1 C3R1 C4R1 C5R1 C6R1 C7R1 C6R5 C5R5 C4R5 C3R5 C2R5 C1R5 (COL/ROW)
8 1 9 17 25 33 41 49 45 37 29 21 13 5 (local scan code)
110 2 3 4 5 6 7 8 9 10 11 12 13 15 (keyid)
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E (scan code1)
29 1E 1F 20 21 22 23 24 25 26 27 2D 2E 2A (USB HID Usage ID)
TAB Q W E R T Y U I O P [ ] \
C1R2 C2R2 C3R2 C4R2 C5R2 C6R2 C7R2 C6R6 C5R6 C4R6 C3R6 C2R6 C1R6 C7R5
2 10 18 26 34 42 50 46 38 30 22 14 6 53
16 17 18 19 20 21 22 23 24 25 26 27 28 14
0F 10 11 12 13 14 15 16 17 18 19 1A 1B 7D
2B 14 1A 08 15 17 1C 18 0C 12 13 2F 30 89
CTRL A S D F G H J K L : " ENTER
C1R3 C2R3 C3R3 C4R3 C5R3 C6R3 C7R3 C6R7 C5R7 C4R7 C3R7 C2R7 C1R7
3 11 19 27 35 43 51 47 39 31 23 15 7
58 31 32 33 34 35 36 37 38 39 40 41 43
0F 1E 1F 20 21 22 23 24 25 26 27 28 1C
E0 04 16 07 09 0A 0B 0D 0E 0F 33 34 28
ALT Z X C V B N M , . / SHIFT
C1R4 C2R4 C3R4 C4R4 C5R4 C6R4 C7R4 C6R8 C5R8 C4R8 C3R8 C2R8
4 12 20 28 36 44 52 48 40 32 24 16
60 46 47 48 49 50 51 52 53 54 55 44
38 2C 2D 2E 2F 30 31 32 33 34 35 2A
E2 1D 1B 06 19 05 11 10 36 37 38 E1
FN SP2 SP3
C7R6 C7R7 C7R8
54 55 56
-- 61 61
-- 39 39
-- 2C 2C
^~ CAPS
1 30 42 56 (keyid)
29 3A 2B 73 (scan code1)
35 39 31 87 (USB HID Usage ID)
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 INS DEL
112 113 114 115 116 117 118 119 120 121 122 75 76
3B 3C 3D 3E 3F 40 41 42 43 44 57 E052 E053
3A 3B 3C 3D 3E 3F 40 41 42 43 44 49 4C
SysRQ ↑ PgUp ← → PgDn ↓
124 83 85 79 89 86 84
54 E048 E049 E04B E04D E051 E050
46 52 4B 50 4F 4E 51
コードテーブル1 (ASCII)
1 '1', TAB, CTRL, ALT , BS, ']', ENTER, ESC ,
9 '2', 'q', 'a', 'z', '=', '[', '\'', SHIFT,
17 '3', 'w', 's', 'x', '-', 'p', ':', '/',
25 '4', 'e', 'd', 'c', '0', 'o', 'l', '.',
33 '5', 'r' 'f', 'v', '9', 'i', 'k' , ',',
41 '6', 't', 'g', 'b', '8', 'u', 'j', 'm',
49 '7', 'y', 'h', 'n', '\\', FN, ' ', ' '
SHIFT
1 '!', TAB, CTRL, ALT , BS, '}', RET, ESC ,
9 '@', 'Q', 'A', 'Z', '+', '{', '"', SHFT,
17 '#', 'W', 'S', 'X', '_', 'P', ';', '?',
25 '$', 'E', 'D', 'C', ')', 'O', 'I', '<',
33 '%', 'R', 'F', 'V', '(', 'I', 'K' , '>',
41 '^', 'T', 'G', 'B', '*', 'U', 'J', 'M',
49 '&', 'Y', 'H', 'N', '|', FN, ' ', ' '
FN
(未作成)
コードテーブル2 (SCANCODE1)
(0xXX でないものは、未定義)
1 0x02, 0x0F, 0x0F, 0x38, 0x0E, 0x1B, 0x1C, 0x01,
9 0x03, 0x10, 0x1E, 0x2C, 0x0D, 0x1A, 0x28, 0x2A,
17 0x04, 0x11, 0x1F, 0x2D, 0x0C, 0x19, 0x27, 0x35,
25 0x05, 0x12, 0x20, 0x2E, 0x0B, 0x18, 0x26, 0x34,
33 0x06, 0x13, 0x21, 0x2F, 0x0A, 0x17, 0x25, 0x33,
41 0x07, 0x14, 0x22, 0x30, 0x09, 0x16, 0x24, 0x32,
49 0x08, 0x15, 0x23, 0x31, 0x7D, FN, 0x39, 0x39
FN
1 0x3B, 0x3A, CTRL, SHFT , 0xD3, 0x7D, RET, 0x29 ,
9 0x3C, 0x01, 'a', 'z', 0xD2, 0xD2, '0xCD, ALT,
17 0x3D, 0x29, 's', 'x', 0x57, 'p', 0xCB, 0xD0
25 0x3E, 'e', 'd', 'c', 0x44, 0x54, 0xC9, 0xD1,
33 0x3F, 'r' 'f', 'v', 0x43, 'i', 'k' , ','
41 0x40, 't', 'g', 'b', 0x42, 'u', 'j', 'm',
49 0x41, 'y', 'h', 'n', '\\', FN, ' ', ' '
コードテーブル3 (HID)
(0xXX でないものは、未定義)
1 0x1E, 0x2B, 0xE0, 0xE2, 0x2A, 0x30, 0x28, 0x29,
9 0x1F, 0x14, 0x04, 0x1D, 0x2E, 0x2F, 0x34, 0xE1,
17 0x20, 0x1A, 0x16, 0x1B, 0x2D, 0x13, 0x33, 0x38,
25 0x21, 0x08, 0x07, 0x06, 0x27, 0x12, 0x0F, 0x37,
33 0x22, 0x15 0x09, 0x19, 0x26, 0x0C, 0x0E, 0x36,
41 0x23, 0x17, 0x0A, 0x05, 0x25, 0x18, 0x0D, 0x10,
49 0x24, 0x1C, 0x0B, 0x11, 0x89, FN, 0x2C, 0x2C
FN
1 0x3A, TAB, CTRL, SHFT , 0x4C, 0x89, RET, 0x35 ,
9 0x3B, 0x29, 'a', 'z', 0x49, 0x52, 0x4F, ALT,
17 0x3C, 0x35, 's', 'x', 0x44, 'p', 0x50, 0x51,
25 0x3D, 'e', 'd', 'c', 0x43, 0x46, 0x4B, 0x4E,
33 0x3E, 'r' 'f', 'v', 0x42, 'i', 'k' , ','
41 0x3F, 't', 'g', 'b', 0x41, 'u', 'j', 'm',
49 0x40, 'y', 'h', 'n', '\\', FN, ' ', ' '
https://fdocuments.in/document/quicktech-pro-usb-bootable-14.html
https://www.realteqs.com/teqsplus/read-blog/2126
http://notcaterro.unblog.fr/2021/11/26/extra-quality-veer-zaara-movie-download-filmywap-2015-17l/
https://cdn.thingiverse.com/assets/0a/a3/5c/ed/3f/Media-Arabic-A-Coursebook-Pdf-Download.pdf
https://provfaltsponermoco.wixsite.com/alunancom/post/suspense-digest-august-2018-free-download
https://terpimiszungcesu.wixsite.com/zarduhyver/post/rar-blackberry-playbook-bar-pro-utorrent-pc-keygen-key
https://seesaawiki.jp/bautatockstic/d/!LINK! Hd Motu Patlu - King Of Kings Download Blu-ray Bluray
https://soheloumanoflo.wixsite.com/enemlisgau/post/eastbay-bot-download
https://coub.com/stories/1302784-compaq-108164-003-proliant-800-white-paper
https://wakelet.com/wake/XFd8kBgS1ksPM7vUJwWc7
https://trello.com/c/ZrgmdALl/36-build-signcut-pro-195stable-keygen-32bit-rar
https://kastderetomnetwgru.wixsite.com/breakbaghardro/post/squaredheads-nora-v2
https://trello.com/c/vPG5pmos/22-contemporary-topics-3-answer-key-pdf
https://trello.com/c/DWBQLHFs/13-gx-developer-8103h-exe
https://trello.com/c/UfFk1Fgr/20-garmin-gps-topo-france-v3-pro-torrent
https://trello.com/c/X3ifcRsY/6-bosch-esi-tronic-2011-3dvd-keygen-crack
https://cdn.thingiverse.com/assets/af/9b/3a/ef/61/wyahap325.html
https://cdn.thingiverse.com/assets/97/99/ae/14/1d/Google_Nik_Collection_2019_Crack_Activation_Key_Free_Download.html
https://cdn.thingiverse.com/assets/12/ae/c1/8f/63/jamyaferry26.html
https://cdn.thingiverse.com/assets/1a/3a/c2/42/49/Red-Giant-Trapcode-3D-Stroke-266-Full-Crack.html
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAzpz2CgwLEgZDb3Vyc2UYgIDAwOCs6wsMCxIIQWN0aXZpdHkYgIDAkOiIqQsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA7avbCwwLEgZDb3Vyc2UYgICA_6a5nwgMCxIIQWN0aXZpdHkYgIDAkIra8wkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAk6adCgwLEgZDb3Vyc2UYgIDAwKbziAkMCxIIQWN0aXZpdHkYgIDAoJKV7QgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAl4f4CAwLEgZDb3Vyc2UYgIDAoOnN5gsMCxIIQWN0aXZpdHkYgIDAkLG44wsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/2818501-the-forest-v1_12-talenai
https://coub.com/stories/2818497-soundtoys-native-effects-411-au-vst-rtas-mac-osx-intelrar-free
https://coub.com/stories/2818493-periodismo-narrativo-roberto-herrscher-pdf-completo-blaspad
https://coub.com/stories/2818490-geo-5-v15-software-crack-top
https://wakelet.com/wake/V6v7GhCt2pdsns1KxqeLC
https://wakelet.com/wake/VluO0Cu9JJzyzUDqxvsTy
https://wakelet.com/wake/rWKGvz_0OiSq7J8UYTdpB
https://wakelet.com/wake/4YRbjVn4cqkUMr-pA8cw_
https://coub.com/stories/2897637-jetbrains-pycharm-professional-2018-3-0-key-cracksmind-full-version-kaffdarv
https://coub.com/stories/2897638-schritte-international-3-lehrerhandbuch-better
https://coub.com/stories/2897636-fspassengers-x-crack-full-24-exclusive
https://coub.com/stories/2897635-ripened-peach-sex-sim-crack-upd
https://coub.com/stories/2817426-hot-enzai-ova-1-y-2-sin-censural
https://coub.com/stories/2817427-top-waves-au-reg-utility-9-2-0-update
https://coub.com/stories/2817425-patchbanks-soul-soup-samples-vol-2-__top__-download
https://coub.com/stories/2817422-download-keygen-propresenter-5-register-and-unlock-code-portable
https://wakelet.com/wake/htc_rcI_uhgTlYrJahQsW
https://wakelet.com/wake/aFY2FObHddoLK4AxRlgk3
https://wakelet.com/wake/AGTsGkasqs9Uf5SnDCxPy
https://wakelet.com/wake/nsoa7rzRYw_9iURr1qI7r
https://coub.com/stories/2725348-verified-gas-laws-practice-problems-worksheet-answer-key
https://coub.com/stories/2725350-kiriman-datang
https://coub.com/stories/2725352-advanced-post-types-order-nulled-exclusive
https://coub.com/stories/2711548-spotify-v-music-and-podcasts-v8-6-12-986-final-mod-apk-latest-barrjam
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIDfiaiTCgwLEgZDb3Vyc2UYgICA_7nr-QgMCxIIQWN0aXZpdHkYgIDAgNPS8QkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA7eGsCgwLEgZDb3Vyc2UYgIDAwPbGoAsMCxIIQWN0aXZpdHkYgIDAwOmc1gsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_uevxCgwLEgZDb3Vyc2UYgICAn8v39wsMCxIIQWN0aXZpdHkYgIDAoMjetAsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAxLWoCQwLEgZDb3Vyc2UYgIDAwOzDuwkMCxIIQWN0aXZpdHkYgIDAkKjp0AgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://wakelet.com/wake/vRdxlR9NJkshpNeunu7kH
https://wakelet.com/wake/Fj9k0adUcWkPe9P_6h_56
https://wakelet.com/wake/ErEc5N5xMHCWY0Q7JLMnf
https://wakelet.com/wake/UIePgtAmwUah7xz0haBZJ
https://coub.com/stories/2679503-motu-patlu-chelaram-ka-apharan-cbz-google-drive-janmak
https://coub.com/stories/2679502-nch-dreamplan-plus-5-18-crack-_verified_-4-mb-softwares-latest-update-free-download
https://coub.com/stories/2679501-link-pals-pretest-answers-2020
https://coub.com/stories/2679499-vakeel-saab-hd-1008p-mp4-google-drive-xylotary
https://wakelet.com/wake/32QvQ8mw1pLoaRRGTFhFL
https://wakelet.com/wake/4OzghAgDbQfMsJ6T3ZLnO
https://wakelet.com/wake/xlRSM9srv_Bfa6h4ObZz6
https://wakelet.com/wake/nKnlEHgjUKnwcbAC_HU7B
https://coub.com/stories/2628309-eternal-sunshine-of-the-spotless-mind-torrent-yify-best
https://coub.com/stories/2628307-watch_free_movies_online_without_ing_pitch_perfect-jamfra
https://coub.com/stories/2628308-axis-bank-rtgs-form-pdf-arroxyly
https://coub.com/stories/2628306-free-shorthold-tenancy-agreement-template-uk-hot
https://coub.com/stories/2683787-how-does-it-feel-to-be-a-problem-moustafa-bayoumi-pdf-top
https://coub.com/stories/2683788-episode-1-26-movie-download-in-mp4-__full__
https://coub.com/stories/2683783-revlon-1875-hair-dryer-manual-yardfurn
https://coub.com/stories/2683786-alagappan-medicine-7th-edition-pdf-link
https://wakelet.com/wake/Alsh4AGMElL9iE2OD91FA
https://wakelet.com/wake/kYbae6elTipslRf2cP0Fr
https://wakelet.com/wake/rzOmujimMmoAdL7Jk9ZN3
https://wakelet.com/wake/DsP0EU7PBF7ku4nd45peR
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAgbq7CAwLEgZDb3Vyc2UYgICA3_GeswoMCxIIQWN0aXZpdHkYgIDA0Ozb3AkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgICfhPqdCwwLEgZDb3Vyc2UYgIDAgJKOvQoMCxIIQWN0aXZpdHkYgIDA0ICN3QoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAuPnOCgwLEgZDb3Vyc2UYgIDAgNjm-wgMCxIIQWN0aXZpdHkYgIDAwJnEwwsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIC_wc2sCgwLEgZDb3Vyc2UYgIDAwI6khwkMCxIIQWN0aXZpdHkYgIDAwNOUzwkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIDfqcjgCAwLEgZDb3Vyc2UYgIDAoPiplAoMCxIIQWN0aXZpdHkYgIDAwOm81gsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_04fvCgwLEgZDb3Vyc2UYgICA__m0yAkMCxIIQWN0aXZpdHkYgIDA0JzK6wsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_gLiNCAwLEgZDb3Vyc2UYgICAv6PwjAsMCxIIQWN0aXZpdHkYgICA_4LkkgsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA8pCuCgwLEgZDb3Vyc2UYgICA_6SdqAkMCxIIQWN0aXZpdHkYgICA_-fj1goMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDg9IbPCgwLEgZDb3Vyc2UYgIDAoLOYygkMCxIIQWN0aXZpdHkYgIDAoNijogoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDAk-i1CQwLEgZDb3Vyc2UYgIDAwKbzyAgMCxIIQWN0aXZpdHkYgIDAoMnivggMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCgq8ujCAwLEgZDb3Vyc2UYgIDAoJnusAkMCxIIQWN0aXZpdHkYgIDA0N727gsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_hZztCAwLEgZDb3Vyc2UYgIDAwNXkkAsMCxIIQWN0aXZpdHkYgIDAkLnPlAgMogEQNTcyODg4NTg4Mjc0ODkyOA
https://trello.com/c/Gak0sNxR/42-gt6-garage-editor-garyaph
https://trello.com/c/Q2aGivg5/31-baixar-n64-pkg-emulador-para-ps3
https://trello.com/c/li69tGux/48-scaricare-autocad-2017-attivatore-64-bits-italiano-portable
https://trello.com/c/Pc04nIYN/34-akuntansi-biaya-mulyadiepub-vinvyr
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCQscmWCAwLEgZDb3Vyc2UYgIDAgNOjuAgMCxIIQWN0aXZpdHkYgIDAoInQxgoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMDgwMn6CgwLEgZDb3Vyc2UYgIDA4LfStwgMCxIIQWN0aXZpdHkYgIDAkKS1nQkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIC_38GmCgwLEgZDb3Vyc2UYgIDAgNj8mwkMCxIIQWN0aXZpdHkYgIDAgIvvxAoMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCA___7CAwLEgZDb3Vyc2UYgICA__nkzAoMCxIIQWN0aXZpdHkYgIDA0KL4tgsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://wakelet.com/wake/GjiaflvffICUzBfLK0YKP
https://wakelet.com/wake/xuo8GKlil5uSgVc9IQ7jk
https://wakelet.com/wake/npVwuJ2o0ohvaisO0Ndsp
https://wakelet.com/wake/LVkKp4JWfEGWcIVDLrNKl
https://coub.com/stories/2966038-cfg-knife-3m-cs-16-davsade
https://coub.com/stories/2966037-any-to-icon-3-51-serial-key-upd
https://coub.com/stories/2966035-humax-pr-hd2000c-neue-firmware
https://coub.com/stories/2966034-street-fighter-2-full-download-for-pc-free
https://wakelet.com/wake/TFh8abi-YPhNLR8nMi66u
https://wakelet.com/wake/O31W_OuVXhs94mMaVKn-X
https://wakelet.com/wake/NFCurtq6T3nurjic24zZn
https://wakelet.com/wake/m2omxOCKL_nWwrDgE7U8n
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCAv4rWCgwLEgZDb3Vyc2UYgIDAgNi7kAsMCxIIQWN0aXZpdHkYgIDAkPrwqAkMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgID_gLiNCAwLEgZDb3Vyc2UYgICAv6PwjAsMCxIIQWN0aXZpdHkYgIDA4J75vgsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgMCgmbmZCgwLEgZDb3Vyc2UYgIDAwLWwiwoMCxIIQWN0aXZpdHkYgIDA0O7Z3woMogEQNTcyODg4NTg4Mjc0ODkyOA
https://www.cloudschool.org/activities/ahFzfmNsb3Vkc2Nob29sLWFwcHI5CxIEVXNlchiAgIC__Ze2CAwLEgZDb3Vyc2UYgICAv_3O1wkMCxIIQWN0aXZpdHkYgIDA0LDQ6AsMogEQNTcyODg4NTg4Mjc0ODkyOA
https://coub.com/stories/2950379-fundy-album-builder-hot-crack
https://coub.com/stories/2950377-virtual-canine-anatomy-full-version-glenapo
https://coub.com/stories/2950376-renee-undeleter-2013-2-28-0-torrent-new
https://coub.com/stories/2950378-focus-first-flash-ms1690-driver-download-gerdawa
https://coub.com/stories/3096618-exclusive-cummins-insite-date-unlock
https://coub.com/stories/3096616-patched-linguatec-personal-translator-v14-0-professional-2011-multi-l
https://coub.com/stories/3096615-vengeance-mastering-suite-stereo-bundle-crack-free-top-download
https://coub.com/stories/3096614-hercules-dj-rmx2-mapper-pack-virtual-dj
https://coub.com/stories/2959243-raju-chacha-full-movie-in-hindi-hd-download-cracked-free-torrent
https://coub.com/stories/2959244-spin-tires-2011-high-quality-download-full-version-tpb-unblocked
https://coub.com/stories/2959242-link-krrish-movie-hindi-dubbed-download-720p-movie
https://coub.com/stories/2959240-lumion-manual-pdf-2021
https://coub.com/stories/3047941-ahnlab-v3-internet-security-serial-number-2021
https://coub.com/stories/3047943-bios-agent-plus-full-hot-cracked-torrent
https://coub.com/stories/3047942-nokia-best-bb5-easy-service-tool-by-infinity-box-team-crack-free
https://coub.com/stories/3047938-wrong-turn-2-full-movie-in-hindi-free-2021-download-mp4-hd
https://coub.com/stories/3120832-bejeweled-deluxe-download-for-pc-free-crack-serial-key
https://coub.com/stories/3120831-crackbattlefield3razor1911-best
https://coub.com/stories/3120830-neuview-media-player-professional-608-_verified_-crack
https://coub.com/stories/3120829-williamlandaybest-freeepubdownload
https://coub.com/stories/2971162-shin-kanzen-master-n3-pdf-540
https://coub.com/stories/2971163-avast-secureline-vpn-2018-license-key-pilelly
https://coub.com/stories/2971159-hot-la-que-se-avecina-7x06-720p-or-1080p
https://coub.com/stories/2971151-download-hot-powerdesigner-15-2-full-crack
https://coub.com/stories/2967216-callan-method-all-stages-e-books-and-mp3-plrar-mikaalea
https://coub.com/stories/2967217-securestar-drivecrypt-5-4-multilingual-free-download-mellayd
https://coub.com/stories/2967215-kvisoft-flipbook-maker-pro-3-6-crack-cocaine-updated
https://coub.com/stories/2967214-otoko-tachi-no-yamato-720p-movies-safesty
https://coub.com/stories/2976659-visualizer-3d-okm-keygen-generatorl-hot
https://coub.com/stories/2976658-como-sobrevivir-a-un-apocalipsis-zombie-libro-pdf-11-carjenn
https://coub.com/stories/2976654-ratiborus-kms-tools-01-04-2018
https://coub.com/stories/2976655-extra-quality-chris-pc-lock-v2-60-yag
https://dionnelamerstn.wixsite.com/inmulpoti/post/waves-complete-v8-0-11-air
https://dawdtelgielibgoooo.wixsite.com/inirendi/post/krivesuzvezdeknjigapdfdownload
https://neitramdissireasi.wixsite.com/dapderelmu/post/hd-online-player-rab-ne-bana-di-jodi-telugu-movie-tor
https://fejexydase1988.wixsite.com/osamorid/post/full-im-o-itransfer-platinum-5-7-29-license-torrent-windows-x64-keygen
https://idhypliwi.wixsite.com/inaldabmels/post/download-aew-dark-episode-mp4
https://kroeker347q.wixsite.com/millourenla/post/ultimate-bellies-old-pics-3-2009-_-049-imgsrc-ru-registration-iso-windows
https://lipilittnessmencdi.wixsite.com/longcagobi/post/serato-dj-pro-2-1-1-crack-with-free-license-key-torrent-till-2020
https://besmenestacent.wixsite.com/chesbearetju/post/qbike-synthwave-soundtrack-patch-file-activator-free
https://coub.com/stories/3289847-libro-la-guerra-moderna-roger-trinquier-pdf-18-portable
https://coub.com/stories/3289844-top-ls-models-ls-island-issue-02-stuck-in-the-middle-rar
https://coub.com/stories/3289842-hot-aerixv099unlockingsonyericssonnew2
https://coub.com/stories/3289843-core-player-top-download-for-s60-v3-top-downloads
https://wakelet.com/wake/1P7YiJ_dLZ57Iyp3NplmH
https://wakelet.com/wake/9Pp0ixAQ0Ggg-llOpqwbg
https://wakelet.com/wake/tCywObvVDfhKr2ZVJB9lx
https://isladepascua.ning.com/photo/albums/4535954:Album:1672929
https://wakelet.com/wake/9n32GuP4NKNBiw0uqnQ5P
https://wakelet.com/wake/KvAxVKQ7-bZw6nvEy_418
https://wakelet.com/wake/VjmGbNmoqPtu2hk7YR260
https://coghillthecon.ning.com/photo/albums/1131957:Album:135738
https://coub.com/stories/3263513-top-wondershare-mobiletrans-8-1-0-640-free-download
https://coub.com/stories/3263515-bigasoft-video-downloader-pro-3-15-3-6535-latest-portable-full-version-work
https://coub.com/stories/3263514-thor-1-online-subtitrat-hd-720p
https://russia-novosti.ru/nedvizhimost/rukhnul-potolok-v-zhk-brigantina-ot-gra/
Jul 3, 2013 Silk cotton let's air pass LOUIS VUITTON shoes effectively and is ... aarkstore cheap coach online factory coach coach factory outlet.. Live chat with CeciSensual in free chatroom with webcam - Naked. ... Lesbian online dating sites and apps are a definite way that is popular the queer... df76b833ed cansant
https://www.kaggle.com/gurgfaniver/manidweepa-varnana-stotram-pdf-31-exclusive
https://www.kaggle.com/bicamoure/1st-studio-siberian-mouse-hd-124-ms-verified
https://www.kaggle.com/scabbenwindta/dirty-politics-movie-720p-download-portable-movi
https://www.kaggle.com/teslengbanho/repack-padaiyappa-tamil-movie-720p-hd-down
https://www.kaggle.com/insteliwra/ilmu-kebidanan-sarwono-prawirohardjo-pdf-31
FET Life started out as an online community for BDSM fans, so this app is designed for ... Selena Tyne and Wear Newcastle upon Tyne Newcastle upon Tyne...
https://www.maarheeze.nu/index.php/component/k2/item/4720-seniorenvereniging-maarheeze-bestaat-60-jaar