PiKey-10 Usage

Using the PiKey-10 with a Wired USB Keyboard

  1. Connect a wired USB keyboard to the included USB OTG cable
  2. Connect the USB OTG cable to the front-panel keyboard interface of the PiKey
  3. Power up the MC-10
  4. 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:
Alternate MC-10 Keyboard Map Mode
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

  1. Connect a joystick or joypad to the desired front-panel joystick port labeled 1 or 0.
  2. Power up the MC-10
  3. 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:

  1. Press GUI-J to enter joystick/joypad reconfiguration mode
  2. Press the desired key on the keyboard to which to map a controller's action
  3. Move the appropriate controller to the position to remap and release or press the appropriate controller's button and release
  4. Repeat steps 2 and 3 as desired
  5. 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:

Example Sequences for Configuring Joysticks

Game

Keyboard Mapping

Joystick Mapping Sequence

Starting Game (with the MCX-32SD)

Any Inufuto
Any Shoemaker’s Last
Pac-Man

W, A, S, Z, <SPACE>

Default for Joystick 1

LOADM”filename
EXEC

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
Pong
Freeway

W, Z

Default for Joystick 1

RUN”BREAKOUT
RUN”PONG
RUN”FREEWAY

Defend
Demon Attack
Road Race

1, -, <SPACE>

GUI-J

1, joystick left

-, joystick right

<SPACE>, joystick button

GUI-J

RUN”DEFEND
RUN”DEMON ATTACK
RUN”ROAD RACE

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 left

>, joystick right

<ENTER>, joystick button

<SPACE>, joystick down

GUI-J

LOADM”MC-BOUNCY
EXEC

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
EXEC

Tetris

W, Z (rotate)
A, S (shift left/right)
<SPACE> (drop)

(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