15/12/28: Eagleでベタグランドをつくるときのクリアランスの指定

http://www.picfun.com/Eagle/Eagle24.html

デフォルトは近すぎるようなので、そこそこの値に。

15/12/26: Eagleでティアドロップをつける

ランドのまわりの配線の鋭角をなくすティアドロップ(Filletともいう)は、teardrop.ulpでつけられる。 http://www.webspace.ne.jp/rental/icon_tree_bbs/bbs.php?pid=5574&mode=r&no=325&mode2=thread

15/12/24: Inkscapeのスナップのアイコンの意味

http://inkscapedesign.web.fc2.com/medium/snap.html

15/12/12: EagleでベタGNDにVIAをうつ

手動でVIAをうってネットをGNDにする http://karlsnautr.blogspot.jp/2014/03/eagle.html

15/12/08: Eagleで面付け

http://blog.goo.ne.jp/jh3kxm/e/6d974ef0d3aaa6fc3b675f9f7a1eccaa

15/12/04: mbedのコードサイズを減らす方法

https://developer.mbed.org/users/MACRUM/notebook/howto-reduce-binary-size/

15/11/19: SSH鍵の生成

なかなか覚えられないので、再度。

  • 秘密鍵:手元においておく
  • 公開鍵:サーバ側の~/.ssh/authorized_keys に追加する で、sshやscpで接続時にクライアント側で秘密鍵を指定すればOK

http://kazmax.zpp.jp/linux/lin_sshrsa_win.html#ah_1

15/11/17: Mac ElCapitanでTeXをインストール

基本的にはこちらのとおり、MacTexをbrewで入れ直せばOKそう。 ただしtlmgrが/Library/TeX/texbin/に移動しているので、ここのtlmgrを指定する(フルパスorPATHを通す)。

なおパスの設定は、~/.bash_profileに書けばOK

http://qiita.com/nbkn/items/01a11392921119fa0153

15/11/17: Icarus VerilogをMacで使う

基本的にはソースからコンパイルすればOK http://fpga.kice.tokyo/design/iverilog-inst

15/11/17: gitで使うポート

git://github.com では、TCP/9418を使う。

https://git-scm.com/book/ja/v1/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB

15/11/17: FusionPCBAの使い方

小林先生の解説

http://qiita.com/mayfair/items/0206bd437c4302be5500

15/11/01: Xilinx ISEでEDIF形式のネットリストをつくる

Xilinxローカルなネットリスト*.ngcから、Xilinxアクセサリ内のコマンドプロンプトで、ngc2edifでEDIF形式の*.ndfに変換できる。

http://natu.txt-nifty.com/natsutan/2007/09/xilinx_iseedifl_a1bf.html

15/10/28: ひとのGitリポジトリにプルリクエストする

http://kakakikikeke.blogspot.jp/2015/03/github-pull-request.html

15/10/24: nRF51822のモジュールの書き込み

BraveridgeのモジュールだとSEGGER J-Link Liteというのが書き込み機として指定されていて、Nordic純正でもこれを使うみたいんだけど、同じnRF51822のHRM1017用の書き込み機であるTSUBOLink-IIでも書き込みできる模様。

https://www.switch-science.com/catalog/1829/

http://takafuminaka.blogspot.jp/2015/02/ucxpresso-lilypad-for-nano51822.html

http://takafuminaka.blogspot.jp/2015/01/tsubolinkiible-nano.html

15/10/21: Eagleのライブラリで1つのパッケージに複数の素子が入っている部品

7400とかオペアンプのように、1つのパッケージに複数の素子が入っている部品のつくりかた。 電源ピンを含まない素子をAddで追加して、さらに電源ピンを、POW+などをAddして、それらをまとめてConnectでピン番号を対応付ける。

ちなみに、回路図入力で、非表示になっている電源ピンを表示させるのは、Invokeで選ぶ。

15/10/19: 赤外光の目の安全基準

http://www.jisc.go.jp/app/pager?id=678735

15/10/07: VisualC#でのHTTPクライアントでConnection:Closeする

デフォルトでは、HTTPヘッダでConnection:はKeep-aliveとなる。これをCloseにする方法を調べてみたら、HttpWebReqeustクラスのConnectionプロパティを"Closed"にしろ、と書いてある文献をいくつか見かけたが、どうもうまくいかない(ほかの方法で変更しろ、というエラーになる)。 さらに調べた結果、こんな方法でできた。KeepAliveプロパティをfalseにする。 http://qa.atmarkit.co.jp/q/2904

15/10/03: PCBEではいたデータをスイッチサイエンスPCB(FusionPCB)へ

ガーバー/ドリルデータの微調整が必要。 具体的には、ガーバーデータの冒頭のD02*をとり、途中のGコードをとる。

G71*G90*G75*D02*   ←D02*をとる
%ASAXBY*OFA0B0*MOMM*FSLAX43Y43*IPPOS*%
%ADD13C,0.250*%
...
%ADD20C,3.300*%
G54D17*   ←ここより下のGxxをぜんぶとる
G01X174955Y170504D03*
X172974D03*
...

ドリルデータも、Gコードをとる。

G71   ←とる
M48
M71
T01C0.300
...
%
G90   ←とる
T01
G81   ←とる
X175879Y166628
...

15/09/09: Mac用TeXのDVIビューア

pxdvi、が吉か。

