How to Use BCharge

Many thanks to rivviepop @ BlackBerry Forums
Barry Homepage: Net Direct :: Open Solutions

SourceForge Project Downloads: SourceForge.net: Files
‘bcharge’ is a utility that’s part of the Barry project – which aims to be a complete desktop toolset for interfacing your BlackBerry with linux. The purpose of the bcharge tool is to detect when a BB has been plugged in and then alter the current to the USB port – it will increase the default 100mA flow up to 500mA, which is what the BlackBerry is expecting. This is exactly what the Windows driver does.

The 0.1 version currently available (2007-02-19) will work with any BlackBerry older than the Pearl 8100; for the 8100 (and presumably the 8800, unreleased at this time) you’ll need to get the latest version of the code from CVS (only “bcharge.cc” is needed); the product ID internally has changed from ‘0x0001’ to ‘0x0006’ in this newer handset. The latest CVS version will recognize both older and newer devices, but the newer CVS code includes some special action to take when “seeing” an 8100 device.

CVS link for post-0.1 bcharge.cc: SourceForge.net Repository – {barry} Index of /barry/tools

Compiling the code is beyond the scope of this HowTo, but it’s extremely simple and uses all the standard linux-isms (autoconf, g , etc.) — if you can compile any generic application you should be able to compile bcharge; because this code interfaces with USB ports, make sure you have the ‘libusb-devel’ (exact name depends on your distro) installed so it’ll find the headers and link libraries. There may already be installable packages available download as well (.deb/.rpm) – your need to compile may vary.

There are two parts to ‘bcharge’ – the main binary itself and a “udev” script. You can use the tool without doing anything, just plug in your BlackBerry to any USB port and type ./bcharge (substitute the path if needed). This will scan all the USB devices plugged in, find your BB handset, and adjust the current flow. It’s that simple.

But, to automate the process you can copy a script from CVS (or the official downloads) to your [b]/etc/udev/rules.d/[/b] directory (location may vary depending on distro) to have everything done for you. First, copy the compiled binary (bcharge) to /usr/sbin/ and make sure it’s at least mode 0755 (executable), owned by root (for security’s sake). Now copy one of the scripts from here: SourceForge.net Repository – {barry} Index of /barry/udev[/url… to the udev rules directory mentioned above. Obviously if you’re using Debian (and maybe Ubuntu?) use the one called “Debian”. 🙂
NOTE: if you have a newer Pearl device you will need to update the ProductID in this script.
Replace this code:

 SYSFS{idProduct}=="0001"

With this code:

 SYSFS{idProduct}=="0006"

It should make perfect sense why you’re doing this. You could also just copy/paste the line to a new line and add both products at once — the choice is yours. Maybe you have both an older and newer BB device and need it both ways. 🙂

Reboot. I say again, Reboot. ‘udev’ rules don’t seem to work quite right unless they’re loaded at startup (when udev runs), so just save yourself some hassle and sacrifice your uptime with a reboot. Now plug in your BB device and it should initially flash on the handset the error message about insufficient charge, but then the message will go away in 1sec (or so) when bcharge runs and performs the adjustment.

You can use the ‘lsusb’ tool to verify the current has been changed – run ‘lsusb -v | less’ as root, find the RIM BlackBerry section and it’ll show the current USB port power flow. It should say 500mA and not 100mA.

IGT Software EEPROM GamBS2 picture

IGT Software EEPROM GamBS2

$11.69



WMS WILLIAMS BB1 BB1.5 BB2 ALL BOARDS RAM CLEAR CARD picture

WMS WILLIAMS BB1 BB1.5 BB2 ALL BOARDS RAM CLEAR CARD

$45.00



AUDI A4 B5 1999 ECU AUTOMATIC GEARBOX TRANSMISSION CONTROL MODULE  8D0927156R picture

AUDI A4 B5 1999 ECU AUTOMATIC GEARBOX TRANSMISSION CONTROL MODULE 8D0927156R

$97.32



MERCEDES BENZ E CLASS C207 2011 2.1 CDI ENGINE ECU INGITION SET A6519005301 picture

MERCEDES BENZ E CLASS C207 2011 2.1 CDI ENGINE ECU INGITION SET A6519005301

$243.29



IGT S+ S-Plus Slot machine RAM & BV Bill Validator clear set chip SP731 & EEPROM picture

IGT S+ S-Plus Slot machine RAM & BV Bill Validator clear set chip SP731 & EEPROM

$28.59



NeoBiosMasta 1.7 Neo geo mv1b mv1c Unibios adapter with Unibios 4.0 EEPROM picture

NeoBiosMasta 1.7 Neo geo mv1b mv1c Unibios adapter with Unibios 4.0 EEPROM

$27.99



IGT S+ S-Plus Slot machine RAM & BV Bill Validator clear set chips & EEPROM picture

IGT S+ S-Plus Slot machine RAM & BV Bill Validator clear set chips & EEPROM

$23.99



Arrowhead EEPROM Programmer Scantronic P-4000 picture

Arrowhead EEPROM Programmer Scantronic P-4000

$74.95



VW AUDI ECU ENGINE CONTROL MODULE UNIT 893907404 picture

VW AUDI ECU ENGINE CONTROL MODULE UNIT 893907404

$32.85



VW VOLKSWAGEN GOLF MK4 2001 ECU ENGINE CONTROL MODULE UNIT 06A906033AJ picture

VW VOLKSWAGEN GOLF MK4 2001 ECU ENGINE CONTROL MODULE UNIT 06A906033AJ

$27.98