2018年5月19日土曜日

Fusion360のPC引越時の覚書

PCを変えてからFusion360のCAMを使っていませんでした。
久しぶりに立ち上げると
あぢゃ~~~工具ライブラリからMyToolsが消えているのです。
苦労して入れたのに~
自動バージョンアップで消えたのだろうか?
ちょっと調べてみると
[工具ライブラリをエクスポート]しておかないといけないらしい...
時すでに遅し_| ̄|○
ん、エクスポートということは!
ひょっとしてMyToolsは、クラウドではなくローカルにあるのか!
前のPCのHDDは、取り外して保管しているのでUSBで接続して探すと
ありました!
EAGLEと同様、てっきりクラウドにあるかと思いこんでおりました。

F:\Users\marty\AppData\Roaming\Autodesk\CAM360\libraries\Local

Library.json と MyTools.json が!

早速、新PCの
C:\Users\marty\AppData\Roaming\Autodesk\CAM360\libraries\Local
に「MyTools.json」をコピー
Fusion360を起動して工具ライブラリを開くと
Mytoolsが復活しました! ふーっ!
当然、デフォルトのGCode保存フォルダも空なので
旧PCからこれまで作成したデータを
C:\Users\marty\AppData\Local\Fusion 360 CAM\nc
にコピーします。

インストール後、初めてポスト処理すると
ビューワのBracketsが自動的にインストールされます。
そういえば、Bracketsでエラーがでることがあったのを思い出しました。
この時
 ”ファイルを開く時にエラーが発生しました。
 ”・・・UTF-8でエンコードされたファイルのみです・・・
と表示され、その他は何も見れないというエラーでした。
再投ですが、
AutodeskのここにUTF-8...の対策用ファイルがあり、適応しておきます。

このファイルを保存します。(以前の2017.8と変わってないようです)
「brackets-shizimily-multiencoding-master.zip ‏1804 KB」
Brackets の [ ファイル ] > [ 拡張機能マネージャー ] にて
インストールします。
Bracketsの下の方に
「.zipをここにドラッグするか、URLからインストール...」が
あるので
(出ない場合は、Brackets自体のウインドウの縦幅を広げます)
AUTODESKの参考サイトの説明の通りに
ダウンロードしたzipファイルをドラッグします。
ほとんど一瞬でインストール成功とでて完了です。
ん?Bracketsを終了しようとしたら、終了できません。
仕方ないのでタスクマネージャーで強制終了です。
JavaScriptか何かが邪魔しているのかな~?
一応、もう一度、ポスト処理してBracketsを出したら
正常に終了しました。
Fusion360の引っ越しは、以上の3つをやれば大丈夫かと。

SparkFun Pro Micro(ATmega32u4)の素行調査とJoystickMouse

この前に続き、SparkFun Pro Microの素行調査、まだやってます。
元々、USB Serial+HIDを同時に実現できるArduino互換機ということで
ポチっておりましたので、その辺を確認しておきたいのです。

手元のSparkFun Pro Micro(ATmega32u4) Cloneは、これです。
ん? 改めて商品タイトルを読むと「For Leonardo」とありますね~
後で確認することにします。

SparkFunのサイトのここの[Documents]から
Schematic(PDF)、Graphical Datasheet(PDF)等が入手できます。
この図は、便利そうなので拝借m(_ _)m
www.sparkfun.com
手始めに、Arduino IDE v.1.8.3の
[スケッチの例]-[09.USB]-[Keyboard]-[KeyboardSerial]から。
シリアルモニタから文字を送信すると、 USB Keyboardとして文字を返しますが、
例えば「A」送信で、キーコードの次「B」を返すというシンプルなスケッチです。
使ったスケッチは、これです。
Arduino Leonardo、Micro、Duo用とあります。
USB-SerialとUSB-Keyboard同時は、ATmega32u4じゃないとできないのです。
これは、外部回路は不要です。
*****
/*
 Keyboard test

 For the Arduino Leonardo, Micro or Due

 Reads a byte from the serial port, sends a keystroke back.
 The sent keystroke is one higher than what's received, e.g.
 if you send a, you get b, send A you get B, and so forth.

 The circuit:
 * none

 created 21 Oct 2011
 modified 27 Mar 2012
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/KeyboardSerial
 */