http://d.hatena.ne.jp/pyopyopyo/20121006/p1

15/09/03: ワイヤーボンディングするときにもっていくといい工具

  • キムワイプ
  • 無水アルコール・純水のびん
  • ルーペ+自由アーム(ルーペ固定用)
  • 逆作用ピンセット
  • ピンセット(田中ピンセット)
  • 少し先がまがっているピンセット
  • +ドライバ(少し頭が平べったいもの):ホルダの位置調整用
  • チップ固定用接着剤(木工用ボンド)
  • セロテープ

15/09/01: いわゆる「田中ピンセット」の型番

VLSI評価室においてある(あった)、とても使い勝手のよい、「田中」というシールの貼ってあった、いわゆる田中ピンセットの型番。

KFI K-3GG 125mm SUS

15/08/22: Googleフォームで登録があったらメールで通知

http://kosumotti.blogspot.jp/2013/03/google.html

15/07/31: mbedでgzip

基本的に、これでいける。ただし関数の書き方がmbedオンラインコンパイラは受け付けないので、void foo(a) int a; みたいな書き方を void foo(int a) みたいに書き換えないといけない。

https://developer.mbed.org/users/jonathonfletcher/code/MBEDZlib/

15/07/14: STM32FのDMAの設定

STM32FのDMAは、Disableのときだけ、転送バイト数レジスタなどの設定が書き換えられる。 Reset時にはDisableされているからいいけど、途中から設定するときは、いったんDisableにするのを忘れずに (具体的にはDMAを使っているブートローダから別プログラムに分岐した先のDMA設定で、Disableしてなかったので転送バイト数が設定できず(両者でバイト数が違っていた)、はまった。とくにバッファサイズ-転送残りバイト数、で転送済みバイト数を計算すると、負になって、配列の添え字が負になってハングしてた)

15/07/13: mbedのスタック位置を変更する

mbedコンパイラは、スタックの位置などのメモリ配置をいじれない。 スタックの位置に関していえば、ARM-GCC用にexportした中の*.ldをみると、STM32Fの場合は次のようになっている。

 RAM (xrw)       : ORIGIN = 0x200000C0, LENGTH = 16k - 0x0c0

つまりRAMが0x200000c0から(16KB-0x0c0)バイト、つまりRAMは0x20000000 - 0x20004000、ということになる。つまりスタックの先頭は、0x20004000。 そこでmbedが吐くバイナリを逆アセンブルして、spの設定っぽいところで 0x20004000 (0x4000 / 0x2000)となっているところを探して、 それを変更すれば、スタックの初期アドレスを変更できる。 例えばこんな感じ(2か所)。

      0:	4000      	ands	r0, r0
      2:	2000      	movs	r0, #0
     d8:	4000      	ands	r0, r0
     da:	2000      	movs	r0, #0

これを、例えば0x20003f00にすれば、0x20003f00 - 0x20003fffの256バイトがスタックでも使われない(したがって初期化もされない)RAM領域として使えることになる。

15/07/07: GDSをプロッタでプロットアウト

http://www.layouteditor.net/wiki/Introduction

こちらのlayoutEditorでGDSを読み込み、プロッタPX-F10000をプリンタして印刷で、5分ぐらいでできる。 ただし体験版ソフトウエアで使用期限が短いので、注意。

あとデフォルトでは背景が黒のまま印刷されるので、背景を白に変えておくのを忘れずに。

あとレイヤ定義は、レイヤーマネージャでテクノロジマクロとして保存し、読み込みはユーティリティ→マクロ→マクロの実行、から行う。

15/07/07: ThinkPadのFnキーのランプ

ESC+Fnキーを押すと、FnキーロックのON/OFFがトグルして、ON(緑LED点灯)のときは、F1〜F12がファンクションキーとして機能する。

http://support.lenovo.com/jp/ja/documents/ht079216

15/07/07: Windowsでプリンタキューを強制削除

PrinterSpoolサービスを停止→c:\Widows\System32\spool\PRINTER\ の中身を削除→PriterSpoolサービスを再開、の順。

http://dynabook.com/assistpc/faq/pcdata/010958.htm

15/07/05: mbedでブートローダ

「15/05/09: mbedで動的にプログラムを読み込み・実行」の続き。 どうも大きなプログラムになると、実行ができない(jumpしても、実行が始まらない(ようにみえる))現象に遭遇。 当初、RAM領域の重なり(大きな配列を確保している)か?でも呼び出し元のプログラムには戻らないはずだから、重なってても、少なくとも呼び出し先プログラムでは問題はないはず?と思いつつ、gcc-armははく*.mapをみなても、とくに問題はなさそう。といいつつ動的な配列は、当然ながら*.mapには出てこないので、そこは注意しないといけない。

で、DigitalInなどがない状態から少しずつ増やしていくと、3つ目くらいから実行ができない(ように見える)ようになる。 そこでDigitalInの定義からGPIO_Init()など、順にHAL関数の中をみていくが、やっぱりよくわからない(ここをコメントアウトするとOKというところまではつきとめたけど、それが原因とは考えられない) 結局このIOピン設定の問題は、初期化をとばしていくうちに、デバッグ情報を出しているUARTの設定(ピン)もはずれて初期化されなかった(なので、デバッグメッセージが出ないように見える)のが原因だった。

