Sennheiser BA2015 バッテリーパックのクローニング

2026/06/07 3:16

Sennheiser BA2015 バッテリーパックのクローニング

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Sennheiser 公式の BA2015 マイク用バッテリー(80〜100 ドル)は、複雑な専用エンジニアリングのためというわけではなく、安全で低コストなアルカリ AA バッテリーでの充電を防ぐことを意図した制限的な設計選択の結果として著しく高価格設定されています。パック内には汎用部品が使用されており、パナソニック製 NiMH セル 2 個、0.02 ドルの温度センサー、および基本的な保護回路が含まれています。実際のバッテリー管理ロジックはマイクロホン自体に実装されています。Sennheiser の溶接プラスチック構造および接着固定セルは DIY レプリケーションへの参入障壁を高くしていますが(破壊的なテアダウンが必要)、サードパーティ製パックは Through-hole センサー(0.2 ドル)や標準パナソニックセルといった同様の部品を用いて、信頼性が高くコスト効果のある代替手段を提供しています。さらに、安全機構はテープで上部コンタクトをブロックすることで迂回でき、AA バッテリーでの充電が可能になります。しかし、OpenSCAD を用いた 3D プリンティングによるコピーが技術的に可能である(おおよそ 1/4 のコスト)としても、その結果となるビルドは工場製ユニットの機械的頑丈さを欠くことがしばしば見られます。したがって、信頼性の高いサードパーティ製パックを購入することが、破壊的な DIY レプリケーションに耐えること、あるいは公式の高価格を受け入れることよりも、コストと耐久性において優れたバランスを提供します。

本文

センハイスER バッテリーパックのコスト問題とサードパーティ製への転換、自作 OpenSCAD モデル

市場背景:高価な専用バッテリーパック

多くの電子製品では互換性のない独自のバッテリーパックが必須となりコスト増となるが、Sennheiser のワイヤレスマイク(型番 BA2015)はこの傾向の典型例です。

  • 採用方針: すべての製品のマイクに同じBA2015 バッテリーパックを採用している。
  • 代替案の欠点: 通常の単 3 形乾電池を 2 本使用も可能だが、ドック(充電台)での充電は対応できない。
  • 価格感: プラスチック製アクセサリー代に支払うべき金額は妥当か?
    • 小型充電器での購入価格は80 ドル〜100 ドル
    • 著者は「単 3 形乾電池パックとしては最も高価なオプションの一つ」と判断している。

公式仕様の真実とコストの内訳

Sennheiser 公式ページでは、以下の機能付き高性能バッテリーとして紹介されている。

  • 内蔵: リ充電可能なニッケル水素電池セル 2 つ。従来の単 3 形乾電池 2 本を使用する代わりに動作。
  • 省エネ機能: バッテリー残量表示、充電時温度モニタリング(使い捨て電池の誤充電防止)。

しかし、実態は以下の通りです。

  • 「統合センサー」の実相: 高性能機能のうち大部分はマイク本体のバッテリーマネジメントチップが行っており、パック自体に特別な回路はありません。
    • 「温度センサー」として謳われているのは、単価0.02 ドルの NTC(負温度係数)熱抵抗素子のみです。
  • 存在理由: 使い捨て電池(アルカリなど)を誤って挿入・動作させた際、ドックでの充電を防ぐための物理的ブロック目的。
    • 高価な充電ドックを持つユーザーが、元のパッケージ電池を外して安価な使い捨て電池を入れる「エッジケース」を防ぐためです。

サードパーティ製(代替品)による改善

サードパーティメーカーはこの「過剰な価格設定」に同意しており、はるかに低コストな代替部品を提供しています。

  • 内容物: 単なるパナソニック製の NiMH セルが 2 つ搭載されるだけ。高価な専用機能は排除されています。
  • セル単価の比較:
    • 安価な品:1 セルあたり約0.95 ドル
    • Sennheiser 仕様に合わせるため:約2.5 ドル/セル
  • NTC サーモセンサー:
    • 表面実装(SMT)部品:0.02 ドル。
    • オリジナルとの整合性・組み立てやすさを重視し、挿通型部品を使用(約0.20 ドル)。
  • 総費用感: 5 つのパック製作時の材料費も Mouser 社価格では低止まりです。

バッテリーパックの自作:OpenSCAD を用いた設計

著者は Sennheiser 製バッテリーを分解し、本格的な複製品(カスタマイズ版)を作成しました。

1. 分解と構造分析

  • 分解難易度: プラスチック部品の摩擦溶接により、破壊的な開封が必要でした。
  • 内部構造の発見:
    • セルは金属ストリップで正負両極を接続し、一体化されています。
    • マイナス極はケース上の穴から直接セルの負極に接続。
    • プラス極はパック内のもう一方のセルのボタン型端子を使用(片方はフラットトップ、片方はボタントップ)。
  • 第 3 の接触端子(検出機能):
    • パック上面に設けられ、「専用バッテリーか単 3 形乾電池か」を判別します。
    • テープで覆るとマイクは通常動作しますが、充電ドックでは「充電不能」と赤 LED が点滅します。

