I was tired connecting my cellphone with an old cassette adapter to my VW Golf with an Beta 5 in it. I needed something new, something cool. And here it is, a fully functional interface between the Beta 5 and any device you want to play the music with.
This project raised out of an ebay search: I just wanted to know if there is a solution to get an AUX input on the car radio. Yes there is, even complete mp3 players are available. But that's not what I wanted - at first!
Then I started digging the web for more info about the protocol the radio talks to cd changers.
The idea was to build a tiny thingy that fakes a cd changer and simply enables the AUX input (as it is available in several online stores). But during the development my ambition became greater and I wanted to read the keys pressed on the radio to remote control my RPi.
1. Understanding the Protocol
First of all this is the pinout of the radio: rkieslinger.de/steckerbelegungen/vag-stecker.htm
The interesting cell is no. 3, the blue one.
DATA IN simply is MOSI of an 8bit SPI interface with special timings between the bytes
CLOCK is SCK of the SPI
DATA OUT is the key code of the pressed key on the radio itself
The radio needs a sequence of bytes to enable the AUX input and display CD# and TR#. It looks likes this:
frame cd# tr# time time mode frame frame 0x34, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0x3C
cd# and tr# are sent inverted. So this sequence will display: CD1 TR00
mode sets the playmode (PLAY|SHFFL|SCAN)
It's been one year since I published a compiled kernel for our devices. Now I decided to build a new one and share it!
Some facts about it:
- As all of my other kernels this one uses heartbeat during boot.
- It supports the dockstar, goflex net and home.
- Some of you asked for I2C support, it's now working on the dockstar and goflex net. i2cdetect -l has the desired output!
If you encounter any missing modules for certain devices, try to compile them yourself with the given headers and give me a hint so I can include them in feature releases.
In order to install the kernel properly, you need to have initramfs-tools installed. Otherwise your device won't be able to boot! Thanks to chessplayer for sharing this info!
apt-get install initramfs-tools
Make sure you have the latest uboot installed. See 1. in Dockstar: new Kernel 3.3.3 ready to use.
In my current project I want to interface the FT220x over 1-bit SPI with an TI piccolo TMS320F28027.
After some trouble and various cups of coffee I managed the whole thing by implementing the SPI in pure software.
I wasn't able to get it working with the built in tri-wire hardware SPI as the FT uses MIOSIO and MISO to send/receive data and status respectively.
Because there is no sample code available on the web concerning this problem I decided to publish my library here. Take a look into the datasheet for further information!
Sending data over SPI to the FT1248/FT220x is quite easy: Just send a WRITE_REQ (0x00) followed by the payload on MIOSIO.
Reading is a bit more complicated: We need to know how many chars to read. Well, send a READ_REQ (0x02), evaluate MISO and read data on MIOSIO if the FIFO is not empty.
Did you want to reboot your Dockstar or Golfex with multiple drives attached? Well, that's not the problem if uboot lists the devices in the correct order.
But what if your Golfex has SATA drives attached and you want to boot from an usb-drive?
The answer my Goflex gives me all the time: Loading kernel from usb works. Starting the kernel also works. But mounting the filesystem fails, because the device names are remapped when the SATA drives are initialized. The usb-drive ain't /dev/sda anymore...
I (have) had one rule since I had to drive more than 100 kilometers to fix that: never reboot remotely with SATA attached.
The solution is quite simple:
We have to tell the kernel properly where to get the rootfs from to mount it. To be versatile, uboot is configured to boot the kernel with device names as parameter, such as /dev/sda1. But I know what I am doing and want to boot from one single device, no matter if other drives are attached or not, which could mess the device names. So the disk LABEL or the Universally Unique Identifier (UUID) is what we need.
You might say: Ha! I adapt fstab. But this doesn't do the trick.
We need to alter the uboot bootargs. You have to decide which method is more suitable for your environment.
Finally my RPi has been delivered! After unboxing it I really couldn't image that is was that tiny. First thing I did, was grabbing my 8GB SanDisk SD-Card and copying the rootfs debian6-19-04-2012 onto it.
After plugging the sd card in the RPi and connecting power supply the problems came up...
This article is not a detailed guide how to set up your RPi. It just describes my second afford to get the RPi booting flawlessly in a few words I can refer to in the future.
Problems I had
- device didn't boot at all
- no serial output on the GPIOs
- login failures with definitely correct password
- mouse/keyboard stopped working after startx
More and more providers change to dual stack to make their servers ready for the future. Dual stack means running IPv4 and IPv6 parallel on servers.
The magic date for several providers is 6 June 2012, from then on dual stack should work for daily use. I want to participate and made this site accessible through IPv6 today.
As you may have noticed, we were discussing things about newer kernels and drivers in the comments of Dockstar/Goflex: new Kernel 3.1.10 ready to use. With that in mind I started up my VM and looked at what I've got there in /usr/src - there was a compiled 3.2.1 that initially wouldn't boot. But following davy's guide to upgrade U-Boot makes that one boot.
Taking a look at kernel.org made me jealous... Here it is - a fully working 3.3.3:
First of all: Thanks to all voters!
As you can see a forum is appreciated. But over all I decided not to add vBulletin for now due to the low number of voters against licence costs.
But a free one should show the response on a forum. Till the end of the month everything should be set up.
Don't worry if you don't reach my site someday next week.
I will be moving to another server which means I have to update the A-Records and some of you might have the old ones in their dns caches. To get the new ones just wait a couple of hours or flush your dns cache.
Everything worked flawlessly, moving should be done! Hopefully you don't encounter any problems - but if you do, please email me.
Do you often buy things in the internet? Are you annoyed of copy-pasting the tracking id from the delivery confirmation mail to the DHL website?
My extension makes this problem to be a thing of the past!
Rightclick on a selected tracking id: The context menu entry takes you directly to the DHL infopage of your parcel.
On the optionspage you can make a list of urls where this extension should be enabled. In addition the language of the DHL webpage is selectable.
You can find my extension right in the Chrome Webstore (DHL Track and Trace | DHL Sendungsverfolgung | Suivi des envois DHL).
When I was visiting a friend's webblog some days ago I realized he was using a valid ssl certificate. My first thought was: How did he get the cert, I want one for my site!
With that in mind I searched the web to get some more information about certificates for free. The solution is you can get class 1 ssl certs validated for one year for private use. It allows you to secure the root domain and one subdomain of your choise.
I want to show you how easy it is to get one of these from StartSSL and how you set up apache to secure the communication with your site.
1. Creating the Certificate
First of all you need to generate the private and public key of your server:
openssl genrsa -out example.com.key 2048
Now you need to read that private key to generate certificate signing request (CSR). You will be asked for some additional info like organisation name and so on, but you can leave them default, because StartSSL will ignore them.
openssl req -new -key example.com.key -out example.com.csr