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.
Q3. Does PiKey-10 support automatic key repeat?
A3. Yes! With firmware 0.26 or later, use GUI-R to toggle enable/disable of automatic key repeat when a key is being held down.
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>
Starting with PiKey-10 firmware revision 0.26, it's possible to select some common joystick-to-keyboard mapping presets by holding directions or buttons on joysticks during power-up! See the "Example Sequences for Configuring Joysticks" table below.
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 -OR, with firmware version 0.26 or later- Hold up on joystick 1 while powering on the MC-10 |
LOADM”ASTEROIDS EXEC |
|
Breakout |
W, Z |
Default for Joystick 1 |
RUN”BREAKOUT |
|
Defend |
1, -, <SPACE> |
GUI-J -OR, with firmware version 0.26 or later- Hold down on joystick 1 while powering on the MC-10 |
RUN”DEFEND |
|
Dropship |
W, A, S, Z, <SPACE> |
Default for Joystick 1 |
RUN”DROPSHIP |
|
Flagon Bird |
Any key |
(Default for any joystick) GUI-J |
LOADM”FLAGON EXEC |
|
MC Bouncy Ball |
<, >, <ENTER>, <SPACE> |
GUI-J -OR, with firmware version 0.26 or later- Hold left on joystick 1 while powering on the MC-10 |
LOADM”MC-BOUNCY |
|
Lost World Pinball |
<ENTER> (plunger) <CTRL> (left flipper) <SHIFT> (right flipper) |
GUI-J -OR- GUI-J -OR, with firmware version 0.26 or later- Hold the button on joystick 1 while powering on the MC-10 |
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 |
LOADM”TETRIS EXEC |