Micromite in a familiar form factor - compatible with shields
This is a MicroMite board in an Arduino form factor. This is a through-hole (TH) kit that is easy to assemble. The board can be powered from the barrel jack (7-12V). Kit includes microcontroller programmed with MMBasic.
The Micromite is a brilliant little single chip design created originally by Geoff Graham geoffg.net that runs BASIC.
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.
Special features include an IR remote control receiver and the ability to easily use LCD displays, keypads, temperature sensors, distance sensors and more.
In summary the features of the MMbasic on the CGMICROKIT 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.
Processor pins can be independently configured as digital input or output, analog input, frequency or period measurement and counting.
Programming and control is done via USB interface 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, 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.