USB 32-Bit Whacker - PIC32MX795 Development Board

The new version of the UBW32 now uses the PIC32MX795 IC. Based on the work of Brian Schmalz, the UBW32 is a small development board for the new PIC32MX795 32-bit CPU from Microchip. The UBW32 is breadboard friendly and includes all of the external circuitry needed to get the PIC32 up and running. Power can be provided over USB or from an external source. It has three push buttons (Reset, and two user-defined buttons) and five LEDs (Power, USB, and three user defined LEDs). All of the 78(!) of the PIC32's I/O pins are broken out. The board comes pre-loaded with a USB bootloader and special UBW firmware that accepts simple serial commands to control the various I/O functions.

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 is just what you are looking for! While only slightly more expensive than the 8-bit UBW, the UBW32 has significantly more I/O and CPU horsepower.

The UBW32 is also a very good 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 programmer, tools, or software. If you need low-level debugging, you can also attach an ICD2/ICD3 or other PIC debugger.

The PIC32 chip is capable of doing USB OTG, USB Mass Store, USB Virtual Com Port 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.

**Note: **This product is a collaboration with Brian Schmalz. A portion of each sales goes back to them for product support and continued development.

  • PIC32MX795
  • 128KBytes of RAM
  • 512KBytes of Flash
  • 78 usable I/O pins
  • CPU runs at 80MHz
  • USB Bootloader

USB 32-Bit Whacker - PIC32MX795 Development Board Product Help and Resources

Updating Firmware

There was a customer that provided additional information about updating the firmware on the board. Besides the documentation provided from Schmalz [ ], try looking below for more details on updating the USB 32-Bit Whacker:

To update FW from the shipped version 1.4 to version 1.6.5:

0.) Make sure you can access the device using a terminal like PUTTY. Type "V" to get the current version of the FW.

1.) Download the .hex file from Schmalz's UBW32 under the section labeled Documentation [ ]. The latest is v1.6.5 [ ].

2.) Download the loader [ ] and extract it to any folder.

3.) Follow the steps here to upload the new FW. When instructed to start the loader, open HIDBootloader.exe from STEP 2 => [ ].

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

2 Soldering

