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)の超人柱版完成実機などです。

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

2020年1月14日火曜日

ローバンド(160m, 80mバンド)用小型CWトランシーバVN-L5シリーズ人柱版モニター募集について ⇒ 1/17定員に達したので締め切ります

昨年末から試作を続けていました、ローバンド用新VNシリーズ”VN-L5シリーズ”の人柱版の基板が到着し、実際に組み立てて動作を確認しましたのでベータテスターを募集します。

組み立てた実機は来る2月9日(月)兵庫県尼崎市で開催されます関西ハムシンポジウム2020で参考展示し、人柱版のフィードバックを受けて7月に開催されると思われる関西アマチュア無線フェスティバルもしくは10月開催予定のハムフェアで正式頒布を考えています。

そういうわけでイベントに先行して人柱版を少数頒布しますが、以下の応募条件にすべて該当する方を募集します。応募方法は、jl1vnq(アットマーク)gmail.comあてに、「VN-L5シリーズ人柱版キット頒布希望」の件名で(お持ちであれば)コールサイン、お名前、住所(発送先)、連絡が取れるメールアドレスをお送りください。

申し込みはメールに限ります。
twitterやfacebookなどのSNSのDM、messengerでは送らないでください。

折り返しモニター依頼のメールをお送りします。募集人数に達した段階で締め切ります。

応募要項 ⇒ 1/17募集人数に達したので締め切りました

募集人数8名(締め切りました)

応募条件
1.無線機の自作もしくは無線機キット製作経験があり、かつ表面実装部品の装着に十分慣れていること。
2.必ず組み立てること。(積みキットにしない)
3.ある程度自身でトラブルシュートが可能であること。
4.20MHz以上のオシロスコープを所有し、かつ操作できること。
5.PICプログラマ(Pickit3)を所有し、MPLAB X IDE環境があること。
(装着してからでないとPICにファームウエアをプログラムできないため)
6.改善案などのフィードバックもしくは製作レポートの公開(SNSやブログで)が出来ること。
7.ファームウエアのソースコードは現時点で非公開なので、無断で公開したり第三者への配布をしないこと。

必須条件ではありませんが、免許をおろして実運用していただけると嬉しいです。

キット頒布価格7,000円前後を予定

頒布時期2月前後を予定

キット内容
VN-L5シリーズCTRL部、TX部、RX部各基板と装着パーツすべて
(160m、80m両方のバンド依存パーツ同梱、どちらか好きなバンドを選択可能)

上下アクリルパネル(スイッチの穴加工が必要です)とスペーサ、つまみ類

160m、80m用のファームウエアとプログラムコード、簡単な説明書(pdfファイル)
(いずれもオンラインで提供)

ちなみに組みあがるとこんな感じです。(画像右上)

黒い基板のやつです

※参考
VN-L5シリーズ現時点での主な仕様

 [受信部]
 受信周波数 VN-160L5 0.5~2MHz,VN-80L5 3.2~4MHz
 受信部構成 高1中2シングルスーパーヘテロダイン
 中間周波数 6MHz
 クリスタルフィルタ通過帯域 約500Hz
 受信感度 -130dBm前後(簡易SG測定)
 消費電流 110mA(無音時)

 [送信部]
 送信周波数 JAバンドプランに準拠(オフバンド送信禁止)
 終段形式 プッシュプルE級増幅
 送信出力 20W@14.5V,18W@13.8V,13W@12V,10W@10V,5W@7.4V
     (周波数による変動あり)
 不要輻射 2次高調波-50dBc以下 帯域外不要輻射-40dBc以下
 効率(システム全体で)約75~80%

 [制御部]
 VNシリーズと同等
 追加点 パワーメーター,電源電圧表示,バンドプラン内表示

 外形サイズ(突起物除く) W64mm x H84mm x D42mm
 電源電圧 6.5~15.5V

 というわけで、よろしくお願いいたします。

追記:1/17 8名申し込みありましたので募集を締め切ります。ありがとうございました。

2020年1月8日水曜日

遅ればせながら新年初投稿

2020年迎えました。


子年ですね。干支の最初ということで、新たな気持ちでまいりましょう。

まず自作に関する今年の目標を。

1.ローバンド用モノバンド小型CWトランシーバ VN-L5シリーズ(160m版と80m版)キット頒布開始




 昨年末から試作を行っていた新シリーズの仕様が固まってきたので今月あたりからまず人柱版(ベータ版)を限定頒布し、フィードバックを取り入れ7月の関西アマチュア無線フェスティバルで正式版の頒布を開始したいです。

今は試作段階ですが、サイズは従来のVNシリーズにほぼ匹敵しながら160m版80m版ともに電源電圧13.8Vで20W前後、7.4Vで5W前後の送信出力を出せる実用的なリグに仕上がっています。

2.135kHz用CWトランシーバの試作とキット化

 最近フィンランドのJUMA社から唯一販売されていたスタンドアロンの50W出力の135kHz帯CW送信機キットTX-136が惜しくもディスコンになってしまいました。米国では昨年135kHz帯のアマチュアへの開放をきっかけにトランスバータなど出ているようですが、いまだトランシーバはおろか独立した送信機はまだ見かけていません。
日本ではサムウエイ製の送信機やどこかで一瞬販売されていた2W出力の送信機キットがあったようですが現在市場から消えてしまいました。

 そうしたなかせっかく解放された長波帯の活性化につながることも期待しつつ135kHz帯のトランシーバキットを作ってみたいと思っています。

 現状すでに送信部の製作は2年前に完了しており、受信部の設計を残していますがVN-L5シリーズの回路を継承して近々トランシーバとしてまとめます。できればQRSSやWSPR送信モードを追加してオールマイティにしたいですね。

3. SSB版VNシリーズの開発、試作

 VHF帯をターゲットにして検討中です。アイディアとして5Vのモバイルバッテリーを主電源とするべく各デバイスの低電圧動作の実験や、Si5351Aで基準発振周波数より高い周波数を発生させる場合のスプリアス問題の改善策などハードルがやや高いと予想されますが、こちらのほうも少しずつ進めていきます。

4.ディジタル信号処理の実験と実践

 CortexM7アーキテクチャの32bitマイコンのSTMマイコンをはじめ、高速ADC内蔵のデュアルコアdsPICなどどんどん面白いデバイスが出てきており、開発ツールもフリーという手を出さない手はないといった状況です。今のうちにマスターしてSDR機の自作にこぎつけたいですね。手始めに12kHzあたりのベースバンドのジェネレータからやってみようと思います。

5.AKC活動

 当初6名でスタートしたAKCですが、現在10名にまでメンバーが増えさらに活動が活発になると予想されます。今のところイベントでの同人キット頒布が活動の中心ですが、何か新しい試みもと思っています。

以上が自作に関する目標というかそんな感じです。

他にアマチュア無線関連の目標としては、移動運用やコンテスト参加をもう少し増やすといったところでしょうか。あと和文電信マスターなどまだまだいろいろとありますが今年中に達成できるかどうか、は何ともですが(苦笑)