小さなIoTパソコン
ORANGE-ESPer
VGA出力(カラーグラフィクス)
PS/2キーボード
PS/2マウス
サウンド出力
microSDカード
WiFi
ORANGE-OS搭載

   ☆オレンジピコショップで販売中です。
・モニター版(CPU付属)
・モニター版(CPUなし)
 
ORANGE-ESPerとは?
ORANGE-ESPerは、上海のEspresif Systems社が開発したESP32をベースにしたIoTパソコンです。
イタリアのFabrizio Di Vittorioさんが作成したVGAディスプレイやPS/2キーボードが簡単に接続できるようになりました。

ORANGE-ESPerのハードウェアは、FabGLプロジェクトの推奨回路と同じです。
FabGLライブラリーのサンプルはすべて動作します。

また、当社が開発したORANGE-inside (ESP32)をファームウェアとして書き込めば、ORANGE- OSが起動します。ORANGE- OS上では、
ORAGE-lightというBASIC系の言語で開発したアプリケーションが動作します。
左の写真は、ORANGE- OSが動作している様子です。

起動後にタイトルを表示した後、フラッシュメモリーに保存されたSSIDとパスワードでWi-Fiに接続します。

プロンプトのF:はESP32内のフラッシュメモリーです。ここにFATファイルシステムを構築しています。また、S:はmicroSDカードです。FAT32をサポートしていますので、Windows PCで作成したデータもそのまま扱えます。

一見すると、MS-DOSを搭載した昔の16ビットパソコンのようですが、これ一台でWi-FiにアクセスしたりI/Oを直接制御することもできます。IoTパソコンです。

ORANGE-ESPer関連資料
ファーム(6月4日版)
回路図
組立て説明書

 
セットアップ Arduino-FabGL編
【別途必要なもの】
  1. VGAケーブル、モニター
  2. PS/2キーボード(コネクタ形状がUSBのもの)
  3. PS/2マウス
  4. micro USB ケーブル
  5. Arduino開発環境
以下に動画もありますので、ご参照ください。
インストール手順 https://www.youtube.com/watch?v=8OTaPQlSTas
インベーダーゲーム https://www.youtube.com/watch?v=LL8J7tjxeXA
Altair 8800
エミュレーター
https://www.youtube.com/watch?v=yiSvToO-7sc
GUI https://www.youtube.com/watch?v=84ytGdiOih0

【セットアップ手順】
  1. Arduino IDEをインストールします。
  2. Arduino IDEを起動して、ファイル→環境設定を選びます。環境設定ダイアログの「追加のボードマネージャのURL」にhttps://dl.espressif.com/dl/package_esp32_index.jsonと入力しOKボタンをクリックします。
  3. ツール→ボード→「ボードマネージャ」を選びます。ボードマネージャのの検索欄でesp32と入力し、見つかったパッケージインストールボタンをクリックします。
  4. ツール→「ライブラリを管理」を選びます。ライブラリマネージャの検索欄でFabGLと入力し、見つかったパッケージのインストールボタンをクリックします。
  5. ツール→ボード→「ESP32 Dev Module」を選びます。
  6. PCとORANGE-ESPerを接続します。WindowsパソコンでしたらデバイスマネージャーでCOMポートの番号を確認しておきます。
  7. ツール→シリアルポート→COM??を選びます。??は6.で確認しておいた番号です。
【動作確認】
  1. ファイル→スケッチ例→FabGL(下の方にあります。)→VGA→「SpaceInvaders」を選びます。
  2. スケッチ→「マイコンボードに書き込む」を選びます。
  3. インベーダーゲームが開始されます。その他、スケッチ例のVGA配下にあるサンプルも同様の手順で実行することができます。
セットアップ ORANGE-OS
【別途必要なもの】
  1. VGAケーブル、モニター
  2. PS/2キーボード(コネクタ形状がUSBのもの)
  3. micro USB ケーブル
  4. Arduino開発環境
提供ファイル(上記ORANGE-ESPer関連資料の「ファーム」をクリックしてダウンロードしてください。)
※モニター期間中は、すべてのファイルが含まれていません。順次更新していきます。
<ORANGE-inside> esptool.exe 書込みツール
  ORANGE-inside.ino.esp32.bin ORANGE-insideファームウエア
  upload.bat  書込み用BATファイル
