New STM32L4 Microcontrollers with On-Chip Digital Filter

STMicroelectronics’s ultra-low-power STM32L45x microcontrollers (STM32L451, STM32L452, and STM32L462 lines) are supported by a development ecosystem based on the STM32Cube platform. The new microcontroller lines offer a variety of features and benefits:

  • Integrated Digital Filter for Sigma-Delta Modulators (DFSDM) enables advanced audio capabilities (e.g., noise cancellation or sound localization).
  • Up to 512 Kbyte on-chip Flash and 160 Kbyte SRAM provide generous code and data storage.
  • A True Random-Number Generator (TRNG) streamlines development of security-conscious applications
  • Smart analog peripherals include a 12-bit 5-Msps ADC, internal voltage reference, and ultra-low-power comparators.
  • Multiple timers, a motor-control channel, a temperature sensor, and a capacitive-sensing interface
  • Deliver high core performance and exceptional ultra-low-power efficiency.
  • A 36-µA/MHz Active mode current enables a longer runtime on small batteries STMicro STM32L4

The development ecosystem includes the STM32CubeMX initialization-code generator and STM32CubeL4 package comprising:

  • Middleware components
  • Nucleo-64 Board-Support Package (BSP)
  • Hardware Abstraction Layer (HAL),
  • Low-Layer APIs (LLAPIs)

The STM32CubeMX has a power-estimation wizard, as well as other wizards for managing clock signals and pin assignments. The affordable Nucleo-64 board, NUCLEO-L452RE, enables you to test ideas and build prototypes. It integrates the ST-LINK/V2 probe-free debugger/programmer and you can expand it via Arduino-compatible headers.

The devices are currently available in small form-factor packages from QFN-48 to LQFP-100, including a 3.36 mm × 3.66 mm WLCSP. Prices start from $2.77 in 1,000-piece quantities for the STM32L451CCU6 with 256-KB flash memory and 160-KB SRAM in QFN-48. The development boards start at $14 for the legacy-compatible Nucleo-64 board (NUCLEO-L452RE). The NUCLEO-L452RE-P board with external DC/DC converter will be available to distributors in June 2017.

Source: STMicroelectronics

Next-Generation 8-bit tinyAVR Microcontrollers

Microchip Technology recently launched a new generation of 8-bit tinyAVR microcontrollers. The four new devices range from 14 to 24 pins and 4 KB to 8 KB of flash memory. Furthermore, they are the first tinyAVR microcontrollers to feature Core Independent Peripherals (CIPs). The new devices will be supported by Atmel START, an innovative online tool for intuitive, graphical configuration of embedded software projects.Microchip 8bittinyAVR

The new ATtiny817/816/814/417 devices provide features to help drive product innovation including small, low pin count and feature-rich packaging in 4 or 8 KB of flash memory. Other integrated features include:

  • A CIP called Peripheral Touch Controller (PTC)
  • Event System for peripheral co-operation
  • Custom programmable logic blocks
  • Self-programming for firmware upgrades
  • Nonvolatile data storage
  • 20-MHz internal oscillator
  • High-speed serial communication with USART
  • Operating voltages ranging from 1.8 to 5.5 V
  • 10-bit ADC with internal voltage references
  • Sleep currents at less than 100 nA in power down mode with SRAM retention

CIPs allow the peripherals to operate independently of the core, including serial communication and analog peripherals. Together with the Event System, that allows peripherals to communicate without using the CPU and applications can be optimized at a system level. This lowers power consumption and increases throughput and system reliability.

Accompanying the release of the four new devices, Microchip is adding support for the new AVR family in Atmel START, the online tool to configure software components and tailor embedded applications. This tool is free of charge and offers an optimized framework that allows the user to focus on adding differentiating features to their application.

To help accelerate evaluation and development, a new Xplained Mini Kit is now available for $8.88 USD. The Xplained Mini Kit is also compatible with the Arduino kit ecosystem. The kit can be used for standalone development and is fully supported by the Atmel START and Atmel Studio 7 software development tools.

The new generation of 8-bit tinyAVR MCUs is now available in QFN and SOIC packaging. Devices are available in 4 KB and 8 KB Flash variants, with volume pricing starting at $0.43 for 10,000-unit quantities.