2. 部品選定と実装

  • セル接続: 金属ストリップで正負両極を直結。
  • 温度センサー配線:
    • オリジナルはプラスチック塊の中に埋め込まれ、ワイヤーが突き出た SMT 方式 NTC(推定値:10kΩ、β3200K)を使用。
  • ケース設計の改良:
    • 90 度回転させて側面から印刷する方式に変更し、薄片部の強度向上を実現。
    • サポート材なしでの印刷が可能に。
    • 温度センサー接触部のみサポート(樹木型)を必要とするが、良好に印刷可能。

3. OpenSCAD コードによる設計

ケースの幾何学的形状と内部接続スペースを定義したコードです。

outer_x=51;
outer_y=28;
outer_z=15;
channel=0.5;

// セルモデル(ターミナルオプション付き)
module cell(terminal=0, terminal_r=2.5) {
    color("orange")
        cylinder(h=49.5, r=14/2, $fn=90);
    
    color("orange")
        translate([0, 0.3, 0])
        cylinder(h=49.5, r=14/2, $fn=90);

    if(terminal>0) {
        translate([0, 0, -terminal+0.01])
            cylinder(h=terminal, r=terminal_r, $fn=90);
        translate([0, 0.4, -terminal+0.01])
            cylinder(h=terminal, r=terminal_r, $fn=90);
    }
}

// 三角形断面(面取りやタブ用)
module triangle(short_edge, long_edge, length) {
    linear_extrude(length) {
        polygon([
            [0, 0],
            [long_edge, 0],
            [0, short_edge]
        ]);
    }
}

difference() {
    union() {
        cube([outer_x, outer_y, outer_z]);
        
        // プラス端子タブ(側面印刷可にするための加工)
        translate([-2, outer_y-4-6, 0])
            cube([2, 6, 1]);
    }
    
    // プラス端子の側面印刷用形状変更
    translate([-2, outer_y-4-6, 0])
        rotate([0, 0, 0])
            triangle(2,2, outer_x+2);

    // フロントスペース用のメイン切り欠き
    difference() {
        translate([1, -0.5, 6])
            cube([outer_x-2, outer_y+1, 10]);
        
        // 温度センサー用接続タブ
        translate([outer_x-5, outer_y/2-1.5, outer_z-2])
            cube([5, 3, 2]);
        translate([outer_x-5-2, outer_y/2-2, outer_z-2])
            cube([2, 4, 2]);
    }
        
    // ボトム面取り(1)
    translate([-1, outer_y, 0])
        rotate([-90, 270, -90])
            triangle(2,3, outer_x+2);
    
    // ボトム面取り(2)
    translate([-1, 0, 0])
        rotate([90, 0, 90])
            triangle(3,8, outer_x+2);

    // セル 1(負極側):フラットトップ+ボタン型端子
    translate([-0.75+outer_x, 7, 8])
        rotate([180, 90, 0])
            cell(terminal=10, terminal_r=4);
    
    // セル 2(正極側):ボタントップ端子あり
    translate([0.75, 7+14, 8])
        rotate([0, 90, 0])
            cell(terminal=10);

    // セル間接続用のチャンネル空間
    translate([0.75,outer_y/2+3,1.5])
        cube([outer_x-1.5, channel+0.2, 10]);
    translate([1.4+(channel/2), outer_y/2+3, 1.8])
        rotate([75, 0, 0])
            cylinder(h=12, r=channel/2+0.6, $fn=90);
    translate([1.8+(channel/2), outer_y/2+3, 1.5])
        cylinder(h=12, r=channel/2+1, $fn=90);

}

結論と考察

  • 3D プリンティングの限界: 自作バッテリーパックは堅牢性に欠け、接続用紙コイルの調整や配線巻き取りの手間を考慮すると、コストパフォーマンス的には割に合わません。
  • 公式製品への不満: セル単価が低価格であるにも関わらず、Sennheiser の公式価格は不合理に高すぎる。マイクロホンメーカーでありながら、電池代で開発コストを賄っているわけでもないはずだ。
  • サプライチェーンのあり方: もしコスト構造が如此であれば、サプライヤーとの交渉やサードパーティ製セルを採用するべきだろう。
  • 証明: サードパーティ製のセルを使用することは、「顧客から不当に利益を取る行為」を回避できることを実証しています。

同じ日のほかのニュース

一覧に戻る →

2026/06/08 4:01

Linear がなぜこれほど速いのか?技術的な解説

