2020年6月16日火曜日

USB入りのPICにブートローダを仕込む実験の備忘録

マイクロコントローラ(マイコン)にファームウエアなど実行ファイルをプログラムするのには、たいていはそれ専用のプログラマ(PICではPickitシリーズ、AVRではAVRISP、STMではST-Linkなど)が必要になります。

しかしデバイス自身にプログラムが可能なマイコンであれば、ブートローダという書き込み専用プログラムをデバイスに組み込むことで、外から転送された実行ファイルを自身のフラッシュメモリに書き込む事が出来るので、いちいち専用のプログラマを取り出して書き込みしなくても済みます。

転送方法はUARTとUSBが主のようで、PC側では転送用のソフトウエアを用意することにより基本的にPCさえあればいくらでもファームウエアの書き換えが可能になります。

Arduinoはブートローダがすでにマイコンに組み込まれた状態で販売されています。ユーザーはArduino IDEさえPCにインストールすれば、このソフトウエアだけでコードを書いて、コンパイル、そしてUSBなどを経由して簡単にプログラミングが出来てしまうという手軽さからいろんな電子工作界隈で普及しています。(もう少し高度なMbedもそうですね。Raspberry Piもありますが、近年ほとんどPC化しているのでもう別物です(笑))

もちろん無線電子工作のAKCのメンバーも自作機器の制御に好んでArduinoを使っておられます。

Arduinoが好きじゃないわけではありませんが、同じことしても面白くないしPICでも簡単にできないだろうかと思っていました。もともとUSB内蔵のPICでPIC18F14K50は以前から秋月で扱っておりマイコンボードも購入していましたが、USB対応には外付けXTAL発振が必要で2ポート取られるためいまいち乗り気にならずそのまま放置状態でした。しかしつい最近(1年ほど前から扱っているようですが)PIC16F1459というUSB対応のモデルを見つけました。EEPROMは内蔵していませんが、外付けXTALを必要とせず内部発振でUSB対応可能な点に惹かれ、早速秋月から取り寄せてブートローダ組み込みとプログラミング実験を行いました。

1.ブートローダ組み込みで必要なモノ
・USB内蔵PIC
これがないと始まりません(笑)今回はPIC16F1459を取り寄せました。DIPタイプは秋月で1個190円とPIC18F14K50より安価でピンコンパチです。

・周辺部品
実験用なのでブレッドボードで組みますが、0.1μFのパスコンと3.3Vレギュレータ用の0.33μF程度のパスコン、ブートローダ起動選択用のボタンとポート用プルアップ抵抗10kΩ、ステータス表示用のLEDと電流制限抵抗1kΩ、microUSBコネクタDIP変換ボード、配線ワイヤ、USBコード(microUSB-USBtypeA)くらいでしょうか。

・PC
言わずもがなですが、私はWindows10の自作PCを使っています。

2.ブートローダイメージファイルの準備
ブートローダのhexファイルはmicrochipでは公開されていません。MLAといういろいろなサンプルコード集の中からブートローダ用サンプルプロジェクトをMPLAB X IDEに取り込んでXC8pro版でコンパイルし、PICにプログラムしなくてはなりません。
ネット検索で内蔵発振に対応したブートローダのhexファイルを見つけることができるかもしれません。見つけたらダウンロードし実験用として利用するのも手です。
一方自前でファイルを生成する場合ですが、XC8のpro版を個人で所有するケースは稀です。Free版の場合でも少々コードを変更するとコンパイル通りますが、ファイルサイズは大きくなります。手順は検索するといくつか出てきますので参考にする事が出来ます。
それとはまた別にファイルサイズが極めて小さくなるブートローダもGitHubで公開されています。

3.PICへのブートローダのプログラミング
ブートローダの組み込みにはPickit3などのプログラマはやはり必要です。MPLAB X IDEでブートローダをコンパイルして直接プログラムするか、hexファイルをMPLAB X IPEで取り込み通常通りにPICにプログラムします。

 4.ブートローダの起動とユーザ作成ファイルのプログラム
あらかじめHIDBootloaderWindowsというソフトをダウンロードし起動させ、ブートローダ起動選択ボタンを押しながらPIC側からPCのUSBコネクタに接続するとPCがPICを認識します。HIDBootloaderWindowsで接続が確認されたら、ユーザ作成のファイルを選択してプログラムボタンを押すとPICに書き込まれます。リセットボタンを押すとユーザ作成のソフトが起動します。

5.ユーザプログラムをビルドする上での注意点
PICに組み込んだブートローダが格納されているメモリ領域を避ける設定を加えます。詳細はネット上に解説がいくつかあるので検索してください。

6. ブートローダのデメリットについて
・フラッシュメモリの消費
ブートローダはPICのフラッシュメモリに格納されているので、その分ユーザアプリケーションで使える容量が減ります。PIC16F1459の場合約3分の1が消費されます。XC8Free版で生成された場合それ以上にフラッシュメモリ領域が占有されてしまいます。
・venderID, productIDについて
個人的な実験や使用についてはあまり問題はないのですが、小ロット頒布を含めて商用利用する場合は少なくともUSB-IFへの申請が必要になりますとくにMLAを利用する場合microchip社との契約も必要になるかもしれません。かかる費用もそれなりに高く個人での利用はかなり難しいです。(ただしある一定数の範囲内のものについては、サブライセンスにするなどメーカーによっては敷居が低い場合もあるようです。)

