Here are some of the capabilities of the VM2 embedded controller range indexed alphabetically.
Top 1-Wire Bus
The VM2 is capable of driving the Dallas 1-Wire bus protocols allowing communication with iButtons and other 1-Wire devices. All 1-Wire devices have a unique ID number which can be useful in identification, validation and security applications. Many 1-Wire devices may co-exist on a single 1-Wire bus without conflict.
All that is needed to implement the basic 1-Wire bus on a VM2 is a single resistor.
Top Analogue I/OThe VM2 controller has 19 channels of 12-bit, 0-3.3V analogue input on board. Two of these channels may also be 12-bit, 0-3.3V analogue outputs.
Full support is provided in Venom for the on-board analogue
I/O and for devices linked to VM2 via the buses.
Typical code would be
Make my_input ($30) ;Declare analogue input on channel $30
my_reading := my_input. ;Read the input into a variable
External Analogue DevicesAdditional Analogue inputs and outputs may be added to the VM2 using the I2C Bus, the SPI Bus, or by other means.
Analogue ICs currently supported are
- AD7998: 12-bit 0-5V analogue, 8 channel input
- MAX1236 and MAX1238: 12-bit 0-5V analogue, 4/12 channel input
Top Audio OutputThe VM2 controller can play WAV files stored in its Flash Filing System. You will need to connect an audio amplifier and loudspeaker.
WAV file formats currently supported are
- Mono, 8-bit, 11KHz PCM.
Audio files are easily converted between different formats.
Parallel BusA synthetic parallel bus (8 or 16 data bits, 1 address bit, 3 control signals) is brought out to a connector. It allows Graphic or Character LCDs to be attached to the VM2. Because it runs at a relatively low speed and duty cycle it has very low EMI emissions.
Serial BusesVM2 may also be networked using industry-standard serial buses.
Top CAN BusCAN (Controller Area Network) is a communication protocol used widely in vehicles, process control and other areas of industry. It is fault tolerant and deterministic which is why it is used widely for safety-critical systems.
The VM2 can connect to a CAN Bus with the addition of a small, simple and inexpensive CAN bus driver IC.
Tests have shown that the VM2 can concurrently send and receive up to 15,000 CAN messages per second. Processing of received messages will reduce this throughput, depending on the level of processing required.
Top Custom DesignsAs well as our standard controllers and application boards, we can design and build custom application boards and other electronic products.
See Custom Build for more details.
Top Digital I/OThe VM2 controller has 65+ channels of digital I/O on board. All of them can be pulled to either supply rail under software control.
Additional Digital inputs and outputs may be added
to the basic VM2 using the versatile PCF8574 IC on the
I2C Buses. You can fit up
to 16 of these ICs to each bus, yielding nearly
300 Digital I/O in total. Full support is
provided in Venom for
all these Digital I/O, for example
Make heater ($11,1) ;Heater control: channel $11, an output.
Heater. ;Turn it on
Heater. ;Turn if off again
See the Venom
for more details.
Top EmailThe VM2 has direct support for both sending and receiving email. With the minimum of code, a remote VM2 system with a link to the Internet can receive instructions and send back logs and reports with no need for any proprietary software at the local end. Email is an application of TCP/IP which is also supported directly for other purposes.
Ethernet HardwareAn SPI-based Ethernet controller and an Ethernet connector are included on Application Board 2. These may also be designed into your own application board; schematics are available.
Ethernet Software SupportVenom2 has support for an ethernet controller connected to the SPI bus as described above. The Ethernet object is fully integrated into the TCP/IP stack. DHCP is supported, allowing network configuration to be completely automatic on most networks.
Top Battery PowerThe VM2 is ideal for battery-powered applications. It consumes far less current than PC-based controllers and there are automatic power saving features built into the Venom language. Whenever your code is waiting for an event or for a period of time, the CPU is put to sleep, waking up the instant it is required again.
Typical Power consumptionWhen it is not doing heavy processing the VM2 will typically take 19mA. Even lower current consumption may be achieved by setting a slower clock speed (under software control). At 16MHz (~1/4 speed) the controller will idle at 6mA.
For many applications, these are the actual average power figures.
Ultra Low Power SleepFor still lower power consumption the CPU may be put into an ultra low current mode, waking up periodically (or on an event) to see if it should do anything. In this 'Stop Mode' it consumes around 55uA.
(It is possible for the VM2L, or similar hardware configurations, to sleep with even lower power - around 4uA. The I/O configuration and contents of RAM are not retained during this state.)
In order to achieve these ultra low power figures it is necessary to ensure that all the inputs to the VM2 are at defined logic states.
Top Data LoggingThe VM2 is ideal for Data Logging applications: file systems using internal non-volatile RAM or Flash memories, or external memory cards, are built into the Venom language, there is high-level control over many Analogue and Digital I/O, and VM2 has very low power consumption figures.
Top Dates and TimesVenom provides sophisticated tools for using real dates and times in your applications. Firstly, there is the built-in Real Time Clock Calendar, which is backed up by the VM2's battery when there is no power.
Secondly the DateTime object is a powerful date/time
calculator that can process dates nearly 100 years into
the future. For example it can tell you what day of the
week it is on 15 January 2057:
Make dt ;Create a DateTime object
dt. := 2057 ;Set its year
dt. := 1 ;Set its month
dt. := 15 ;Set its day
Print dt. ;Print its day of the week
(The answer '1' means it's a Monday).
See the Venom Manuals for more details.
Top Development ToolsFor hardware development we offer starter kits for the VM2 embedded controller.
All our controllers are supplied with the Venom programming language built in. We are continually adding new features and abilities to Venom; the latest version is always available to download from our website.
The Integrated Development Environment - VenomIDE - is also available as a free download.
We provide full documentation which includes
- Venom Tutorial (in Windows Help File & PDF formats)
- Venom Help File (A language reference in Windows Help File & PDF formats)
- Downloadable code snippets and libaries
- Application Notes
Free, lifetime technical support is available direct from the engineers, for all our products.
Graphic displaysVenom has full software support for a variety of colour and monochrome displays, including
- A GUI Library of graphical 'controls' such as CheckBox, RadioButton, etc.
- Multiple Fonts, including conversions from TrueType
- Bitmap images
- Touchscreen driver
Character displaysVenom has full support for any character LCD based on the Hitachi HD44780 or equivalent.
High-level features allow you to print directly to
the display without having to write any low-level code
at all. For example, this is some typical code to
initialise an LCD and put some text on it:
Make lcd (20, 2) ;20 character, 2 line display
Print To lcd, "Hello world" ;Write some text to it
See the Venom
for more details.
You can also connect multiple character LCDs (up to 16) to the VM2 via PCF8574 ICs on the I2C Buses.
Top EEPROMSEEPROMs are useful for storing variable but non-volatile information in your application, for example calibration data or identification codes.
There is high-level support for storing data in EEPROM devices such as the 24C02 and others: the SafeData object in Venom allows you to store both integer and floating-point values in an EEPROM, and to form a checksum of the data for validation.
See the Venom Manuals for more details.
Top File SystemVenom supports file systems in four different media:
- USB External Drive (up to 2TB)
- SD/SDHC memory card (up to 32GB)
- Flash File System (7MB)
- RAM DISK (up to ~0.9Mb)
Both data and text files are supported with many useful options.
The file systems are Windows compatible so files may be transferred easily. The VM2 can emulate a USB Flash Drive allowing access to its internal Flash Filing System from a PC.
See here for circuit schematics of SD/SDHC and external USB drive interfaces.
Top Firmware UpdateA VM2 can be re-programed by sending it a Venom Firmware Update file (*.vfu). This may be sent by FTP, or copied from an SD card or USB memory stick, etc.
Top FlashThe standard VM2 is supplied with two on-board flash memories. The first (512KB) is built in the the microcontroller IC, and the second (8MB) is a stand-alone memory IC.
The smaller flash is very fast and is used to hold the Venom language and operating system.
The larger flash is used to hold your application code, and also may hold a flash file system if you need one.
Your application code is developed in non-volatile RAM - but when you have finalised your code, you should 'burn' it into the flash so it is secure from accidental loss.
Of course you can re-program either of the flash memories, either to change your application, or to update Venom from our website, free of charge.
Top Floating PointVenom supports the IEEE single precision floating point variables and calculations. This gives around seven digits of precision. Most of the commonly used functions are provided:
- The four arithmetic operators (+ - *)
- EXP, LOG
- Power (^)
- Square root
- Trig functions
Top GPRSGPRS is the standard mobile data transfer protocol. It will allow you to gain access to the Internet via a mobile phone network. GPRS modems are available from various manufacturers and we support Internet Protocols through them.
Top GPSGlobal Positioning System
Top GSMGSM is the mobile phone communication standard. GSM modems are easy to interface to - just connect a serial port to the serial connector on the modem.
GSM Text (SMS) messaging is supported. The VM2 can send and receive text and binary short messages over the GSM mobile network.
Top High Level ProgrammingThe VM2 controller is programmed using Venom: the full-featured, high-level programming language designed for writing control applications. We have many testimonials that Venom is very easy to learn, as well as reports of fast, painless development from our customers. More...
Free software development toolsVenom is free for you to download for use in our controller products.
Free upgradesVenom is being continually developed. New features are being added all the time. If you buy just one of our controllers you are entitled to free upgrades to Venom forever. You can email us to ask for the latest version of Venom, or download the version posted on our website.
If you would like to license Venom for use on other platforms please contact sales.
Top I2C BusThe I2C bus is a two-wire network which can control many devices. On the VM2, there are two I2C buses with full hardware support, each of which can link to the following functions.
- 128 digital I/O channels
- Many analogue input and output channels at resolutions from 8- to 18-bit
- EEPROM non-volatile storage
- Alphanumeric LCDs and keypads based on I2C Digital I/O channels
These are not part of the basic VM2 hardware but available as expansion options and supported by the software.
The Venom language also provides simple access directly to the I2C bus so any I2C device may be controlled.
Schematics for various I2C circuits are available.
I/O Ports on I2C
For interfacing to 0-3.3V signals inside an equipment housing use our Digital and Analogue I/O Ports.
All of these cards are connected to the VM2 via one of its I2C buses. The VM2 provides full software support.
Top Industrial I/OWe have a range of products for interfacing with industrial signal levels. These include relays, power MOSFETs and optically isolated digital inputs. They plug in to the I2C connectors on our application boards and have full support in the Venom Language.
Top KeypadVenom has high-level support for matrix keypads using the excellent PCF8574 IC on the I2C bus. Keypads are configurable as 4 x 4, 8 x 8 and 4 x 12 matrices. Software support extends to reading individual key states as well as keyboard-style buffering of key presses.
Complementing the Keypad driver is an object called NumberReader. This uses the keypad for calculator-style number entry.
Top Memory CardsSD and SDHC cards can be used to store data in files in industry standard file system formats. A memory card interface using an SPI connection is included in Application Board 2, or may be built into a custom design.
Also see File Systems.
Top MODBUSMODBUS ASCII programming is straightforward in the Venom Language, using a serial port, the built-in protocol analyser object and PRINT statements for output.
MODBUS/TCP uses the built in TCP/IP support and turning a VM2 into a MODBUS/TCP device is further simplified with a Venom skeleton program available under "Application Notes and Code Examples" on our Software Information page. All you have to do is edit configuration settings and add your application specific functions to map MODBUS inputs and outputs to the VM2's ports and devices.
Top ModemsIt's easy to connect a MODEM to the VM2. VM2 has five serial ports, any of which may be used for this purpose. You may need to provide RS232 level shifter circuits if you are not using an application board.
Top MotorsVenom can control both DC motors and stepper motors via one of its objects: PulseWidthOut. PulseWidthOut can generate pulse trains of varying mark/space ratio and frequency. It can also generate pulse trains of a pre-determined number of pulses.
To drive DC motors, feed the pulse train into a bridge amplifier, or just a transistor (bipolar or MOSFET) to produce a variable power drive.
To drive stepper motors, feed the pulse train into a stepper motor drive module. This energises each phase of the motor in turn for each pulse received.
PulseWidthOut is available on 8 of the VM2's channels.
See the Venom Manuals for more details.
Top MultitaskingVenom has multi-tasking built into the language, not added on as an afterthought. Thus a new task may be created with just one keyword:
Start [some_code] ; Start a bit of code as a taskResource locking is also built in. In many applications all the locking will be handled by the default mechanisms.
Task swaps take place automatically every 1mS. This is fast enough for most applications. Events that need handling faster than this are generally taken care of by interrupts.
The task-swap mechanism is a 'preemptive round robin' at the application programmer's level, though it is implemented as a cooperative system at the low level. Consequently the application programmer need not pay much attention to the task manager: it just works.
See the Venom Venom Tutorial for more details.
Top NetworkingThe Venom language has a suite of TCP/IP networking protocols built in. These will connect via Ethernet, GPRS, GSM or a dial-up modem link.
Software drivers for other industrial networks are built in:
Top Non-Volatile MemoryThe VM2's RAM is powered by an optional Lithium battery when the main power is off. Thus it is possible to store information in RAM files and other data structures. Non-volatile storage is also available in memory cards, EEPROMs and other devices that you can attach to the VM2.
Top Portable and Handheld ApplicationsThe VM2 is an ideal controller for handheld applications because of its small size, low power consumption and excellent user-interface capabilities (LCDs, keypads).
Top Pulse & Frequency I/OVenom has several objects dedicated to pulse I/O on the VM2. These are
- PulseWidthOut - for generating pulse trains of varying mark-space ratio and frequency. Also generates fixed-length pulse trains (8 channels)
- PulseWidthIn - for measuring pulsewidths (5 channels)
- PulseCounter - for counting pulses (5 channels)
- Shaft - for directional counting of quadrature shaft-encoder edges (3 encoders)
Top Serial CommunicationsThe VM2 has five serial communication channels that can operate at standard rates up to 4.5M baud.
Features include optional hardware and software handshaking, input and output buffers, selection of data format.
The serial outputs and inputs are at logic levels at the VM2 and require level shifters to interface to RS232 or RS485 networks.
Level shifters are included in our application boards. Circuit schematics are also available.
Top Single Board Computer or Industrial PC?The VM2 is an Embedded Controller, also known as a Single Board Computer, and similar to an Industrial PC.
Micro-Robotics' Embedded Controllers have several advantages over Industrial PCs in many applications:
- They are designed from the bottom up for control applications rather than inheriting desktop machine's physical architecture and operating systems
- They start up much faster - The VM2 is running your code less than 250 milli seconds after power on
- They consume a lot less power than Industrial PCs - often less than 10% - making them suitable for battery powered and handheld applications
- They have better EMC performance: less emitted EM noise, less suscepability to EM noise
- They are often smaller
- They cost less
Top SMBusSMBus is essentially the same as the I2C bus and products designed for SMBus are generally compatible with the VM2's implementation of I2C.
There are resources on the Internet that document the differences between the two busses, for example this app note from Maxim/Dallas .
Top SPI BusThe VM2 supports the industry standard SPI bus, which can be used to control a wide range of devices including
- 12-bit analogue input and output
- 16-bit analogue input and output
- SD/SDHC Memory cards, with some external circuitry
- External USB disk drives, with some external circuitry
Top TCP/IPThe VM2 supports TCP/IP and many associated networking protocols. These are either supported explicitly by Venom objects or used internally:
UDPUser Datagram Protocol: a datagram service for times where the overheads of repeatedly opening and closing a TCP connection would be excessive, such as:
- Rapid real time updates of continuously varying data
- Simple query/reply services such as DNS and time/date
- Individual control events such as switching a remote device on and off
- Applications that require broadcasting a message simultaneously to every node on a LAN
DNSOur automatic cached DNS converts domain names to IP addresses and saves time by remembering recent lookups
NTP (Time)"Network Tme Protocol" - The VM2 has a simple NTP client which gets accurate time and date information from time servers on the Internet, independently of the VM2's hardware real time clock. This is used e.g. for date-stamping outgoing email (see below)
SMTPSimple Mail Transfer Protocol for sending email: our SMTP client enables your Venom program to send email messages anywhere in the world.
POP3Post Office Protocol version 3: collects mail from an ISP's mailbox so that you can send an email message to the VM2. Typical uses might be to send coded commands, or to request data to be sent back by reply email.
HTTPThe HTTP Protocol object enables the VM2 to run a web server so that a system can be remotely monitored and controlled with any commonly available web browser. See our live VM2 web server.
FTPThe VM2 supports File Transfer Protocol as either client or server.
Top Temperature MeasurementYou can measure temperature on the VM2 in several ways, including the following:
- Thermistors: you can use a VM2 analogue input, a bias resistor and a linearising function
- PT100 sensors: you can make or buy a circuit to read the resistance of a PT100 sensor, and use this linearising function
- Thermocouples: use a 24-bit ADC (e.g. LTC2485) on the I2C bus to digitise thermocouples directly. You will need careful thermal design of the thermocouple connections and be able to measure the temperature of the 'cold' junction (e.g. with a thermistor).
- Use several DS1624, or similar, on the I2C bus
Top TimingVenom has timing primitives built into the language. Keywords such as WAIT will cause processing to halt for a given number of milliseconds. The EVERY keyword will repeat some code at a constant rate.
Every 1000 ;Repeat once per second [ heater. Wait 200 ;Wait for 1/5 of a second heater. ]Also there are objects such as Stopwatch and Timer that allow even more versatile millisecond timing, for example:
Make t (10000) ;A timer for 10 seconds t. ;Start it counting down Await t. ;Wait until it's finishedVenom also has full support for real-time date and time calculations.
See the Manuals for more details.
Top Touch ScreenA touch screen is a flat panel attached to the front of a graphics display that is used to detect the position of a finger or stylus.
Venom's TouchScreen object drives resistive touchscreens via a TSC2003 IC on the I2C Bus. As well as detecting where a touch to the screen occurs (calibrated to LCD coordinates) it allows you to define 'active' areas that respond when touched.
Top USB DeviceWith the addition of a few simple components the VM2 turns into a USB Flash Drive, allowing you to access its internal Flash File System from Windows or other hosts.
(This feature also allows you to production-program your VM2s with their final application code and data over a USB connection. See remote firmware update)