Source: Microchip Technology

Flowcode 7 (Part 2): Displays in Flowcode (Sponsor: Matrix)

In the first part of this series, you were introduced to Flowcode 7, a flowchart-driven electronic IDE that enables you to produce hex code for more than 1,300 different microcontrollers, including PIC8, PIC16, PIC32, AVR, Arduino, and ARM. In the second free article in this series, embedded engineer Ben Rowland gets you working with displays in Flowcode. He covers: communicating with displays, code and display porting, a bitmap drawer component, and more.

A maze generation algorithm being tested using a graphical LCD and the Flowcode simulation.

A maze generation algorithm being tested using a graphical LCD and the Flowcode simulation.

Want a Free Trial and/or Buy Flowcode 7? Download Now

Flowcode is an IDE for electronic and electromechanical system development. Pro engineers, electronics enthusiasts, and academics can use Flowcode to develop systems for control and measurement based on microcontrollers or on rugged industrial interfaces using Windows-compatible personal computers. Visit to learn about Flowcode 7. You can access a free version, or you can purchase advanced features and professional Flowcode licenses through the modular licensing system. If you make a purchase through that page, Circuit Cellar will receive a commission.

Click to download the article

Flowcode 7 (Part 1): Simplifying Microcontroller Programming (Sponsor: Matrix)

These days the most commonly used device in electronic systems is the microcontroller: it is hard to find a piece of electronics without one, and you use thousands of them a day. In this free article, John Dobson, managing director at Matrix TSL, introduces Flowcode 7 and explains how you can use it for your next microcontroller-based design.

Want a Free Trial and/or Buy Flowcode 7? Download Now

Flowcode is an IDE for electronic and electromechanical system development. Pro engineers, electronics enthusiasts, and academics can use Flowcode to develop systems for control and measurement based on microcontrollers or on rugged industrial interfaces using Windows-compatible personal computers. Visit to learn about Flowcode 7. You can access a free version, or you can purchase advanced features and professional Flowcode licenses through the modular licensing system. If you make a purchase through that page, Circuit Cellar will receive a commission.

Click to download the article

Click to download the article

Renesas Electronics Europe and SEGGER Accelerate RX Ecosystem Expansion

Renesas Electronics Europe and SEGGER recently announced their collaboration to facilitate the expansion of Renesas’s RX Family of 32-bit microcontroller ecosystem through the adoption of SEGGER’s newly-released SystemView software. SystemView supports streaming over J-Link, as well as real-time analysis and visualization, in relation to any Renesas RX-based embedded design.Segger RS

SystemView gives you insight into the behavior of a program. It offers cycle accurate tracing of interrupts and task start/stop in addition to task activation and API calls when an RTOS is used. It visualizes and analyzes CPU load by task, interrupts, and software timers. Using SEGGER’s J-Link debug probe with SystemView enables real-time analysis, which gives you an in-depth understanding of the application’s run-time behavior.

SystemView uses SEGGER’s Real-Time Transfer (RTT) technology to ensure real-time delivery of data and minimal intrusiveness on the system. RTT enables up to 2 MB per second data transfer for continuous acquisition of real-time data, requiring no hardware other than a J-Link and the standard debug interface. SystemView records the data retrieved from the target and visualizes the results in different ways. You can save data recordings for later documentation and analysis.

SystemView works seamlessly with SEGGER’s RTOS embOS, which includes all the necessary recording capabilities. SystemView doesn’t require any OS involvement.

Source: SEGGER

Cryptography-Enabled 32-bit Microcontroller for IoT Designs

Microchip Technology’s CEC1302 hardware crypto-enabled 32-bit microcontroller enables you to easily add security to Internet of Things (IoT) devices. Enabling pre-boot authentication of system firmware, the microcontroller prevents a variety of security attacks (e.g., man-in-the-middle, denial-of-service, and backdoor). You can also use it to authenticate firmware updates.Microchip CEC1302

The CEC1302’s features, benefits, and specs:

  • Private key and customer programming flexibility
  • Power drain savings and improved execution of application performance
  • 32-bit microcontroller with an ARM Cortex-M4 core
  • The hardware-enabled public key engine of the device is 20 to 50 times faster than firmware-enabled algorithms

