As a chronic Linux user, I’ve been a fan of thinkpads for a while – so long, in fact, that my current thinkpad’s trackpoint has been worn to a smooth, useless nub. Woe was I!
Luckily I have been brushing up on my FreeCAD/3D printing chops (well, ushering them into infancy), and this little part served as a good example project.
After taking some calipers to the original trackpoint, I was able to come up with a profile that I could perform a revolution on:
Performing a revolution on this yielded a rough 3d shape – applying a chamfer to the edge and adding some small spheres made for some grip and improved aesthetics:
To make it fit on the existing mount, I created a rectangular pocket by subtracting a cube from the rotated solid. After firing up the 3d printer (and churning through 1 poor print) I had a working replacement:
Inspired by fellow SkullSpace member Edwin, who utilised a bus pirate to re-write the bluetooth device name via EEPROM (Note – this is indeed the right tool for the job) I took the initiative to get it done similarly, with my trusty Arduino Uno and some light coding.
Now, the neat thing about I2C is that it’s multi-master capable; at least, the bus is designed to be such. This means that we can interface the EEPROM without disconnecting the usual master (ie the bluetooth IC). So in short, you don’t need to lift the pins on your EEPROM, and toast the thing in the process:
Unfortunately I forgot about this design feature, and spent quite a bit of time trying to read this IC from the arduino. It wasn’t until I took the same method to my second Bluetooth device that I realised that the first was toasted:
With that all wired up, I connected my arduino and started testing that I could read EEPROM addresses:
It turns out that the “AB Shutter” device name was not where I expected it to be, based on my binary image – the most likely explanation is that my binary processing program is buggy 🙂 So, undeterred, I wrote a little arduino sketch that searched through the EEPROM’s memory byte-by-byte for a simple “AB” pattern (the first two characters of the device name). Interestingly, “AB Shutter” shows up at 0x3B44 and 0x5B44. This is the sketch I used:
Then, knowing the address, I wrote another little sketch to over-write that address space, and confirm it by reading it back. I wrote to 0x3B44, and it reads back correctly from both 0x3B44 and 0x5B44, suggesting some paging or mirroring going on:
And, lo and behold, my PC picked it up with the new name!….almost:
The trailing ” 3″ is part of the old name – I tried over-writing it, with no success. Perhaps there is some paging mechanism I am not taking into account 🙂
Next steps include searching through the memory via arduino sketches, and attempting to locate where it stores its keyboard “key codes”, if at all. This would let me change which keys are sent to the PC/smartphone, at least in theory. Stay tuned!
Halfway through a haircut, my hair clippers died. After some serious self-reflection, I came to realize I am nowhere near cool enough to wear half a haircut:
In my half awake state, I managed to open up the clippers without electrocuting myself too severely. I suspected the switch to be bad – a fried motor usually throws off some smoke when it fails, and this wasn’t the case. I confirmed this by shorting the switch leads with a screwdriver, which made it jump back to life.
I was able to bypass the switch entirely. This means it will always be on while plugged in, but it also means I won’t look like a doofus today:
I recently acquired the Wolfson Pi Audio Card from Newark. Awesome! In this post I’m simply exploring the functionality of the new device, with some more ambitious projects to come.
The Wolfson Pi brings audio support to the raspberry pi – see this page for detailed specs. What got me excited about the Wolfson Pi, is the ability to add enhanced audio capabilities and potentially incorporate this with JACK or other linux-based real-time audio processing.
The first step is to download and install the wolfson SD card image ( available here ). I found that the unzip utility in Ubuntu could not unzip the file properly… I wound up using 7zip instead, and it worked fine. For those of us using a *nix-based OS, the following can be used to flash your SD card (note that a class 6 is recommended at minimum):
Insert SD card – use the output of dmesg to determine its device file (/dev/sdb for example). It should be the last one mentioned.
use dd to write the card – be very careful to select the right device!! dd bs=4M if=wolfson.img of=/dev/sdb. This will take a while. Physically install the Wolfson Pi onto the raspberry pi while you wait.
Once dd is done, plug it into the pi and you should be ready to go.
If you are like me and want to access it via ssh, the credentials are still the same as the raspbian distro – username pi, password raspberry. The OS uses DHCP by default.
Once you log in, you will see a number of shell scripts in your home directory. Playback_to_*.sh are used to configure the default output device. For my tests, I wanted to test recording with the built-in DMIC (onboard microphone) and output to the Lineout connection. To record and play a test file:
arecord -Dhw:0 -r 44100 -c 2 -f S32_LE test.wav , use Ctrl+C to stop recording
aplay -Dhw:0 -r 44100 -c 2 -f S32_LE test.wav
Note – don’t try to play FLAC files with aplay, the sound of mismatched formats will hurt your ears…
That’s all for now, stay tuned for more experiments with the Wolfson Pi!