SchmalzHaus logoUBW32 (32 bit PIC32 based USB Bit Whacker)
An inexpensive, simple input/output device to connect your computer to the real world.
With many pins and more horsepower. (At least compared to the original 8-bit UBW.)
By: Brian Schmalz

UBW32 beta buildUBW32 production


The UBW32 is a small board that you can plug into your computer (running Windows, MacOS or Linux) via USB. The USB connection can power the board and allows you to send it commands from the computer. These commands allow you to interface your computer to the real world - like controlling things and getting input from things. The UBW32 can plug into a standard breadboard in several different ways, or you can wire directly to it. You can power it through the USB connection or from an external voltage source. It has 3 push buttons (Reset, and 2 user-defined buttons) and 5 LEDs (Power, USB, and 3 user defined LEDs). It breaks out all of the PIC32's I/O pins to pins around the outside of the board. The firmware that comes with the UBW32 understands very simple commands that you can type to it in a terminal emulator. These commands allow it to do some powerful things, and allow your computer to do even more (when you write an application on your computer to talk to the UBW32). The UBW32 has 32KBytes of RAM and 512KBytes of Flash. It has 78 usable I/O pins, many of which can be used as analog inputs. The CPU runs at 80MHz and has significant hardware peripherals. The UBW32 works with 3.3V I/O, but all digital-only pins are 5V tolerant (as inputs) (note that some pins that look like they're digital-only actually have some analog functionality - like RC13 and RC14 which can connect to a secondary crystal). The UBW32 uses the PIC32MX795F512L 32-bit CPU from Microchip.

And you can even buy a UBW32 directly from for $40! And they even sell it with a PIC32MX795F512L now. (03/06/2011)

UBW32 Hardware Features:

(updated 03/06/2011 for new UBW32 MX795 version - note, all firmware versions work identically on both MX460 and MX795 UBW32s )

UBW32 Software Features:

If you have used a UBW or Arduino before and are frustrated by the lack of CPU power, lack of memory, lack of I/O pins, or lack of sophisticated software, the UBW32 may be just what you are looking for. While costing only slightly more than an 8-bit UBW, (and less than some Arduinos) it has significantly more power, particularly in terms of CPU horsepower.

The UBW32 is also a stand-alone development platform for the USB PIC32 chip. It contains a simple to use USB bootloader so that you can write your own code and download it to the board without any additional tools or software.  You can write your own code to do whatever you want. (Just like an Arduino or any other development board.)

If you want to use a hardware debugger or programmer with the UBW32, you can easily connect to the UBW32 using the standard 5 ICSP pins. They are located along the upper left edge of the UBW32. I use a PICKit2 (for the MX460) and PICKit3 (for the MX795) for UBW32 development. A PICKit2 or PICKit3 can plug directly into the ICSP pins on the UBW32 with a simple 5-pin header. You can also use PICKit3,  ICD2, ICD3 or RealIce to program/debug if you want. This is all optional and not necessary unless you need to do hardware debugging of your code.

The PIC32 chip is capable of doing USB OTG, USB Function and USB Host roles. There is a footprint on the bottom of the board for a USB connector that will allow you to plug any USB device into the UBW32. There is a jumper that allows you to power the VBUS 5V USB wire if you program your UBW32 to be a USB Host.

UBW32 News:

Hardware Versions:

UBW32 Hardware Versions Matrix

Eagle Files and BOM (zip)
Release Notes
N.A. N.A. N.A. N.A. N.A.
N.A. N.A. N.A. N.A. N.A. N.A.
v2.4 - First production version

v2.5 - Fixed silk screen for port E

v2.6 - New crystal, 32KHz footprint

Firmware Versions (Source code and project files - browsable):

Note: All firmware versions work identically on both MX460 and MX795 based UBW32 boards.

Software projects other people have written for UBW32 hardware:


Driver Files:

USB Framework Files:


Important Links:

(Grab the first three in order to build code for the UBW32)

Questions? E-mail me at my e-mail address

Creative Commons License
UBW32 USB Bit Whacker by Brian Schmalz is licensed under a Creative Commons Attribution 3.0 United States License.
Based on a work at
Permissions beyond the scope of this license may be available at