In order to quickly develop applications with the CEC1302, use MikroElektronika’s CEC1302 Clicker (MIKROE-1970) and CEC1302 Clicker 2 (MIKROE-1969). You can use the boards with MikroElektronika’s complete development toolchain for Microchip CEC1302 ARM Cortex-M4 MCUs.

The CEC1302 (CEC1302D-SZ-C0) is available today for sampling and volume production in a 144-WFBGA package starting at $1.75 each in 10,000-unit quantities.

Source: Microchip Technology

Execute Open-Source Arduino Code in a PIC Microcontroller Using the MPLAB IDE

The Arduino single-board computer is a de facto standard tool for developing microcomputer applications within the hobbyist and educational communities. It provides an open-source hardware (OSH) environment based on a simple microcontroller board, as well as an open-source (OS) development environment for writing software for the board.

Here’s an approach that enables Arduino code to be configured for execution with the Microchip Technology PIC32MX250F128B small-outline 32-bit microcontroller. It uses the Microchip Technology MPLAB X IDE and MPLAB XC32 C Compiler and the Microchip Technology Microstick II programmer/debugger.

Subscribe to Circuit Cellar magazine! Get 12 months of electrical engineering project articles, embedded design tutorials, embedded programming tips, and much more. We cover micrcontrollers, robotics, embedded Linux, IoT projects, and more!

Your own reasons for using this approach will depend on your personal needs and background. Perhaps as a long-term Arduino user, you want to explore a new processor performance option with your existing Arduino code base. Or, you want to take advantage of or gain experience with the Microchip advanced IDE development tools and debug with your existing Arduino code. All of these goals are easily achieved using the approach and the beta library covered in this article.

Several fundamental open-source Arduino code examples are described using the beta core library of Arduino functions I developed. The beta version is available, for evaluation purposes only, as a free download from the “Arduino Library Code for PIC32” link on my KibaCorp company website, From there, you can also download a short description of the Microstick II hardware configuration used for the library.

To illustrate the capabilities in their simplest form, here is a simple Blink LED example from my book Beginner’s Guide to Programming the PIC32. The example shows how this custom library makes it easy to convert Arduino code to a PIC32 binary file.

The Arduino code example is as follows: Wire an LED through a 1-K resistor to pin 13 (D7) of the Arduino. An output pin is configured to drive an LED using pinMode () function under setup (). Then under loop () this output is set high and then low using digitalWrite () and delay () functions to blink the LED. The community open-source Arduino code is:

The open-source example uses D13 or physical pin 13 on the Arduino. In relation to the PIC32MX, the D13 is physical pin 25. Pin 25 will be used in prototyping wiring.

Now, let’s review and understand the PIC32 project template and its associated “wrapping functions.”  The Arduino uses two principal functions: setup () to initialize the system and loop () to run a continuous execution loop. There is no Main function. Using the Microchip Technololgy XC32 C compiler, we are constrained to having a Main function. The Arduino setup () and loop () functions can be accommodated, but only as part of an overall template Main “wrapping” function. So within our PIC32 template, we accommodate this as follows:

Listing 2

This piece of code is a small but essential part of the template. Note that in this critical wrapping function, setup () is called once as in Arduino and loop () is configured to be called continuously (simulating the loop () function in Arduino) through the use of a while loop in Main.

The second critical wrapping function for our template is the use of C header files at the beginning of the code. The XC32 C compiler uses the C compiler directive #include reference files within the Main code. Arduino uses import, which is a similar construct that is used in higher-level languages such as Java and Python, which cannot be used by the MPLAB XC32 C.

The two include files necessary for our first example are as follows:

Listing 3

System.h references all the critical Microchip library functions supporting the PIC32MX250F128B. The Ardunio.h provides the Arduino specific library function set. Given these two key “wrapper” aspects, where does the Arduino code go? This is best illustrated with a side-by-side comparison between Arduino code and its Microchip equivalent. The Arduino code is essentially positioned between the wrapper codes as part of the Main function.

Blink side-by-side comparison

Blink side-by-side comparison

