Posts

Showing posts from January, 2022

QEMU usb passthrough and the CC2540 BLE packet sniffer

Image
I have one piece of hardware that has stubbornly resisted the permanent move to Debian in my office, an old Texas Instruments CC2540 USB dongle that has Bluetooth Low Energy packet sniffing firmware installed on it. If you're doing anything out of the ordinary with a BLE device, such as fiddling with the advertisement data or trying to troubleshoot a GATT issue, you will eventually end up with a packet sniffer of some kind. When I originally bought it, the machine I plugged it into was running Windows Server 2016 and it worked fine. However, after I had upgraded that box to Windows Server 2019 the drivers stopped working. I had no further use for it at that stage so I put the CC2540 away. The need for a packet sniffer has returned, hence out it came again. Only now, that machine that was running Windows Server is running Debian and it appears there is no way to directly get something like Wireshark to talk to it. QEMU to the rescue (again) I do keep a Windows 10 virtual mac

That magical word: Workstation

Image
Or how I came to own a HP 8760w 17" laptop I am reading a lot of retro-computing articles lately, I grew up in the 8 bit era and I have strong nostalgia for it. It does help to be realistic though, for all the love that things like the Amiga get, they were a dead end in terms of computing. What really ate the world was the boring old IBM-PC: flickery, interlaced multi-sync monitors, beige boxes and productivity software. There was another, relatively brief path the industry could have gone down though. The Workstation was king In retrospect, it might be a bit tough to put a circle around what constituted a workstation . Is a PERQ a workstation? Probably. Xerox Alto and Star? Definitely. Symbolics Lisp machines? Not sure. Probably? The real success stories came out of Apollo , Sun, HP,IBM,NeXT,DEC and Silicon Graphics. For a time it was a hot market, especially in what was known then as technical computing: research, manufacturing, CAD, graphics, simulations. If

3D printing for prototyping: part 3

Image
Success! The trick to having this part not get stuck to the bottom of the resin bath on the AnyCubic was to print it sideways! Not sure I really needed the island on it but it made me feel better. Lychee Slicer doing the job The printed part is functional - kind of. It fits the plastic injected moulded parts, a long way from perfect but certainly good enough to get changes to the CAD roughed out before handing it off to somebody who knows what they are doing. For this part, I ended up washing and drying it a lot more carefully before placing it in UV light to harden the resin up. On the left is the injected moulded part, in the centre is the last failed print, on the right is the working print What needs to change There are 2 o-rings in the current design, one which was placed there originally but doesn't always work, and the other one suggested by a local engineering firm which does work, but the housing isn't really designed to take it. The o-ring needs to be re

Polidea's RxAndroidBle and why you should use it

Image
Bluetooth on Android: it sucks When we first started working on SmartShepherd, Bluetooth LE seemed like a logical choice for tracking interactions between animals. It's shortcomings were major advantages when you don't need an absolute location: it can't transmit far and it can only transmit limited data in an advertisement. Once it was determined that BLE was going to do what was required for the algorithm I had in mind, the implementation became fairly straightforward Testing is one thing, the real thing is much harder Of course this all fell to pieces as soon as we did our first field test. I had never had any more than 10 or so devices active at once to prove the software did what I wanted, and the Android based app we used to assign devices to animals and to read the data afterwards seemed fairly straightforward in the lab. 10 devices is a lot different to 250 though. At around the 150 mark strange things started to happen with the Android app. It locked up,