ともあれ取り寄せたPIC16F1459にブートローダを組み込み、テスト用プログラムを書いてビルドしたファイルをPickit3なしでプログラムして動作させる事が出来ました。


Arduino IDEとまではいきませんが、専用プログラマーなしでプログラムできるのは快適ですね。

2020年6月3日水曜日

各プロダクト用ケース3Dデータ公開

今年になってから続いているCOVID-19蔓延で外出自粛が続く中、自主頒布キットの頒布依頼を多くいただきました。しかしながら頒布準備作業で手いっぱいになってしまったため今月から受付を停止させていただき、次期プロダクトの開発試作を進めることにしました。

とくにケースについては3Dプリンタ出力に頼っており、1セット分を出力するのに半日はかかるため各キットに同梱することがなかなかできていません。

そんなわけで停止期間中何もないのも申し訳ないので、今までのプロダクト用のケースの3Dデータを公開します。

STLファイルで提供しますので大抵のスライサーで読み込み可能だと思います。(ちなみに自分の環境ですが、スライサーにはUltimate Curaの最新版4.61を使いCR-10クローンのGeeetech社製A30プリンタで出力しています。)素材はPLAやABS、ほかのものでも多分問題ないでしょう。各素材の収縮率を加味して出力チャレンジしてみてください。


まずはVN-xx02シリーズ用サイドパネルです。以前のケースを一新して再設計しました。


 下に小型のスピーカー(秋月電子通商のマイクロスピーカー) 内蔵可能です。


ツマミも再設計しました。チューニング用のツマミはクルクル連続して回せるように指を入れるくぼみをつけました。

取り付け用に新たにM3x15mmほどのビス8本ご用意ください。

STLファイルはこちらです。


次はKeyer Mini-V2 Revision2用のケースです。
こちらも新設計です。


旧ケースのような箱タイプではなく、4側面をカバーするタイプです。


底面は、底面のアクリル板を横からスライドさせてはめ込むタイプでビス止めは必要ありません。なお左右側面のパネルにはM3のネジ穴が出力されますが、一度M3用のタップを通してください。

STLファイルはこちらです。

表面の取り付けにM3x15mm程度のビス4本ご用意ください。


次にQRPディジタルVSWRメーターQPM-01用のサイドパネルです。


 VN-xx02用と同様に4側面を覆うタイプのケースです。
 FUNCボタン延長用のボタンもついています。

STLファイルはこちらです。

追加のビスは不要です。8mm高のスペーサと8本の透明なプラスチックビスをそのまま使用します。なお左右側面のパネルにはM3のネジ穴が出力されますが、一度M3用のタップを通してください。


最後にnanoVNA用のサイドバンパーです。頒布したものと同じデータです。



 STLファイルはこちらです。


各々の圧縮ファイル内のexpand_rate.txtに各パーツの拡大率のサンプルを載せました。フィラメントやプリンターによって値が微妙に異なりますので、各自試行錯誤でお願いします。

【注意】
 なおブログ本文へのリンクはご自由にしていただいても問題ありませんが、ファイル自体への直接リンクやファイルそのものの無断転載、第三者への無断譲渡は固くお断りいたします。

2020年3月20日金曜日

VN-L5シリーズ進捗状況

昨年末から立ち上げたVN-L5シリーズの開発進捗状況です。


9名の人柱版製作者からフィードバックをいただきながら改善や機能追加を行い、正式リリースに向けてほぼ仕様が固まってきました。

大きな改善点は、送受切り替え時のノイズとサイドトーンポップノイズの低減、キーイングの立ち上がり部分を緩やかにするソフトキーイングの実装です。

ソフトキーイング処理前の送信波形(黄色)
ソフトキーイング処理した送信波形
ソフトキーイングは以前より実装したかった機能で、送信開始から数ミリ秒ほど定間隔のパルス波で終段の電源制御を行い立ち上がりを鈍化させています。

そのほかエンクロージャと小型の内蔵パドル作成しました。

プログラムの不具合もほぼ解消し、最終的な基板作成に移ろうと思います。

フィードバックいただきました人柱版製作者の皆様にこの場をお借りして御礼申し上げます。

2020年2月12日水曜日

関西自作の会&関西ハムシンポジウム2020に参加しました

かねてから参加したいと持っていたJG3PUP山口OM主催の関西自作の会がちょうど関西ハムシンポジウム2020の前日に開催されることになり、初めて参加させていただきました。

阪神尼崎駅近くのホテルにチェックインしてからすぐ会場に向かいましたが、数分遅れで到着したところ窓側のテーブルに各参加者の自作品が並びすでに盛り上がっておりました。
窓側の広いテーブルにたくさんの自作品が!!
というわけで、10名あまりの参加者で17時からスタートし食事やお酒をたしなみながら休む間もなくずーっと自作の話を続けていたらあっという間に22時すぎ・・・いろいろなお話が聴けて楽しかったです。そのあとtwitterでも長いことお世話になっているJP3AEL高橋OMと会長でAKCメンバーのJA6IRK岩永OMと2次会にお付き合いさせていただきました。

