2023年07月08日

Elecrow Partner Seller

今回は電子部品販売、PCBやPCBAサービス等を行っている深圳のElecrowの新しいサービス、Elecrow Partner Sellerについて少し紹介したいと思います。

Elecrow Partner Sellerでは自作基板等をElecrowのサイトで販売できるサービスで特にこれまでElecrowのPCBA等を利用している場合はPCBA後にそのままElecrowのサイトで自作の製品を販売することが可能です。日本ではお馴染みのスイッチサイエンスのマーケットプレイスやビットトレードワンのBTOマイプロダクトサービス等がありますが、すぐに海外前提で販売できるElecrow Partner Sellerは非常に魅力的です。

Elecrow Partner Sellerの特徴
・PCBAからそのまま販売できるため、製品を預けるための送料不要
・手数料は売上の5%
・月々の管理費や梱包費は無料
・グローバル前提で販売できる
・Paypal等で手数料を引いた売上を受け取り

他の委託販売同様に製品製造の初期投資は必要です。ただ、手数料が5%と非常に低く、輸送費用や梱包費用、管理費用が不要なのは非常に魅力的です。Elecrow Partner Sellerを始める前にElecrow側と契約書を交わす必要がありますが、そこまで煩雑なものではなく、契約後にElecrow Partner Sellerで売る製品のPCBA依頼、製品の説明や写真の登録等をElecrowのサイトから行います。


国内向けについては委託販売を複数製品で行っていますが、海外向けについては22年6月にスイッチサイエンスの海外販売が終了し、販売できない状況が続いていました。特にDigital MEMS Microphoneについては海外から購入したいという要望が多く、どのように提供するか検討していました。特にコロナ以降、海外郵送が混乱し、SAL便が利用できない等、以前よりも安く海外に電子部品を送ることが難しくなっています。

このような状況下でElecrow Partner Sellerサービスは委託販売の手段の1つとして非常に魅力的だと思い、早速、先日からDigital MEMS Microphoneの販売を開始してみました。海外向けには当ブログ含めて積極的な宣伝をしていないため、まだ販売数は微々たるものですが、今後に期待したいと思います。既に国内で委託販売等をしている方で海外問い合わせが多い製品がある方はぜひ、Elecrow Partner Sellerを選択肢の1つとして検討してみてください。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2023年06月10日

RTC SD30XXシリーズ

以前に外付けRTC比較について紹介しましたが、昨今の円安の影響でより低価格かつ高精度なRTCについて調査していました。その中で要求を満たす中華製RTCがあったため、今回、紹介したいと思います。

深圳にあるwave社のRTC SD3031、SD3077、SD3078は温度補正機能付きのRTCで水晶発振子内蔵、精度±3.8ppm、電源/電池切り替え内蔵(電池と電源のピンがそれぞれある)、1個250円前後の低価格です。更に70byteのSRAMも利用できます。中華製なのでDigi-keyやMouser等での入手性は悪いものの、LCSCやAliexpress等で入手可能です。SD3031モジュールDigi-keyでも入手可能です。


SD3031、SD3077、SD3078のアドレスや内部レジスタ等は全て同じで、ピンアサインのみが異なります。他のRTCからの置き換えを想定してピンアサインの互換性のために3種類販売されています。ただし、既存のRTCとはソフトウェアでは互換性がなく、更にちょっと癖があるため、注意点についても紹介します。


■時刻書き込み時の注意点
・日時を書き込む際は先にCTRレジスタのWRTC1に1をセットし、続いてWRTC2,3に1をセットする必要
・hourは0~23時表現の場合は7bit目に1を立てて書き込む必要
・時刻、日付の7バイトを一括で書き込む必要
・書き込み後は先にWRTC2,3を0に戻してからWRTC1を0に戻す必要
・SRAMの書き込み時も日時同様にWRTCレジスタの書き換えが必要

■時刻読み込み時の注意点
・hourは0~23時表現の場合は7bit目の1を除く必要

■その他注意点
・汎用的なSOP8パッケージだが、NOR Flashで使用される幅が広い208milタイプ

一般的なRTCではレジスタに日時を書き込めばそのまま更新できますが、SD30XXの場合、事前にレジスタで書き込み有効化の処理が必要であり、手間がかかります。また、時間は24時間表記固定でなく、12時間モード/24時間モードの両方に対応している分、書き込みと読み込みに処理が必要です。これらを考慮して、USBシリアルI2C変換基板を使用したSD30XXシリーズ用のWebシリアルの設定/確認ツールを作成してみました。日本における入手性が悪い点と扱いにちょっと癖のあるRTCですが、低価格で高精度なのは非常に魅力的だと思いました。
posted by Crescent at 00:00| Comment(2) | TrackBack(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2023年05月27日

pico-sdk 最適化オプション

RP2040をC言語で使用する場合にpico-sdk+pico-project-generatorを使用することが多いと思います。先日、pico-sdkを使用していて、意図通りにRP2040が動かないことがありました。この原因として最適化オプションが働いて意図せず、変数等が削除されてしまったことでした。多くはvolatile等のオプションを変数に付与することで解決しますが、プロジェクトが大きくなるとプロジェクト全体の最適化オプションを変更した方が楽な場合が多々あります。

今回はpico-sdk+pico-project-generatorでビルドのオプションを変更する方法について紹介します。多くの方法としては下記のようにcmakeの引数でビルドオプションを指定することが一般的ですが、毎回、ビルドの度に指定するのは面倒です。

cmake -DCMAKE_BUILD_TYPE=Debug -DPICO_DEOPTIMIZED_DEBUG=1
make -j4


pico-sdk+pico-project-generatoの場合、自動的にプロジェクトフォルダ内にCMakeLists.txtが生成されます。今回はプロジェクトフォルダ内のCMakeLists.txtにビルドオプションを書き込んで、ビルドオプション指定を自動化する方法を紹介します。
プロジェクトフォルダ内のCMakeLists.txtをテキストエディタで開き、先頭のset部分に下記のスクリプトを追加します。

set(CMAKE_BUILD_TYPE "Debug")
set(OPTIMIZATION_FLAG 1)

実際に書き込んだイメージは下記です。

option.jpg


なお、デフォルトは
set(OPTIMIZATION_FLAG "-Os")
になっているようでサイズ最適化のため、最適化オプションが働いて意図せず変数が削除される可能性があります。

急に意図通りにRP2040が動かなくなり、最初はpico-sdkのバージョンやcmakeのバージョン等が原因と思いましたが、結局、ビルドの最適化オプションが原因であると分かりました。eclipseベースの開発環境では簡単にビルドの最適化オプションを確認、変更できますが、cmakeベースでは気づきにくいため、注意が必要だと思いました。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 組込ソフト | このブログの読者になる | 更新情報をチェックする

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) | ナレッジ | このブログの読者になる | 更新情報をチェックする