Guitar Video Game Uses PIC32

Realism Revamp

While music-playing video games are fun, their user interfaces tend to leave a lot to be desired. Learn how these two Cornell students designed and built a musical video game that’s interfaced using a custom-built wireless guitar controller. The game is run on a Microchip PIC32 MCU and has a TFT LCD display to show notes that move across the screen toward a strum region.

By Jake Podell and Jonah Wexler

While many popular video games involve playing a musical instrument, the controllers used by the player are not the greatest. These controllers are often made of cheap plastic, and poorly reflect the feeling of playing the real instrument. We have created a fun and competitive musical video game, which is interfaced with using a custom-built wireless guitar controller (Figure 1 and Figure 2). The motivation for the project was to experiment with video game interfaces that simulate the real-world objects that inspired them.

Figure 1
Front of the guitar controller. Note the strings and plectrum.

Figure 2
Back of the guitar controller

The video game is run on a Microchip PIC32 microcontroller [1]. We use a thin-film-transistor LCD display (TFT) to display notes that move across the screen toward a strum region. The user plays notes on a wireless mock guitar, which is built with carbon-impregnated elastic as strings and a conducting plectrum for the guitar pick. The game program running on the PIC32 produces guitar plucks and undertones of the song, while keeping track of the user’s score. The guitar is connected to an Arduino Uno and Bluetooth control center, which communicates wirelessly to the PIC32.

The controller was designed to simulate the natural motion of playing a guitar as closely as possible. We broke down that motion on a real guitar into two parts. First, users select the sound they want to play by holding the appropriate strings down. Second, the users play the sound by strumming the strings. To have a controller that resembled a real guitar, we wanted to abide by those two intuitive motions.

Fret & Strum Circuits

At the top of the guitar controller is the fret board. This is where the users can select the sounds they want to play. Throughout the system, the sound is represented as a nibble (4 bits), so we use 4 strings to select the sound.

Each string works as an active-low push-button. The strings are made of carbon-impregnated elastic, which feels and moves like elastic but is also conductive. Each string was wrapped in 30-gauge copper wire, to ensure solid contact with any conductive surfaces. The strings are each connected to screws that run through the fret board and connect the strings to the fret circuit (Figure 3).

Figure 3
Complete controller circuit schematic (on guitar).

The purpose of the fret circuit is to detect changes in voltage across four lines. Each line is branched off a power rail and connected across a string to an input pin on an Arduino Uno. Current runs from the power rail across each string to its respective input pin, which reads a HIGH signal. To detect a push on the string, we grounded the surface into which the string is pushed. By wrapping the fret board in a grounded conductive pad and pushing the string into the fret board, we are able to ground our signal before it can reach the input pin. When this occurs, the associated pin reads a LOW signal, which is interpreted as a press of the string by our system.

Along with the fret circuit, we needed a way to detect strums. The strum circuit is similar in its use of a copper-wrapped, carbon-impregnated elastic string. The string is connected through the fret board to an input pin on the Arduino, but is not powered. Without any external contact, the pin reads LOW. When voltage is applied to the string, the pin reads HIGH, detecting the strum. To mimic the strumming motion most accurately, we used a guitar pick to apply the voltage to the string. The pick is wrapped in a conductive material (aluminum foil), which is connected to the power rail. Contact of the pick applies voltage to the string, which on a rising edge denotes a strum.

Figure 4
Shown here is a block diagram of the controller signals.

As shown in Figure 4, the direct user interface for the player is the guitar controller. The physical interaction with the guitar is converted to an encoded signal by an Arduino mounted to the back of the guitar. The Arduino Uno polls for a signal that denotes a strum, and then reads the strum pattern across the four strings. The signal is sent over USB serial to a Bluetooth control station, which uses a Python script to broadcast the signal to an Adafruit Bluetooth LE module. The laptop that we used as a Bluetooth control station established a link between the controller and the Bluetooth receiver, and was paramount to the debugging and testing of our system. Finally, the Bluetooth module communicated over UART with the PIC, which interpreted the user’s signal in the context of the game [2].  …

Read the full article in the March 344 issue of Circuit Cellar
(Full article word count: 3271 words; Figure count: 10 Figures.)

Watch the project video here:

Don’t miss out on upcoming issues of Circuit Cellar. Subscribe today!

Note: We’ve made the October 2017 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

March Circuit Cellar: Sneak Preview

The March issue of Circuit Cellar magazine is out next week!. We’ve rounded up an outstanding selection of in-depth embedded electronics articles just for you, and rustled them all into our 84-page magazine.

Not a Circuit Cellar subscriber?  Don’t be left out! Sign up today:


Here’s a sneak preview of March 2019 Circuit Cellar:


Power Issues for Wearables
Wearable devices put extreme demands on the embedded electronics that make them work—and power is front and center among those demands. Devices spanning across the consumer, fitness and medical markets all need an advanced power source and power management technologies to perform as expected. Circuit Cellar Chief Editor Jeff Child examines how today’s microcontroller and power electronics are enabling today’s wearable products.

Power Supplies for Medical Systems
Over the past year, there’s been an increasing trend toward new products that have some sort of application or industry focus. That means supplies that include either certifications, special performance specs or tailored packaging intended for a specific application area such as medical. This Product Focus section updates readers on these technology trends and provides a product gallery of representative medical-focused power supplies.


