IchigoJam BASIC RPi + is an enhanced version of IchigoJam BASIC RPi,
It has special commands supporting Sense Hat and Touchscreen Display.
You can use it by purchasing pre-installed microSD card or introductory kit
released from I-O DATA. (Available in Japan)
For IchigoJam BASIC RPi (free edition), please see IchigoJam BASIC RPi1.2 Documents.
Agree to the Terms of use before use it. Distribution to third parties requires a contract.
Compatibility is confirmed with the following models.
* Raspberry Pi 4 and later are not supported.
* For some keyboards, The response of "Zero" series and "Model A+" series is not good for now.
However, Other than that, you can use those same as "Model B/B+" series.
For Sense Hat and Touchscreen Display,
Compatibility is confirmed with the following models.
Please purchase the following products released from I-O DATA.
To update to the latest version, follow the procedure below.
* Since updating the SAVE and LOAD command specifications to support EEPROM with ver1.2.5, it may be necessary to adjust the file name in the "files" directory at the time of update. Please see "SAVE/LOAD Destination" for details.
To configure the default keyboard layout, edit keymap.txt in microSD card.
Text in keymap.txt | Keyboard layout |
---|---|
us | US layout |
jp | Japanese layout |
* Changing the keyboard layout after startup is also available by using KBD command.
(refer to the document below.)
If the screen looks like the one on the left, it's successful!
Input "LED1" from keyboard and press [Enter] key.
If the Activity LED (green one) on Raspberry Pi turned on,
it's successful!
Input "LED0" from keyboard and press [Enter] key.
If the Activity LED (green one) on Raspberry Pi turned off,
it's successful!
If the Activity LED (green one) on Raspberry Pi blinking,
it's successful!
To stop blinking, press [Esc] key.
IchigoJam BASIC RPi is ported based on version 1.2.4(1.2b56)(*) of the original edition (LPC1114 edition).
The operation method and available commands are basically same as the original edition,
but the following points are different.
A Document of the original edition is here.
https://ichigojam.net/IchigoJam-en.html
* ver1.2.5 or later. Before ver1.2.4, ported based on ver1.2.3 of LPC1114 edition.
Following key operations are not implemented in RPi edition
Key | Reaction of the original edition |
---|---|
[Ctrl] + [Shift] | Switching Kana input mode(same as [kana]) |
[Ctrl] + [Alt] | Switching insert mode(same as [Insert]) |
Following key operations are implemented in RPi edition only
Key | Reaction of the RPi edition |
---|---|
[Ctrl] + [Shift] + [K] | Switching Kana input mode(same as [kana]) |
[Ctrl] + [Alt] + [I] | Switching insert mode(same as [Insert]) |
Following commands are not implemented in RPi edition
Command | Reaction of the original edition | Reaction of the RPi edition |
---|---|---|
SWITCH | Change the Display | Do nothing |
SLEEP | Enter to the system sleep mode | Do nothing |
ANA | Return voltage of external input as a numerical value | Always returns 0 |
Following commands are implemented in RPi edition only(*1)
Command | Reaction of the RPi edition | Usage |
---|---|---|
KBD | Change the keyboard layout(*2) |
KBD 0 'Swicthing To US KBD 1 'Swicthing To Japanese |
IoT.IN |
Receive numerical values from sakura.io with I2C
|
?IoT.IN() 'Display received numerical value |
IoT.OUT |
Send numerical value to sakura.io with I2C
|
IoT.OUT 111 'Send 111 |
*1 IoT.IN and IoT.OUT are implemented in LPC1114 edition in beta version.
*2 From ver1.2.5, the setting is saved in keymap.txt with the KBD command.
* The numerical value returned by LANG and the numerical value set by KBD are different.
LANG returns the language number of the font to be displayed when enabling Kana input with IchigoJam in use.
(LPC1114 edition 1:Japanese, 2:Mongolian, 3:Vietnamese)
The save destination of the program by the SAVE, LOAD command is as follows.
With ver1.2.5, we changed the specification to support EEPROM.
When updating from ver1.2.4 or earlier to ver1.2.5 or later, adjust the file name in the "files" directory of the microSD card to take over the created program.
microSD card(In the "files" directory) | EEPROM | |
---|---|---|
ver1.2.4 or earier | 0 to 3 and 100 to 227 (*.bin) | [Not supported] |
ver1.2.5 or later | 0 to 99 (*.bin) | 100 to 227 |
In addition, there are following differences.
The relationship between IN/OUT/PWM command and the physical pin
where the electric current actually flows is as follows.
Physical pin | Input command | Output command | PWM command | Initial state |
---|---|---|---|---|
15 | IN1 | (OUT8) | Input(pull up) | |
13 | IN2 | (OUT9) | Input(open) | |
11 | IN3 | (OUT10) | Input(open) | |
7 | IN4 | (OUT11) | Input(pull up) | |
35 | IN9 | Input(open,fixed) | ||
37 | (IN5) | OUT1 | Output | |
36 | (IN6) | OUT2 | Output | |
33 | (IN7) | OUT3 | PWM3 | Output |
32 | (IN8) | OUT4 | PWM4 | Output |
38 | (IN10) | OUT5 | Output | |
40 | (IN11) | OUT6 | Output | |
26 | OUT7 | Output(fixed) |
The physical pin where the electric signal actually flows
by using I2CW/I2CR command is as follows.
Physical pin | function |
---|---|
3 | SDA |
5 | SCL |
The physical pin where the electric signal actually flows
when communicate using UART is as follows.
Physical pin | function |
---|---|
8 | TXD |
10 | RXD |
The physical pin where the electric signal actually flows
by using BEEP/PLAY command is as follows.
Physical pin | function |
---|---|
29 | SND |
For technical information sharing and questions, please use the following Facebook group.
https://www.facebook.com/groups/ichigojamfan/
IchigoJam BASIC RPi+ has the following special command which supports Sense HAT and Touchscreen Display.
These commands can not be used with IchigoJam BASIC RPi. (Free edition)
Command | Reaction of the RPi+ edition | Usage |
---|---|---|
SH.CLS |
Turn off all Sense HAT LEDs SH.CLS |
SH.CLS 'Turns off all |
SH.PUT |
Set the color of Sense HAT's LED SH.PUT {Horizontal position}, {Vertical position}, {Color:0-4095} Color example(White:#FFF, Red:#F00, Green:#F0, Blue:#F) |
'Make the LED 4th from the left end and 4th from the top end green SH.PUT 3, 3, #F0 |
SH.SCR |
Get the color of Sense HAT's LED SH.SCR({Horizontal position}, {Vertical position}) |
'Show the color of LED 4th from the left end and 4th from the top end ?SH.SCR(3, 3) |
SH.SCROLL |
Scroll through the Sense HAT LEDs SH.SCROLL {direction} Examples of directions(Up:0, Right:1, Down:2, Left:3) |
SH.SCROLL 0 'Scroll up SH.SCROLL 1 'Scroll to the right |
SH.AX SH.AY SH.AZ |
Get the acceleration in each axis direction from the acceleration sensor SH.AX() SH.AY() SH.AZ() |
?SH.AX() 'Show acceleration in X axis direction ?SH.AY() 'Show acceleration in Y axis direction ?SH.AZ() 'Show acceleration in Z axis direction |
SH.BTN |
Get the state of the joystick SH.BTN() 0th bit from the right: Selecting "Down" 1st bit from the right: Selecting "Rigiht" 2nd bit from the right: Selecting "Up" 3rd bit from the right: Pushing 4th bit from the right: Selecting "Left" |
'Show the state of the joystick in binary number at once. ?BIN$(SH.BTN(),5) |
SH.BUP |
Get whether the joystick is in the Selecting "Up" SH.BUP() |
'Show 1 when the joystick is in the Selecting "Up" ?SH.BUP() |
SH.BDOWN |
Get whether the joystick is in the Selecting "Down" SH.BDOWN() |
'Show 1 when the joystick is in the Selecting "Down" ?SH.BDOWN() |
SH.BLEFT |
Get whether the joystick is in the Selecting "Left" SH.BLEFT() |
'Show 1 when the joystick is in the Selecting "Left" ?SH.BLEFT() |
SH.BRIGHT |
Get whether the joystick is in the Selecting "Rigit" SH.BRIGHT() |
'Show 1 when the joystick is in the Selecting "Righit" ?SH.BRIGHT() |
SH.BPRESS |
Get whether the joystick is in the Pushing SH.BPRESS() |
'Show 1 when the joystick is in the Pushing ?SH.BPRESS() |
SH.GX SH.GY SH.GZ (ver1.2.5 or later) |
Acquire angular velocity of each axis from Gyroscope sensor SH.GX() SH.GY() SH.GZ() |
?SH.GX() 'Show angular velocity of X axis ?SH.GY() 'Show angular velocity of Y axis ?SH.GZ() 'Show angular velocity of Z axis |
SH.MX SH.MY SH.MZ (ver1.2.5 or later) |
Get magnetic flux density in each axis direction from the Magnetometer sensor SH.MX() SH.MY() SH.MZ() |
?SH.MX() 'Show magnetic flux density in X axis direction ?SH.MY() 'Show magnetic flux density in Y axis direction ?SH.MZ() 'Show magnetic flux density in Z axis direction |
SH.APRESS (ver1.2.5 or later) |
Get a 10 times value of the atmospheric pressure SH.APRESSS() |
'Show atmospheric pressure in units of hectopascals ?SH.APRESS()/10 |
SH.HUMID (ver1.2.5 or later) |
Get a 100 times value of the humidity SH.HUMID() |
'Show humidity in percent ?SH.HUMID()/100 |
SH.TEMP (ver1.2.5 or later) |
Get a 100 times value of the temperature from the humidity sensor SH.TEMP(), SH.TEMP(1) Get a 100 times value of the temperature from the Barometric pressure sensor SH.TEMP(2) |
'Show temperature in degrees Celsius ?SH.TEMP()/100 |
Command | Reaction of the RPi+ edition | Usage |
---|---|---|
TS.X TS.Y |
Get the touched location of Touchscreen TS.X() Horizontal position (0-799, Not touched:-1) TS.Y() Vertical position (0-479, Not touched:-1) |
?TS.X() 'Show horizontal position ?TS.Y() 'Show vertical position |
TS.GET |
Get the touched location of Touchscreen TS.GET() Leading 8bit: Horizontal position (0-199, Not touched:0) Later 8bit: Vertical position (0-119, Not touched:0) |
'Show the touched location repeatingly. 10 P=TS.GET() 20 ?(P>>8);" ";(P&#FF) 30 WAIT10: GOTO10 |
With ver1.2.5, we changed the specification to support Easy connection of Touchscreen Display.
How to of the connection in each version and the definition of the origin of coordinates acquired by each command are as follows.
Please refer to the explanation here when connecting Touchscreen Display.
How to connect | Origin of coordinates | |
---|---|---|
ver1.2.5 or later |
Connect ribbon cable and power cable |
upper left origin |
ver1.2.4 or earlier |
Connect below
|
lower right origin |