## Japanese Translation: # リニア革命:ウェブアプリケーションのパフォーマンス革新 リニアは、データベースをブラウザ内に完全に実行する(IndexedDB を使用)ことで、従来の CRUD アプリのデータ読み込み時間である約 300ms を数ミリ秒に短縮します。この「ローカルファースト」アーキテクチャでは、標準的なネットワークループが逆転し、デバイス上で変更を即時適用し、WebSocket を経由で非同期でデルタをプッシュすることで、アップデート待ちの地味な网络待ち時間を排除します。共同創設者のトゥオマス・カンカレは、この自社工程エンジンをゼロから構築することを強く推奨しました。タンスタッククエリや SWR などの一般的な楽観的な更新ライブラリを使用せず、サーバーを単なる同期ターゲットとして厳密に扱うアプローチを採用しています。JavaScript のサイズを最小限に抑えるため(圧縮後の JS は約 21MB にまで削減され、ルートレベルのチャンクに分けられている)、チームはバンドルパイプラインを 4 回も移行しました(Parcel → Rollup → Vite → Rolldown)。これにより、配送されるコード量は約 50% 削減されました。重要資産には、フォント(単一の可変 Inter ファイル)、数百のルートチャンクが含まれており、サービスワーカーと `<head/>` に設定された並行モジュールプレロードリンクを通じて事前キャッシュされます。これにより、オフライン時や繰り返し訪問時でも即座にレンダリングが可能になります。さらに、重要な CSS、JavaScript、認証ロジックは HTML に直接埋め込まれており、認証にはセッショントークンの即時取得ではなく、ローカルストレージ内の存在を確認する方式を採用しています。该系统は、50 件のイシューリストが変更された場合、わずか 50 セルだけを更新するなどの粒度の細かなリレンダを達成します。これは、データをプロパティごとの MobX オブザーバブルに水浸げすることで実現されており、標準的なフレームワークでは追いつけない優れた速度優位性を保証しています。

2026/06/08 3:33

依存症、逮捕、犯罪歴からの再起:ゼロから立ち直すまで

## Japanese Translation: 最も重要な示唆は、技術分野における採用決定において過去の過ちよりも将来の可能性を優先させるべきであるという点です。堅い身元調査は無視できない課題を乗り越えた有能な個人が不当に排除されるためです。著者は自らの驚異的なキャリア回復の実例によってこの主張を具体化しています:未成年の逮捕歴(監禁中に最大保安施設で Schedule II 指定薬物への所有および製造・頒布意図に関する 17 の起訴を含む)から、現代の技術産業における高位な技術職に就くまでです。当初、企業の「前科者なし」という採用ポリシーにより 8 社のオファーが撤回されましたが、彼は後に、ワークリリースインターンシップ期間中やハスラ(現在は PromptQL)で創設者から felony conviction の開示を受け入れた際に再雇用されるなど、採用管理者が大きなリスクを冒して彼を採用したことで成功を果たしました。彼の journey はまた、試行錯誤を通じて学んだ特定の教訓も強調しています:Techtonic での不当な解雇とその後 Slack の履歴を調べて正当化されたことや、Hasura などのコミュニティ主導のツールの発見とその仕事が不可欠になったことなどです。この個人的な物語は、犯罪記録を超えて才能が存在し、支援的なリーダーシップが人生を変えうることを説得力のある証拠として提供します。これからの未来において、業界リーダーは候補者の履歴に基づいて自動的に不合格にするのではなく、実証されたスキルを評価するよりニュアンスのある採用慣行を採用すべきです。功績基準による評価システムへとシフトすることで、技術セクターは見逃された膨大な talent の蓄水池を活用できるほか、更生と労働市場への再統合を積極的に支援し、より包摂的な環境を構築できます。

2026/06/08 3:54

LLM が人間のような属性を持つなら、同じく「エイジ オブ エンパイア2」もそうだ

## Japanese Translation: 本文書(arXiv:2605.31514)は、Adrian de Wynter 氏によるものであり、大規模言語モデル(LLM)に独自の人間のような(擬人化された)特性を帰属させることは欠陥のある仮定であると論じます。その理由は、そのような特性は「Age of Empires II」といったリアルタイム戦略ゲームでトレーニングされたニューラルネットワークを含む、あらゆる十分に複雑なシステムにおいて現れる可能性があるためです。著者は「Age of Empires II」が機能的かつチューリング完全であることを認めつつも、レゴの組み立てやグレート・ボストン地域など他のエンティティを、同様の擬人化的特性を示し得る強力なサブストレートの例として挙げています。基本的な証拠は、根本的な応答特性は一定のままでも、観測される行動の解釈はサブストレートによって変化する可能性があることを示しています。擬人化された属性が存在するかどうかを、サブストレートに依存せずに仮定することは循環的な結論や情報不足の結論につながります。著者は「null(零)」という仮説を提唱しており、明示的な測定がそれを否定するまで、LLM をこれらの特性において非特異であると扱うよう提案しています。この転換は、技術業界に対して、ニューラルネットワークだけでなく他のシステムにも人間のような性質を見出さないよう警戒することを促します。これを裏付けるために、本稿では分野の概要調査、潜在的な異議への言及、そして「null」仮説を適用する具体例について論じています。本研究は、オープンネスとユーザーデータのプライバシーを重視する arXivLabs の取り組みの一部です。