オチとして、先のページの元ネタページで_SystemInitをはずせ、と書いてあるところを、_SystemInitの中を見ていくと、クロックの設定だけでなく、割り込み解除とか、けっこういろいろなことをやっている。そこで、_SystemInitは呼び出し、その中のクロックの設定のみをコメントアウトしたところ、問題なくbootできるっぽい。

RAM領域が重なっている、という思い込みで、だいぶ時間を浪費してしまった。

15/06/25: ARMのサブルーチンコール

慣れればなんということはないけど、ちょっと普通(?)じゃない。 r13(スタックポインタ:sp)、r14(リンクレジスタ:lr)、r15(プログラムカウンタ:pc)を使って、以下の通り。

  • BL ??? : lrに次の命令のアドレスを入れて、pcに分岐先アドレス(???)→分岐
  • 分岐先で、まずlrをpushし、処理後、それをpcにpopする。(ARMの命令上、複数のレジスタをまとめてpush/popできる)
    push   {r4, lr} ; ここではr4もいっしょにpush
    ....
    pop    {r4, pc}

15/06/25: リモートデスクトップ接続先が英語キーボードになる

再起動でなおることもあるし、キーボードのドライバ更新でなおることもある、ようだ。 http://blog.masahiko.info/entry/2014/07/07/203115

15/06/25: Eagleでマウンタ実装用の部品座標データを出力

困ったときのULP

http://www.webspace.ne.jp/rental/icon_tree_bbs/bbs.php?pid=5574&mode=pr&parent_id=165&mode2=topic

15/06/10: 画質評価指標のSSIM

PSNRと違って画像の構造をみる。 http://d.hatena.ne.jp/denshikA/touch/20090921/1253535233

15/06/08: ESP8266のATコマンドFW ver0.21

UART速度を変更できるバージョン。ここに含まれている。 http://bbs.espressif.com/viewtopic.php?f=5&t=154

