Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pinouts [2021/03/11 13:42] – [Cartridge port] pulkomandy | pinouts [2022/06/11 14:35] (current) – Moving controllers to a separate page admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Cartridge port ====== | ====== Cartridge port ====== | ||
| - | Pinout: https://media.discordapp.net/attachments/750094909947772964/758513072087629884/vsmile-pinout.png? | + | 50 pin connector with spacing of 2.54mm. For example this works: https://www.digikey.com/product-detail/en/te-connectivity-amp-connectors/5530841-5/ |
| - | Pin spacing | + | One pair of pins is missing, making a hole that prevents inserting cartridges in the wrong way. |
| - | Development cartridges from V.Tech used flash memory: SST 39VF6401B | + | ===== V.Smile cartridges ===== |
| + | |||
| + | Pinout traced from development cart picture: https:// | ||
| + | |||
| + | Development cartridges from V.Tech used NOR flash memory: SST 39VF6401B | ||
| Production cartridges use a " | Production cartridges use a " | ||
| Line 13: | Line 17: | ||
| ^Back |VDD|RAM CSB|Sense|ROM CSB2|D2|D1|D0|D7 |D10|D9 |D8 |D14|A16|A2^x |A4|A6|A17|A8|A10|A12|A14|A19|A21|ROM CSB1 | | ^Back |VDD|RAM CSB|Sense|ROM CSB2|D2|D1|D0|D7 |D10|D9 |D8 |D14|A16|A2^x |A4|A6|A17|A8|A10|A12|A14|A19|A21|ROM CSB1 | | ||
| - | Cartridges from the Nitro Vision/ | + | **Note: |
| - | **Note: the " | + | |
| + | * Card detect is connected to VDD to indicate that a cart with ROM is inserted (?) maybe it allows booting from cartridge instead of internal ROM (tbc) | ||
| + | | ||
| - | * Sense is connected to VDD to indicate that a cart is inserted | + | To be confirmed: |
| - | * Card detect is connected to VDD to indicate that a cart with ROM is inserted (?) | + | |
| - | * ROM CSB1, ROM CSB2 and RAM CSB allow to select which bank of the cartridge is accessed. Typically cartridges use only ROM CSB1. | + | |
| - | ^Cartridge name | + | * What is RAM_CSB? It is not connected |
| - | |Français et Anglais (orange) | 1 - 35-68700-017-202-707426-1 | SENSE is connected to VDD | | + | ==== Battery backup cartridge ==== |
| - | |Sciences et Nature (white) | + | |
| - | |Découvre le monde (blue) | + | |
| - | |Maths et Logique (green) | + | |
| + | At least the " | ||
| - | ====== Controller port ====== | + | {{: |
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| - | 6 pin mini DIN (like PS/2 keyboards and mouse). It is a serial port at 4800 baud, 8N1. | + | The blob is flash (as usual) and the chip on the right is RAM: BSI - [[https:// |
| - | Pinout (using | + | The pin labelled RAM_CSB in the pinout above is in fact not used by this cartridge (but ROM_CSB2 is) |
| - | - VCC | + | ==== Dual ROM cartridges ==== |
| - | - CTS (from V.Smile) | + | |
| - | - Tx (from V.Smile) | + | |
| - | - GND | + | |
| - | - Rx (from controller) | + | |
| - | - RTS (from controller) | + | |
| + | At least the following games have two blobs on ROM_CSB1 and ROM_CSB2: | ||
| - | ===== Flow control | + | * The little mermaid |
| + | * Smart keyboard | ||
| + | * Alphabet adventure | ||
| + | ===== Nitro Vision / Genius TV progress cartridges | ||
| - | When the console sends a byte, first CTS goes high, then the console sends the bits on the Tx line. When done, CTS goes low again. | + | These contain no ROM, and only short some pins together. |
| - | When the controller sends a byte, RTS goes low first, then it waits for CTS to be up. Then RTS goes up and sends its byte. Finally CTS goes low again. | + | Inserting these in the V.Smile results in nothing |
| - | + | ||
| - | If there are multiple bytes to send, RTS remains down until the start of the last byte. | + | |
| - | ===== Messages from the controller ===== | + | |
| - | + | ||
| - | When idle (no buttons touched), the console sends a byte every 20ms, it seems to be partially random. I've seen E6, D6, or 96. | + | |
| - | + | ||
| - | Every second the controller sends 55 if nothing | + | |
| - | + | ||
| - | + | ||
| - | ^ Common to joystick, dance mat and keyboard ||| | + | |
| - | ^ Button | + | |
| - | | OK | A1 | A0 | | + | |
| - | | Quit | A2 | A0 | | + | |
| - | | Help | A3 | A0 | | + | |
| - | | ABC | A4 | A0 | | + | |
| - | | Idle (nothing) | 55 || | + | |
| - | + | ||
| - | ==== Joystick ==== | + | |
| - | + | ||
| - | The joystick has 5 levels of precision in each direction. For example, C3 is " | + | |
| - | + | ||
| - | The 4 color buttons are allocated one bit each in the 9x range so it's possible to manage multiple of them being pressed at once. | + | |
| - | + | ||
| - | The other buttons are Ax with x just being the button number, so it's not possible to handle multiple of them being pressed at the same time. | + | |
| - | + | ||
| - | ^ Joystick | + | |
| - | ^ Button | + | |
| - | | Green | 91 | 90 | | + | |
| - | | Blue | 92 | 90 | | + | |
| - | | Yellow | + | |
| - | | Red | 98 | 90 | | + | |
| - | | Up | C0 83 to C0 87 | C0 80 | | + | |
| - | | Down | C0 8B to C0 8F | C0 80 | | + | |
| - | | Left | CB 80 to CF 80 | C0 80 | | + | |
| - | | Right | C3 80 to C7 80 | C0 80 | | + | |
| - | + | ||
| - | ==== Dance mat ==== | + | |
| - | + | ||
| - | Every press sends at least a " | + | |
| - | + | ||
| - | ^ Dance mat ||| | + | |
| - | ^ Button | + | |
| - | | 1 / Red | C0 8B | C0 80 | | + | |
| - | | 2 / Up | 92 C0 80 | 90 C0 80 | | + | |
| - | | 3 / Yellow | + | |
| - | | 4 / Left | C0 8D | C0 80 | | + | |
| - | | 5 / Middle | + | |
| - | | 6 / Right | CD 80 | C0 80 | | + | |
| - | | 7 / Blue | A4 C0 80 | A0 C0 80 | | + | |
| - | | 8 / Down | 94 C0 80 | 90 C0 80 | | + | |
| - | | 9 / Green | 98 C0 80 | 90 C0 80 | | + | |
| - | + | ||
| - | ==== Smart Keyboard (Clavier Tip Tap) ==== | + | |
| - | + | ||
| - | (sorry, I have the French/ | + | |
| - | + | ||
| - | ^ Row 1 (top) ^^ Row 2 ^^ Row 3 ^^ Row 4 ^^ Row 5 ^^ | + | |
| - | ^ Key ^ Code ^ Key ^ Code ^ Key ^ Code ^ Key ^ Code ^ Key ^ Code ^ | + | |
| - | | Esc | A2 | Dactylo | 22 | Caps | 1A | Shift | A9/AA | Player 1 | 04 | | + | |
| - | | 1 | 33 | A | 23 | | + | |
| - | | 2 | 34 | Z | 24 | Q | 1B | X | 14 | Symbol | 2C | | + | |
| - | | 3 | 35 | E | 25 | S | 1C | C | 15 | Space | 05 | | + | |
| - | | 4 | 37 | R | 27 | D | 1D | V | 17 | Player 2 | 0E | | + | |
| - | | 5 | 36 | T | 26 | F | 1F | B | 16 | Left | 06 | | + | |
| - | | 6 | 30 | Y | 20 | G | 1E | N | 08 | Down | 0F | | + | |
| - | | 7 | 31 | U | 21 | H | 18 | , | 11 | Right | 0D | | + | |
| - | | 8 | 3E | I | 3A | J | 19 | ; | 0C | | | | + | |
| - | | 9 | 3F | O | 3B | K | 0A | : | 2F | | | | + | |
| - | | 0 | 38 | P | 3C | L | 0B | Up | 12 | | | | + | |
| - | | º | 29 | ¨ | 2A | M | 01 | | | | | | + | |
| - | | Backspace | 39 | Erase | 3D | Enter | A1 | | + | |
| - | + | ||
| - | + | ||
| - | * Escape is mapped to Quit and works the same | + | |
| - | * Help is mapped to Help and works the same | + | |
| - | * Enter is mapped to OK and works the same | + | |
| - | * Shift sends A9 on press and AA on release | + | |
| - | * Other keys send their code on press, and code | C0 on release (so no code will be in the 90-AF range for either press or release to not conflict with the special buttons) | + | |
| - | + | ||
| - | The joystick at the bottom of the keyboard | + | |
| - | + | ||
| - | * Left: 7F 80 | + | |
| - | * Right: 77 80 | + | |
| - | * Down: 70 8F | + | |
| - | * Up: 70 87 | + | |
| - | ===== Commands from the console ===== | + | |
| - | + | ||
| - | 61, 62, 64 and 68 are sent in reply to color buttons presses. I suspect this controls the lights in the buttons. | + | |
| - | 60 is sent to turn the light off. | + | |
| - | + | ||
| - | These are repeated every 20ms. After the controller sends 55 (idle), the V.Smile also returns to its idle reply (E6 for example) every 20ms. | + | |
| + | ^Cartridge name | ||
| + | |Français et Anglais (orange) | 1 - 35-68700-017-202-707426-1 | SENSE is connected to VDD | | ||
| + | |Sciences et Nature (white) | ||
| + | |Découvre le monde (blue) | ||
| + | |Maths et Logique (green) | ||
| + | So, in this case: | ||
| + | * Sense indicate that a cartridge is inserted | ||
| + | * RAM_CSB and ROM_CSB2 allow to identify which cartridge it is | ||
