オンラインで Xteink X3 を見つけたとき、私は黒い電子ディスプレイを構築することを計画していました。細かい文字のどこかに、これは完全にプログラムされていると書かれています。
売られてしまいました。
届いてみるとスムーズな感じで気に入りました。手に持った感じはしっかりしていました。私は CrossPoint ソフトウェアにさまざまなものを追加し始めました。さまざまな読み込みアニメーション、リーダーを振ることで回転できるパーティクル、SF ネットワーク イベント用の LinkedIn QR コードなどです。
しかし、物事をやり遂げるのは退屈でした。ホットスポットに接続し、ブラウザでダウンロード可能な小さな Web サイトを開く必要があります。
ゆーく。
何か良い送り方を探していたところ、思いつきました。見た目が紙であれば、紙のように機能するはずです。
入力できるはずです。

プリンターをプリンターたらしめるものは何でしょうか?
MacBook で何かを開き、[印刷]をクリックして、[Xteink]を選択したいと思いました。これは、私のコンピュータが相手側にあるものを見つけることができることを意味しました。
私は終わった インターネット印刷プロトコルまたはIPP。これにより、コンピュータはプリンタに何をサポートしているかを尋ね、ドキュメントを提示し、ジョブに何が起こったかを尋ねることができます。メッセージは HTTP 経由で転送されます。のようなアクション Get-Printer-Attributes 能力について尋ねます。 Print-Job 仕事を送ります。
モノクロ出力、300 dpi、1 部コピー、片面印刷を宣伝しました。ドキュメント形式には Apple ラスターと PWG を採用しました。これは、Mac がドキュメントを送信する前にピクセルに変換する必要があることを意味します。 penguin 結果を画面に合わせて縮小します。
メディアタイプとしてA5用紙とレターを宣言しました stationeryそして出力ビンを呼び出します face-up。
私がそう呼んだ penguin。適切な配色がありました。
ひとつ発表させていただきます _ipp._tcp この名前のサービス。広告には、私が受け入れた形式と、印刷された作品の送付先の住所が含まれています。
macOS でドライバーレス検出を見つける必要もありました 追加 _universal サブタイプ。 Arduino パッケージでは ESP-IDF の mDNS API が公開されていなかったため、これは ESP-IDF の mDNS API を直接呼び出すことを意味しました。
コンピューターにページを送信させることは仕事の一部にすぎません。それでも引き受けなければなりませんでした。
ページをどこに置けばいいですか?
レター ページは 2,550 × 3,300 ピクセル、300 dpi です。グレー ピクセルあたり 1 バイトとすると、非圧縮で約 8.4MB になります。
X3には 400 KB RAM と 16 KB がキャッシュに割り当てられます。 Wi-Fi を動作させ、プリント サーバーを管理し、なんとかページ全体を取得する必要がありました。
Wi-Fi を実行し、プリンター ページのイメージを切断すると、6.8KB のヒープが残ります。
思い出した mmap Linux 上で。 SD カードでも同じことをして、より多くの RAM があるように見せることはできますか? C3 メモリ マッピングのサポートは、SD カード上のファイルではなくフラッシュに対してでした。
でも待ってください。ディスプレイを保管できますか?
入力ページを変換パイプラインに渡し、結果を画面に直接書き込んだらどうなるでしょうか?ピクセルをデコードして照合し、白と黒に分離します。行の準備ができたらすぐに、画面上の所定の位置に配置し、ワークスペースを再利用します。ページができるまで続けてください。
ディスプレイは、画面イメージ用に RAM をすでに予約しています。届いたページをそのまま作成できます。それまでは、バックアップのためだけに 2 番目のイメージを収集していました。
私のデコーダはすでに一行ずつ動作していました。私 完成した列を引き渡すためのスケールも変更しました スクリーンショットに添付してください。最初は、プリンターから出力される紙のように、ページをバッチで表示させます。中間更新にはそれぞれ約 0.5 秒かかるため、すぐに完成したページの表示に切り替えました。
完成したページを既存のページを使用して SD カードに BMP として保存しました 脚本家。
| RAMイメージバッファ | 前に | 後 |
|---|---|---|
| チップから 400 KB | ~113KB | ~62KB |
これにより、ネットワークにソケット バッファ用のスタック ルームが与えられました。
予告にペンギンがいました
サンプル漫画の画像がありました 無職転生 何らかの理由で私のMacBookに。プレビューで開いて印刷してみました。
ありました penguin プリンターリストにあります。
聖なる。
選んで印刷してみました。 Xteink のマンガページは本当に素晴らしかったです。記憶によれば、それは約1秒間現れました。それはまだそこにあります。

最初の印刷物を完成させるのに一晩かかりました。
プリンター サーバーはリーダー自体で実行されます。 Wi-Fi ネットワークに接続したり、アクセス ポイントを起動したりできます。 literate-penguin。
私のペンギンは今では字が読めるようになりました。
コードは私の中にあります クロスポイントネットワーク含む プリンターの実装。
保存されたプリントは SD カードに残り、リーダーで閲覧できます。ついに私のプリンターにも出力トレイがつきました。これはフォルダーです。