PiKey-10 Usage
Using the PiKey-10 with a Wired USB Keyboard
- Connect a wired USB keyboard to the included USB OTG cable
- Connect the USB OTG cable to the front-panel keyboard interface of the PiKey
- Power up the MC-10
- PiKey-10, by default, will use the standard modern computer keyboard map, where "what you type is what you get". This is referred to "TOUCH TYPE" by PiKey-10 when in verbose mode (see Interacting with PiKey-10 On Screen). To toggle between this standard modern keyboard map and an alternate keyboard map, which is a better physical layout match to the MC-10 keyboard for users whose muscle memory automatically switch upon viewing the MC-10's green display and text, press GUI-K. Note that the MC-10 style keyboard map has the following exceptions to what a user might be used to on a typical modern PC keyboard:
USB Keyboard Key | MC-10 Keyboard Equivalent | Also Available in Standard Touch-Type Mode |
---|---|---|
\ | <BREAK> | yes |
[ | @ | yes |
] | @ | yes |
<SHIFT> 2 | " | no |
<SHIFT> 6 | & | no |
<SHIFT> 7 | ' | no |
<SHIFT> 8 | ( | no |
<SHIFT> 9 | ) | no |
<SHIFT> 0 or <CAPS LOCK> | <SHIFT> 0 | yes |
- (dash/minus) | : (colon) | no |
_ (underscore) | * | no |
= | - (dash/minus) | no |
+ | = | no |
: (colon) | + | no |
<BACKSPACE> | <CTRL> A | yes |
Keyboard Troubleshooting and FAQ
Q1. My USB keyboard doesn't work! How can I get it working?
A1. Some USB keyboards are not supported directly by the open source Tiny USB protocol stack available for the Raspberry Pi Pico, most often those with multimedia control keys. Please see the Keyboard Compatibility list on the PiKey home page. Also, please report difficulties via email or the Contact page. We will do our best to help you locate an alternate keyboard, if necessary! Please note that wireless keyboards are not supported.
Q2. Can I swap (hot-plug) keyboards while the MC-10 is on?
A2. This does not work reliably with the Raspberry Pi Pico and the Tiny USB stack and is not recommended.
Interacting with PiKey-10 On Screen
Within MC-10 BASIC, the PiKey-10 can "autotype" messages on the screen to provide information about status. It uses the <BREAK> key at the end of each line to avoid virtually pressing <ENTER>, which would produce an error. Note that it is important to avoid the use of these autotype features within program environments other than BASIC.
To place PiKey-10 in verbose mode to display information about the current mode or for assistance with joystick/joypad remapping, press GUI-V. To disable verbose mode, press GUI-V again.
Using the PiKey-10 with a 9-pin Atari joystick or Sega joypad
- Connect a joystick or joypad to the desired front-panel joystick port labeled 1 or 0.
- Power up the MC-10
- PiKey-10, by default, will map the keys as follows:
- Joystick 1 Up: W
- Joystick 1 Right: S
- Joystick 1 Down: Z
- Joystick 1 Left: A
- Joystick 1 Button (single button on Atari joystick or Sega Genesis joypad "B" button): <SPACE>
- Joystick 0 Up: I
- Joystick 0 Right: K
- Joystick 0 Down: M
- Joystick 0 Left: J
- Joystick 0 Button (single button on Atari joystick or Sega Genesis joypad "B" button): <ENTER>
To remap the controllers to different keys, perform the following steps:
- Press GUI-J to enter joystick/joypad reconfiguration mode
- Press the desired key on the keyboard to which to map a controller's action
- Move the appropriate controller to the position to remap and release or press the appropriate controller's button and release
- Repeat steps 2 and 3 as desired
- Press GUI-J to leave joystick/joypad reconfiguration mode
Note that due to other limitations in how PiKey-10 must handle keypress remapping, mapping <CTRL> or <SHIFT> by themselves is not possible. In this situation, select an arbitrary non-modifier key on the keyboard such as a letter or number character not used by the software along with the desired <CTRL> or <SHIFT> keypress.
For a video demonstating this procedure, please see this brief demo of an early PiKey-10 prototype, starting at around 3 minutes. See also the Troubleshooting and FAQ below, specifically Q2/A2 with a list of some MC-10 games and their remapping sequences.
Joystick/Joypad Troubleshooting and FAQ
Q1. When reconfiguring joystick/joypad direction and button controls, sometimes it doesn't appear to work correctly. Why isn't it working properly for me?
A1. Try pressing GUI-V (mentioned above in "Interacting with PiKey-10 On Screen") to obtain verbose step-by-step guidance before using joystick/joypad reconfiguration mode (via GUI-J) as well as guidance regarding which directions and buttons are being mapped. If multiple directions of a joystick/joypad are accidentally pressed in sequence prior to selecting a keyboard key, some of the programming of a direction may be inadvertantly erased or replaced.
Q2. How do I remap the joysticks/joypads for insert-my-favorite-game-here?
A2. Here are some example remapping sequences:
Game |
Keyboard Mapping |
Joystick Mapping Sequence |
Starting Game (with the MCX-32SD) |
---|---|---|---|
Any Inufuto |
W, A, S, Z, <SPACE> |
Default for Joystick 1 |
LOADM”filename |
Asteroids |
L, A, S, <SPACE>, ; |
GUI-J L, joystick up A, joystick left S, joystick right <SPACE>, joystick down ;, joystick button GUI-J |
LOADM”ASTEROIDS EXEC |
Breakout |
W, Z |
Default for Joystick 1 |
RUN”BREAKOUT |
Defend |
1, -, <SPACE> |
GUI-J 1, joystick left -, joystick right <SPACE>, joystick button GUI-J |
RUN”DEFEND |
Dropship |
W, A, S, Z, <SPACE> |
Default for Joystick 1 |
RUN”DROPSHIP |
Flagon Bird |
Any key |
(Default for any joystick) GUI-J <SPACE>, joystick up GUI-J |
LOADM”FLAGON EXEC |
MC Bouncy Ball |
<, >, <ENTER>, <SPACE> |
GUI-J >, joystick right <ENTER>, joystick button <SPACE>, joystick down GUI-J |
LOADM”MC-BOUNCY |
Lost World Pinball |
<ENTER> (plunger) <CTRL> (left flipper) <SHIFT> (right flipper) |
GUI-J <ENTER>, joypad down <CTRL>-any key, joypad left <SHIFT>-any key, joypad button GUI-J -OR- GUI-J <ENTER>, joystick down <CTRL>-any key, joystick left <SHIFT>-any key, joystick right <CTRL>-<SHIFT>-any key, joystick up GUI-J |
LOADM”PINBALL EXEC |
Sentinel |
W, A, S, Z, <SPACE> |
Default for Joystick 1 |
RUN”SENTINEL |
Space Assault |
A, S, <ENTER> |
Default for Joystick 1 |
LOADM”SPACE ASSAULT |
Tetris |
W, Z (rotate) |
(Default for Joystick 1) Suggested mapping: GUI-J W, joystick up A, joystick left S, joystick right <SPACE>, joystick down Z, joystick button GUI-J |
LOADM”TETRIS EXEC |