The CGMICROMITE2 is a low cost Microchip PIC32 microcontroller programmed with the MMBasic version 5.0 firmware.
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 display data on low cost colour TFT LCD displays, measure voltages, detect digital inputs and drive output pins to turn on lights, relays, etc.
Everything is internal to the CGMICROMITE2 and it will run from a couple of AA batteries. The only extra component required is a 47µF capacitor. The 28-pin dual in line version is particularly easy to use as it can be easily soldered and plugged into an IC socket.
The features are:
A fast 32 bit CPU (5 to 48MHz) running a powerful BASIC interpreter. 59KB 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 CPU is the MX170F256B.
The BASIC interpreter is full featured with floating point, 64-bit integers and string variables, long variable names, arrays of floats, integers 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. MMBasic allows the embedding of compiled C programs for high performance functions and the running program can be protected from being listed or modified by a PIN number.
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. Within MMBasic the I/O pins can be dynamically configured as inputs or outputs with or without pullups or pulldowns. MMBasic commands will generate pulses and can be used to transfer data
in parallel. Interrupts can be used to notify when an input pin has changed state. 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). Up to two high speed serial I/O ports, one I2C and one SPI channels.
TFT LCD display panels are supported allowing the BASIC program to display text and draw lines, circles, boxes, etc in up to 65 thousand colors. Resistive touch controllers on these panels are also supported allowing them to be used as sophisticated input devices. These LCD panels typically cost US$7 and provide a low cost, high tech graphical user interface. Supports 1.8″, 2.4″ and 2.8″ SPI TFT LCD Displays.
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 CGMICROMITE2 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 CGMICROMITE2 . This only requires a VT100 terminal emulator and can edit the whole program in one session. It includes advanced features such as color codes syntax, search and copy, cut and paste to and from a clipboard.
Programs can be easily transferred from another computer (Windows, Mac or Linux) using the XModem protocol or by streaming the program over the serial console input.
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.
The CGMICROMITE2 has built in commands to directly interface with infrared remote controls, the DS18B20 temperature sensor, LCD display modules, battery backed clock, numeric keypads and more.
Special embedded controller features in MMBasic allow the CPU to be put to sleep or the clock speed to be varied to balance power consumption and speed. 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.
Power requirements are 2.3 to 3.6 volts at 6 to 31mA.