ZBasic and ZX microcontrollers.
Powerful microcontrollers for engineers, scientists, experimenters and hobbyists.

Microcontrollers for Embedded Systems

Microcontrollers for Embedded Systems

What's a Microcontroller?

A microcontroller is a programmable device that can read inputs from external devices, analyze the input, and then output control signals to external devices. What kinds of devices? There is a whole range of both analog and digital devices that serve a wide variety of purposes. Simple devices like pushbuttons, switches, keypads, temperature and humidity sensors, lights, buzzers, speakers, LCD displays, servo motors and stepper motors. More complex devices include motion sensors, accelerometers, infrared and sonar rangefinders, electronic compasses, and GPS units. Microcontrollers can even send data to and receive data from other systems like your personal computer, home automation systems, lighting and environment controllers, industrial control systems, laboratory control systems, etc.

A microcontroller can communicate with other devices and systems (including other microcontrollers) using a wide variety of interfaces: standard serial line, USB, wireless (infrared, radio, satellite, etc.), even the Internet (wired and WiFi).

So what can you do with a microcontroller? The possibilities are limited only by your imagination. Microcontrollers are used by scientists, engineers, experimenters and hobbyists alike to build things for work and play. More and more, everyday items all around us have microcontrollers inside them - from your coffee pot and microwave oven to your TV, DVD/VCR, stereo, cell phone and other wireless devices. Even your car has microcontrollers in it if it is relatively new. The newest passenger jets have literally hundreds of microcontrollers in them. These are all examples of microcontrollers employed in embedded systems. For more in-depth discussion, see the Wikipedia articles on microcontrollers and embedded systems.

ZX Microcontrollers for Your Embedded Application

The ZX microcontroller family provides a good mix of features and performance all at a favorable price. The devices in the ZX-24 series are 24-pin modules that are pin-compatible with the venerable BASIC Stamp microcontroller from Parallax, Inc. However, they far exceed the Stamp's program and data capacity and it is much faster to boot. On top of that, the ZX-24 series devices offer advanced features not available on the Stamp like multi-tasking, multiple simultaneous full duplex buffered serial channels, built-in floating point math, and more. If you got started in microcontrollers using the Basic Stamp it's likely that you're well aware of its limitations and are ready to move up to a more capable platform for your next project.

The ZX-24 series devices are also pin-compatible with the BX-24 microcontroller from NetMedia, Inc. However, the ZX-24 microcontrollers are more than twice as fast and have over four times the user RAM space as the BX-24. This impressive increase in capacity and performance is attained while achieving a very high level of software compatibility with the BX-24 (at the source code level). Although the ZX-24 devices have the at least as much space available for user programs as the BX-24, it uses the space much more efficiently allowing you to write more complex programs. It's not unusual to see a program compiled for the ZX-24a be 60% to 75% the size as when compiled for the BX-24.

For applications where you need more I/O lines, more program space, more design flexibility or lower cost, we offer the ZX-40 and ZX-44 series devices. The ZX-40 devices are 40-pin DIP packages that are compatible with most prototyping boards while the ZX-44 devices come in a space-saving 44-pin TQFP (surface mount) package. For both of these devices, you need to add a few external components (e.g. crystal, memory, and serial interface circuitry)for which we provide suggested circuits. The ZX-40 and ZX-44 series devices are software compatible with the ZX-24 series (excepting differing pin assignments) providing a convenient upgrade path.

For more demanding applications, we offer the ZX-1280 and the ZX-1281. Based on Atmel's advanced ATmega1280 and ATmega1281 chips, respectively, these powerful microcontrollers are suited for applications that require more resources such as additional RAM, more I/O lines, more PWM channels and more hardware serial channels. These ZX family members are source-code compatible (with the minor exeception of some differences in internal register names) with the other ZX family members thus providing an easy upgrade path as your application grows.

All members of the ZX family described so far are field upgradable. This means that when a new version of the system code becomes available you can upgrade your ZX microcontroller in a matter of minutes and begin using the new features.

The newest members of the ZX family are the "native mode" devices. In contrast to the previously described models that use the "virtual machine" (or VM) model, the ZBasic compiler produces native object code for the native mode ZX devices. In addition to executing your application significantly faster, the native mode devices offer more flexibility for advanced users, for example, to create interrupt handler routines, to use inline C or assembly code, or to link with externally generated object modules or object libraries. Due to the high degree of source code compatibility between the VM models and the native mode models, the ZX-24n, ZX-40n and ZX-44n provide an excellent upgrade path as your application and programming skills become more sophisticated.

