Bluetooh OBEX file distribution

In the past month quite a number of people contacted me about bulk sending files using OBEX. Bluetooth spamming, bluntly put.

Common goals are mostly:

  • small, cheap, low-power, wifi-enabled
  • bulk sending, largely in parallel

Here are a few tips on that.

Hardware

The common request here is for small form factor, cheap of-the-shelf hardware, optionally battery powered and wifi controlled if possible.

OpenOBEX and ObexFTP support a wide range of platforms. There are prebuilt distributions for well-known open routers like Linksys WRT54G or newer AVM Fritz!Box models. You can as well go with something like a Soekris, NSLU, or alike (openbrick still around?).

  • OpenWRT seems to have some support for ObexFTP
  • Freetz has a module for ObexFTP

If you’ve got some project in that regard or even prebuilt binaries, let me know!

Software

The software requirements are specific to each project. Mostly there are basic requirements like automatic detection and bulk sending. And then, obviously, the capacity to process transfers in parallel.

These two requirements can not be intertwined easily. Automatic proximity detection requires a device inquiry loop which is a lengthy process and ties down bt resources. Upon detection you’ll then need to queue (more on this below) a SDP browse and eventually the file sending. Browsing the devices SDP records will tell you if the device accepts OBEX PUSH and on which service channel it’ll be. You can then decide to start pushing a file to the device.

Even if the software layer will support concurrency your bt hardware most likely will not. You’ll need to process packets in a round-robin fashion for all connections. And there a serious limitations on the number of connections per bt interface – 2-4 concurrent connections are common. A bunch of bt dongles (spaced with e.g. some usb cable!) will improve this. Be advised that threading won’t help you here. The hardware is restricted and threading will get you into lots of trouble like blocking the hardware. Please use an event loop, esp. on low-end hardware this yields consistent and fast processing.

You can roll your own event loop, use a higher language (like e.g. python) to run the event loop or try the GLIB extension and it’s event loop. Users reported success on all of them. I’ve got some work-in-progress patches and C examples for the GLIB event loop, let me know if you are interested in testing and improving those.

MP3 Scan + Repair

The audio repair tool to check and fix all your MP3 files.

Check and repair your MP3 audio files.

Some of your audio players might be picky or play choppy sound. Scan and fix all your MP3 files for best performance! And it's free, too!

MP3 Scan + Repair

Mouse Acceleration for OS X

Set up extended speed parameters for your mouse.

Extended mouse settings

The Mouse Acceleration PrefPane is a GUI and startup item to Richard Bentley's MouseFix.

You can set up extended speed parameters and acceleration curves for your mouse.

  • Increase mouse pointer precision
  • Speed up your mouse movement
  • Set mouse acceleration parameters
  • Full control with just two simple knobs

Mouse Acceleration for OS X

About the Author

Hi there! I'm Christian Zuckschwerdt a freelance software designer from Germany. On this blog I'd like to share some free and open source software for GNU/Linux and Apple Mac OS X.
There are also some themes and tricks for the Drupal CMS. And then the occasional hardware or gadget hack. It's all free and mostly licensed under the GPL or CC.
Write a comment or send me a mail. I love to hear from you!

About FOSS

Do you know how much free and open source software is involved in creating and delivering some basic web pages?

This triq.net blog is rendered by hexo themed with nunjucks compiled by nodejs served by apache httpd secured with openssl stored on MariaDB running on gentoo linux, edited with vim deployed by openssh, graphics done with inkscape and gimp.

triq

zany@triq.net
triq.net blog
© 1999 – 2020 Christian Zuckschwerdt.
Datenschutz / GDPR

Links