This approach enables Arduino code to execute on a Microchip PIC32 within an MPLAB X environment. Note that the Arduino code void setup () now appears as void setup (void), and void loop () appears as void loop (void). This is a minor inconvenience but again necessary for our C environment syntax for C prototype function definitions. Once the code is successfully compiled, the environment enables you to have access to the entire built-in tool suite of the MPLAB X and its debugger tool suite.

Configure the Microstick II prototype as in the following schematic. Both the schematic and prototype are shown below:

Exercise 1 schematic

Exercise 1 schematic

Exercise 1 prototype

Exercise 1 prototype

Table 1 compares Arduino core functionality to what is contained in the Microchip PIC32 expanded beta library. In the beta version, I added additional C header files to accomplish the necessary library functionality. Table 2 compares variable types between Arduino and PIC32 variable types. Both Table 1 and Table 2 show the current beta version has a high degree of Arduino core library functionality. Current limitations are the use of only one serial port, interrupt with INT0 only, and no stream capability. In addition, with C the “!” operator is used for conditional test only and not as a complement function, as in Arduino. To use the complement function in C, the “~” operator is used. The library is easily adapted to other PIC32 devices or board types.

Table 1

Table 1: Arduino vs Microchip Technology PIC32 core library function comparison

Talble 2

Table 2: Arduino vs Microchip Technology PIC32 core library variable types

If you use interrupts, you must identify to C the name of your interrupt service routine as used in your Arduino script. See below:

Interrupt support

Interrupt support

For more information on the beta release or to send comments and constructive criticism, or to report any detected problems, please contact me here.

Four test case examples demonstrating additional core library functions are shown below as illustrations.

Serial communications

Serial communications

Serial find string test case

Serial find string test case

Serial parse INT

Serial parse INT



Editor’s Note: Portions of this post first appeared in Tom Kibalo’s book Beginner’s Guide to Programming the PIC32 (Electronics Products, 2013). They are reprinted with permission from Chuck Hellebuyck, Electronic Products. If you are interested in reading more articles by Kibalo, check out his two-part Circuit Cellar “robot boot camp” series posted in 2012 : “Autonomous Mobile Robot (Part 1): Overview & Hardware” and “Autonomous Mobile Robot (Part 2): Software & Operation.”


Tom Kibalo

Tom Kibalo

Tom Kibalo is principal engineer at a large defense firm and president of KibaCorp, a company dedicated to DIY hobbyist, student, and engineering education. Tom, who is also an Engineering Department adjunct faculty member at Anne Arundel Community College in Arnold, MD, is keenly interested in microcontroller applications and embedded designs. To find out more about Tom, read his 2013 Circuit Cellar member profile.

Cypress Expands Portfolio with New Traveo Automotive Microcontroller Series

Cypress Semiconductor Corp. recently expanded of its automotive portfolio with the first series of its Traveo microcontroller family. The series features up to 4 MB of high-density embedded flash, stepper motor control, TFT display control, advanced sound output capabilities, and support for all in-vehicle networking standards.Cypress Traveo

Otimized for high-end body and gateway systems, the new series provides the ability to embed more on-chip flash memory for advanced applications. In addition, the 40-nm Traveo microcontrollers make it easy to implement Firmware Over-The-Air (FOTA) updates.

The new 40-nm Traveo S6J331X/S6J332X/S6J333X/S6J334X series offers a high-performance platform for classic instrument clusters. Based on the ARM Cortex-R5 processor with 240-MHz performance, it supports the CAN-FD automotive communication protocol for increased data bandwidth for faster networking.

Additionally, Cypress introduced a transceiver for the Clock Extension Peripheral Interface (CXPI) designed to replace the Local Interconnect Network (LIN) automotive communication protocol.

The Traveo S6J331X/S6J332X/S6J333X/S6J334X and S6J335X series is currently sampling and will be in production in the second half of 2016. It is available in 144-pin, 176-pin and 208-pin TEQFP packages.
The S6BT11X CXPI transceiver series is sampling now. It is available in an 8-pin SOP package.

Source: Cypress Semiconductor

New Ecosystem to Accompany 8-bit FT51A MCUs