書き込みは、ここにあるESP Flasher Tool、でいけるか?(少なくともESP8266のHWデータシート(0B-ESP8266__Hardware_User_Guide__EN_v1.0.pdf)中の書き換えツールと同じ画面っぽい。

http://www.electrodragon.com/w/ESP8266_firmware_flasher

15/05/31: mbed/STM32Fの初期設定

STMicro純正のSTM32CubeMXというツールがあって、ペリフェラルごとに仕様を指定すると初期化関数が生成される。それらはHAL (Hardware Abstraction Layer)関数なので、mbed関数から直接呼び出せる。

15/05/28: ESP8266の一次情報

最近やっと充実してきた(常識レベル的に)。例えばデータシートとかがある。 http://bbs.espressif.com/viewforum.php?f=21

で、公式でいろいろなファームウエアが配布されているが、ATコマンドでつつくやつは、 基本的にAT_からはじまるやつ、っぽい。 例えばここにある「at_v0.20_14_11_28.zip」は、ATコマンド用ファームウエア(v0.20)。 http://bbs.espressif.com/viewforum.php?f=5

15/05/28: mbed C++でクラス変数を引数に

例えばmain.cppで宣言しているSerial sを、別のクラス(hoge)の関数(hogehoge)の中で使うために引数で渡すには、

 main.cpp:
 hoge.hogehoge(&ss);
 hoge.cpp:
 void hoge::hogehoge(Serial *ss);

のような感じでポインタでやりとりする。

15/05/25: iPad/MacのInstantHotspotが効かなくなる

iPhone/iPadを再起動したあとはiCloudにログインしてない状態になるので、再ログインしないといけない、ことがあるみたい。

15/05/13: MacのExcel2011の文字入力が異様に遅くなる

フォント関連の問題っぽい。たしかにこれで解消された。 http://eienshinjin.hatenablog.com/entry/2014/08/07/114816

15/05/09: mbedで動的にプログラムを読み込み・実行

https://developer.mbed.org/users/okini3939/notebook/dynamicload/

基本的に、オフラインコンパイラで、指定アドレスにプログラムを配置し、 本来のmain()からそれを呼び出す、という方式。 スタックなどの領域も、両者で分けておかないといけない。

ちなみにKeilのuVision用にエクスポートして、これらの設定(ROM/RAMアドレスの変更とスタートアップルーチンの変更)をしてコンパイルすればいいわけだが、スタートアップルーチンはmbedライブラリのソースが必要。なので、ここのようにmbedライブラリを削除→mbed-srcをインポート、した状態で、uVision用にExport、すれば、スタートアップルーチン(startup_???.s)もExportされるので、これをいじればよい。 ただしmbed-srcを含めてExportしたものをuVisionでコンパイルすると、サイズ制限の32KBを超えるっぽい。(使っていないmbed-libの関数もコンパイルされるから?)

gcc用にExportするのが吉か。ちなみにgccはGUIはないのでコマンドラインでmakeする。makeコマンドはgcc-toolchainをインストールしても入っていないので、別途入手。このあたりからパッケージを入手するのが楽か。http://gnuwin32.sourceforge.net/packages/make.htm

(2015/5/12追記) gccはこのあたりから。 http://qiita.com/okhiroyuki/items/68ced69cf36de3eac919

Exportのしかたはこんな感じ。 https://developer.mbed.org/handbook/Exporting-to-GCC-ARM-Embedded

Exportしたgcc用プロジェクト内のmbed-src/targets/cmsis/TARGET_???/(MCU名)/(MCU名)/TOOLCHAIN_GCC_ARM/にある2つのファイルをいじる。(以下はSTM32F030の例)

  • startup_stm32f030x8.s : 「Reset_Handler:」の中にある「bl SystemInit」をコメントアウトする
  • STM32F030X8.ld : RAMとROMの領域を設定。例えば、
     FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 64k
     RAM (xrw)       : ORIGIN = 0x200000C0, LENGTH = 8k - 0x0C0
    これを次のように修正(本来の位置よりあとにずらす:当然ながら先頭アドレスは他のプログラムで未使用領域に)
     FLASH (rx)      : ORIGIN = 0x08004000, LENGTH = 64k - 16k
     RAM (xrw)       : ORIGIN = 0x200010C0, LENGTH = 4k - 0x0C0
    これでmakeして、メインのプログラムのbinとくっつけて(あるいはこいつだけ)書き込み、 メインのプログラムから、こんな感じでアドレスを指定して呼び出す。
 int main() {
   void (*func)();
   unsigned int *p; 
   p = (unsigned int *)(0x08004000 + 4);
   func = (void (*)())*p;
   // printf("jump vector (%08x)\r\n", func);
   func();
 }

(16/05/24追記)もちっと詳しい情報 http://marcelojo.org/marcelojoeng/2015/09/bootloader-on-stm32f0.html

15/05/07: ESP8266関連のメモ

ちっこいWiFiモジュールESP8266の情報(主にファームウエア書き換え)をいくつか。

  • ESP8266-WROOM-02というモジュールは、TELEC認証もとれている、らしい。(一次ソースに確認済み)
  • ファームウエアがいろいろあるが、一応ここが公式なんだろうか。http://bbs.espressif.com/
  • ただし↑で配布されているファームウエアの新しいやつは、サイズが512KBではおさまらない。多くのESP8266EXがのってるモジュールの外付けFlashは4MB(=512KB)なので使えない。ちなみに起動時に71400bpsというえらく中途半端なボーレートで、起動メッセージ(外付けFlashから起動するよ、とか)が出ているっぽい。
  • ↑の512KBで収まるファームウエアも、どうも書き込み方がわからない。esp_iot_sdk_v0.9.5_15_01_23.zip などのbin/at/readme.txtには、3つの*.binをそれぞれのアドレスに書き込め、とあるが、どうもそれだと起動しないっぽい。(ちなみに試したのはXTCOMというツール http://www.electrodragon.com/w/ESP8266_Firmware )ちなみにメーカのEspressifもgithubでファームウエアバイナリを公開している。https://github.com/espressif ちなみにXTCOMの使い方→http://www.rei-labs.net/esp8266-update-firmware-to-change-the-baudrate/

15/05/07: mbedバイナリの逆アセンブル

ARM-GCC toolchainで、こんな感じで。CortexM0ならThumb命令で逆アセンブル。

arm-none-eabi-objdump -D -b binary -m arm -M force-thumb ???.bin

15/04/22: STM32F070をmbedで使う

いろいろはまったので、メモ。

  • 水晶振動子でクロック生成: 水晶をつけると発振回路(HSE)が自動でEnableになる、ようだ。stm32f0xx_hal_conf.hやstm32f0xx_hal_rcc.cにそのあたりのことが書いてある。ちなみにHSE_VALUEで、つける水晶の周波数を定義(デフォルトは8MHz)。(mbedソース/targets/cmsis/TARGET_STM/TARGET_STM32F0/あたりにある)
  • DMA転送: UART受信→DMAでメモリへ適宜転送。RefManのとおりに設定。たとえばUSART2_RXをDMA Ch.5で受信するとこんな感じ。DMAへのクロック供給(AHB clock)をONにしないといけないのは、要注意(リセット時にはONになっていない。そのため設定レジスタを書き込んでも値が書き換わらない、ように見える)ついでに、割り込み関数の書き方もメモ。
    RCC->AHBENR |= 0x01; // enable AHB's DMA clock
    DMA1_Channel5->CPAR = (uint32_t)&(USART2->RDR);
    DMA1_Channel5->CMAR = (uint32_t)buf;
    DMA1_Channel5->CNDTR = 256;
    DMA1_Channel5->CCR = 0x000030a2;
    NVIC_SetVector(DMA1_Channel4_5_IRQn, (uint32_t)DMAisr); // attach void DMAisr() ISR
    NVIC_EnableIRQ(DMA1_Channel4_5_IRQn); // enable DMA interrupt
    DMA1_Channel5->CCR |= 0x1; // enable DMA
    USART2->CR3 |= 1 << 6; // DMAR=1, enable USART2_RX DMA
  • UART受信は、標準だとSTARTビットを3回サンプルして値を判定するが、2つ違うとNFビット(nose detect)が立つ。ノイズが無視できる環境ならばONEBITをたててサンプルを1回にすることもできる。要注意なのは、NFビットがたつと、受信OK(RXNEフラグ)になるが、UART受信DMAのトリガはかからない。(よく読むとRefManにそう書いてある)
  • StandByモード: 設定のためにPowerブロックにAPBクロックをONにしないといけないのは要注意。あとStandByからwakeしたときのStandByフラグやWakeUpフラグは、手動でクリアしないと、またStandByには入っても、wakeしてしまう。
       RCC->APB1ENR |= 1 << 28; // enable Power block APB clock
       PWR->CR |= 0xc; // clear StandBy & Wakeup flag
       PWR->CR |= 1 << 1; // PDDS=1
       SCB->SCR |= 1 << 2; // SLEEPDEEP=1
       PWR->CSR |= 1 << 9; // enable WKUP2 wake
       __WFI(); // WFI

15/04/21: STM32FでUART受信データをDMA転送

ビンゴ。

http://www.kimura-lab.net/wikimura/index.php/STM32%E3%81%A7DMA%E8%BB%A2%E9%80%81%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B(USART%E7%B7%A8)

http://beagle1.blog.so-net.ne.jp/2011-10-13

https://sites.google.com/site/stm32datasheet/home/060-STM32-program-smpls/32-dac-dma

15/04/20: WiFi SoCのESP8266の関連情報

ArduinoIDEでファームウエアを 書く http://makezine.com/2015/04/01/installing-building-arduino-sketch-5-microcontroller/

https://github.com/esp8266/Arduino

ファームウエアの転送

https://www.ukhas.net/wiki/esp8266_firmware_update

一応ユーザーコミュニティ(ぱっと思いつくだけで2つある・・・)

http://www.esp8266.com/index.php

http://bbs.espressif.com/index.php

ただしソースコードはけっこう分派があって、把握しきれなくなってる雰囲気。 たとえばFrankensteinファームウエア https://github.com/nekromant/esp8266-frankenstein

15/04/15: Macのパッケージ管理ソフトbrewの使い方

http://tech.caph.jp/2011/04/06/homebrew%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%A8%E4%BD%BF%E3%81%84%E6%96%B9/

15/04/15: MacのTimeCapsleのSpotlightインデックス作成をとめる

これをやらないと、ディスクアクセスが止まらない状態になってとても困る。

http://note.chiebukuro.yahoo.co.jp/detail/n124512

15/04/10: XREAサーバでWordPress

セーフモード,というやつになっていて,ちょっと小細工をしないと更新とかプラグインの追加とかができない.

http://mage8.com/websitetips/wordpress.html

http://it-life.kakinota.net/wordpress%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%83%BB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89

ちなみにXREAサーバのデータベース(MySQL)の管理画面phpMyAdminのログイン時のID/PWDの注意.たしかにまぎらわしい. http://www.panzee.biz/archives/3351

Postie(メールを取得して投稿)は,IMAP-PHPが入ってないと,POP3-SSLも使えない(=gmailが使えない)ということらしい. https://wordpress.org/support/topic/plugin-postie-only-pop3-available-pop3-ssl-not-avaiable

15/04/10: MacのWordで校正機能をONにすると,Wordが起動直後に落ちる

Siio先生情報.Macの環境設定→言語,で,「優先する言語」をEnglishにして立ち上げる(英語モードで立ち上げる)と,うまくいくこと多し.

15/04/08: WiFiモジュールESP8266のプログラム開発

コンパイラ等の準備 https://github.com/esp8266/esp8266-wiki/wiki/Toolchain

ここにも関連情報がまとまっている。 https://nurdspace.nl/ESP8266#Building_the_gcc_toolchain

ちなみにコンパイラ等の準備に関して,Macではbrewを使うことになっている.brewはMacのパッケージ管理ソフトだが,MacPortなどと共用するとよくないので,どちらかにするべき. https://abeerforyou.com/?p=334

SSL/HTTPSにも対応したファームウエアがあるっぽい(要詳細調査)

http://www.esp8266.com/viewtopic.php?f=9&t=923&p=12269&hilit=SSL#p12269

http://www.esp8266.com/viewtopic.php?f=6&t=2019&p=12038&hilit=SSL#p12038

http://www.esp8266.com/viewtopic.php?f=12&t=1795&p=10742&hilit=SSL#p10742

http://www.esp8266.com/viewtopic.php?f=6&t=1512&p=9043&hilit=SSL#p9043

http://bbs.espressif.com/viewtopic.php?f=7&t=62&hilit=secure+http

15/04/08: HTTP以外のIoT向けプロトコル

MQTTとREST(RESTful)、というのがあるようだ。

http://qiita.com/toruuetani/items/cb85781e127b2959c1c3

RESTfulはこのあたりが詳しい。 http://www.slideshare.net/unsolublesugar/res-tful

15/04/06: GoogleCalendarAPI v3

2014/11ごろにGoogleCalendarAPIがv3に変更になったのを忘れていたので、対応しなきゃ、ということでメモ。 http://hamatte-wataru.com/google_api_key/

15/04/06: TWE-Lite備忘録

TWE-Liteは、基本的にはファームウエアを書き換えて使うもの、と考えたほうがよさそう。たとえば透過型UARTだと、これ。 http://tocos-wireless.com/jp/products/TWE-ZERO/App_Uart/tutorial.html

書き換えは、UART接続してPROG=0としてリセットをして専用アプリで書き換えるが、TWE-Lite(-DIP)とTWE-Lite-USB (ToCoStick)で別のものを使う。

ちなみに最初に入っているのは「超簡単!TWEアプリ」というやつで、定期的にデータを取って送る、みたいな機能がある。 http://tocos-wireless.com/jp/products/TWE-ZERO/App_Twelite/index.html

自作ファームウエアを書いて主マイコンとして使う、という使い方もできるっぽい。 http://tocos-wireless.com/jp/products/ToCoNet/TWESDK.html

15/04/04: Webページをブラウザ側で定期的に更新させる

ヘッダにこういうMETAタグを入れておく。

http://www.tagindex.com/html_tag/page/meta_refresh.html

15/03/14: mbed SS-LPC824のファームウエア

更新情報。

https://developer.mbed.org/teams/Switch-Science/wiki/Firmware-LPC824

15/03/13: LPC824での割り込み関数の設定方法

IOピン割り込みのInterruptInの定義をたどって、以下にいきつく。

int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id)
{
...
   irq_handler = handler;
   void (*channels_irq)(void) = NULL;
   switch (obj->ch) {
       case 0: channels_irq = &gpio_irq0; break;
  ...
       case 7: channels_irq = &gpio_irq7; break;
   }
   NVIC_SetVector((IRQn_Type)(PININT_IRQ + obj->ch), (uint32_t)channels_irq);
   NVIC_EnableIRQ((IRQn_Type)(PININT_IRQ + obj->ch));

つまり割り込みハンドラの関数のポインタをNVIC_SetVector()で定義して、NVIC_EnableIRQ()でその割り込みを許可する、ということ。

ちなみにNVIC_*は、targets/cmsis/(TARGET)/(TARGET)/cmsis_nivc.cで定義されている。

15/03/13: nRF51822のXTALFREQ

どうも外付け水晶発振回路の分周比を決めているっぽい。 以下、IOトグルの周波数。

  • BLEnano (水晶=16MHz), XTALFREQ=0xff (16MHz設定)→480kHz
  • BLEnano (水晶=16MHz), XTALFREQ=0x00 (32MHz設定)→240kHz
  • EYSFCNZXX (水晶=32MHz), XTALFREQ=0x00 (32MHz設定)→480kHz

つまり外付け水晶の周波数とXTALFREQの設定が一致すると480kHz、16MHzをつけて32MHz設定にすると動作周波数が半分になっている。XTALFREQ=0xff:水晶クロックそのまま、XTALFREQ=0x00:水晶クロックを半分、ということのようだ。 ちなみにEYSFCNZXXを16MHz設定でつかうと32MHz動作するのか?という気もするが、動作範囲外のようで動作しない(ハングってるっぽい)。

15/03/12: mbedライブラリのソース

mbed.orgからソース一式はダウンロードできる。構造が結構複雑なので、備忘録。 たとえばSPI関連の関数はこんなかんじ。

  • api/SPI.hで型宣言
  • common/SPI.cppで少し定義。たとえばSPI.writeは以下のとおり
    int SPI::write(int value) {
        aquire();
        return spi_master_write(&_spi, value);
    }
  • targets/hal/(TARGET)/(TARGET)/spi_api.c で、↑のspi_master_writeの中身の具体的な内容

15/03/11: mbed nRF51822の設定レジスタの定義ファイル

mbedのnRF51822ライブラリの中にないなーと思ったら、mbedライブラリの中にあるようだ。

https://github.com/mbedmicro/mbed/blob/master/libraries/mbed/targets/cmsis/TARGET_NORDIC/TARGET_MCU_NRF51822/nrf51.h

ただ、HFCLKSRCのように一部のレジスタが書かれていないし、そもそもReferenceManualにも、そのレジスタの情報が載っていないものがる。いったいなんなんだろう。(そう指摘しているソースコードの例↓)他のレジスタのアドレスから類推はできそうが・・・ただ、ReferenceManualには載っていても↑のnrf51.hに載っていないレジスタもある。なんか意図があるんだろうか。

http://sourceforge.net/p/ulan/sysless/ci/9628e171d405d11237766eac10439cd554f1f33b/tree/arch/arm/mach-nrf51/libs/hal/hal_machperiph.c#l43

15/03/10: uSD→SD変換アダプタでマイコンにSDカード接続するときのSDカード端子の対応

http://blogimg.goo.ne.jp/user_image/4e/91/9533a3ba7e68807e5fea47ed144de740.jpg

15/03/09: mbedでSPIデバイスからデータを取りながらSD書き込みで文字化け

SD書き込みと、他のSPIデバイスからのデータ取得を非同期(タイマ割り込みなど)で行うと、SD書き込み中に別のSPIトランザクションが発生して、SD書き込みが失敗する(文字化けやハング)、という現象に気付くのにだいぶ時間がかかった。

15/03/09: mbedでlz圧縮

http://developer.mbed.org/teams/Nordic-Pucks/code/lz/

ちなみにこのLZ77圧縮というのは、zipとかで使われているDeflateの原型。

http://ja.wikipedia.org/wiki/LZ77

(2015/3/10追記)よく読むとこのライブラリでやっているのは、LZ77ではなくLZSSのような気がする。(一致があればmaker/長さ/位置、一致がなければsymbol/0、を書き込んでいる)

http://ja.wikipedia.org/wiki/LZSS

15/03/04: PCBE05がはくドリルデータがFusionPCBでずれる

以前、PCBE05がはくドリルデータのうち、XY片方だけの座標のところが、FusionPCBでずれる、という現象があって、補完するスクリプトを書いていたけど、桁数を決めうちであぶなかっしかったので、かきなおし。

awk -f hole.hol > ???.TXT

#ref(): File not found: "hole_conv2.awk" at page "akita/2015"

15/03/03: MakerbotWareDesktopが起動しない

新しいPC(Win7/64bit)にMakerbotWareDesktopを入れたら、Prepareタブを押したら強制終了、という現象。いろいろ試した結果、VGAドライバが標準のままだったのが原因で、それを専用ドライバに変更したらOK。因果関係がわかりにくい。

15/03/03: mbedで簡易Webサーバ

mbedで内蔵LocalFileSystem(ファイル名8.3のみ)かSDカードのファイルを使って簡易Webサーバ https://developer.mbed.org/users/nyatla/code/MbedFileServer/wiki/Homepage

15/03/03: LPCのレジスタマップ

http://docs.lpcware.com/lpc800um/RegisterMaps/misc/t-Registers.html

15/02/28: 太陽誘電BLEモジュールEYSFCNZXX

太陽誘電の、nRF51822が入っているBLEモジュール。えらくちっこい。 http://www.yuden.co.jp/jp/solutions/ble/product/

ピン配置などはこちらから(Brief Data Report)。 http://www.yuden.co.jp/ut/wireless/bluetooth.html?__CAMCID=NFAzBnzpDc-968&__CAMSID=&__CAMVID=&_c_d=1#EYSFCNZXX

ホシデンHRM1017などと違って内蔵クロックが32MHz。いろいろ取り組んでいる方はいるようだ。 http://hiro99ma.blogspot.com/2014/09/bleble.html

15/02/27: mbedのSDFileSystemライブラリで使わない機能をけずる

SDFileSystemライブラリで使っているFATFileSystemの中のChaNさんのChaN/ffconf.hで、ライブラリの機能を選択できるようになっている。

たとえば「#define _FS_MINIMIZE」を変更することで、使える関数を減らしてサイズを減らせる。(はず)LFN(ロングファイルネーム)あたりも0にすると効果的。 ただし上位のSDFileSystemでは、これらで無効になる関数を使っているのがあるので、そのあたりは手動修整か。

15/02/27: AtmelStudio6.2/Win7(64bit)でAVRISPmkIIが使えない

デバイスマネージャではドライバはOKっぽいのにAtmelStudioから見つからない、という現象に遭遇。とりあえずこれで最新ドライバを入れたら使えるようになった(けど、これが原因だったのかはよくわからない)

https://gallery.atmel.com/Products/Details/c2b640ce-1a06-4dfe-9f36-5f3f60908131?

15/02/27: アルカリ電池の容量

目安として、単4=1000mAh、単3=2000mAh、といったところ。 http://large.rgr.jp/H-aid/ELE/batt-1/

15/02/26: Android/iPhone充電のためのUSB端子のD+/D-の設定

http://kohju.justplayer.com/SmartPhoneTips_power_usbcurrent.html

http://www.cafegoju.com/cgi-bin/glog/glog.cgi?page=20091005_1

15/02/24: iOSアプリを実機で動かす

証明書やらいろいろ設定のメモ。

http://qiita.com/syokenz/items/b048dc0f03146e012036

http://macdays.hatenablog.com/entry/2013/10/11/172532

http://cocoa.synck.jp/1238728528.html

15/02/24: mbedでARMをスリープしたりして省電力化

http://developer.mbed.org/users/okini3939/notebook/low-power/

15/02/16: gnupackでgnuserv

gnupackのEmacsで、いわゆるgnuserv(ファイルをEmacsで開く)は、init.elなどで指定をすれば使えるようになる。http://nextstageone.g.hatena.ne.jp/satakesatake/20130705/1372997772

15/02/16: Cisco AnyConnectで"failed to initialize connection subsystem"

2月のWindowsUpdateでアカンくなるようで、Ciscoから対策パッチが出ているっぽい。

https://supportforums.cisco.com/discussion/12423591/latest-microsoft-feb-2015-patch-breaks-anyconnect-smc

15/02/16: mbedでFlashAir

https://developer.mbed.org/users/ban4jp/notebook/ja-direct-tweet-for-flashair/

15/02/12: mbedエディタで入力した日本語の文字コード

UTF-8、ということのようだ。

http://developer.mbed.org/forum/ja/topic/5030/

15/02/11: BGAをメタルマスク/クリーム半田なしでリフロー

やってる方がいた。フラックスは手塗りのようだ。

http://mouse.la.coocan.jp/index.php?%E5%AE%9F%E8%A3%85

15/02/10: mbedのSeeedstudio Arch-ProのEthernet

ちょっとクセモノで、標準だとMACアドレスが割り当てられてないので、「extern "C" void mbed_mac_address(char *mac)」で手動で設定しないといけない、ということのようだ。

http://developer.mbed.org/forum/platform-30-Seeeduino-Arch-Pro-community/topic/4692/?page=1#comment-26729

http://developer.mbed.org/forum/mbed/topic/972/?page=1#comment-10318

15/02/09: Macのシリアルターミナル

Screenコマンド。

screen /dev/tty.??? (baud)

で起動。終了は、Ctrl+A→Ctrl+\で、Yes

http://developer.mbed.org/users/okano/notebook/personal_memo--usb-serial_IO/

(15/02/10追記) Ctrl+Aのあとでいろいろ制御。たとえばCtrl+A→B、でブレーク送出(=mbedリセット)。 http://www.limy.org/program/screen.html

15/02/07: Gainspan GS1011関連情報

まとめている方がおられた。 http://www.sugakoubou.com/doku/gs-wifi

ちなみにファームウエアは、オンラインでオプションを選んでBuildしてDLできるみたい。https://www.gainspan.com/secure/sdk_builder

15/02/04: mbedのLocalFileSystem

PCにさしさときにUSBメモリのように見える領域を、mbedからディスクのように使える、といことらしい。 https://developer.mbed.org/users/okini3939/notebook/LocalFileSystem_jp/

15/02/02: mbedでコンパイルエラー(例)

あるWebページの手順通りにEmptyからライブラリをインポートしたりしてつくるとコンパイルエラー。そのWebページから直接Programをインポートするとコンパイルが通る。 その差は何か?と調べたら、mbed libraryのバージョンの違いだった。

他にもいろんなLibraryがあるけど、mbed official、というのが一番信頼(?)できるのかな。

15/01/30: LiPoバッテリのTH端子

LiPoバッテリのものによっては+/-に加えてTHという端子がある(合計3本)ものがあるが、このTHはサーミスタ端子で、対応充電制御ICで温度監視に使える。 例えばこれ→http://www.linear-tech.co.jp/product/LTC4050

15/01/29: mbedのライセンス

mbed-SDKはApache2.0ライセンスで、ライブラリも含めて商用利用もOK、ということらしい。 http://developer.mbed.org/users/nxpfan/notebook/faq-japanese/

15/01/29: mbedでシリアル経由のリセット

COMポート経由でブレーク信号(TeraTermだとAlt+B)でリセットがかけられる、ようだ。

http://developer.mbed.org/users/okano/notebook/personal_memo--usb-serial_IO/

15/01/26: LiPo電池のFuel Gauge

MAX17043で、LiPo残量を計測する。基本的には全部お任せで、レジスタを読むだけでいいっぽい。

http://baticadila.dip.jp/arduino_115.html

15/01/24: mbedのprintf()

COMポートに9600bpsで、ということのようだ。(ここにあるSerialを宣言しなくてもデフォルトならOK)

http://blog.cloudninja.asia/?p=10443

15/01/23: mbedコンパイラと素のLPCマイコン

だんだんわかってきた気がする。 mbedコンパイラでつくった*.binを、デバッガとかのSWDライタを使って書き込めば、そのまま使える(はず)。 ということは、mbedで使えるボード(https://developer.mbed.org/platforms/)に載っているLPCとかのマイコンなら、そいつに書き込めばOKということになる。 ということは、自作ボードにそれらのマイコンを載せておけば、mbedコンパイラで書いたプログラムを動かせる、ということなる(のか?)。

デバッガを使っての書き込みは、このあたりか。http://developer.mbed.org/users/okini3939/notebook/flash-program/

あるいはST-Link2だと、純正ツールか。http://www.st.com/web/en/catalog/tools/PF258168

SWDの信号線はこのあたりか。http://www.eleki-jack.com/arm/2010/02/lpcxpressoled-1.html

ちなみにSWDの規格ではSWCKとSWDの2本でOKだが、オプションとして、Reserveのピン(p6)にSWOをつないで使う場合があって、これはデバッグ用の情報(printfの出力情報など)を流すための信号線のようだ。http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0499dj/CHDHDGGG.html

ちなみにSTmicroのNucleoのように、ライタ(デバッガ)ボードとメイン(ターゲット)ボードがついているやつだと、それのライタと、ターゲットに載っている同じマイコン(買ったままの素の状態でOK)に、両ボード間の接続線を使って書き込みOK。(ライタのマイコンに、ターゲットのマイコンの情報が載っているので、このライタで別のマイコンの書き込みはできない)

15/01/22: Carbon Emacsで¥がバックスラッシュにならない

MacでPCキーボードを使うと、¥がバックスラッシュにならず、¥として入力される(ことがあるみたい)。 KeyRemap4MacBookのfor Japanese、に、¥をバックスラッシュにする、という設定があるので、それでOKの模様。

(15/02/17追記)この方法だと、RemoteDesktop接続したWin機で、バックスラッシュが\にならずに]になてしまうっぽい。しょうがないので、.emacsで\を\にキー割り当て変更、で乗り切る。 http://qiita.com/aKenjiKato/items/4ac7d9b100bdce0b8920

15/01/19: GitHub導入

http://kawaidesu.hatenablog.com/entry/2014/06/28/092347

15/01/18: Autodesk 123D make

3Dデータをスライスしたり縦横で組み合わせた平面データに変換できる。これをレーザーカッターで切れば、立体をつくれることになる。 http://nakayasu.com/lecture/sculptris-123d-make/4001

15/01/05: Googleドライブを同期させずにクラウド的に使う

Googleドライブアプリをインストールしない、という方法しかないようだ。

http://blog.livedoor.jp/noanoa07/archives/1904665.html

15/01/05: Winにリモートデスクトップで複数ログイン

http://gigazine.net/news/20091205_universal_termsrv_dll_patch/

14/12/15: iPhone内の写真をまとめて削除

iPhone単体で1枚ずつ選んで削除、はできるが、全選択、ができない。 こういう別アプリを使うのが現実的か。 http://www.apowersoft.jp/delete-photos-from-iphone.html