The USB Bit Whacker is a spectacular little development board featuring the PIC18F2553. Based on the work of Brian Schmalz, the UBW is a small board with a command interpreter for basic input and output control. When attached to a Windows/Max OS X/Linux computer, the UBW will show up as an RS232 Com port! You control the individual I/O pins on the PIC through simple serial commands. Board comes fully tested, preprogrammed, and assembled as shown.
The 18F2553 also comes pre-programmed with a USB bootloader. This means you can create HEX files using any compiler or assembler (C18, CC8e, SDCC) and then load that HEX file onto the PIC without an external programmer - directly over USB! Power is obtained over USB.
Please download the Microchip USB Bootloader below. Please see the UBW home page for more information.
You may start with downloading and installing the latest release of Microchip USB Framework Installation file. The Release Notes provide details on the location of the Comunications Device Class (CDC) RS-232 Emulation driver INF file location. When installed the S1 LED will begin to blink.
**Note: **This product is a collaboration with Brian Schmalz. A portion of each sales goes back to them for product support and continued development.
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.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
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.
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
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.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
Based on 1 ratings:
1 of 1 found this helpful:
I bought this neat little module to do just what it was designed for - bit whacking. The USB-Serial port worked well in addition to the easy-to-follow firmware update procedure from the bitwhacker web site. The command set was extremely easy to use to get the bit whacking job complete in a short time. I highly recommend this module to anyone who likes bit-banging.
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.
Log in or register to post comments.
This is an excellent mini-USB development board. Wonder why Microchip does not sell low cost development boards like this? With Microchip's you have to buy an additional programmer.
The device behaves a little poorly for me on Ubuntu Linux with 1.47 firmware (or the 1.43 firmware it came with). I can connect to it, send it commands, etc. But, occasionally my python code will fail to write to the device reporting back an OS level error. This is sometimes, though not necessarily always, accompanied by the device disconnecting and reconnecting itself. In doing this it maintains power - if I have some pins set to output high, they stay high. What I see from the kernel is:
This means that my script can no longer control the device unless I completely re-initialize. Is this something that anyone else has seen? I'm going to try writing some controller code in C to see if it has to do with the way that Python interfaces with devices via RS-232, but I'm skeptical as Python has been doing that for a long time.
Did you happen to have a situation where you tried to drive too much current via the pins? It might be that your motherboard's USB root hub thought there was a short (due to too much current being drawn) and shut the port down. Thus the "port 2 disabled by hub (EMI?), re-enabling..." message. What do you have connected that might be drawing too much current? I don't know if the UBW firmware negotiates for more than the standard 100mA that is given to anything that plugs in (they can negotiate for up to 500mA IIRC, and more for a 3.0 port).
Just some thoughts.
Sorry, I should have included that these boards are the 18F2553 24MHz types. Thanks.
Hi Brian - I'm a later comer, got a couple UBW's about a year or more ago haven't played with them until now. I have a Win 7 64 system and pickit 2. Without changing anything on one of the boards, if I plug it in and go into bootload mode, it attaches and then de-attaches rather regularly. It shows as an unknown device and I am unable to install drivers even after going through all the steps recommended in this case. However, in UBW mode, it attaches and shows as a com port. I've tried recompiling the bootloader code, I've tried reburning the bootloader code that I can see that you're offering. Any ideas? Thanks.
I bought one of those boards, plugged it to my pc and got the main firmware working. Then i tried to program some new firmware to it and now the green led just stays on and my pc can't recognize it anylonger. Is the board just broken now or is there something I can do?
It depends. If you accidentally allowed the PC programming software to over-write your config bits, you may have lost the ability to use the bootloader to re-program your board. In that case, I suggest picking up a PICKIT3 or PICKIT2 programmer. That will bring back your board.
If you try to put it into bootload mode, does it get recognized by the PC bootloader application? (PDFSUSB.exe)
Can the default UBW firmware support an input that latches a change until cleared? Or do I need to write my own interrupt routine?
For that you will need to modify the existing firmware. At present, we don't have any latching type functionality in the code. If your input signal is not very fast (say longer than 2ms) then you can get by with polling from the PC.
I saw this product has not had a post in quite some time so I just wanted to say that this little board is incredibly useful. Great for small projects that need simple yet effective Micocontroller-PC communication. The bootloader makes it very easy to upload customized projects over USB. Very handy if you don't have a PIC kit handy. Although be careful and know what you're doing when editing any of the configuration bits because doing so may affect the bootloader and you'll have to re-program with a PIC programmer.
Can this board be used for a "K" type thermocouple?
Hi, purchased one of these and had it up and running. Upgraded to FW 1.4.8 and everything was working fine until I tried to load my own HEX.
I turned WDT off in the project and tried programming it. It gave me a warning asking whether or not I want to use my config bits (Yes), the board's (No), or the current (Cancel). I selected "No" but then it failed anyway... Now my PC can't recognize the UBW and the UBW no long has the flashing LED's for programming (both Power and S2 led are on solid).
Did I brick my UBW? Thanks...
Found my answer in the quick start guide. And the answer is YES.
Got Sparkun UBW with FW D 1.4.3, but failed to upgrade to 1.4.8 :(
Both leds remain on, no blink, Windows can't find any driver.
* Failed with FW-D-2455.hex or 2553 from 1.4.8
* Failed with FW-D-2455.hex or 2553 from 1.4.7
* OK with FW-D-2455.hex from 1.4.5
Drivers from "Microchip Solutions v2010-10-19"
Someone knows why ? Found nothing on UBW site :(
I suspect CLOCK-FREQ 48000000 in HardwareProfile-UBW.h...
Got it - you need the drivers from the UBW website: http://schmalzhaus.com/UBW/UBWinf.zip
We no longer use Microchip's generic example PID - we have our own PID (from Microchip) just for UBW based boards now, and they need that modified INF file from that zip.
Oh thanks a lot, it works :)
I thank this pack was extracted from the Microchip's one (that I used for 1.4.3, following QuickStartGuide from SparkFun) because of "Updated INF (driver) files to use latest from Microchip" but I was wrong...
And thanks again for all your great work!
It would be nice to get the eagle files for this board. I wanted to make some modifications directly on the board. I have bought at least 5 different UBW from sparkfun over the years and bread boarded dozens of them.
Now its time to make a pcb with some permanent additions.
Email email@example.com, we can hook you up
Hello Everybody, does someone knows how well this is working under macosx 10.6?
As far as I know, there are no known issues with any version of Mac OS X. It just kinda always 'works'. On my 10.6.4 Mac it appears as /dev/tty.usbmodem411
Has anyone tried getting this to work in Windows 7? I've had it working great in XP, but 7 doesn't like the drivers when I try.
Somebody who knows way more about Windows 7 may be able to edit the inf file properly to get it to work. Until then, we need to wait until Microchip officially releases an update to the USB files to support Windows 7. I have no idea when that will be but I'll ask. Sorry!
That's okay, thanks for the response. I'll report back if I can get it to work later.
Windows users: even though its a class-compliant USB serial device I believe you still need to install a "driver" (actually just a .INF file) from Microchip (comes with the USB Framework). On other OSes it should work as-is.
I agree - I'm using the Bit Whacker on Snow Leopard (10.6.4) without any driver changes. On Windows, I have to 'install the driver' which consists on finding mchpcdc.inf and pointing the hardware configuration wizard at that file. I downloaded the Microchip Application Library the first time thinking that there was a real driver but then realized that it is really just the .inf file that is needed (tells Windows to use usbser.sys). mchpcdc.inf is available on forums for those that don't need Microchip stuff.
I also have the same problem. My Vista and XP fail to recognize my UBW. No blinking led... just power LED light up.
Its happen MOST of the time and not ALL the time. So, we can rule out EMPTY FIRMWARE factor. Its looks like hardware stability issue. If I leave USB connected for long time (around 24hours) its will be detected.
Anyone from SPARKFUN could clarify this? I buy 3 sets, and all of them behave like that.
Hilmi, contact me via e-mail and I can try to help you out. Brian_schmalz@yahoo.com
hi i purchased this device, at first, it worked fine appearing as a new serial port in my PC and testing commands. The problem is that now it doesn't appear any serial port away from PC's serial ports, and also the only led is the Power led, before a led used to blink, i remember. I tested it into another PC and the same problem happens. QUESTION: What should I do to have it working again???