2023年04月22日

Win10セットアップ途中のオフラインアカウント作成方法

今回はWindows10セットアップ時にLANやWi-Fiを接続してしまった場合でも、途中からオフラインアカウントに切り替えて作成する方法を紹介したいと思います。マイクロソフトとしてはMicrosoftアカウントでWindows10を利用して欲しいようで、初期設定でネットワークやWi-Fiを接続した場合、強制的にMicrosoftアカウントでユーザを作成する画面となり、戻ってオフラインアカウント作成画面に戻すことができません。

このような場合に再度、OSをクリーンインストールし直してセットアップし直すという方法がありますが、なかなか時間もかかり、面倒です。また、諦めて、一旦、Microsoftアカウントでユーザを作成して後からオフラインアカウントを作成する方法もありますが、Microsoftアカウントのゴミデータが残るため、避けたいものです。


今回はLANやWi-Fiを接続してしまった場合でも、途中からオフラインアカウントに切り替えて作成する方法を紹介します。

@セットアップ途中(Microsoftアカウント作成画面等)でShift + F10 キーを押します。

Aコマンドプロンプトが表示され、下記のコマンドを打って、接続されたネットワークインターフェース名を確認します。
netsh interface show interface

Admin State State Type Interface Name
-------------------------------------------------------------------------
有効     接続  専用 Wi-Fi
有効     未接続 専用 イーサネット

B接続済のインタフェースを無効化します

 a. Wi-Fiで接続してしまった場合は
   netsh interface set interface "Wi-Fi" disable

 b. LANで接続してしまった場合は
   LANを抜くか下記のコマンドで無効化します
   netsh interface set interface "イーサネット" disable

Cコマンドでシャットダウンさせます。
shutdown -s -t 0

D再度、電源を入れて起動させるとまた、最初のネットワーク確認画面になります。LANやWi-Fi接続を選択せずに「インターネットに接続していません」や「オフライン アカウント」、「制限された設定で続行する」等をクリックして、オフラインアカウント作成に進んでください。


Eセットアップ後には無効化したネットワークを有効化してください。スタートボタンを押して、「cmd」と入力し、コマンドプロンプトを起動させます。コマンドプロンプトで下記を入力することで再度、有効化してください。
netsh interface set interface "Wi-Fi" enable
もしくは
netsh interface set interface "イーサネット" enable


今回はWindows10セットアップ時にLANやWi-Fiを接続してしまった場合でも、途中からオフラインアカウントに切り替えて作成する方法を紹介しました。Windowsはセットアップ途中でスタートボタンやデスクトップが表示できない場合であっても「Shift + F10 キー」でコマンドプロンプトを表示させることが可能です。今回はネットワークの無効化とシャットダウンに利用しましたが、その他には事前にドライバ等のファイルをUSBメモリ等からCドライブにコピーして入れておくことや、Wi-FiやLANのMACアドレスをPCセットアップ前に事前に調べる用途にも使用できます。Windows10セットアップ時に「Shift + F10 キー」でコマンドプロンプト表示は覚えておいて損はないPCのライフハックです。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2023年04月08日

USBシリアルのCOMポート固定方法

今回はUSBシリアル変換ICでCOMポートが増えてしまう問題を解決する方法について紹介します。既にいくつかのサイトで方法について紹介されていますが、多くはFTDI製のUSBシリアル変換ICに関して紹介されています。FTDI製以外でもパラメータを変更することでProlific製やSilicon Labs製のUSBシリアル変換ICにも適用することが可能です。

まず、ベンダーID (VID)、プロダクトID (PID)を調べる必要があります。デバイスマネージャの「ポート(COMとLPT)」内の該当するUSBシリアル変換ICを開き、「詳細」タブをクリックします。今回はUSBシリアル変換IC、PL2303SAを使用しています。


com_1.png

「詳細」タブのプロパティから「ハードウェアID」を選択します。

com_2.png

「ハードウェアID」を選択するとUSBシリアル変換IC、PL2303SAのベンダーID (VID)が067B、プロダクトID (PID)が2303であることが分かります。なお、PL2303GLの場合はベンダーID (VID)が067B、プロダクトID (PID)が23D3となります。