Flex PCB Design Services
While not exactly a brand-new technology, flexible printed circuit boards are a critical part of many of today’s challenging embedded system applications from wearable devices to mobile healthcare electronics. Circuit Cellar’s Editor-in-Chief, Jeff Child, explores the Flex PCB design capabilities available today and whose providing them.

Design Flow Ensures Automotive Safety
Fault analysis has been around for years, and many methods have been created to optimize evaluation of hundreds of concurrent faults in specialized simulators. However, there are many challenges in running a fault campaign. Mentor’s Doug Smith presents an improved formal verification flow that reduces the number of faults while simultaneously providing much higher quality of results.

Cooling Electronic Systems
Any good embedded system engineer knows that heat is the enemy of reliability. As new systems cram more functionality at higher speeds into ever smaller packages, it’s no wonder an increasing amount of engineering mindshare is focusing on cooling electronic systems. In this article, George Novacek reviews some of the essential math and science around cooling and looks are several cooling technologies—from cold pates to heat pipes.


MCU-Based Solution Links USB to Legacy PC I/O
In PCs, serial interfaces have now been just about completely replaced by USB. But many of those interfaces are still used in control and monitoring embedded systems. In this project article, Hossam Abdelbaki describes his ATSTAMP design. ATSTAMP is an MCS-51 (8051) compatible microcontroller chip that can be connected to the USB port of any PC via any USB-to-serial bridge currently available in the market.

Pet Collar Uses GPS and Wi-Fi
The PIC32 has proven effective for a myriad of applications, so why not a dog collar? Learn how Cornell graduates Vidya Ramesh and Vaidehi Garg built a GPS-enabled pet collar prototype. The article discusses the hardware peripherals used in the project, the setup, and the software. It also describes the motivation behind the project, and possibilities to expand the project in the future.

Guitar Video Game Uses PIC32
While music-playing video games are fun, their user interfaces tend leave a lot to be desired. Learn how Cornell students Jake Podell and Jonah Wexler designed and built a musical video game that’s interfaced with using a custom-built wireless guitar controller. The game is run on a Microchip PIC32 MCU and uses a TFT LCD display to show notes that move across the screen towards a strum region.