<ORANGE-inside-src> ORANGE-inside全ソースコード(正式リリース時に提供予定)
<ORANGE-studio> ORANGE-pro.jar ORANGE-studioの実行ファイル
  Font8x16.bdf 東雲フォント(8x16)
  Font16x16.bdf 東雲フォント(16x16)
<ORANGE-OS> <bas> ORANGE-lightで記述したORANGE-OS(アプリを含む)のソースファイル
  <exe> ORANGE-OSの実行ファイル
  <int> ORANGE-OSの中間コードファイル
  <lst> ORANGE-OSのコンパイルリストファイル
0. Arduinoでの動作確認
セットアップ編 Arduino-FabGL編を参照して、
Arduino IDEでファームの書込みができることを確認しておいてください。
1. ORANGE-insideの書込み
提供フォルダーの<ORANGE-inside>を適当な場所にコピーし、<ORANGE-inside>内にあるupload.batの中身を書き換えます。場所は1行目のPORT=の次です。シリアルポート番号を環境に合わせて書き換えてください。
PCとORANGE-ESPerを接続し、upload.batを実行すれば書込みが始まります。
2. ORANGE-insideモニターの起動


ORANGE-insideモニターで使用できるコマンドは以下の通りです。
コマンドとパラメーターは、スペースで区切ります。
コマンド 書式 説明
d d ダウンロードを開始し、プログラムをメモリーにロードします。 d
e e ファイル名 指定したファイルをフラッシュメモリーから消去します。 e test.exe
f ファイル一覧を表示します。 f
l l ファイル名 指定したファイルをフラッシュメモリーからロードします。 l test.exe
o o ORANGE-OSが書き込まれていれば、ORANGE-OSを起動します。(リセットボタンを押したときと同じ動作をします。) o
r r ロードされているプログラムを実行します。(ORANGE-OSがなくてもプログラムを直接実行することはできます。) r
s s [ファイル名] ロードされているプログラムを指定したファイル名でフラッシュメモリーに保存します。ファイル名を指定しないときはプログラム内に保持されているファイル名で保存します。 s
dコマンドまたはlコマンドを実行してプログラムがロードされている状態では、以下のデバッグコマンドが使用できます。
bs bs アドレス 16進数で指定したアドレスにブレークポイントを設定します。ブレークポインは最大10個まで設定できます。 bs 2f
bd bd ブレークポイント番号 指定した番号のブレークポイントを削除します。ブレークポイント番号はbdコマンドで確認できます。 bd 2
bl bl 設定されているブレークポイントの番号とアドレスを表示します。  bl
g g デバッグを開始します。また、ブレークポイントで中断したプログラムを再開します。
t t 1ステップだけトレースします。 
x x 現在の状態を表示します。
vc vc [アドレス] プログラムエリアのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 vc ff
vs vs スタックの内容を表示します。 vs 
vd vd [アドレス] プログラムエリアのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 vd 1f
vv vv [アドレス] コンスタントプールのデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 vv 1f
vm vm [アドレス] メモリー配列のデータを16進数で指定したアドレスから表示します。アドレスを省略すると0番地から表示します。 vm 1f0
vl vl [アドレス]  16進数で指定したアドレスから逆アセンブルリストを表示します。アドレスを省略すると0番地から表示します。 vl 100

ORANGE-insideの書込みが完了したら、PC側でシリアルコンソールを起動します。(115200bps、データ長8ビット、パリティなし、ストップビット長1ビット、フロー制御なし、送信遅延なし、送信改行コードCR、受信改行コードCR、ローカルエコーなし)

初回起動時は、ORANGE-ESPer内のフラッシュメモリーが初期化されます。VGAモニターとPS/2キーボードを接続し、microSDカードがあればFAT32にフォーマットしたものを装着しておきます。リセットボタン(ESP32-DevKitC上のENボタン)を押して再起動してください。写真のようにORANGE-insideモニターが起動します。
3. ORANGE-OSの書込み


ファイルを一括してアップロードする方法←ORANGE-OS上でFTPサーバーが動作するようになりましたので、この方法も不要です。

