Bluetooth Bracelet Update 1
Currently, the bracelet is able to scroll a message across, but the mechanism is crude, inflexible, and probably quite hard on battery on the bracelet’s side. The reason is that while the display controller is probably able to scroll the screen (my guess – it seems to be a custom job, as there is no reference to it on the Internets), there is no reason to do so for the original application, so we have to do things the hard way. If you take a look at the script I posted, you’ll see that what I’m doing is breaking up the string, sending a call notification with each chunk, and then canceling the notification after a certain interval. The effect is a crude kind of scrolling. What I would have like to do it to load some basic SPP firmware on the bracelet so that this could be done much more flexibly, and without kludges. Here’s why I can’t. (Or, to be fair, “here’s why it’s not worth the bother”)
The Bluetooth chip in the bracelet is an SoC from CSR, who makes some nice-looking wireless chipsets. Or at least, the high-level block diagram looks nice – because that’s all I can get access to. First, I tried to look up my part number to see which model I have. This ended in discovering that I would have to register to get anything past (very vague) product briefs. I registered, cursing the annoyance a bit, only to discover that to do so, I would have to sign an NDA. I gnashed my teeth a bit more, but bit the bullet and clicked through. I had to provide them with my name, postal address, and a non-free e-mail address. I thought to myself, surely after all of this, they’ll give me a basic datasheet, and maybe if I’m really lucky, there will be a crippled trial version of their SDK. Ha – no such luck. I got met with a message telling me that since my e-mail domain was not in their whitelist (read: big corporate customer list), that I essentially signed the NDA, etc. just to get access to a minimum of documentation on a few of their products (not the one I own). Oh, and the software is $3000, with no student version or institutional discount that I can find. To make matters worse, you can only program the chip in their custom ASM-like language, and the code runs sandboxed anyway. So now I’ve signed an NDA, given away a bunch of personal information, and if I try to access what almost any other company would consider basic product information, I still get a permissions error page.
In conclusion, further hacks will not be possible for me to do with this device, unfortunately. It’s like CSR doesn’t want people to use their products or something. Since that seems to be the case, I’ll be sure to oblige them whenever possible after I graduate and start working in Industry.
- The Ffej
Merry Christmas!
20 minutes to go… Merry Christmas/$holiday, everyone!
Have an awesome holiday!
Custom Alerts on a Bluetooth-enabled Bracelet
Update: This got featured on Hack a Day! Thanks, folks!
Update 2: Modified BlueZ packages are now posted at the Files link below. Likely only one is strictly necessary, but I couldn’t be bother figuring out which one it is tonight, so there ye go.
Update 3: The link to the DX Product Page was wrong. The one that was linked seems to be an enhanced version of the one I have. I’d be interested in trying it out if it’s substantially different, but it’s not in the budget.
[This is a follow-up to this article]
Well, it’s that time of year again – the time when I recover from exams by staying up far too late working on backlogged fun things. One of those things was the Bluetooth-enabled bracelet I ordered this spring, which I had been meaning to poke at a bit more. I now have it displaying (almost) arbitrary text, and have a working demo script in Python that shows the capabilities of the bracelet. I don’t feel like rewriting everything in the readme, so I’ll just link to it here. I will however mention the disclaimer that this is a nonstandard hack, completely experimental, and would probably make the Bluetooth standards body members gnash their teeth. Use at your own risk. Here’s a pretty picture!
Files: http://adrestia.creativemisconfiguration.com/files/ffejery/misc/bracelet-hack/
Hack a Day Challenge: http://hackaday.com/2009/02/17/hackit-hackable-bluetooth-bracelet/
DX Product Page: http://www.dealextreme.com/details.dx/sku.19489
Happy Hacking!
- The Ffej
COMING, THIS CHRISTMAS…
…a non-zero amount of Blog Content! Wow! How about that?
Ahem, yes, anyhow. I’ve been crazy busy with school, and a project that I can’t talk too freely about at the moment, which is why you haven’t seen anything here for a while. Rest assured, I have been blogging in my brain, and have a bunch of backlog to share once exams are over. In recent news, I got a loaner N900 from Nokia (for the aforementioned project), and I love it. Some of the content pertains to that, and specifically to my experience programming for it. The Ffej will be back next week, with any luck.
Cheers, and Merry Christmas/Other seasonal holidays
- The Ffej
How *NOT* to Write a Multiple Choice Question
I had an exam today, in a course I won’t name. It was entirely multiple choice, and while most of the exam was normal, one question made me rather confused. This was the format of it (I forget the actual question):
A) Answer One
B) Answer Two
C) Answer Three
D) Answer Four
So far. so good. However, below that, this was written:
A) D
B) C
C) A
D) B
Wait – what?! I fail to see why redundancy was needed; it looked like the first block of potential answers had been scanned/photocopied into the main body of the exam, but that still doesn’t make much sense. But redundancy wouldn’t be bad if it weren’t for the confusion that was added. How does it make any sense to mix up the choices for the actual answer? It boggles my mind…
So yeah – don’t do this on tests.
- The Ffej
The Third Kind of Free
Everything is Free. This is the Third Kind. Buy your t-shirts here.
Great Moments in Journalism
28 August, 2009: The BBC uses the phrase “Epic Fail” in the main text of a news article. Epic Win!
15 September, 2009: The New York Times Blogs quotes Urban Dictionary. Apparently the Oxford doesn’t have a definition for “*facepalm*”.
If you’ve seen anything else like this, tell me in the comments, and I’ll add it to the list.
- The Ffej
Einstein Maemo Port – Beta Release
This is just a placeholder for now, because it’s almost 4am. Check out this thread for details: http://talk.maemo.org/showthread.php?p=317795
I’ll write something real tomorrow
Goodnight,
-The Ffej
Arch Schwag!
As I’m sure I’ve mentioned on this blag, I primarily use Arch Linux for my personal boxen, as I like its configurability, and KISS philosophy (I have a love-hate relationship with the accompanying DIY philosophy, but that’s another discussion). Because I love Arch so much, I decided to purchase some schwag to show my support, specifically, the beautiful silver pendant they have in the Schwag Store. These pendants look even better than the picture on the product page; I was really impressed with the workmanship, and the Arch logo is just cool to begin with. The lower portion of the ‘A’ has a brushed finish (I love brushed metal), and the upper portion is finished normally. When I ordered, I didn’t realize that the pendants were made on-demand, but luckily, production and shipment were quite fast.
Here’s a picture!
-The Ffej
Internet Sharing with the N810, or “How to make a $400 WLAN adapter”
I’m currently living in the top floor of a house, with the basement rented to another tenant. Being the poor student that I am at the moment, I couldn’t afford Internets for the whole summer (*gasp*), but my neighbour agreed to let me share hers. The problem was that my desktop has no wireless card, and as mentioned, I’m currently poor, so I can’t buy a USB dongle. Thanks to Macer and Luke-Jr on #maemo, I got this my N810 set up to share its wireless connection with my desktop over USB networking.
This guide assumes a Linux desktop with usbnet support available (try running modprobe usbnet as root to find out if you have the module), and an N810 with root access enabled. I’m going to also assume you have the PC Connection Manager installed on your tablet, as it makes things simpler for most people, and also quicker to configure on the fly.
- On the Desktop: as root, run
modprobe usbnet
ifconfig -a
this should list several network interfaces, and one of them should be called usb0 (or some other number, if you are already using USB networking for something else). Write down the address listed under wlan0
- On the N810: plug your Nokia USB cable into the N8×0, and into your desktop. Then run the PC Connection Manager applet from your tablet’s control panel. Click “Advanced”, then the ellipsis (…) button at the top. Click “New”, and name our profile something like “HappySharing”. (It really doesn’t matter what you call it.) Select that profile, and click “Select”. Under the Tool Manager tab, uncheck anything you don’t want. If you don’t know what it is, just uncheck it – it shouldn’t affect what we’re doing, but if you don’t know how it works, you probably don’t want it on
. Under the Network Manager tab, under “USB Network”, select “Network” from the combo box. Then enter the following in the text boxes:
IP address: [same as your N810's wlan0 address, noted in the first step]
Gateway: [Whatever your router/gateway's IP address is]
Network mask: [for most people, 255.255.255.0]
Click “Save”, and then “Apply”.
- On the Desktop: as root, run
ifconfig usb0 192.168.x.y up
route add default dev usb0
Where x is the same subnet as your wireless router (usually 1 or 0 for consumer models), and y is an unused static IP address on your network (check your router settings to find out where the DHCP-assigned addresses start, and choose a number lower than that).
- On the N810: as root, run
route add -net 192.168.x.y netmask 255.255.255.255 dev usb0
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
Where x and y are the same as in the previous step.
After this is done, everything should work. Try pinging something from your desktop (you’ll need to set up static DNS servers – 4.2.2.1 and 4.2.2.2 work fine, if you don’t know any others off the top of your head). Each time you unplug your N810, you’ll want to use PC Connection Manager to select the “None” profile, and every time you want this set up again, you’ll have to switch back to the profile you created, and then redo the last two steps.
I may well have forgotten some detail, or made some assumptions in writing this other than what I mentioned, so if you notice anything that doesn’t look right, or doesn’t work, please let me know in the comments.
Happy forwarding,
- The Ffej