ZBasic - A Powerful Language for Microcontroller Programming

The ZX microcontrollers are programmed using ZBasic. This language is an easy-to-learn, yet powerful, variant of the popular Basic language. Perhaps more importantly, ZBasic is a subset of Microsoft's widely used Visual Basic 6 but it has powerful extensions appropriate to microcontroller programming. ZBasic is similar to NetMedia's BasicX language offering modern control structures and parameterized subroutines/functions but ZBasic has many advanced features that make it easier and faster to create your programs. ZBasic also supports object-oriented programming with an optional object model and the latest release supports compiling an application for generic target devices (a special license is required).

The richness of ZBasic is a stark contrast to PBasic, the language used to program the Basic Stamp, which is an archaic form of Basic (circa 1970) that lacks the modern concepts of parameterized calls and local variables that help you write correct code more quickly and make it easier to modify and maintain your programs. If you already know PBasic or have an application written in PBasic that you would like to convert to ZBasic, the PBasic Conversion Guide may be useful.

ZBasic Integrated Development Environment (IDE)

You can write your ZBasic code using any editor that is capable of manipulating plain-text files. However, the ZBasic IDE offers many advanced code editing features that simplify and expedite your programming. It also offers special project-oriented capabilities that facilitate working with your ZBasic projects - you can edit, compile, download and debug all from one convenient application.

Want More Details?

Use these links to learn more about the ZBasic language and the ZBasic IDE. For more information on the individual ZX devices, use the links in the table below. The ZX devices shown in red type are discontinued but are still supported. The ZX devices shown with light blue background were produced by Oak Micros under a license from Elba Corp. but, while still supported, they are no longer available.
The ZX Family of Microcontrollers
Configuration VM Devices Native Mode Devices
24-pin, 600 mil DIL package
ZX-24 ZX-24a ZX-24p ZX-24r
ZX-24n ZX-24s ZX-24t ZX-24x ZX-24u
28-pin, 300 mil DIP package  
ZX-328n ZX-328l
32-pin TQFP package  
ZX-32n ZX-32l
40-pin, 600 mil DIP package
ZX-40 ZX-40a ZX-40p ZX-40r
ZX-40n ZX-40s ZX-40t
44-pin TQFP package
ZX-44 ZX-44a ZX-44p ZX-44r
ZX-44n ZX-44s ZX-44t ZX-32a4 ZX-128a4U
64-pin TQFP package ZX-1281 ZX-1281n
100-pin TQFP package ZX-1280
ZX-1280n ZX-128a1
28-pin, 600 mil DIL package   ZX-328u
40-pin, 600 mil DIL package
ZX-24e ZX-24ae ZX-24pe ZX-24pu ZX-24ru
ZX-24ne ZX-24nu ZX-24su ZX-24xu
40-pin, 800 mil DIL package
ZX-128e ZX-1281e
ZX-128ne ZX-1281ne

ZX Family Diagram

ZX Device Parameters: web page  Excel Spreadsheet

Note: PBasic is a trademark and Basic Stamp is a registered trademark of Parallax, Inc. BasicX and BX-24 are trademarks of Netmedia, Inc. Other brand and product names are trademarks or registered trademarks of their respective owners.

What's New

11 Sep 2015
Compiler Update v4.3.10
supports ESP8266

09 Feb 2013
AN224 - Using Arduino Ethernet Classes in ZBasic

30 Jan 2013
AN103 - Preparing ZBasic Generic Target Devices

28 Jan 2013
AN223 - Using Arduino Code in ZBasic Applications

Site Map

Free Downloads
Application Notes
ZBasic Language
ZBasic IDE
Press Information
ZBasic Forum
ZBasic Language Reference Manual
ZBasic System Library Reference Manual


Hardware-> (47)
Software-> (1)

Latest ZBasic Forum Topics

ESP8266 as simple WiFi-Serial adapter
ZBasic & ZX-24 Longevity/Popularity
Simple Universal ZBASIC programming and prototyping device
Compiling for Arduino 328 target
ReadPin() return value
RPM simulator
zx-328n start up
Arduino Mega2560 board => ZBasic
Generic UART not working above 57600
8channel ADC on 328P
Copyright © 2005-2018 Elba Corp. All rights reserved.