Non-Evasive Current Sensor
Gone are the days when you could do most of your own maintenance on your car’s engine. Today they’re sophisticated electronic systems. But there are some things you can do with the right tools. In his article, By Jeff Bachiochi talks about how using the timing light on his car engine introduced him to non-contact sensor technology. He talks about the types of probes available and how to use them to read the magnitude of alternating current (AC

Impedance Spectroscopy using the AD5933
Impedance spectroscopy is the measurement of a device’s impedance (or resistance) over a range of frequencies. Brian Millier has designed many voltammographs and conductivity meters over the years. But he recently came across the Analog Devices AD5933 chip made by which performs most all the functions needed to do impedance spectroscopy. In this article, explores the technology, circuit design and software that serve these efforts.

Side-Channel Power Analysis
Side-channel power analysis is a method of breaking security on embedded systems, and something Colin O’Flynn has covered extensively in his column. This time Colin shows how you can prove some of the fundamental assumptions that underpin side-channel power analysis. He uses the open-source ChipWhisperer project with Jupyter notebooks for easy interactive evaluation.

Low-Power Pico-ITX SBC Serves Industrial IoT Needs

Axiomtek has introduced its PICO318 board, a palm-sized fanless pico-ITX motherboard powered by the Intel Pentium processor N4200 or Celeron processor N3350 (code named Apollo Lake). The PICO318 is a low power consumption, 2.5” embedded board that is expandable, rugged, feature-rich and versatile to help facilitate quick deployment.
The PICO318 is equipped with one 204-pin DDR3L-1867 SO-DIMM for up to 8 GB system memory. A dual-display capability is available through 18/24-bit single/dual channel LVDS and DisplayPort. For storage, there are one M.2 key B slot for SATA or PCIe x2 SSD card and one half-size PCI Express Mini Card slot with support for mSATA. Moreover, the Pico-ITX form factor SBC features 12 V DC power supply input with AT Auto Power On function.

The Intel Apollo Lake-based pico-ITX board provides rich I/O connectivity including two USB 3.0 ports, two USB 2.0 ports, one RS-232/422/485 port, one RS-232 port, two Gigabit LAN ports with Intel i211AT Ethernet controller, one HD Codec audio, and 4-channel digital I/O. The PICO318 offers watchdog timer and hardware monitoring for reliable operation. It also supports AXView 2.0, intelligent remote management software for industrial IoT applications. Additionally, its I2C interface offers smart battery support. The PICO318 will be available in March, 2019.


  • Intel Pentium processor N4200 and Celeron processor N3350 (code name: Apollo Lake)
  • One 204-pin DDR3L-1867 SO-DIMM, up to 8GB
  • Two USB 2.0 ports and two USB 3.0 ports
  • Two Gigabit Ethernet ports and two COM ports
  • PCI Express Mini Card slot with mSATA support
  • Supports M.2 Key B (SATA, USB 2.0, PCIe x2 for option) in 22 mm x 42 mm or 30 mm x 42 mm

Axiomtek |


Secure Cellular Router Serves Industrial and Transportation Needs

Digi International has announced the Digi WR54, a rugged, secure, high-performance wireless router for complex mobile and industrial environments. With dual cellular interfaces, Digi WR54 provides immediate carrier failover for near-constant uptime and continuous connectivity, especially as vehicles move throughout a city or for locations with marginal cellular coverage. Together with a hardened milspec-certified design and built-in Digi TrustFence security framework, this LTE-Advanced router is designed specifically to meet the connectivity challenges inherent in multi-location, on-the-move conditions, from rail and public transit to trucking fleets and emergency vehicle applications.

LTE-Advanced technologies with carrier aggregation are pushing theoretical download speeds to 300 Mbps, and the next generation of cellular radios is capable of aggregating three or more channels for capabilities up to 600 Mbps. It’s expected that 5G deployments this year will push the demands for performance and edge computing even further. Digi WR54 provides an LTE-Advanced cellular module built on a platform that supports higher speeds to optimize bandwidth today while also being positioned for the future as network capabilities improve.

Multiple transit system use cases require rugged, reliable, high-speed connectivity solutions to carry mission-critical data and communications. Transit system integrators require connectivity for fleet tracking, logistics, engine and driver performance monitoring, fare collection and video monitoring; rail companies that are building in wayside data capabilities need constant visibility into complex systems; industrial corporations like utility companies need to monitor high-value assets.

The Digi WR54 architecture supports these performance requirements with not just the aforementioned LTE-Advanced cellular module, but four Gigabit Ethernet ports for wired systems and the latest 802.11 ac Wi-Fi which combine to support the needs of any user. Other key features include:

  • Dual-core 880 MHz MIPS processor: designed with this high-speed architecture, the Digi WR54 is future-built with a CPU capable of supporting higher network speeds and capabilities as infrastructure is updated to support them
  • SAE J1455, MILSTD-810G and IP-54 rated: tested and certified to withstand water, dust, heat, vibration and other environmental challenges suitable to transportation and many industrial applications
  • Optional dual-cellular radios for continuous connectivity between carriers: for users that cannot afford downtime, if the primary cellular carrier drops out, the Digi WR54 automatically and immediately switches over to the secondary carrier
  • Digi TrustFence: a device-security framework that simplifies the process of securing connected devices and adapts to new and evolving threats
  • Digi Remote Manager: with this Digi web-based management tool, users can simply manage their devices, receive alerts and monitor the health of their deployed devices

For users looking to add high-speed passenger Wi-Fi to mass transit systems, the recently launched Digi WR64 dual LTE-Advanced cellular and dual 802.11ac Wi-Fi router offers an all-in-one mobile communications solution for secure cellular connectivity between vehicles and a central operations center. It offers a flexible interface design with integrated Wi-Fi for client and access point connectivity along with USB, serial, a four-port wired Ethernet switch, GPS and Bluetooth in order to consolidate multiple transit or industrial applications into a single, consolidated router.

Digi International|

Connecting USB to Simple MCUs

Helpful Hosting

Sometimes you want to connect a USB device such as a flash drive to a simple microcontroller. The problem is most MCUs cannot function as a USB host. In this article, Stuart steps through the technology and device choices that solve this challenge. He also puts the idea into action via a project that provides this functionality.

By Stuart Ball

Even though many microcontrollers (MCUs) may have a USB device interface that can connect to a host, rarely is a host interface available on simple MCUs. There are various reasons for this, including the complexity of implementing a USB host interface on a simple processor, the need to enumerate and recognize many device types and the memory required to do so. Functioning as a single USB device is much simpler. Implementing a host interface also puts some constraints on the MCU for throughput and clock speed choices.

I have been working on a retro CPU board design, using the Z80180 processor that can run the old CP/M-80 operating system. This is just a fun project, with no real practical use. But the project needed storage that could replace the floppy disk normally used in CP/M. I considered using SD cards, but in experimenting with them, I decided that they are just not what I wanted. What I did want was the ability to plug a USB flash drive into the circuit.

Even though my CP/M project is not that useful, there are other applications where the ability to plug a USB flash drive into an MCU-based circuit is desirable. Examples include:

• Capturing logging or debug data
• Flashing new code into the MCU
(if the MCU has self-programming flash)
• Downloading crypto keys or other
one-time data to the MCU
• Downloading configuration information
to enable or disable features
• Downloading language translation
• Retaining critical data
• Serving as a “key” to restrict access to
maintenance mode functions only
to authorized personnel
• Downloading GPS coordinates or map
• Updating stored part numbers, serial
numbers or any stored value that can

There are ways to implement USB host capability on an MCU, especially if it has a USB interface that supports OTG (on-the-go) USB capability. But no matter how you do it, you have to write or obtain drivers and integrate the functionality into your software. You will also be constrained as to which MCUs you can use, based on availability of USB host capability. But for a simple design, you may not want to be forced to use a part just because it has USB host capability.


FTDI makes a USB host module called the VDrive3 that provides a limited USB host interface and can connect to an MCU (or even a PC) using an asynchronous serial port. The module also has an SPI interface, although I did not use that in my design. A link to the datasheet is provided on the Circuit Cellar article materials webpage.

The VDrive3 (Figure 1) uses the FTDI Vinculum IC, which provides a USB host interface on one side and a serial or SPI interface to your MCU on the other. Since all of the hardware and software to implement the USB host interface is inside the VDrive3 module, you don’t need to develop USB stacks or drivers, or deal with licensing issues. The VDrive3 comes in a plastic housing so it is easy to mount in a rectangular cutout.

Figure 1
VDrive3 module. The module comes with the attached cable, which I modified to use a different connector on my board.

The VDrive3 has a file-based interface for USB flash drives, which means that you don’t need to manage the memory yourself. You open files, write to them, read them, close them and create directories. The VDrive3 shields the host from the memory management functionality, allowing all this to be done with simple commands over the serial interface. The VDrive3 manages the file system so you don’t have to.

In my application, I was emulating a floppy disk. I defined the “virtual floppy” to have 256 tracks of 32 sectors each. To implement that on the VDrive3, I created 256 directories named TRAK000 through TRAK0FF. In each directory, I created 32 files named SEC00 through SEC1F. So, when the CP/M operating system wants to read or write a specific sector, the AVR MCU navigates to the directory that represents the selected track and opens the sector file corresponding to the specified sector.

This is a simple mechanism that is really applicable only to the way I’m using the flash drive, but the general principles apply to any VDrive3 application. You can create a directory, and then create files within the directory that correspond to whatever information you need to store. Or you can skip the directories and store everything at the top directory level.

One advantage of using the VDrive3 is interoperability with a PC. If I used SD drives, I would either have a proprietary format that couldn’t be read in a PC, or else I’d have to manage a PC-compatible file system in my MCU. But the VDrive3 recognizes the standard FAT12, FAT16, and FAT32 file systems, so a flash drive written on a VDrive3 can be inserted into a PC and read. This could be very useful if you are collecting debug or log data from your MCU application. In my case, I could make a copy of a CP/M “floppy” on a PC.


The VDrive3 recognizes various commands, including SEK (seek to file offset), OPW (open file for writing) and WRF (write to file). The commands used in my application are listed in Table 1. VDrive3 commands can be sent in ASCII as in the command list in Table 1, or you can configure it to use a short command set that requires fewer bytes to transmit. Data can be either ASCII or binary. The VDrive3 defaults to the extended command set and binary data transfer, and I leave the module in that mode for my application.

Table 1
The VDrive3 recognizes various commands. Shown here are the commands used in my application. VDrive3 commands can be sent in ASCII as in this command list, or you can configure it to use a short command set that requires fewer bytes to transmit.

Generally, each command is sent as a string of two or three characters. If data such as a filename are needed, the command is followed by a space, the appropriate text and a carriage return character (0x0D). If no data are needed, such as for the FWV (FW version) command, the command can be immediately followed by the carriage return. Setting the baud rate requires a divisor value, so the SBD command (set baud rate) is followed by a 3-byte divisor value and then a carriage return. …

Read the full article in the January 342 issue of Circuit Cellar

Don’t miss out on upcoming issues of Circuit Cellar. Subscribe today!

Note: We’ve made the October 2017 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

Tiny MCU-Based Development Platform Hosts Dual USB Ports

Segger Microcontroller has introduced emPower-USB-Host, a compact low-cost development board. With two USB host ports, many applications using USB peripherals can be realized with little effort. Precompiled applications for barcode and smartcard readers, as well as POS displays, LTE sticks and USB to LAN adapters are available for download, including complete projects for Embedded Studio with source code of these applications. The applications are using Segger’s emUSB-Host software API, which makes accessing the different types of USB devices easy.
emPower-USB-Host uses the emLoad bootloader, pre-loaded into the flash of the MCU, to easily change applications in seconds using a USB flash drive. Development of custom applications is also supported. The board has a debug connector, providing full access to the NXP LPC54605J512 MCU with its Cortex-M4 core. Schematics and PCB layout of the board are available under a Creative Commons license. This way, the hardware can be used as a blueprint for custom devices using two USB host ports.

Segger Microcontroller |

Rugged PC/104 SBC Sports Dual Core Bay Trail SoC

Versalogic has announced “SandCat”, a low-cost rugged new PC/104-Plus SBC. Based on Intel’s dual-core Bay Trail SoC, SandCat is an entry level PC/104-Plus SBC that provides a cost optimized performance level and I/O capability. The SandCat is designed and tested for industrial temperature (-40° to +85°C) operation and meets MIL-STD-202G specifications to withstand high impact and vibration. Latching connectors and fanless operation provide additional benefits in harsh environments.

SandCat’s I/O connectivity includes a Gigabit Ethernet port with network boot capability, four USB 2.0 ports, two serial ports (RS-232/422/485), I2C, and eight digital I/O lines. A SATA 3 Gbit/s interface supports high-capacity rotating or solid-state drives. A Mini PCIe socket with mSATA capability provides flexible solid-state drive (SSD) options.

The board’s SandCat’s Mini PCIe socket allows easy on-board expansion with plug-in Wi-Fi modems, GPS receivers, and other mini cards such as MIL-STD-1553, Ethernet and analog. For stacking expansion using industry-standard add-on boards, the SandCat supports PC/104-Plus expansion, including ISA and PCI based modules. The on-board expansion site provides plug-in access to a wide variety of expansion modules from numerous vendors, all with bolt-down ruggedness.

Like other Versalogic products, the SandCat is designed for long-term availability (10+ year typical production lifecycle). Customization services to help customers create unique solutions are available for the SandCat, even in low OEM quantities. Customization options include conformal coating, revision locks, custom labeling, customized testing and screening.

The SandCat single board computer, part number VL-EPM-39EBK, is in stock at both Versa;ogic and Digi-Key. OEM quantity pricing starts at $370.

Versalogic |

IoT Door Security System Uses Wi-Fi

Control Via App or Web

Discover how these Cornell students built an Internet-connected door security system with wireless monitoring and control through web and mobile applications. The article discusses the interfacing of a Microchip PIC32 MCU with the Internet, and the application of IoT to a door security system.

By Norman Chen, Ram Vellanki and Giacomo Di Liberto

The idea for an Internet of Things (IoT) door security system came from our desire to grant people remote access to and control over their security system. Connecting the system with the Internet not only improves safety by enabling users to monitor a given entryway remotely, but also allows the system to transmit information about the traffic of the door to the Internet. With these motivations, we designed our system using a Microchip Technology PIC32 microcontroller (MCU) and an Espressif ESP8266 Wi-Fi module to interface a door sensor with the Internet, which gives the user full control over the system via mobile and web applications.

The entire system works in the following way. To start, the PIC32 tells the Wi-Fi module to establish a connection to a TCP socket, which provides fast and reliable communication with the security system’s web server. Once a connection has been established, the PIC32 enters a loop to analyze the distance sensor reading to detect motion in the door. Upon any detection of motion, the PIC32 commands the Wi-Fi module to signal the event to the web server. Each motion detection is saved in memory, and simultaneously the data are sent to the website, which graphs the number of motion detections per unit time. If the security system was armed at the time of motion detection, then the PIC32 will sound the alarm via a piezoelectric speaker from CUI. The alarm system is disarmed at default, so each motion detection is logged in the web application but no sound is played. From both the web and mobile application, the user can arm, disarm and sound the alarm immediately in the case of an emergency.


The PIC32 acts as the hub of the whole system. As shown in Figure 1, each piece of hardware is connected to the MCU, as it detects motion by analyzing distance sensor readings, generates sound for the piezoelectric speaker and commands the Wi-Fi module for actions that pertain to the web server. The distance sensor used in our system is rated to accurately measure distances of only 10 to 80 cm [1]. That’s because motion detection requires us only to measure large changes in distances instead of exact distances, the sensor was sufficient for our needs.

Figure 1
The schematic of the security system. Note that the door sensor runs on 5  V, whereas the rest of the components run on 3.3 V

In our design, the sensor is facing down from the top of the doorway, so the nearest object to the sensor is the floor at idle times, when there is no movement through the door. For an average height of a door, about 200 cm, the sensor outputs a miniscule amount of voltage of less than 0.5 V. If a human of average height, about 160 cm, passes through the doorway, then according to the datasheet [1], the distance sensor will output a sudden spike of about 1.5 V. The code on the PIC32 constantly analyzes the distance sensor readings for such spikes, and interprets an increase and subsequent decrease in voltage as motion through the door. The alarm sound is generated by having the PIC32 repeatedly output a 1,500 Hz wave to the piezoelectric speaker through a DAC. We used the DMA feature on the PIC32 for playing the alarm sound, to allow the MCU to signal the alarm without using an interrupt-service-routine. The alarm sound output therefore, did not interfere with motion detection and receiving commands from the web server.

The Wi-Fi module we used to connect the PIC32 to the Internet is the ESP8266, which has several variations on the market. We chose model number ESP8266-01 for its low cost and small form factor. This model was not breadboard-compatible, but we designed a mount for the device so that it could be plugged into the breadboard without the need for header wires. Figure 2 shows how the device is attached to the breadboard, along with how the rest of the system is connected.

Figure 2
The full system is wired up on a breadboard. The door sensor is at the bottom of the photo, and is attached facing down from the top of a doorway when in use. The device at the top of the figure is the PIC32 MCU mounted on a development board.

The module can boot into two different modes, programming or normal, by configuring the GPIO pins during startup. To boot into programming mode, GPIO0 must be pulled to low, while GPIO2 must be pulled high. To boot into normal mode, both GPIO0 and GPIO2 must be pulled high. Programming mode is used for flashing new firmware onto the device, whereas normal mode enables AT commands over UART on the ESP8266. Because we only needed to enable the AT commands on the module, we kept GPIO0 and GPIO2 floating, which safely and consistently booted the module into normal mode.


Before interfacing the PIC32 with the Wi-Fi module, we used a USB-to-TTL serial cable to connect the module to a computer, and tested the functionality of its AT commands by sending it commands from a serial terminal. …

Read the full article in the December 341 issue of Circuit Cellar

Don’t miss out on upcoming issues of Circuit Cellar. Subscribe today!

Note: We’ve made the October 2017 issue of Circuit Cellar available as a free sample issue. In it, you’ll find a rich variety of the kinds of articles and information that exemplify a typical issue of the current magazine.

Industrial Mini-ITX Board Pumps up with Coffee Lake

By Eric Brown

Commell’s “LV-67X” Mini-ITX board runs on 8th Gen “Coffee Lake” processors, with up to 32GB DDR4, 3x SATA, triple 4K displays, USB 3.1, and PCIe x16 and mini-PCIe expansion. The LV-67X, which shares some of the layout and feature set of its Intel Apollo Lake based LV-67U board, is the first industrial Mini-ITX board we’ve seen with Intel’s 8th Gen Coffee Lake CPUs. (Going forward, we’ll likely use the caffeinated nickname rather than “8th Gen” because Intel also applies the 8th Gen tag to the transitional and similarly 14nm Kaby Lake-G chips as well as the new, 10nm Cannon Lake processors.)

(click image to enlarge)
The LV-67X is called an industrial board, and it provides a relatively wide 0 to 60°C range and a smattering of industrial I/O. However, it has a full-height profile and bridges the gap to consumer applications. The board supports video gaming, virtual reality, medical devices, imaging, machine vision, and digital signage. The product page lists only Windows drivers, but the manual notes that the board also supports Linux.

The 170 x 170mm SBC supports Coffee Lake Core, Celeron, and Pentium CPUs that work with the FCLGA1151 socket (the full name for LGA1151). The board ships with Intel Q370 chipset, one of Intel’s 300-series I/O chips announced with Coffee Lake that supports USB 3.1 Gen2 and extensive PCIe lanes.

No specific models were mentioned, but the SBC is said to support Coffee Lake chips with up to six cores running at up to 4.7GHz Turbo, with Intel 9th-gen graphics and up to 12MB cache. That would be the profile for the top-of-the-line Core i7-8700K, a hexa-core chip with 12 threads and a 95W TDP.

The LV-67X can load up to 32GB of speedy, 2666MHz DDR4 RAM via dual sockets. It provides 2x GbE ports, 3x SATA III interfaces, a full-size mini-PCIe slot with mSATA support, and another half-size mini-PCIe slot accompanied by a SIM card slot. There’s also a PCIe x16 interface.

LV-67X block diagram (left) and detail view
(click images to enlarge)

The description of the USB feature set varies depending on the citation, but Commell has clarified matters for us in an email. There are 6x USB 3.1 interfaces, 4x of which are coastline ports. There are also 4x USB 2.0 internal interfaces.

One key difference between earlier Core-based boards is that the LV-67X taps Coffee Lake’s ability to power three independent 4K displays. The board accomplishes this hat trick with coastline HDMI and DVI-I ports and an optional DisplayPort, as well as onboard VGA and 18/24-bit, dual-channel LVDS interfaces. If you don’t want the DisplayPort, you can instead get additional VGA and LVDS connections.

The LV-67X is further equipped with 4x RS232/422/485 or RS-232 interfaces, depending on conflicting citations, with an option to add two RS232/422/485 DB9 ports. Other features include 3x audio jacks (Realtek ALC262), 8-bit DIO, and LPC, SMBus, and PS/2 interfaces. You also get a watchdog, RTC with battery, and 24-pin ATX and 4-pin, 12V inputs.

Further information

No pricing or availability information was provided for the LV-67X. More information may be found on Commell’s announcement and product pages.

This article originally appeared on on August 17..

Commell |

Raspberry Pi’s PoE HAT Ships for $20, Tosses in a Free Fan

By Eric Brown

Raspberry Pi Trading has launched a $20 Power-over-Ethernet HAT board for the Raspberry Pi 3 Model B+ that delivers up to 15W and ships with a small fan. The Power-over-Ethernet HAT that was promised with the release of the Raspberry Pi 3 Model B+ SBC has arrived. The $20, 802.3af-compliant “Raspberry Pi PoE HAT” allows delivery of up to 15W over the RPi 3 B+’s USB-based GbE port without reducing the port’s up to 300Mbps bandwidth.

Raspberry Pi PoE HAT alone (left) and fitted on Raspberry Pi 3 Model B+
(click images to enlarge)

We’ve seen an increase in the use of PoE in embedded equipment over the last year, perhaps due to the growth in IoT applications in which embedded gear must be placed in remote locations. It’s cheaper and easier to run Ethernet cable to a remote device than to extend electrical lines.

With the help of the RPi 3 B+’s improved PXE boot function, which enables network booting, “you can now dispense with not only the power supply but also the SD Card, making deployment even cheaper for a Raspberry Pi based system in your factory or workplace,” writes Roger Thornton in the Raspberry Pi blog announcement.

The Raspberry Pi PoE HAT features a fully isolated switched-mode power supply with 37-57V DC, Class 2 input and 5V/2.5A DC output. The HAT connects to both the 40-pin header and a new PoE-specific 4-pin header introduced with the B+ located near the USB ports. To enable PoE, you need power sourcing equipment, which is either “provided by your network switch or with power injectors on an Ethernet cable,” writes Thornton.

Raspberry Pi PoE HAT with RPi 3 B+ (left) and close-up of 4-pin header on B+ between the USB ports and the 40-pin GPIO header
(click images to enlarge)

The PoE HAT ships with a 25 x 25mm brushless fan for cooling the Broadcom SoC. This does not appear to be due to any additional heat generated by PoE. Instead: “We see the product as a useful component for people building systems that may be in tougher environments,” writes Thornton.

The fan is connected via I2C and controlled with an Atmel MCU chip. This setup turns on the fan automatically when the SBC hits a certain temperature threshold, a trick that requires the latest sudo rpi-update firmware.

You can add another HAT board on top of the fan with the help of some pass-through headers for the 40-pin GPIO and the 4-way header to expose the pins on the other side of the PoE HAT. Raspberry Pi Trading recommends the 2×20 pin header from Pimoroni and 4-way risers from RS and element14.

The Raspberry Pi 3 Model B+ won LinuxGizmos’ reader survey of 116 Linux/Android hacker boards. The community-backed SBC builds upon the RPi 3 Model B design with a faster, up to 1.4GHz quad-core Broadcom SoC, as well as faster Ethernet (GbE). You also get various power management improvements and faster dual-band 802.11ac and Bluetooth 4.2, which comes in a pre-certified, shielded module.

Further information

The Raspberry Pi PoE HAT is available now for $20 at a variety of resellers. The blog announcement may be found here. The product page with links to resellers is here.

This article originally appeared on on August 25.

Raspberry Pi Foundation |

SMARC 2.0 Module Serves up NXP i.MX8 Processor

Congatec has announced the conga-SMX8, the company’s first SMARC 2.0 Computer-on-Module based on the 64-bit NXP i.MX8 multi-core Arm processor family. The Arm Cortex-A53/A72 based conga-SMX8 provides high-performance multi-core computing along with extended graphics capabilities for up to three independent 1080p displays or a single 4K screen. Further benefits of this native industrial-grade platform include hardware-based real-time and hypervisor support along with broad scalability as well as resistance against harsh environments and extended temperature ranges. The SMARC 2.0 module is designed to meet the recent performance and feature set needs for low power embedded, industrial and IoT as well as new mobility sector.The new SMARC 2.0 modules with NXP i.MX8 processors, hardware based virtualization and resource partitioning are well suited for a wide range of stationary and mobile industrial applications including real-time robotics and motion controls. Since the modules are qualified for the extended ambient temperature range from -40°C to +85°C, they can also be used in fleet systems for commercial vehicles or infotainment applications in cabs, buses and trains as well as new electric and autonomous vehicles.

The new conga-SMX8 modules feature up to 8 cores (2x A72 + 4x A53 + 2x M4F), up to 8 GByte of LPDDR4 MLC or pseudo SLC memory and up to 64 GByte of non-volatile memory on the module. The extraordinary interface set includes 2x GbE including optional IEEE1588 compliant precision clock synchronization, up to 6x USB including 1x USB 3.1, up to 2x PCIe Gen 3.0, 1x SATA 3.0, 2x CAN bus, 4x UART as well as an optional onboard Wi Fi/Bluetooth module with Wi-Fi 802.11 b/g/n and BLE.

Up to 3 displays can be connected via HDMI 2.0 with HDCP 2.2, 2x LVDS and 1x eDP 1.4. For video cameras, the modules support 2 MIPI CSI-2 video inputs. The new NXP i.MX8 based SMARC 2.0 modules come as application-ready super components including U-Boot and complete Board Support Packages for Linux, Yocto and Android.

Congatec |

Compact Apollo-Lake Box PC Targets Mobile Comms

MEN Micro has announced its BC51M box PC based on the Intel Atom E3900 series, optionally with two or four cores, up to 1.6 GHz. The fanless and maintenance-free device is used in graphics and memory intensive applications in trains, buses or commercial vehicles and, thanks to its numerous communication interfaces, is highly variable.

With 8 GB DDR3 SDRAM memory, a rear accessible SD card, an integrated eMMC memory and an optional SATA HDD/SSD, the box PC has the necessary storage capacity for entertainment servers or video surveillance systems.  The BC51M was designed for mobile use in trains, buses or commercial vehicles and takes over wireless on-board functions such as Internet on board, positioning via GNSS, entertainment or predictive maintenance.

The box PC supports up to two DisplayPort interfaces with a maximum resolution of 4K, as well as two Gigabit Ethernet interfaces, one USB 2.0, one HD audio and two variable connections for serial I/O, CAN bus, MVB or IBIS. Two PCI Express Mini Card slots and two micro-SIM slots provide flexibility in implementing mobile service standards up to 4G LTE or WLAN. The system is designed for fanless operation at temperatures from -40°C to +85°C. Thanks to the integrated 30 W/24 VDC wide-range power supply, the box PC complies with the railway standard EN 50155 and ISO 7637-2 for road vehicles.

  • Intel Atom E3900 Series
  • Up to 8 GB DDR3 DRAM, ECC
  • 32 GB eMMC
  • 2 DisplayPorts, each up to 4096 x 2160 pixels
  • 2 Gigabit Ethernet, 1 USB 2.0
  • 2 slots for IBIS, GPS, RS232, RS485, RS422
  • WLAN, 4G LTE, GNSS via PCI Express Mini Cards
  • -40°C to +85°C operating temperature, fanless
  • Complies with EN 50155 and ISO 7637-2

MEN Micro |

Pico-ITX and 3.5-inch SBCs Feature Dual-Core i.MX6 SoCs

IBASE Technology has announced two SBCs, both powered by an NXP i.MX 6Dual Cortex-A9 1.0GHz high performance processor. The IBR115 2.5-inch SBC and the IBR117 3.5-inch SBC are designed for use in applications in the automation, smart building, transportation and medical markets.
IBR115 and IBR117 are highly scalable SBCs with extended operating temperature support of -40°C to 85°C and an optional heatsink. Supporting 1 GB DDR3 memory on board, the boards provide a number of interfaces for HDMI and single LVDS display interface, 4 GB eMMC, Micro SD, COM, GPIO, USB, USB-OTG, Gbit Ethernet and a M.2 Key-E interface. These embedded I/Os provide connection to peripherals such as WiFi, Bluetooth, GPS, storage, displays, and camera sensors for use in a variety of application environment while consuming low levels of power.

Both models ship with BSPs for Yocto Project 2.0 Linux and Android 6.0. They both run on dual-core, 1 GHz i.MX6 SoCs, but the IBR115 uses the DualLite while the IBR117 has a Dual with a slightly more advanced Vivante GPU.

IBR115/IBR117 Features:

  • With NXP Cortex-A9, i.MX 6Dual-Lite (IBR115) / i.MX 6Dual (IBR117) 1GHz processor
  • Supports HDMI and Dual-channel LVDS interface
  • Supports 1 GB DDR3, 4 GB eMMC and Micro SD (IBR115) / SD (IBR117) socket for expansion
  • Embedded I/O as COM, GPIO, USB, USB-OTG, audio and Ethernet
  • 2 Key-E (2230) and Mini PCI-E w/ SIM socket (IBR117) for wireless connectivity
  • OpenGL ES 2.0 for 3D BitBlt for 2D and OpenVG 1.1
  • Wide-range operating temperature from -40°C to 85°C

IBASE Technology |

Cavium Octeon-Based SBCs Provide Networking Solution

Gateworks has announced the release of the Newport GW6400 SBC, featuring the Cavium Octeon TX Dual/Quad Core ARM processor running up to 1.5 GHz. The GW6400 is the latest Newport family member with an extensive list of features, including five Gigabit Ethernet ports and two SFP fiber ports. The GW6400 comes in two standard stocking models, the Dual Core GW6400 and the fully loaded Quad Core GW6404 (shown)..

The GW6400 and GW6404 are members of the Gateworks 6th generation Newport family of single board computers targeted for a wide range of indoor and outdoor networking applications. The SBCs feature the Cavium OcteonTX ARMv8 SoC processor, up to five Gigabit Ethernet ports, and four Mini-PCIe expansion sockets for supporting 802.11abgn/ac wireless radios, LTE/4G/3G CDMA/GSM cellular modems, mSATA drives and other PCI Express peripherals. A wide-range DC input power supply provides up to 15 W to the Mini-PCIe sockets for supporting the latest high-power radios and up to 10 W to the USB 2.0/3.0 jacks for powering external devices. Power is applied through a barrel jack or an Ethernet jack with either 802.3at or Passive Power over Ethernet. The GW6400 does not have SFP Ports loaded.

Gateworks |

Fault Protection Solution Defends High-Speed USB Ports

With the MAX22505 ±40 V high-speed USB fault protector from Maxim Integrated Products, system designers can now eliminate USB port damage from all faults, including ground potential differences, up to ±40 V without the tradeoffs required by competing solutions. It protects data and power lines from industrial equipment powered at 24 VAC and 40 VDC, while also reducing solution size by more than 50% for industrial voltage applications.
Industrial environments continue striving to reduce solution footprint to increase productivity and throughput while demanding system robustness and increased uptime. As a result, there has been a trend to adopt USB vs. RS-232 on automation equipment due to a much smaller connector size. As industrial environments adopt USB to provide faster communication for applications such as real-time diagnostics, programming/service ports on programmable logic controllers (PLCs), or supporting camera vision systems, USB ports require fault protection from overvoltage and ground differences while balancing the need to support high-speed data rates up to 480 Mbps.

Damage to both the host and device side can occur in these systems, requiring a unique solution that achieves high levels of fault protection. Existing USB fault protection solutions on the market today compromise either USB operating speed or voltage/current limit protection on a device’s data and power lines. Consequently, current solutions on the market are costlier and incapable of providing fault protection at high-speed USB performance.

The MAX22505 answers this market need as a solution that combines high-speed USB fault protection (480Mbps) for industrial voltages, while being flexible enough to support either host or device applications including USB On-The-Go (OTG). It protects equipment from overvoltage or negative voltage on power and data lines, as well as ground potential differences between devices. It reduces solution size by more than 50% compared to competing solutions and ensures robust communications in harsh environments cost-effectively in a simpler design. Housed in a 24-pin 4mm x 4mm TQFN package, it operates over the -40°C to +105°C temperature range. Applications include building automation, industrial PCs, PLCs and diagnostic USB ports.

The MAX22505 is available at Maxim’s website for $2.24 (1000-up, FOB USA); also available with select authorized distributors The MAX22505EVKIT# evaluation kits are available for $110

Maxim Integrated |