#include "Keyboard.h"

void setup() {
  // open the serial port:
  Serial.begin(9600);
  // initialize control over the keyboard:
  Keyboard.begin();
}

void loop() {
  // check for incoming serial data:
  if (Serial.available() > 0) {
    // read incoming serial data:
    char inChar = Serial.read();
    // Type the next ASCII value from what you received:
    Keyboard.write(inChar + 1);
  }
}
*****

Arduino IDE v.1.8.3のこの設定で書き込みます。
例によって、これがちらっと出て
*****
 シリアルポート「COM12」を1200bpsで開いて閉じる事によって、
 リセットを行っています。
 PORTS {COM12, } / {} => {}
 PORTS {} / {COM11, } => {COM11, }
 Found upload port: COM11
*****
COM12が消え、COM11が現れます。
前回じっくり経験しているのでビビりません!
書き込みが完了するとすぐに
デバイスドライバ「SparkFun Pro Micro」のセットアップが始まり
ほどなく完了します。
デバイスマネージャーを見ると
4つ増えています。
ポート(COMとLPT)は、「USB シリアル デバイス(COM12)」⇒ COM14
変わっています。
Arduino IDEのシリアルモニタをCOM14にして
「A」ENTERすると
([送信]ボタンではダメで、ENTERじゃないといけません)
入力欄が「B」に書き換えられました。
ちなみに「1」ENTERでは、「2」に変わります。
USB SerialとUSB Keyboardが同時に実現できたわけです。

そして、Arduino IDE v.1.8.3の標準サンプルに
[スケッチの例]-[09.USB]-[Mouse]-[JoystickMouseControl]
が、あるのを知りました。
ノリでポチっていたジョイスティックが使えそうなのです。
一応、スケッチをコピペしておきます。
これもArduino Leonardo、Micro、Duo用とあります。
スケッチは、十分理解できておりませんが、動きは予想できるので、
いきなりやってみることにします。
*****
/*
  JoystickMouseControl

 Controls the mouse from a joystick on an Arduino Leonardo, Micro or Due.
 Uses a pushbutton to turn on and off mouse control, and
 a second pushbutton to click the left mouse button

 Hardware:
 * 2-axis joystick connected to pins A0 and A1
 * pushbuttons connected to pin D2 and D3

 The mouse movement is always relative. This sketch reads
 two analog inputs that range from 0 to 1023 (or less on either end)
 and translates them into ranges of -6 to 6.
 The sketch assumes that the joystick resting values are around the
 middle of the range, but that they vary within a threshold.

 WARNING:  When you use the Mouse.move() command, the Arduino takes
 over your mouse!  Make sure you have control before you use the command.
 This sketch includes a pushbutton to toggle the mouse control state, so
 you can turn on and off mouse control.

 created 15 Sept 2011
 updated 28 Mar 2012
 by Tom Igoe

 this code is in the public domain

 */

#include "Mouse.h"

// set pin numbers for switch, joystick axes, and LED:
const int switchPin = 2;      // switch to turn on and off mouse control
const int mouseButton = 3;    // input pin for the mouse pushButton
const int xAxis = A0;         // joystick X axis
const int yAxis = A1;         // joystick Y axis
const int ledPin = 5;         // Mouse control LED

// parameters for reading the joystick:
int range = 12;               // output range of X or Y movement
int responseDelay = 5;        // response delay of the mouse, in ms
int threshold = range / 4;    // resting threshold
int center = range / 2;       // resting position value

boolean mouseIsActive = false;    // whether or not to control the mouse
int lastSwitchState = LOW;        // previous switch state

