Sample: S012C03AD03AF03AF0000 03000216000000000095044B0 703 Key : S012Caaaabbbbccccllll ????????????????????????? d?e Sample: 0000014301FF 0205 00C1 0062 23230000 23230000 03AE Key : ???????????? ffff ???? iiii ???????? jjjjkkkk ???? Sample: 03D0 03AA 0095 1006002C0511 Key : gggg hhhh mmmm ???????????1 (Normally it's all on one line; split here for readability) Key: aaaa -> cell 1 voltage (hex) bbbb -> cell 2 voltage cccc -> cell 3 voltage llll -> cell 4 voltage unit = 4mV d - state: - 1 discharging - 2? - 4 waiting for battery - 5? - 6 charging battery - 7 balancing battery - 9 charge complete e - number of cells (1-based) ffff -> supply voltage (0205=12.20V) -> unit = 23.59375mV gggg - battery percentage 00AA = 17% 0300 = 77% 03AA = 94% 1000 = 410% -> unit = 0.10% hhhh - battery percentage when first connected (?) iiii - seconds elapsed jjjj - mAh in lower (1000 hex = 11 mAh; 8000 hex = 91 mAh) kkkk - mAh in upper (1000 hex = 745472 mAh; 0100 = 46592; 0001 = 182 mAh) mmmm - charge current - 1000 = 25A (unit = 6.10mAh)
import logging, traceback log_fn = 'except.log' log_fmt = '%(asctime)s\t%(message)s' log_dfmt = '%Y-%m-%d %H:%M:%S' logging.basicConfig(filename=log_fn, level=logging.DEBUG, format=log_fmt, datefmt=log_dfmt) console = logging.StreamHandler() console.setLevel(logging.DEBUG) fmtr = logging.Formatter(log_fmt, log_dfmt) console.setFormatter(fmtr) logging.getLogger('').addHandler(console) while True: try: run() except KeyboardInterrupt: raise except: logging.error(traceback.format_exc()) pass
- Headphone Jack. But it's a hassle to connect a cable all the time. And the headphone output on the HTC EVO is almost 1990s-laptop-bad; it's pretty clear that HTC cut corners on the analog filtering. The bass is badly distorted.
- USB. Apparently some head units can mount a smartphone as a USB storage device, and then play audio from it. This approach requires only 1 cable to both charge, and get audio from, the phone. And it can provide high quality given the decoder, DAC, and amp are entirely outside the phone. But, I want to control playback from the phone itself, and don't have (nor want to buy) one of the few headunits that support USB. Finally, the USB storage approach is incompatible with streaming audio over 3G (Pandora).
- HDMI. Might be possible, but still has the cabling problem.
- Phone-as-Wifi-AP: This is not so bad -- allows lossless audio streaming over IP, but, it prevents the phone itself from accessing the Internet via wifi (which is a bummer when parked outside a Starbucks).
- Ad-Hoc Wifi: Isn't supported by Android yet
- Car-as-Wifi-AP: More difficult to implement (most USB Wifi dongles don't support AP mode in Linux; I don't want to add a standalone AP in addition to the CarPC). And it would probably break internet access on the phone, as the CarPC is not a gateway.
- Bluetooth: Connect a $20 USB BT dongle and then use the CarPC as an A2DP SBC sink (or, buy/build a standalone BT DAC). Unfortunately, Android doesn't support A2DP MP3 or AptX, and SBC is a poor codec. But the headphone output on the EVO is so aweful, that a good USB DAC on the CarPC should easily beat it, even after the SBC losses. And this approach doesn't require cabling and doesn't conflict with internet access over wifi.
1191 Twitter for iPhone
730 Mobile Web
637 Keitai Web
199 Twitter for Android
114 Osfoora for iPhone
77 Tweet Button
57 Tweetie for Mac
56 mobile web
53 Keitai Mail
51 Chromed Bird
42 Seesmic for Android
42 Twitter for iPad
41 Twit for Windows
# comment while True: print('hello')
Just giving this some PageRank help, to hopefully improve Google's mostly old/wrong/useless results on this topic.
sudo apt-get install barry-util
And then plug it in.
There's also a kernel module for this. But, the userspace option above is nicer.
12 of the 20 biggest public energy companies are now non-American. And the gap increases if you count state and privately controlled companies in Russia and the Middle East.
Up and running with django-mingus.