中央の細長い黒ボディのミニパドル 優れモノです
今回ハムシンポで岩永OMが頒布した3Dプリンターで作製したミニパドルを拝見させていただましたが、非常に良くできていて操作感もとてもFBな作品でした。ご本人は売れるかどうかと仰っていましたが、多分すぐに売れてしまうだろうと予想していましたらやはりすぐに完売したようです。 増産されるようでしたら1台欲しいなあと思いました。電極にリン青銅版を使用してパドルレバーにもたわみ防止にひと工夫されていて、しかもレバーが収納可能になっています。そこにネオジム磁石も装備しているということでした。軽量なので移動運用にピッタリですね。

ホテルに戻ったのは午前1時近くですぐに就寝し、翌朝大浴場(ビジネスホテルで大きな浴場があるのがポイント)にはいって朝食を摂りゆっくりしてからチェックアウトし電車で一駅移動して関ハムシンポの開場へ向かいます。


 ブースは会場中ほどのいつものリトルガンくらぶブースでしたが机2つ使えたのでゆったりと展示できました。7J3AOZ白原OM&奥様にはいつもお世話になりありがとうございます。

今回は従来のVNシリーズ、VSWRメーターQPM-01キット頒布のほか新VNシリーズであるローバンド用コンパクトCWトランシーバVN-L5の実機展示を行いました。

下のVN-80L5はJE3QDZ吉村OMの人柱版完成機です
この新VNシリーズは基板サイズは従来のVNシリーズと同じ80x60mmのコンパクトに収めコントロール部、送信部、受信部の3枚構成となっており、送信部はプッシュプルE級増幅回路で13.8Vで20Wに迫る出力を出しながら高効率のため放熱板を設けていません。

ありがたいことに展示用として持参した9台目の人柱版キットは頒布する予定はありませんでしたが、熱いご希望により頒布させていただきました。160m版として作成していただけるようです。頑張って完成させていただきたいと思います。

昼休みに会場外のメーカー展示で目にしたのは予約が始まったICOM社のIC-705実働機でした。


自分が開局した当時はVHF帯のコンパクト機が各社から盛んにリリースされていましたが、この2020年に新しいコンパクト機が出るというのはまた感慨深いものがあります。
しかもSDRでHFからV/Uまでカバーするコンパクト機、時代の流れを感じますね。ちょっと見でしたがWF表示などフレームレートやカバー域も十分実用的です。これに今はやりのnanoVNAを携えて車を使わないマルチバンド移動運用なんか比較的手軽にできそうじゃないですか。またD-STARはもちろん搭載済みですがBTなどPC接続もできそうなのでスマートフォンを使ってデジタルモード運用など応用範囲が広そうです。


隣にIC-705瓦煎餅が展示されていましたので、思わず撮影しました(笑)
予約するともらえるそうですが、外缶がIC-705が印刷されているようです。自作派を自称するものとして中身の専売をいただいたら、これをケースにしてマルチバンドのトランシーバーでも詰め込んでやりたいなと妄想しました。

そういうわけであっという間の2日間でしたがとても濃い2日間でした。帰りに白原OM夫妻に美味しいうどん屋さんにお誘いいただきました。写真は撮り忘れてしまいましたが出汁が良く効いた大変美味しいうどんでした。ありがとうございました。

次回は関西アマチュア無線フェスティバルKANHAM2020にAKCとして参加する予定になっています。

追伸:

確定申告の時期で少し忙しくなるので遅くなりますが、関ハムシンポが終了しましたのでVNシリーズなどの通信頒布を再開します。すでに何件かお問い合わせいただいておりますがもうしばらくお待ちください。

2020年2月7日金曜日

関西ハムシンポジウムに参加します

直前告知ですが、2/9(日)に尼崎市リサーチ・インキュベーションセンター(通称ARIC)で開催されます関西ハムシンポジウム2020に参加します。

たぶん2年ぶりの参加になると思いますが、いつものリトルガンくらぶブースにお邪魔させていただいて頒布・展示を行う予定です。

 今回VNシリーズとQPM-01(+α)の頒布を行いますが、ごくごく少数の頒布になりますので完売の際はご容赦ください。

展示は出力を強化したローバンド用の新VNシリーズ、VN-L5シリーズ(VN-160L5, VN-80L5) 完成実機とAKCメンバーの一人JA6IRK岩永OM設計の50MHzSSB/CWハンディトランシーバPocke6(ポケ6)の超人柱版完成実機などです。

季節柄インフルエンザなどウイルス感染症が流行しており、加えて新型コロナウイルスもぼちぼち国内で感染者が出てきております。イベントにはたくさんの方が来場されます。感染予防(手洗い、うがい、適切なマスク装着)は私を含めて参加する皆さん一人一人が確実に行うようにお願いいたします。