void setup() {
  pinMode(switchPin, INPUT);       // the switch pin
  pinMode(ledPin, OUTPUT);         // the LED pin
  // take control of the mouse:
  Mouse.begin();
}

void loop() {
  // read the switch:
  int switchState = digitalRead(switchPin);
  // if it's changed and it's high, toggle the mouse state:
  if (switchState != lastSwitchState) {
    if (switchState == HIGH) {
      mouseIsActive = !mouseIsActive;
      // turn on LED to indicate mouse state:
      digitalWrite(ledPin, mouseIsActive);
    }
  }
  // save switch state for next comparison:
  lastSwitchState = switchState;

  // read and scale the two axes:
  int xReading = readAxis(A0);
  int yReading = readAxis(A1);

  // if the mouse control state is active, move the mouse:
  if (mouseIsActive) {
    Mouse.move(xReading, yReading, 0);
  }

  // read the mouse button and click or not click:
  // if the mouse button is pressed:
  if (digitalRead(mouseButton) == HIGH) {
    // if the mouse is not pressed, press it:
    if (!Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.press(MOUSE_LEFT);
    }
  }
  // else the mouse button is not pressed:
  else {
    // if the mouse is pressed, release it:
    if (Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.release(MOUSE_LEFT);
    }
  }

  delay(responseDelay);
}

/*
  reads an axis (0 or 1 for x or y) and scales the
 analog input range to a range from 0 to <range>
 */

int readAxis(int thisAxis) {
  // read the analog input:
  int reading = analogRead(thisAxis);

  // map the reading from the analog input range to the output range:
  reading = map(reading, 0, 1023, 0, range);

  // if the output reading is outside from the
  // rest position threshold,  use it:
  int distance = reading - center;

  if (abs(distance) < threshold) {
    distance = 0;
  }

  // return the distance for this axis:
  return distance;
}
*****
まずは、スケッチを書き込みます。配線は後です。
COM14が消え、COM11が現れます。
書き込み時は、常に「Arduino Micro bootloader(COM11)」が出現します。
書き込みが終わるとすぐに消えます。
書き込みが完了するとすぐに
また、デバイスドライバのセットアップが始まり
ほどなく完了します。
うっぷ!カーソルがデスクトップの左上端に張り付いて動きません!
まだ、アナログ入力に何も繋いでないからですね~。
一旦、外して配線します。
スケッチのコメントでは、
 A0:X軸
 A1:Y軸
 D2:Joystick Mouse機能を有効にする
 D3:Mouseの左ボタン
 D5:MouseControl有効表示のLED
とあります。
実験なので、A0、A1、D2だけ配線することにします。
Fritzing Partsは、近いやつから作りました。
Joystickは、これです。
X、Y軸に可変抵抗器。
右下のタクトスイッチは、ノブを押すとGNDに落ちます。

配線完了!
ピンヘッダのハンダ付けが面倒で、この様な事になっております^^;
デバイスマネージャーを確認すると、4つ増えています。
今度は、キーボードの[HIDキーボードデバイス]はなく、
マウスの所に[HID準拠マウス]が現れています。
ポート(COMとLPT)は、「USB シリアル デバイス(COM14)」⇒ COM15に!
毎回増えていくんでしょうかね?
では、動画で
面白いというか、こんなに簡単にマウスの様なUSBデバイスが作れることに感激!
実は、D2は、HIGHアクティブであることに、今頃気づきました(-_-;)
Joystickのノブで押すSWは、押すとGNDなのです。
D2にPull UP抵抗をつければ、スケッチはそのままでもトグル動作しますが、
設計者の意図「起動時Control OFF」になるようにD2をLOWアクティブにします。
スケッチの次の2箇所(赤文字部)を変更します。
*****
 int lastSwitchState = HIGH;        // previous switch state