FTDI Chip recently announced an array of board level products to support its FT51A microcontroller. It executes an 8051 feature set that can operate at 48 MHz. In addition, it features a variety of interfaces, including USB client, UART, SPI, I2C, 245 FIFO, PWM, and GPIO. The USB hub feature enables multiple USB-enabled devices to be combined. The FT51A’s data conversion capabilities comprise of an 8-bit ADC. Its 16-KB shadow RAM accelerates read access of the core. The device draws 20 mA (typical) while active and 150 µA (typical) when in suspend mode.

The FT51A microcontroller is suitable for a variety of applications, including industrial test instrumentation and sensor control.

The FT51A-EVM evaluation module offers you several functions for learning about the FT51A MCU.  It includes a 2 × 20 LCD display and several sensor mechanisms for data acquisition. Also included are a heart-rate monitor (with filtered and amplified analo output), a force sensitive resistor, and a SPI-enabled temperature sensor.

Source: FTDI

New MCUs Combine Hardware Cryptography with Advanced Energy Management

Silicon Labs recently introduced two new EFM32 Gecko microcontroller (MCU) families that feature advanced security and energy-management technologies. The Jade Gecko and Pearl Gecko MCUs combine a hardware cryptography engine, flexible low-energy modes, an on-chip DC-DC converter, and scalable memory options backed by Silicon Labs’s Simplicity Studio tools. The MCUs target an array of energy-sensitive and battery-powered devices, such as wearables and IoT node applications.Silicon Labs jade pearl

Jade and Pearl Gecko MCUs are meant to equip IoT-connected devices with the latest security technologies to thwart hackers. They feature a hardware cryptography engine providing fast, energy-efficient, autonomous encryption and decryption for Internet security protocols (e.g., TLS/SSL) with minimal CPU intervention. The on-chip crypto-accelerator supports advanced algorithms such as AES with 128- or 256-bit keys, elliptical curve cryptography (ECC), SHA-1, and SHA-224/256. Hardware cryptography enables developers to meet evolving IoT security requirements more efficiently than with conventional software-only techniques often required by competing MCUs.

Based respectively on ARM Cortex-M3 and M4 cores, Jade and Pearl Gecko MCUs provide ample performance for connected devices while enabling developers to optimize battery life or use smaller batteries for space-constrained designs. The new MCUs feature an enhanced peripheral reflex system (PRS) that lets low-power peripherals operate autonomously while the MCU core sleeps, allowing connected devices to sleep longer, thus extending battery life. Energy-saving low active-mode current (63 µA/MHz) enables computationally intensive tasks to execute faster. Low sleep-mode current (1.4 µA down to 30 nA) and ultra-fast wake-up/sleep transitions further minimize energy consumption.

Jade and Pearl Gecko MCUs also integrate a high-efficiency DC-DC buck converter. Offering a total current capacity of 200 mA, the on-chip converter can provide a power rail for other system components in addition to powering the MCU. This power management innovation reduces BOM cost and board area by eliminating the need for an external DC-DC converter.

Engineering samples of EFM32JG Jade Gecko and EFM32PG Pearl Gecko MCUs are available now in 5 mm × 5 mm QFN32 and 7 mm × 7 mm QFN48 packages. Production quantities are planned for Q2 2016. Jade Gecko pricing begins at $1.24 in 10,000-unit quantities. The Pearl Gecko pricing begins at $1.65 in 10,000-unit quantities. The SLSTK3401A EFM32PG Pearl Gecko Starter Kit costs $29.99.

Source: Silicon Labs

Industrial Drive Control SoC to Support Digital and Analog Position Sensors

Texas Instruments’s new TMS320F28379D and TMS320F28379S microcontrollers are an expansion to the C2000 Delfino microcontroller portfolio. When combined with DesignDRIVE Position Manager technology, they enable simple interfacing to position sensors. Based on the real-time control architecture of C2000 microcontrollers, the DesignDRIVE platform is ideal for the development of industrial inverter and servo drives used in robotics, elevators, and other industrial manufacturing applications.TI - TMS320F

With the C2000 DesignDRIVE development kit, you investigate a variety of motor drive topologies. DesignDRIVE is supported by the C2000 controlSUITE package and includes specific examples of vector control of motors, incorporating current, speed, and position loops, to help developers jumpstart their evaluation and development. In addition, users can download Texas Instruments’s Code Composer Studio integrated development environment (IDE), providing code generation and debugging capabilities. You can download reference interface and power supply designs for motor drives.