Arduino ESP32 filesystem uploader プラグインを利用すると、ファイルを一括してフラッシュメモリーにアップロードできます。この場合は、intファイルではなく、
/ORANGE-OS/
exeフォルダー内のexeファイルをアップロードしてください。
【導入手順】
GitHubからESP32FS-1.0.zipをダウンロードします。https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/tag/1.0
Arduino IDEをインストールしたフォルダー/toolsに解答したESP32FSフォルダーを丸ごとコピーします。Arduino IDEを再起動します。
【使い方】
ツール使用前にシリアルコンソールは終了しておきます。
スケッチファルダーにdataフォルダーを作成します。dataフォルダーにフラッシュメモリーに転送するファイルを入れます。Arduinoからツール→ESP32 Sketch Data Uploadをクリックすれば一括転送が始まります。
また、データフィルダー内を空にしておけば、フラッシュメモリーを一括削除することもできます。


ORANGE-insideモニターを強制起動する方法 
OSの起動に問題があったときなどに、ORANGE-insideモニターを強制起動したい場合は、GPIO12に10kΩ程度の抵抗を介してGNDに接続したまま、リセットボタンを押します。

基板のmicroSDカードのすぐ下に9個のホールがあり、そこにGNDとGPIO12が出ています。一番右のホールがGPIO12です。


ORANGE-studio/ORANGE-OS/intフォルダー内にあるすべてのファイルをORANGE-insideモニターのdコマンドで一つずつダウンロードします。

Tera Termでは、マウスで選んだファイルをウインドウ内にドラッグ&ドロップで送信開始します。Tera Term以外のソフトでも同様のテキストファイルのアップロード機能がありますので、それをご利用ください。(intファイルの中身はテキストです。)

正常にダウンロードできると、[END]を表示しコマンドプロンプトに戻ります。
次にsコマンド(ファイル名は指定しない)で、フラッシュメモリーに書き込みます。
ファイルが書き込めたかどうかはfコマンドで確認できます。(dコマンドでドラッグ&ドロップしたファイルはintファイルですが、書き込まれるのはexeファイルです。)

これらを繰り返し、/ORANGE-OS/intフォルダー内のファイルをすべて書き込みます。
ORANGE-OS上でFTPサーバーが動作するようになりましたので、最初に書き込むコマンドは次の3個だけでかまいません。
boot.int
setup.int
ftps.int


最後に、リセットボタンを押すかモニターのoコマンドで再起動します。
VGAモニターでORANGE-OSの起動が確認できます。

4. ORANGE-OSのセットアップ

ORANGE-OSの内部コマンド
コマンド 書式 説明
f: f: カレントドライブをf:(フラッシュメモリー)に変更します。 f:
s: s: カレントドライブをs:(micor SDカード)に変更します。 s:
mon mon ORANGE-insideモニターを起動します。 mon

ORANGE-OSの外部コマンド(順次追加予定)
コマンド 書式 説明
cd cd <ディレクトリー名> カレントディレクトリーを変更します。 cd test
cls cls 画面を消去します。 cls
config config <キー> <値> 環境設定を行います。
指定したキーと値によって、次のように設定します。
項目 キー
WiFi接続時のSSID SSID 設定値
WiFi接続時のパスワード PASSWORD 設定値
キーボードの種類 KBSET 0 JP
1 US
config KBSET 1
date date 現在の日付時刻を表示します。 date
del del <名前> ファイルまたはディレクトリーを削除します。 del test.exe
dl dl <ファイル名> intファイルをダウンロードして、指定した名前でexeファイルに変換して保存します。 dl test.exe
dir dir カレントディレクトリー内にファイル一覧を表示します。 dir
md md <ディレクトリー名> 新規ディレクトリーを作成します。 md test
type type <ファイル名> 指定したテキストファイルの中身を表示します。 type test.txt
ren ren <旧名> <新名> ファイルまたはディレクトリーを指定された名前に変更します。 ren old.txt new.txt
reset reset ORANGE-OSを再起動します。 reset
setup setup  configコマンドで設定した内容を反映します。  setup


configコマンドでWiFiとキーボードの設定を行います。
WiFiの設定は、次のようにconfigコマンドを2回実行して設定します。
(ORANGE-OSでは大文字/小文字を区別しますので、注意して入力してください。)
F:/>config SSID xxx
F:/>config PASSWORD yyy