*****
*****
  if (switchState == LOW) {
*****
D2にPull-UP抵抗を外付けしてもいいのですが、
スケッチを変更(赤文字部)して内蔵Pull-UP抵抗を使ってみます。
_PULLUP」を追加するだけなので便利です。
*****
 pinMode(switchPin, INPUT_PULLUP);       // the switch pin
*****
ちなみにATmega32u4のDatasheetを見ると
I/O pinのPull-Up抵抗値:20K~50KΩ だそうです。

動作確認するとJoystickのノブ(D2)でMouse ControlのON/OFFできました。
それに合わせボード内のTX LEDがON/OFFします。
スケッチでは、Mouse Control LED:D5
回路図を見るとD5には、TX LEDが接続されていますね~
ただ、マーティーのは、LED色が回路図とは、全部異なっております。

これで、Mouse Control ON/OFFとJoystickMouseの動きを確認できました!
USBで色んな事できそうでなかなかワクワクさせられる一品です。

ついでにもう一度、最初のスケッチ
[スケッチの例]-[09.USB]-[Keyboard]-[KeyboardSerial]を書き込むと
ポート(COMとLPT)の「USB シリアル デバイス(COMxx)」は、
COM15 ⇒COM14に戻りました。

更に前回やったSparkfunサイトのここにある
ボード上のTXとRXをBlinkさせるスケッチを書き込むと
COM14 ⇒ COM12 に戻りました。これは前回と同じCOM番号です。


そういえば、最初に気になっていた、商品タイトルの「For Leonardo
「pin header For Leonardo」? Leonardo化するシールドでもあるのだろうか?
Arduino IDE v.1.8.3で「Arduino Leonardo」としてやってみることにします。


最初の「KeyboardSerial」を「Arduino Leonardo」で書き込んでみます。
途中で[Arduino Micro bootloader(COM11)]が出現して
書き込みが完了すると消えて
おっ!「Arduino Leonardo」のデバイスドライバが入りました!
デバイスマネージャーには、
目出度く[Arduino Leonardo(COM16)]が出現しています。
この時点で[ボード情報]すると
お~!「Arduino Leonardo」になっています。
一体このボードは、いくつ顔をもっているのでしょう?
また、前回やったSparkfunサイトのここにある
ボード上のTXとRXをBlinkさせるスケッチを書き込んでみます。
[Arduino/Genuino Micro]では、書込成功なのに正常動作しなかったのですが、
こちらは正常動作! ちゃんとRXとTXが交互にブリンクしています!
そしてまた、ポートが COM16 ⇒ COM17 に増加しました。

今回と前回で、Arduino IDE v.1.8.3における、このボードの挙動を整理すると
<0.書き込み時のポート名称>
・Arduino Micro bootloader(COM11)・・・下記の3つの場合で共通
(Arduino IDEが、書込時だけ一時的に、これに切り換える)

<1.ボード:Arduino/Genuino Microとして書込>
 ボード情報:Arduino/Genuino Micro
 COM名称:Arduino Micro(COMxx)
 動作:正しく動作しない(マクロ命令 TXLED0/1 だけの原因かも)
 SparkFun Pro Microのボードマネージャーを入れる前は書き込みできなかった。

<2.ボード:SparkFun Pro Micro(5V,16MHz)として書込>
 ボード情報:不明なボード
 COM名称:USBシリアルデバイス(COMxx)
 動作:動作OK

<3.ボード:Arduino Leonardoとして書込>
 ボード情報:Arduino Leonardo
 COM名称:Arduino Leonardo(COMxx)
 動作:動作OK

ブートローダーの名称は、
「Arduino Micro bootloader」なのに
「Arduino/Genuino Micro」として書き込むと正しく動作しないのです。
不思議なボードだ~

後でスケッチを見ると
TX-LEDのON/OFFにマクロ命令「TXLED1、TXLED0」を使っていて
「Arduino/Genuino Micro」が正常動作しない原因は、これかと思われます。

書き込みの妙な癖は把握できたし、USBデバイスが簡単に作れて便利そうで、
USB抜き差しでは、DigisparkのV-USBと違って確実に認識してくれるので、
もう一個ポチッておきます。
今度は、タイトルに「Leonardo」がない別のセラーのにしてみます。

いつの間にか揃い始めた、マーティーコレクション!NOWです。
では、左から(US$ x.xx:購入時の価格)
・Digispark 直挿版(ATtiny85)US$ 1.25
・Digispark USB-Micro版(ATtiny85)US$ 1.34
・SparkFun Pro Micro(ATmega32u4)US$ 3.60
・Arduino NANO(ATmega328P+CH340G)US$ 2.75
・Arduino UNO R3(ATmega328P+CH340G)US$ 2.86(今は$3超えですね~)
当然ですが、純正は、ありません^^;
後、Arduino Mega2560も揃えて置きたい一品ですね~

2018年5月13日日曜日

Arduino Micro(SparkFun Pro Micro)の謎

これも、届きました!
前回のBluetooth Moduleは、特に速かったですが
どうゆう訳か、Arduino系のパーツは、配送速いですね~
ここんとこ、トラブル続きでスルッといきません。これもなのです。(´-﹏-`;)


すぐにUSBに挿入すると
緑のLED(Power)が1個、赤のLED(TX・RX)は2個ついたまま
デバイスマネージャーには、すぐに「Arduino Micro(COM10)」とでて
右下にデバイスドライバのセットアップが始まり
完了。
Arduino IDE v.1.8.3で[Arduino Micro]にして
Lチカを書き込みます。
これはすんなり行くだろうと思いきや、エラー
COMは、ちゃんとCOM10に設定しているのにです。
調べていくと
どうもこいつは、書き込みに非常に癖がある代物のようです。

ここが詳しそうです。
Arduino互換機でSparkFun Pro Microというものらしい
色んなバージョンがあるんですね~
マーティーが買ったのは、これです。
よーくみると16MHzの水晶発振子がついていて
J1パッド(上の写真の左端下)もあり、オープンになっています。
SparkFun純正は、これ
マーティーのは、いわゆる中華Cloneってやつで、Fakeではない事を願っています。
16MHzの水晶発振子がついているので必然的に5V動作ということになります。
どうやら本当は、3.3Vと5Vのシルクのどちらかにチェックがあるハズのようです。
が、マーティーのは、3.3V、5Vと印字があるも、どちらにもチェックなし(-_-;)
で、書き込みには、Arduino Microではなく
SparkFun Pro Microのボードマネージャーが必要のようです。
Digisparkの時にDigistumpのとSpence Konde氏のものをインストールしましたが
同じ様にSparkFunのボードマネージャーをインストールする必要があります。

Arduino IDE v.1.8.3を起動します。
[ファイル]-[環境設定]します。
赤枠部の[追加のボードマネージャのURL:]に次のURLを入力しますが
マーティーの場合、先にDigistumpのとSpence Konde氏のURLが入っています。
この後ろに「,」をつけて追加してもいいのですが
右下の赤枠部のボタンを押すと
このボックスで改行して次のURLを追加して
***
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
***
[OK]します。
環境設定を閉じて
[ツール]-[ボード]-[ボードマネージャー]をクリックします。
すると、ボードマネージャーのボックスが出るので
「プラットフォームのインデックスをダウンロード中」が終わるまで待って
[タイプ]の横の「検索をフィルタ」の欄に「SparkFun」と入力したら、
SparkFun AVR Boards by SparkFun Electronics 」をクリックすると
右側に[インストール]ボタンが現れます。
インストール前にプルダウンボックスでVersionをみると1.1.10でした。
そのまま[インストール]をクリック
ボードの定義がダウンロードされ
ボードがインストールされ
完了すると赤線部に「INSTALLED」がでたら[閉じる]します。
[ツール]-[ボード]で下の方にスクロールすると
今回は、懸念していた「先にインストールしたのが消える現象」はなく
[Arduino AVR Board]群ができています。
そこの[SparkFun Pro Micro]を選択します。
[プロセッサ:]の所を開いて
[ATmega32U4(5V, 16MHz)]にします。
[ファイル]-[スケッチの例]で下の方に
[SparkFun Pro Micro用のスケッチ]と
[Arduino AVR Boards用のスケッチ]が追加されました。
Arduino IDEの書込装置を何に設定していいか見つからず
ま~だ書き込みはできませんね~

この状態で[ボード情報を取得]をみると
 何と!「Arduino/Genuino Micro」とでたのです。
改めて上のシリアルポートの名称を見ると
”COM10(Arduino/Genuino Micro)”になっているのに今頃気づきます。
先のサイトの説明では、
「RESETスイッチを2回押し(ダブルクリック)すると
 シリアルポートが8秒間出現する」
ということなのですが
マーティーのは、RESET スイッチは、付いていないし
USBに挿したらすぐにArduino Micro COMポートができて
8秒過ぎても消えないのです。
このSparkfunサイトにも、RESET2回押しの説明があります。
Sparkfunサイトのここにボード上のTXとRXをBlinkさせるスケッチがありました。
インストール方法もあり、Windows10は、シリアルドライバは自動だとあります。
他にも色々サンプルスケッチがあります。
書込装置の設定はわかっていませんが、いつもの「AVRISP mkII」のまま
この設定で書き込んでみることにします。
そのSparkfunサイトからスケッチをコピペしてきますm(_ _)m
*****
/* Pro Micro Test Code
   by: Nathan Seidle
   modified by: Jim Lindblom
   SparkFun Electronics
   date: September 16, 2013
   license: Public Domain - please use this code however you'd like.
   It's provided as a learning tool.

   This code is provided to show how to control the SparkFun
   ProMicro's TX and RX LEDs within a sketch. It also serves
   to explain the difference between Serial.print() and
   Serial1.print().
*/

int RXLED = 17;  // The RX LED has a defined Arduino pin
// The TX LED was not so lucky, we'll need to use pre-defined
// macros (TXLED1, TXLED0) to control that.
// (We could use the same macros for the RX LED too -- RXLED1,
//  and RXLED0.)

void setup()
{
 pinMode(RXLED, OUTPUT);  // Set RX LED as an output
 // TX LED is set as an output behind the scenes

 Serial.begin(9600); //This pipes to the serial monitor
 Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
}

void loop()
{
 Serial.println("Hello world");  // Print "Hello World" to the Serial Monitor
 Serial1.println("Hello!");  // Print "Hello!" over hardware UART

 digitalWrite(RXLED, LOW);   // set the RX LED ON
 TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF
 delay(1000);              // wait for a second

 digitalWrite(RXLED, HIGH);    // set the RX LED OFF
 TXLED1; //TX LED macro to turn LED ON
 delay(1000);              // wait for a second
}
*****

途中でCOM11の文字が一瞬ちらっと!
COM10で書き込みしたハズなのに、どきっ!
また失敗なのだろうか?
書き込みは無地成功しました!
すぐに右下にこれがでて
SparkFun Pro Microのデバイスドライバが入ります。
TXとRXが交互にブリンクしています。
ひとまず書き込み成功です! ふ~っ!

と、デバイスマネージャーをみると
何と!「USBシリアルデバイス(COM12)」になっています。
書き込む前の「Arduino Micro(COM10)」は、どこに行ったのだろう?
COM12にしてシリアルモニタを開くと、ちゃんと動いています。
Arduino IDEのログをみてみると
「シリアルポート「COM10」を1200bpsで開いて閉じる事によって、
リセットを行っています。」
ってのがありました。
*****
C:\Program Files (x86)\Arduino1.8.3\...
~・・・・・
スケッチをコンパイルしています...
~・・・・・
最大28672バイトのフラッシュメモリのうち、スケッチが5078バイト(17%)を使っています。
最大2560バイトのRAMのうち、グローバル変数が346バイト(13%)を使っていて、ローカル変数で2214バイト使うことができます。
シリアルポート「COM10」を1200bpsで開いて閉じる事によって、
リセットを行っています。
PORTS {COM10, } / {} => {}
PORTS {} / {COM11, } => {COM11, }
Found upload port: COM11
~・・・・・
         Using Port                    : COM11
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
~・・・・・
avrdude: verifying ...
avrdude: 5078 bytes of flash verified

avrdude done.  Thank you.
*****

一度、USBを抜き差しすると
もう何度やっても「Arduino Micro(COM10)」が出てくることはなく
「USBシリアルデバイス(COM12)」にしかなりません。
不思議だ~
まさか元のBootloaderが消えてしまったのか、壊れたのか...(-_-;)

もう一度、標準スケッチ例のBlinkを書き込んでみます。
COM12を指定して(というかこれしかない)
LEDがないので動かないことはわかっているのですが
Blinkを開いて
書き込みます。
今度は、こんなログが

*****

最大28672バイトのフラッシュメモリのうち、スケッチが4126バイト(14%)を使っています。
最大2560バイトのRAMのうち、グローバル変数が149バイト(5%)を使っていて、ローカル変数で2411バイト使うことができます。
シリアルポート「COM12」を1200bpsで開いて閉じる事によって、リセットを行っています。
PORTS {COM12, } / {} => {}
PORTS {} / {COM11, } => {COM11, }
Found upload port: COM11

         Using Port                    : COM11
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4

avrdude: verifying ...
avrdude: 4126 bytes of flash verified

avrdude done.  Thank you.
*****

デバイスマネージャーは、「USBシリアルデバイス(COM12)」から変わりません。
一度、USBを抜き差しても変わりません。
もう一度、RX・TX LED Blinkを書き込むと
一瞬、この「Arduino Micro bootloader(COM11)」がでて、すぐに消えて
上の様に「USBシリアルデバイス(COM12)」に戻るのです。
この時点で[ボード情報を取得]すると
「不明なボード」
ん~ん、いよいよ壊れたのか?
ひょっとして
「Arduino/Genuino Micro」にして書き込んだら。っと
ボードの設定では、変わらないとは思いますが
念の為、もう一度[ボード情報を取得]が変わってないことをを確認して
同じTX・RX LED Blinkを書き込みます。
また、「Arduino Micro bootloader(COM11)」がでて、すぐに消え
書き込みが完了しました。
お~~っ!「Arduino Micro(COM10)」に戻りました!
ボード情報を見ると、これに戻っています。
取り敢えず、もとに戻ったのでホット一息。
ところが、RXとTXが交互にブリンクするはずなのですが
両方同時にブリンクしています。
シリアルモニタに「Hello world」は、でています。

もう一度、SparkFun Pro Microの設定で同じスケッチを書き込みます。
ちゃんとRXとTXが交互にブリンクしますね~
でもボード情報は、これに戻ります。
このボードは、「SparkFun Pro Micro」クローンだけど
ボード情報は、「Arduino Micro」にフェイクって代物なのでしょう。
まあ、「SparkFun Pro Micro」の「5V 16MHz」の設定で書き込めば
正常に動作することは確認できました。
結局、こいつの本名は何なのかわかりません。
ここまでかなり気力を使ったので、そもそもこれをポチった目的である
「DigikeyboardとUSB-Serialの同時使用」は、お預けです。

kosakalabさんのここのは、似てるけど、チップの搭載角度が異なっています。
そこには、SparkFun Pro MicroをArduino Leonardo化する手順が詳しくあります。
今回は、記録に留めて止めておきます。

最近は、Arduino系にハマっております。
そろそろCNC2418で何か作ろうかな~
Fusion360やEAGLEの使い方を忘れそうだし。