com_3.png

ベンダーID (VID)とプロダクトID (PID)を確認できたところで、レジストリに追加します。Windows「スタート」を押して、「regedit」と入力し、レジストリエディタを起動させます。下記のレジストリ階層に移動し、右クリックで「新規」→「バイナリ値」をクリックし、IgnoreHWSerNum067B2303と名称を変更します。また、IgnoreHWSerNum067B2303の値に01(単に1でなく、0と入力後に1を入力します)と入力します。

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\


com_4.png



com_5.png


実際に追加した際のイメージは上記の通りです。今回はFTDI製以外のProlific製のUSBシリアル変換ICに適用する方法について紹介しました。IgnoreHWSerNumの設定は単に該当するVIDとPIDから特定されるUSBデバイスの固有番号(シリアル番号)を無視するという設定のため、USBシリアル変換ICの他、様々なUSBデバイスにも応用可能です。ただ、USBデバイスの固有番号(シリアル番号)を無視するため、同じVIDとPIDのデバイスを同時に2つ接続した場合にソフトウェアによっては不具合が発生する場合があるため、注意が必要です。また、レジストリの変更は最悪、PCが起動しない等の問題を生じる可能性があるため、注意してください。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2023年03月25日

iOS Web Bluetooth API

前回はBLE5モジュール変換基板BLE5モジュール変換基板V2とブラウザを介してシリアル通信できるツールを紹介しました。実装方法としてWeb Bluetooth APIを用いており、EdgeやChrome等の対応したブラウザが必要になります。iOSのSafari含めてスマートフォンの多くのブラウザではWeb Bluetooth APIに対応していません。今回はiOSでWeb Bluetooth APIに対応したサードパーティのブラウザを使ってブラウザを介してシリアル通信できるツールを利用できるかテストしてみました。

手持ちのiOS16でWeb Bluetooth APIに対応したサードパーティのブラウザとして、BluefyC.ブラウザをテストしてみました。Bluefyでシリアル通信できるツールにアクセスして、接続ボタンを押すと、BLEデバイスが表示され、OS側でのデバイス追加なしで簡単に接続することができました。また、iOS上のBluefyブラウザから文字列を送信したり、逆にBLEデバイスからUARTを介して文字列を送信して、Bluefyブラウザに表示できることが確認できました。実際に接続してみたスクリーンショットは下記の通りです。

bluefy.jpg

一方でC.ブラウザは接続ボタンでデバイス選択画面が表示されるものの、BLE5モジュール変換基板BLE5モジュール変換基板V2のBLEデバイスが表示されず、利用できませんでした。

スマートフォン向けにBLE5モジュール変換基板BLE5モジュール変換基板V2を用いたシリアル通信はBGX Commanderアプリ(iOS/Android)が提供されていますが、独自UIを実装する場合、追加でアプリ開発や登録等の手間が生じます。それらの手間を考えるとブラウザは限定されるものの、Web Bluetooth APIでOSに依存せずにサービスを提供できるのは非常に魅力的だと思いました。今後、Web Bluetooth APIに対応したiOSのBluefyを用いて色々実験や検討をしてみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2023年03月11日

Web BLE API

以前にWebシリアルAPIとUSBシリアルI2C変換基板を用いてI2Cデバイスをブラウザから制御して、取得したデータからChart.jsで可視化するデモツールを紹介しました。今回はBLE5モジュール変換基板BLE5モジュール変換基板V2とブラウザを介してシリアル通信できるツールを紹介したいと思います。BLE5モジュール変換基板BLE5モジュール変換基板V2Wireless Xpressファームウェアが実装されているため、簡単にスマートフォン等と通信することが可能です。スマートフォン向けにはBGX Commanderアプリ(iOS/Android)が提供されています。

一方、PC版は提供されていないため、今回はWeb Bluetooth APIを用いて、ブラウザを介してシリアル通信できるツールを実装してみました。ツールはこちらから利用できます。


webbleapi.png