The TMS320F28379D and TMS320F28379S microcontrollers are now sampling starting at $17.20. The DesignDRIVE Kit (TMDXIDDK379D) costs $999.

Source: Texas Instruments

Boost Arduino Mega Capability with 512-KB SRAM & True Parallel Bus Expansion

The Arduino MEGA-2560 is a versatile microcontroller board, but it has only 8 KB SRAM. SCIDYNE recently developed the XMEM+ to enhance a standard MEGA in two ways. It increases SRAM up to 512 KB and provides True Parallel Bus Expansion. The XMEM+ plugs on top using the standard Arduino R3 stack-through connector pattern. This enables you to build systems around multiple Arduino shields. Once enabled in software, the XMEM+ becomes an integral part of the accessible MEGA memory.Scidyne

The XMEM+ also provides a fixed 23K Expansion Bus for connecting custom parallel type circuitry. Buffered Read, Write, Enable, Reset, 8-bit Data, and 16-bit Address signals are fully accessible for off-board prototyping. The XMEM+ makes any Arduino MEGA system much better suited for memory-intensive applications involving extended data logging, deep memory buffers, large arrays, and complex data structures. Target applications include industrial control systems, signage, robotics, IoT, product development, and education.

The introductory price is $39.99.

Source: SCIDYNE Corp.

Low-Power Apollo Microcontroller Now in Volume Production

Ambiq Micro’s Apollo MCU—which was demonstrated to consume less than half the energy of other microcontrollers in real-world applications (EEMBC ULPBench benchmark)—is now available for shipping for high-volume consumer applications. The microcontroller features active mode current around 34 µA/MHz when running from flash memory and sleep mode current less than 150 nA. Built around an ARM M4 core with a floating-point unit, it’s available with 64 to 512 KB of embedded flash memory. In addition, it includes a 10-bit ADC and a variety of serial interfaces.  AMB012 Ambiq Available in both BGA and WLCSP packages, the Apollo MCU is available for immediate delivery with prices starting at $1.50 in 10,000-unit quantities.

Source: Ambiq Micro

STMicro’s New Advanced 32-Bit Secure Microcontroller

STMicroelectronics has introduced the first member of the third generation of its ST33 series of secure microcontrollers based on the 32-bit ARM SecurCore SC300 processor. The ST33J2M0, which provides 2-MB flash program memory, is intended for secure applications including embedded Secure Element (eSE), Single Wire Protocol (SWP) SIMs for NFC applications, and embedded Universal Integrated Circuit Card (UICC). The secure microcontroller includes the highest performance and integrated crypto-accelerators that together with the industry’s fastest clock speed in a secure microcontroller enable the highest performance for fast application execution. It also features a new hardware architecture with strong and multiple fault-protection mechanisms covering the CPU, memories, and buses to facilitate the development of highly secure software.s.

The ST33J2M0 features multiple hardware accelerators for advanced cryptographic functions. The EDES peripheral provides a secure Data Encryption Standard (DES) algorithm implementation, while the NESCRYPT crypto-processor efficiently supports the public key algorithm. The AES peripheral ensures secure and fast AES algorithm implementation.

ST33J2M0 samples are available as wafers or housed in VQFN and WLCSP packages.

Build a Hand-Held Microcontroller-Based Scoring Device

The QuizWiz is an innovative hand-held device that teachers can use to score multiple choice tests. It’s unlikely that you’ll need such a device, but you’ll surely learn a lot from Paul Kiedrowski’s description of the design process. He covers the circuit design, hardware analysis, software, and more.

1—The prototype QuizWiz sports a 2 × 8 character LCD display and just two operating switches labeled “scores” and “save.” The quiz format can be seen here, requiring a starting sync section, dark areas between answer selections, and a minimum amount of white space between questions. A mini-DIN connector is on one end to provide an optional serial port interface.

Photo 1: The prototype QuizWiz sports a 2 × 8 character LCD display and just two operating switches labeled “scores” and “save.”

Kiedrowski writes:

For automatic scoring of multiple choice tests, many schools use a commercially available system based on a desktop card reader machine, which requires that students mark their answers on preprinted forms of specific size and layout. This method is expensive because of the equipment and score cards, therefore usually it’s used only for critical testing.