Skill Level: Rookie - The number of pins increases, and you will have to determine polarity of components and some of the components might be a bit trickier or close together. You might need solder wick or flux.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Phoenix2 / about 13 years ago / 3

    Hey just a helpful comment for those of you that are porting MX460 code to the new MX795, check out the "APPENDIX A: MIGRATING FROM PIC32MX3XX/4XX TO PIC32MX5XX/6XX/7XX DEVICES" in the PIC32MX795 datasheet above. The way that certain interrupts are handled is different.
    Hopefully my couple hours of digging can save someone else some time.

  • prittsjm / about 10 years ago / 2

    Brian Schmalz's website is down. Are there any other websites where I can download the UBW32 bootloader and find documentation/example code?

    • Member #601395 / about 10 years ago / 2

      We use the same bootloader in RFIDler, so you can download the precompiled hex here:

  • Member #90911 / about 9 years ago * / 1

    If you are new to PIC32 you might find it intimidating. There is a lot of reading for sure. Just to avoid having to go back to the datasheets all the time when I change the device I created a library to streamline the process. It is available for free at with instructions, code examples and Fritzing schematics. Enjoy!

  • kiaas / about 11 years ago / 1

    I'm looking to make a DIY ARM based laptop, and I'm wanting to use a laptop keyboard and mouse (the little dot), as well as monitor battery levels. Would I be able to configure this to act as a HID mouse and keyboard, as well as something to report battery levels to the OS via USB?

  • Microneeds / about 12 years ago / 1

    Hey All,

    I bought the UBW32 from sparkfun and I was trying an example after I downloaded and installed MPLAB IDE ,C-32 Compiler and Microchip Solutions. Now I am trying to upload the code via the HID bootloader, but when for example I upload HelloUSBworld code, it uploads and when I reset the device it does not work. Can you please help me? are there any step by step instructions how to set the settings in the mplab ide. I used but still cannot work properly.

    • Please let me know at my e-mail address if you are still having trouble and I can walk you through the process.


  • Microneeds / about 12 years ago / 1

    I wish to ask you guys some questions about the 32-bit whacker, does it need a programmer such as pic kit ? or it can work with the USB and download the code to the PIC?

    • The UBW32 does NOT need a separate programmer hardware. There is a free application (HIDBootloader.exe) that you can download from the UBW32 website that will allow you to send a new HEX file over to the UBW32 via USB.


  • Dizzy / about 12 years ago * / 1

    This is a great product! I have both the MX460 and MX795 versions.

    I needed a logic analyzer and made one with the MX795 board and OpenBench LogicSniffer, CoreTimer is a great MIPS core feature!

    By the way, procdefs.ld should be updated as MX795 has more ram...

    • Dizzy, you are absolutely correct on all fronts. I'll try to separate out MX795 and MX460 projects with updated procdfs.ld files soon. Thanks-

  • Bogdan Kecman / about 12 years ago * / 1

    If you are upgrading from 460 to 795, don't forget to setup compiler parameters for new config, mplabx do not copy them (I spent a week figuring out why is usb host not working only to see that no heap was allocated in ld settings)

  • Member #332935 / about 12 years ago * / 1

    Do I need the windows driver to get this working? I can't install it in my computer.

    Do I need a driver if I am using the HIDbootloader.exe

    • Do do the bootloading, you will not need a driver (because it is a HID device and all OSes have HID drivers already). But if you run the stock firmware, it will want to enumerate as a CDC ACM serial port, and you can get the .inf file for that here :

  • Anunakin / about 12 years ago / 1

    UBW32 with PIC32MX460 and PIC32MX795 are supported by Pinguino project, that give you the power of a full open source gcc, with optimized code and easy way of Arduino language.

    • And both UBW32s are supported under the MPIDE (chipKIT Arduino fork) environment as well. They're very useful boards when you need more permanent access to the pins than with a chipKIT UNO32 or MAX32 board. *Brian

  • Member #117293 / about 12 years ago / 1

    Is there any hope of being able to pay a buck or so more and get one prepopulated with the crystal for RTC? You don't carry the caps, I'm trying with the crystal, but on a breadboard it feels like it'll be impossible to get the timings right, and I hate soldering SMD. If you'd build it, I'd buy it. A lot of them possibly. :)

  • ndrizza / about 13 years ago / 1

    Could someone please give me a short example of how i can set a pin HIGH/LOW including the definitions.

    • #define ... ...Pin assignment...
    • set it to high
    • set it to low

    I'm trying to understand the LATE, LATEbits.LATE3, TRISE but i dont understand it.

    If you have a link to an informative beginner website I'd be happy too.


    • ndrizza / about 13 years ago / 1

      I found it: for new useres this is a good place to start:

  • Member #15807 / about 13 years ago / 1

    Am I being daft or can you not mount the Sparkfun recommended USB connector to the bottom and still plug the board into a solderless breadboard? It seems that the height of the USB type A plug is exactly the same as the commonly available .100" header pins. There isn't enough room to hang the USB plug off the end of the breadboard either. I'm going to fire up the belt sander and see if I can remove some metal.

    • Nope, you're not daft. Once you solder on any connector to the underside, you will not be able to mount to a breadboard unless you use longer pins. This is just the nature of putting connectors on the bottom of the board - it can't really be helped.


  • TitanMKD / about 13 years ago / 1

    Hi SparkFun,
    I would like to buy only the UBW32 PCB (without any components) can you make me an offer ?
    Best Regards

    • If you want, the design files are available on my UBW32 website, - you could have the board made at BatchPCB or any of the other PCB vendors out there.


  • Member #241599 / about 13 years ago / 1

    RetroBSD is a port of 2.11BSD that run on the UBW32

    • Serge V. / about 13 years ago / 1

      MIPS developer's blog:

    • Member #241599 / about 13 years ago / 1

  • Member #232506 / about 13 years ago * / 1

    problem solved

  • w0fms / about 13 years ago / 1

    Great that the version with the 'MX795 came out. When is the plug in PHY board for Ethernet coming out? :O)

  • skip2 / about 13 years ago / 1

    I havent had this much fun since I found a box of blasting caps near an old bridge. This uP is fast, lots of room for all kinds of data and code. the StickOS makes this a so simple thing to program. the IC/sp com code makes io a breeze.
    thanks to all theose who have contributed.

  • Aasanchez / about 13 years ago / 1

    this board say CPU runs at 80MHz but in the schematic appear 8Mhz??? Why is this...

    • Sleepwalker3 / about 13 years ago * / 1

      @Assanchez -
      Because it has a Phase Locked Loop (PLL) internally and the core freq can be set by software parameters to be via the PLL up to 80MHz - Pretty cool.
      The Oscillator Freq (ie. 8Mhz) can be Divided before going to the PLL and the PLL can be Multiplied/Divided, so you can run at lower frequencies if you like = lower power drain
      Hope that helps explain it (I know I was confused at first) :)

  • Member #69809 / about 13 years ago / 1

    I'm the proud owner of one of these dev boards and i've used it with great joy. Up untill now, I've powered the device through the USB connection but since I'm now using it to control my lego robot, I want to use the little white powersocket that is attached tot the board.
    Problem is, and this might be a really stupid question, I don't know what kind of connector it is and where I can get the plugcounterpart. Are they available on sparkfun?

  • rys / about 13 years ago / 1

    I have a question and hope someone can provide the info:
    I need to be able to drive 2 brushed DC motors with incremental encoder feedback. The motors draw about 1 amp each.
    I want to use the PIC32MX795 Development Board to do that but I cannot do any hardware development and was wondering if someone can suggest: is there an H-bridge that plugs directly into this dev board's PWM outputs and if there is a an opto-isolated encoder daughter board that can also be used by the PIC32MX795 Development Board.
    This is a simple system but I cannot spend the money on industrial components that cost $100's.

  • tcmichals / about 13 years ago / 1

    Can the PICKit3 do source level debugging for this version of the UBW32?

    • Yes, but everyone should be aware that the PICKit2 does NOT support the new MX795 CPUs. So you'll need a PK3 or better to program/debug this new guy.

      • Jan Rune / about 13 years ago /

        The ICD2 should be able to program the 795. I ordererd a PK3 before i knew...

    • Phoenix2 / about 13 years ago / 1

      Yes, I am using a PICKit3 with MPLAB v8.66 and programming/source debugging the new MX795 model.
      OS: Windows 7 64-bit.

  • tcmichals / about 13 years ago / 1

    is there a way to get a Schematic of the old USB 32-Bit Whacker - PIC32MX460? I need to compare the pinout to see where things changed

    • Send me your e-mail address and I can send it to you. Because the two chips are so similar, I did not update the schematic symbol to the new part, so you'll find there are no pinout differences.

  • Rich T / about 13 years ago / 1

    I just posted a quick port of StickOS to the UBW32 with PIC32MX7.
    You can find a bootloader version at:
    Happy on-chip software development! :-)
    -- Rich

  • Prodtos / about 13 years ago / 1

    Just a quick question @EmbeddedMan, maybe you would know if i can use this new ubw32 as a replacement in a project for an old one, like in pinout compatibility or something (Not planning to use CAN or Ethernet yet for my project)

    • Yes. The MX795 is source level compatible with the MX460. So you should re-compile your code. It is also pin compatible, I believe. It is not binary compatible, although it is close. The location of the UART registers are the only thing I know of right now that will prevent a binary built for the MX460 from failing on the MX795.

  • Rooster / about 13 years ago / 1

    Don't forget that it does CAN and Ethernet too !

  • Superteck / about 13 years ago / 1

    The reason I do not use Microchip is the cost of a decent C compiler. AVR has a good C compiler, and FREE. Any recommendations, I am kinda attached to my arm and leg and do not want to give either up for a C compiler, or have to use cripple-ware...

    • You know, I hear this at least once a week. For some reason, there are a large number of people who believe that you have to pay for Microchip's C compilers. This is NOT TRUE! I use the free versions every day, and they work great. They have free versions of C18 (for their 8-bit PICs), C16 (for their 16-bit PICs) and C32 (for the 32 bit PICs like on the UBW32). The latter 2 are GCC based. Are they as awesome as the relatively expensive Hi-Tech compilers? Nope. But Hi-Tech has free versions of it's amazing compilers too. Lack of a C compiler is not a good reason to stay away from Microchip parts. Do I wish C18 were a better compiler? Hell-yah, twice over. But all of Microchip's sample code works with their free versions, and works well.
      The only thing 'cripple-ware' about Microchip's free compilers is some extra optimizations are left out. Other than in one very rare circumstance related to a USB bootloader with C18 has this ever been a problem for me.

      • Sleepwalker3 / about 12 years ago / 1

        Would you recommend the C32 compiler or the free Hi-tech one?

        • I use C32 exclusively (the free version). I've heard lots of great things about Hi-Tech though. But now that Microchip owns both, they've merged them and created XC32, which is a very good compiler (complete C++ support). The UBW32 code is all written with C32, but should be usable in XC32 with very few changes. The free version of XC32 is not limited in any way except you can't use -O2 or -O3 (they give you -O1 for free).

  • Not sure if anyone noticed a typo:
    "All of the 78(!) of the PIC32's I/O pins are broken out. "
    should be more like
    "All 78(!) of the PIC32's I/O pins are broken out. "

  • Member #44100 / about 13 years ago / 1

    Same here... I wish I knew... Nevertheless, great news!

  • Member #26607 / about 13 years ago / 1

    What a coincidence. My (now deprecated) DEV-08971 just arrived today.

  • Just wondering, is this a 4 layer pcb?
    side note... i want one heh but the bottom pins including icsp gets me upset since theyre on edge

    • Nope, just a 2-layer board that took me for-freeking-ever to route because of the much larger 8MHz crystal and the new 32KHz crystal footprints.
      Sorry about those couple pins on the edge - what I do is put male headers pointing down on each of the 2 long sides, then male headers pointing up on the remaining short edge. That way I can plug in my PICKit3 really easily for debugging/programming.

      • ndrizza / about 13 years ago * / 1

        i just found the footprint for adding the crystal.. where can i buy the suitable crystal and the pfs? (I have the lates version of the UBW32)

      • skip2 / about 13 years ago / 1

        Well it was time well spent. I am making a code archive database / IDE for the StickOS. I know people want C but this StickBasic is just fine for all but the tightest applications. really though it can do it all.

      • cool thanks . i know it had to be a huge headache to do :)
        i assume batchpcb produces these PCBs? i was going to make my own after buying this but realized my vias would be too large to get the size you achived. ill get one or two this month.
        thanks for quick response!

        • Well, SparkFun makes the boards and they have their boards made at Gold Phoenix. So does BatchPCB. That doesn't mean that they use the exact same 'rules' for all SparkFun boards and BatchPCB board though.

          • SomeGuy123 / about 13 years ago / 1

            Sparkfun doesn't use Gold Phoenix. Only Batchpcb does.

          • thanks for the info. I hear batchPCB is great. I never used a PCB Fab. before. I hope my first time doesnt go bad heh :D

