Features of the SSG MIRTOS Operating System for ATmega microcontrollers:
Interactive command console with more than 100 commands supported including:
- Display of FLASH (program) memory, SRAM or EEPROM contents
- Edit the SRAM or EEPROM contents
- Upload and download FLASH, SRAM or EEPROM changes in iHex format
- Data exchange with other units using the Nordic® nRF24L01+ radio
- Examine, edit, and step through the World Semi® WS2812 pixel logic
- Display registers and/or stack contents to aid in debugging
Command processor is "extensible" (designed to accomodate changes and extensions):
- all commands can be intercepted
- entire new commands can be added
- new features can be added to existing system commands
- present features can be removed from existing system commands
- selective portions of any command can be allowed to execute
- selective portions of any command can be inhibited as well
Script interpreter, to store and execute command sequences as needed, including initialization
Scripts which can be saved and executed from either EEPROM or FLASH
Up to 32 user-defined tasks, excluding the 7 built-in tasks
Logic sequencer, with more than 50 sequenced steps possible
Able to stop and perform one iteration of a sequenced logic subroutine
Sleep mode, available to be able to run on very low power and/or conserve power
Interrupt-based discrete input can awaken the microcontroller (MCU) from sleep
Dual motor or pump controller, based on analog level input(s)
Able to display the pump control levels and setpoints in LEDs
User variable array of 32 to 256 bytes, accessible as BYTE, WORD or ULONG variables
- configurable number of User variables in 328P; always 256 in the 1284P and 2560
Interrupt-driven serial port(s) with buffered transmission and reception
- COM2 also supports interrupt-driven, transmit and receive buffers in the 1284P and 2560
- COM3 and COM3 supported in the same way in the 2560
COM1 serial port receive and transmit buffer of at least 80 bytes each direction
COM1 parsing buffer to handle interactive live editing (including backspace, etc.)
Editing commands support operators ("+=", "-=", "|=", "&=", et al.) in addition to simply "="
Special keys to enable and disable specific debug or selective output features
Maintains a real-time clock, including support for date and day of the week
Counts the number of seconds since the last system start
Exposes over 120 built-in System Functions, which are available for general use
Functions are non-blocking (except those which generate serial output)
Able to revise FLASH memory without requiring the OS stop and restart
Able to erase blocks of FLASH memory, again without stopping and restarting
Selectable foreground or background memory Serial (USB) port output processing (i.e., printing)
Automatic Analog-To-Digital conversion of all eleven (11) analog values
- All eight (8) 10-bit analog inputs (ADC0 through ADC7)
- Chip Vcc
- Chip ground
- Chip temperature
- Settling time (switch to next AIn) can be changed
- Settling time per channel can be from 6 to 250 mSec
- Automatic A2D conversions can be disabled
Support for WS2812 Green-Red-Blue pixel string output
WS2812 pixel generation and output routines
- up to 480 unique (24-bit) pixels in the 328P
- up to 5,080 unique pixels in the 1284P
- up to 2,200 unique pixels in the 2560
nRF24L01+ radio support includes echoing of the Serial (USB) port output out the radio
Able to transmit or receive program changes (including FLASH) remotely via nRF
Able to examine (but not change) the 3 FUSE bytes and the LOCK bits
Able to examine (but not change) the 3 AVR®Signature bytes
Able to examine the oscillator calibration byte, OSCCAL
Able to save and set a different OSCCAL value on startup
Able to fine tune TIMER0 even more than by simply changing the OSCCAL value alone
Able to automatically output some system metrics each second
Able to change system clock rate but maintain both comm rate and mSec timers
Reduced system code overhead by using only Assembly Language
No software libraries used so no royalties, copyright or copyleft limitations
No "delay" function; replaced by 5 types of timers
Familiar register usage conventions used by Assemblers and "C" language compilers
Supports any hardware implementation of the Atmel® ATmega328P,
ATmega1284P or ATmega2560 microcontrollers
Can display the reason for the last system shutdown upon boot-up
Can display the RAM and EEPROM after a Watchdog Timeout and before RAM is cleared
Is compact; nearly half of the FLASH memory still available for use in the 328P