In most cases, because only one centralized scoring machine is available to teachers, it is not located in the classroom where it would offer the most convenience. Perhaps more importantly, the most useful time to evaluate test results is immediately after a test so that feedback could be given and the missed questions discussed promptly. This is especially desirable for periodic quizzes where the intent is to allow the teacher to quickly gauge the classroom’s learning progress. What is needed is a better, lower cost, convenient way of quickly scoring quizzes.

Introducing the QuizWiz

To answer these needs, I developed a hand-held scoring device based on an 8-bit microprocessor I dubbed QuizWiz. The 87LPC764 is a new 20-pin offering that combines fast speed, 8051 code compatibility, and low cost. This processor is ideally suited for this project because of its 4K code space, power-saving modes, serial port, and remaining 16 I/O pins. Philips wanted to create a device simple to operate and affordable enough that every teacher could own one (see Photo 1).

QuizWiz has several features that make the teacher’s ability to score multiple-choice quizzes fast and easy. It reduces scoring time to only 10–15 s per page. It is capable of scoring tests printed on standard paper without preprinted forms, using a word-processing template.

QuizWiz does not require machine-assisted paper handling mechanisms. Also, as a hand-held device, it operates on three AAA batteries. The processor is inexpensive ($30 for parts) and measures only 6″ × 1.7″ × 1.0″. Simple to learn, the new teacher’s aid requires only two buttons to operate.

An eight-character by two-row LCD displays the status and results. There is a buzzer to provide distinctive audio feedback. QuizWiz has automatic power shutdown, providing a long life (estimated at >100 quiz sets). The flexible quiz format allows multiple columns and/or pages.

For your convenience, there is temporary memory storage of results during power shutdowns. Totals, per question and per quiz, are available. QuizWiz can handle eight choices per question, four columns of questions, and 32 questions per quiz. The processor provides an RS-232 serial connection for uploading results in real time to a PC, which allows tracking of which questions were missed per student.

1—Here you can see the 87LPC764 processor, MAX221 RS-232 interface, and MAX710 DC/DC converter. The device supplies 5 V to the LCD, which uses a 4-bit interface to save I/O pins.

Figure 1: Here you can see the 87LPC764 processor, MAX221 RS-232 interface, and MAX710 DC/DC converter. The device supplies 5 V to the LCD, which uses a 4-bit interface to save I/O pins.

Circuit Description

Figure 1 shows the circuitry has been partitioned by the two chassis sections. A PCB in the lower half contains most of the components, whereas the sensor tip, LCD, and battery compartment are in the upper half. The processor was DIP socketed for the development phase (see Photo 2).

A design-for-manufacturing approach was taken for the construction of the aluminum-chassis prototype. The main two-sided PCB has ample room for parts, mainly because of the housing size needed to fit the AAA battery pack and LCD display.

Photo 2: The main two-sided PCB has ample room for parts, mainly because of the housing size needed to fit the AAA battery pack and LCD.

A single reflective opto-sensor was chosen to perform the scanning detection process, with an optimum sensor-to-paper distance of 1.0 mm. To preserve battery power, the opto-sensor LED is only activated when QuizWiz is pressed against the paper, which depresses a mechanical switch located in the tip. An alternate scheme initially considered required two sensors, the second one used for scanning a parallel column of markings intended only to synchronize the scan position. The additional LED would have significantly increased the power consumption, however.

Normal battery operating current is approximately 25 mA when all circuits are operating, 15 mA when not scanning, and 20 mA during shutdown. Using three AAA batteries in series, with a typical capacity of 1000 mA/h, the teacher can score approximately 100 quizzes for a classroom of 30 students.

QuizWiz uses a simple three-chip design consisting of the processor, a 5-V DC/DC converter, and an RS-232 three-wire interface. The 87LPC764 is a good match for the required QuizWiz features, because all of its pins and most of its features are used in this project. The only features not used are the I2C interface and analog comparators. To minimize cost further, no external crystal is required, because the processor conveniently includes an internal 6-MHz RC oscillator..

Paul Kiedrowski’s article, “QuizWiz: A Hand-Held Scoring Device,” originally appeared in Circuit Cellar 125, 2000. Download the article