configコマンドを実行すると、config.sysが作成されます。
次のようにtypeコマンドで設定内容を確認できます。

F:/>type config.sys

キーボードの種類はデフォルトで日本語キーボードになっています。
USキーボードに変更するときは、次のコマンドを追加します。
F:/>config KBSET 1

設定が終わったら、resetコマンドで再起動します。設定した内容は再起動時に反映されます。
F:/>reset

再起動後にWiFiの接続に成功すれば、IPアドレスが表示されます。

ORANGE-OS起動後にPC上のファイルを取得するには、次の方法があります。
  1. ORANGE-insideモニターを起動して、dコマンドでダウンロード後にsコマンドに保存する。(前述の通り)
  2. ORANGE-OS上でdlコマンドを起動する。(1.の方法とほぼ同じ)
  3. micro SDカードにexeファイルをコピーする。
  4. ORANGE-OS上でFTPサーバーを起動する。
ここではFTPサーバーの使用方法を説明します。
まず、FTPサーバーやWebサーバーを実行する十分なメモリーがありませんので、SDカードは抜いておいてください。
起動方法は次の通りです。
F:/>ftps

"FTP Server waiting for connection"と表示されれば起動成功です。
ユーザー名はpico、パスワードもpicoです。暗号化もなく、ポートもデフォルトの21番を使用します。
FTPのクライアントとしては、FFFTPやWinSCPの動作を確認しています。また、Windows10エクスプローラーでもアクセスできます。
エクスプローラーのアドレスバーに
ftp://pico:pico@192.168.07
(192.168.0.7の部分は起動時に表示されるもの)
と入力すれば、ORANGE-ESPer内のフラッシュメモリー上のファイルが見えるようになります。
5. ORANGE-OSでのプログラム開発


ORANGE-OSでのプログラム開発にはORANGE-studio(Ver2.00~)が必要です。

ORANGE-studio PRO Ve2の使い方はこちらに掲載予定です。
ORANGE-light Ver2の仕様はこちらをご覧ください。
~ORANGE-OSを作ろう~
ORANGE-OSはORANGE-lightで書かれています。
ORANGE-lightはORANGE-OSの標準言語です。

ORANGE-OSの一部やORANGE-OS上で動作するアプリケーションをご提供ください。
ご提供いただけるものがありましたら、facebooktwitterなどでご連絡ください。
正式採用させていただいた方(表に名前のある方)には、謝礼いたします。(当社次期商品などを予定)

ORANGE-OSまたは標準アプリ
プログラム 機能 作者 改訂者 備考 公開場所 
boot 起動管理 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html
cd ディレクトリー変更 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html
cls 画面消去 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
config 環境設定 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
date 日付表示 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
del ファイル削除 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
dl ダウンロード ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
dir ディレクトリー表示 ピコソフト株式会社   http://www.picosoft.co.jp/ESP32/index.html 
ftps FTPサーバー ピコソフト株式会社 メモリーが足りないため、SDカードは抜いておく必要があります。 http://www.picosoft.co.jp/ESP32/index.html 
life ライフゲーム ピコソフト株式会社      http://www.picosoft.co.jp/ESP32/index.html 
md ディレクトリー作成 ピコソフト株式会社     http://www.picosoft.co.jp/ESP32/index.html 
nvsinit NVS初期化 ピコソフト株式会社     http://www.picosoft.co.jp/ESP32/index.html 
type テキストファイル表示 ピコソフト株式会社      http://www.picosoft.co.jp/ESP32/index.html 
ren ファイル名変更 ピコソフト株式会社      http://www.picosoft.co.jp/ESP32/index.html 
reset リセット ピコソフト株式会社      http://www.picosoft.co.jp/ESP32/index.html 
setup 環境設定の反映  ピコソフト株式会社     http://www.picosoft.co.jp/ESP32/index.html 

サンプルプログラム
プログラム 機能 備考 公開場所 
qsort クイックソート   http://www.picosoft.co.jp/ESP32/index.html 
fl ファイラー スケルトンのみの参考プログラム http://www.picosoft.co.jp/ESP32/index.html 
svcde Webサーバー メモリーが足りないため、SDカードは抜いておく必要があります。 http://www.picosoft.co.jp/ESP32/index.html 
tickms ベンチマーク    http://www.picosoft.co.jp/ESP32/index.html