Customer Reviews

4.8 out of 5

Based on 5 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Great board, when used with MMBasic it does all I required. If you ever want to upgrade it a micro sd card slot would complete the perfect board. You could remove the power connector and place it next to the USB connector. For most people a surface mount SD card socket is difficult to fit and any worthwhile project needs an SD card.

Mike C

Lots of I/O Without Unwanted Frills

The UBW32 remains at the center of my MIDI Encoder/Decoder for Allen Organs (and others). I program in C using the extensive Microchip libraries along with the free IDE and compiler. My application scans up to three organ keyboards and the pedal board. It handles up to 64 pistons and 96 SAMS (magnetically switched stops), encodes up to eight analog potentiometer inputs, switches a sparcfun power relay, controls a four output Allen organ power supply, drives a 2x16 LCD display, and provides six status outputs for LEDs.

The UBW32 has been reliable and a pleasure to work with. Additional information can be found at My site is presently under construction but will include a project schematic and programming files soon. There is a PCB shared at OSH Park.

The best way to get into PIC32

  • The least expensive PIC32 board, last I checked.
  • Good for those of us who like to have everything on breadboards.
  • PIC32MX795 is popular in a lot of other dev boards, so googling things is easy.
  • In addition to the UBW32 bootloader, I suspect that bootloaders from other PIC32MX795 boards would probably work too. And ChipKit apparently works with this too.

Great Pic32 starter for any project

I have used the 32-bit whacker for a number of projects. My first was a antenna used for satellite communication, the second and third was a CNC router. The Bit Wacker was used, mostly, to control the stepper motors. All the pins of the PIC32 are brought out to the peripheral of the board making it easy to connect these to an external circuit. There are on board leds that can be programmed along with the small switches which I found useful for status.
Schematic of the board is available and easy to read, and there is starter software to use the USB, although very dated, but a good starting point. Bottom line is if you are planning to program a PIC32 and need an easy way to get started, this is a good board to use.

Fast and high capacity PIC Board

Since years a good board with a little of problems inside de PIC chip. Have to reduce the operating voltage by 0.2Volts to reduce crosstalk when I process video signals.