Maximite computer on a chip - single DIP microcontroller. Run BASIC programs to interface to your electronics
The Micromite MkII is a brilliant little single chip design created originally by Geoff raham geoffg.net that runs BASIC.
The Micromite MkII is a PIC microcontroller programmed with the MMBasic firmware. This chip is an easy to use 28 pin dual in line package which can be easily soldered or plugged into an IC socket.
MMBasic is a Microsoft BASIC compatible implementation of the BASIC language with floating point, integer, and string variables, arrays, long variable names, a built in program editor and many other features. Using MMBasic you can use communications protocols such as I2C or SPI to get data from a variety of sensors. You can measure voltages, detect digital inputs and drive output pins to turn on lights, relays, etc. All from inside this 28 pin chip.
Special features include an IR remote control receiver and the ability to easily use LCD displays, keypads, temperature sensors, distance sensors and more. Everything is internal to the Micromite and it will run from a couple of AA batteries. The only extra component required is a 47µF capacitor.
In summary the features of the Micromite MkII are:
A fast 32 bit CPU with 256K of flash and 64K RAM running a powerful BASIC interpreter. 80KB of non volatile flash memory is reserved for the program. 52KB of RAM is available for BASIC variables, arrays, buffers, etc. This is sufficient for quite large BASIC programs up to 2500 lines or more.
The Microsoft compatible BASIC interpreter is full featured with floating point, 64-bit integers and string variables, long variable names, arrays of floats or strings with multiple dimensions, extensive string handling and user defined subroutines and functions. Typically it will execute a program at 30,000 lines per second.
Compiled C or assembler routines can be inserted into the BASIC program for speed or to access special features of the PIC32 microcontroller.
Nineteen input/output pins are available on the 28 pin chip. These can be independently configured as digital input or output, analog input, frequency or period measurement and counting. Ten of the pins can be used to measure voltages and another seven can be used to interface with 5V systems.
Programming and control is done via a serial console (TTL voltage levels) at 38400 baud (configurable). Once the program has been written and debugged the Micromite can be instructed to automatically run the program on power up with no user intervention. Special software is not needed to develop programs.
A full screen editor is built into the Micromite. This only requires a VT100 terminal emulator and can edit a full program in one session. It includes advanced features such as search and copy, cut and paste to and from a clipboard.
Easy transfer of programs from another computer (Windows, Mac or Linux) using the XModem protocol or by streaming the program over the serial console input.
Input/Output functions in MMBasic will generate pulses (both positive and negative going) that will run in the background while the program is running. Other functions include timing (with 1 mS resolution), BASIC interrupts generated on any change on an input pin and an internal real time clock.
A comprehensive range of communications protocols are implemented including I2C, asynchronous serial, RS232, IEEE 485, SPI and 1-Wire. These can be used to communicate with many sensors (temperature, humidity, acceleration, etc) as well as for sending data to test equipment.
Built in commands to directly interface special devices such as infrared remote controls, the DS18B20 temperature sensor, LCD display modules, battery backed clock, distance sensors, numeric keypads and more.
Up to five PWM or SERVO outputs can be used to create various sounds, control servos or generate computer controlled voltages for driving equipment that uses an analogue input (eg, motor controllers).
Special embedded controller features in MMBasic allow the clock speed to be varied to balance power consumption and speed. The CPU can also be put to sleep with a standby current of just 90µA. While in sleep the program state and all variables are preserved. A watchdog feature will monitor the running program and can be used to restart the processor if the program fails with an error or is stuck in a loop.
The running program can be protected by a PIN number which will prevent an intruder from listing or modifying the program or changing any features of MMBasic.
Power requirements are 2.3 to 3.6 volts at 6 to 31mA.
Australian forum with some support and examples for Micromites: The Back Shed