| BrainStem® GP 1.0 Module | Index |
Contents
Specifications
Pinout Diagram
Processor
Power and Voltage Ratings
Power Supplies
Analog Input
Board Dimensions
File Slots and Processes
Input Devices
Specifications
Hardware ratings and unique module specifications are described in the table.
| Item | Value | Notes |
| Supply Input Voltage | 6.0V-12.0V | |
| VCC (Regulated) | 5.0V | |
| I_VCC (Max) | 1.0A | |
| Reflex Enablers | 8 | See cmdRFLXE_CFG for details. |
| Timers | 24 | 16-bit resolution. See cmdTMR_SET for details. |
| Counters | 8 | 16-bit resolution. See cmdCTR_SET for details. |
| Scratchpad Bytes Available | 56 | Modules prior to firmware Build 12 have 32 scratch pad bytes. |
Pinout Diagram

Processor
The processor is a Microchip PIC18C252 operating with a 40MHz oscillator. Internal non-volatile memory is Microchip 24FC128/256 EEPROM for storage of system data, reflex commands, and VM opcodes. This EEPROM has an access rate of 1Mbit/sec. The processor has IIC interface hardware that has a maximum data transfer rate of 1Mbit/sec.
Power and Voltage Ratings
The recommended input voltage for the GP 1.0 module onboard voltage regulator is 6V to 12V. At higher voltages within this range, the regulator will generate a lot of heat and the heatsink may get quite warm. The regulator is a LDO (low drop-out) LM2940 so it begins to regulate the current at about 5.5V and up. Below that, the regulator acts more like a straight pass-through with little regulation. It is possible to run the board at voltages from 4.5V to 6V, but when the regulator does not get enough voltage, it becomes prone to power glitches and the processor may reset itself.
The voltage regulator has an output current rating of 1 Amp. The GP 1.0 module uses 50mA at 6V. When connected to the RS-232 interface cable, the GP 1.0 module uses 60mA. (The level shifter draws an additional 10mA.) The regulator can safely provide power for several extra sensors.
The digital outputs can sink or source up to 20ma.
Power Supplies
The BrainStem GP 1.0 module has two power supply inputs, one for logic and one for servos. A 9V battery can be used as the logic power supply for the GP module but should not be used to power servos. A 9V battery will be drained fairly quickly if the module must supply power to several other devices. When powering many external devices, 4 or more rechargeable batteries (1.2V) may be a better choice for the logic supply.
A 4-pack of NiMH or NiCad AA cells may be insufficient when used as a common supply for several servos, several sensors, and the BrainStem. An insufficient power supply can create low voltage conditions which will make the processor reset or malfunction. A 6-pack of NiMH AA batteries makes a better common supply, though dropping the supply voltage to the servos is recommended. This can be done with high-current diodes (such as 1N4001). The usual operating voltage for servos is 6V. Two power diodes in series can drop the 7.2V produced by 6 NiMH AA batteries down to 6V.
A 6V supply that can handle a large current load, such as a lead-acid battery, will also work well as a common supply. A large bypass capacitor (100uf-1000uf) on the supply input will help prevent power glitches. Another option is to use separate logic and servo supplies.
Servos have a secondary connector for power. This connector shares a common ground with the board, but the "Servo Power" pin is only connected to the four servo power pins of the servo connectors. This allows the servo power be isolated form the logic power if desired. The two pin header for the servo power can be removed and a small jumper can be added which will make the servos and logic share the same power supply. This modification is shown below.

Analog Inputs
The analog inputs have 10-bits of measurement resolution across a 0.0V - 5.0V range.
| A2DID | Input Device ID |
| 0 | 0 (0x00) |
| 1 | 1 (0x01) |
| 2 | 2 (0x02) |
| 3 | 3 (0x03) |
| 4 | 4 (0x04) |
Digital Inputs/Outputs
The digital inputs/output pins can sink or source up to 20ma. The Vcc pins on the analog and digital headers are all tied and are current limited only by the 1 Amp maximum. Input logic high can be from 4.7V-5.3V. Output logic high is at Vcc levels (5.0V) and a logic output low is 0.0V.
| DigID | Input Device ID | Functionality | Notes |
| 0 | 5 (0x05) | Input,Output | |
| 1 | 6 (0x06) | Input,Output,Logic Event Timer | |
| 2 | 7 (0x07) | Input,Output,Logic Event Timer | |
| 3 | 8 (0x08) | Input,Output,Logic Event Timer | |
| 4 | 9 (0x09) | Input,Output,Logic Event Timer |
Board Dimensions

TEA File Slots and Process Slots
A BrainStem module stores TEA files in an EEPROM. The GP 1.0 module contains 11 file slots numbered 0-10. Programs can run in any of 4 "virtual machine" (VM) process slots numbered 0-3. Each process has a private stack space of 128 bytes. These processes can run concurrently. A 56 byte scratchpad RAM buffer may be used for sharing data between processes.
| FileID range | Maximum File Size | Notes |
| 0-7 | 1K | Firmware Build 6 and earlier |
| 0-10 | 1K | Firmware Build 7 and later |
There is additional space on the EEPROM dedicated to storing reflexes. The GP 1.0 stores 128 reflex vectors and 128 reflex commands. For simple tasks, it may be possible to use a reflex instead of a TEA program and conserve process slots and/or file slots.
Input Devices
A BrainStem can get input from physical and software devices. Details about devices are described in Brainstem Input Devices reference.
| Alias | Device ID | Input Source |
| A0-A4 | 0-4 | A2D inputs |
| D0-D4 | 5-9 | Digital pin state inputs |
| R0 | 10 | GP2D02 range input |
| E1-E4 | 11-14 | Digital Edge/Width timer inputs |
| X0-X4 | 15-19 | 0.1ms polling digital transition inputs |
| T1-T24 | 20-43 | 0.1ms resolution timer inputs |
| C0-C7 | 44-51 | 16-bit counter rollover inputs |
| I0 | 52 | IIC input |
| S0-S3 | 53-56 | Semaphore inputs |
| B0 | 57 | Raw serial byte input |
| L0 | 126 | Host link down reflex input |
| P0 | 127 | Power-up reset reflex input |