Web Bluetooth APIの制約で事前にOS側の設定画面でBluetoothデバイス追加が必要です。追加後、接続ボタンを押すと検出されたBLE5モジュール変換基板もしくはBLE5モジュール変換基板V2が表示されます。接続後は双方向に文字列を送ることが可能です。今回はモジュールをUSBシリアルに接続してテストしてみました。ブラウザから文字列を送信したり、逆にTeratermからUARTに文字列を送信して、ブラウザに文字列が表示されることを確認しました。デフォルトはシリアル通信を双方向に行うためのストリームモードとなっていますが、モードをコマンドモードに設定することでBLEモジュールの設定を遠隔で行うことも可能です。

実際にはBLE5モジュール変換基板をマイコン等に接続し、BLE5モジュールとペアリングしたPCのブラウザから遠隔でデバッグして使用します。Web Bluetooth APIの制約でOS側で事前にBluetoothデバイスの追加しない場合、データ書き込み時にGATT Error: Not pairedの例外エラーが発生します。事前のデバイス追加が必要なものの、ブラウザから簡単にBLEデバイスと通信することができるのは非常に便利だと思いました。なお、WebシリアルBLEツールのjsコードやcss含めてすべてhtml内に記述しているため、本ツールにアクセスして右クリックで「ページのソース表示」でソースを確認することができます。今後は他にも応用的な機能を実装したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2023年02月25日

RTC用MEMS発振器

今回は安価に高精度を実現するMEMS発振器を紹介したいと思います。RTCの精度が悪い場合、RTCの時刻が頻繁にずれ、時刻調整やネットワークから時刻を取得する頻度を多くする必要があります。

マイコンで時刻や日付を保持するためのRTCを利用する場合、内蔵RTC機能を使用するか、外付けRTCを利用することになります。外付けの場合はRV-8803-C7やDS3231といった温度補正があるRTCを利用することで高精度に時刻保持することが可能ですが、部品が増え、コストが高くなりがちです。内蔵RTCの方が通信ラグがなく、比較的安価に実装することが可能です。ただし、精度は一般的な32.768kHz水晶発振子では20ppm前後とあまり期待できません。また、水晶発振子の外部負荷容量によっては更に精度が悪化する場合があります。一般的な水晶発振子の精度と時刻ずれの関係は下記の通りです。実際は昼夜の温度変化、季節の温度変化の影響、負荷容量によって更に大きくずれることが想定されます。

20ppmの場合、1年で11分前後
5ppmの場合、1年で3分前後
1ppmの場合、1年で30秒前後

今回は内蔵RTCで安価に高精度を実現する方法として、温度補正機能内蔵のMEMS発振器、SiT1552を紹介したいと思います。23年2月時点で1個200円~300円で温度補正機能を内蔵し、5ppmの精度を実現しています。データシートを見る限り、SiT1552AC-JEでは5ppm以内を謳っており、実力値としては1~2ppm前後あるようです。また、1.5V~3.63Vの広い電源範囲と1uA以下の消費電力でRTC用途にも最適です。

32.768kHzの水晶発振子を接続する代わりにXINにSiT1552のクロック出力を接続し、電源を供給して使用します。XOUTは未接続にします。マイコン側に水晶発振子か、発振器の設定パラメータがある場合は発振器に変更します。水晶発振子と異なり、MEMS発振器はそのままクロックが出力されます。そのため、負荷容量の調整や配線長を水晶発振子ほど考慮しなくてもよく、設計負荷が減ります。

SiT1552はCSPパッケージで非常に小さく、そのままでは扱いにくいため、ブレイクアウト基板を設計してみました。

osc1.jpg

osc2.jpg

実際にSiT1552を実装して、使い勝手が良ければまた、製品として提供を開始する予定です。今回は温度補正機能付きのMEMS発振器を利用することで比較的安価に内蔵RTCで高精度を実現する方法を紹介しました。内蔵RTCで安価に高精度を実現する方法として、今回紹介した方法の他にマイコン内蔵の温度計を使用して温度補正する方法もありますが、水晶発振子毎の温度特性のばらつきもあるため、調整が難しいのが難点です。RTCの部品を減らしつつ、より低コストに高精度を実現したいという場合に最適だと思いました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする