Jaguar D2B CD-changer details

Many people ask how to build one. Let me tell you it is not very easy.

The device consists of two parts a D2B audio controller and a Raspberry PI which handles the Bluetooth streaming. The latest version of the unit user Raspberry PI Zero – the regular, not WiFi version.

The two boards connect together via 40 pin header. The D2B unit receives audio via I2S protocol from the Rapsberry PI. The two units also communicate via serial interface. The Raspberry PI is powered by the D2B audio unit. The D2B audio unit also can reset the Raspberry PI board if it is not responding to serial commands.

Here is the schematics of the D2B unit. Jaguar D2B board

The micro-controller is Cypress PSOC4 4100 series. Here is the firmware it is running.

The Gerber files that one can use to make the PCB.

The fiber optic connector is 3D printed. Here are the model files. There are 3models for the 3 parts of the connector. The optical receiver is EAPLRBA0 the transmitter is EAPLTBA0

Instructions how to built the software for the Raspberry PI board.

You would need a micro-sd card for the Raspberry PI and a Bluetooth USB dongle (The ones marked with CSR 4.0 work fine)

Computer vision mishaps

I was planning to add a Raspberry Pi camera on my soldering machine. I used a camera board from China which has the M12 lens mount. There is a variety of M12 lenses and one can play with the focus.

This is the camera board mounted on the soldering head

I finally got everything set up. I discovered this very nice camera streaming web interface package here is a picture of the web interface

The UI is simplistic, but allows control of the camera settings and while streaming is consumes only 3-5% CPU. Well done to the Raspberry Pi foundation and the RPi Cam Web Interface team.

Here is an image I captured with the camera

The focus looks good and the image resolution is very nice. However the vertical blue edge of the plastic mount is supposed to be straight. Not so much on the image. The 3.6mm M12 lens I used on the camera adds quite a bit of distortion around the edged. My other lenses are more on the telephoto side: 6mm, 8mm, 12mm and 16mm. I tired the 6mm lens and the distortion was better, but the field of view was too narrow and wan not capturing the soldering head. I ordered some more lenses which claim “low distortion”. We’ll see it they produce better result.

My initial goal was to capture a series of images and then “stitch” them together with OpenCV. Initial experiments failed miserably. First the lens distortion was confusing the stitching algorithm. I know that OpenCV has camera calibration option which can correct lens distortion, but I’ll try better lens first.

The other issue with the stitching was inconsistent lighting. I tried using my LED photo light, which helped initially. Still the lighting on some spots was low and some spots were too bright and getting lots of reflection from the PCB board surface.

I constructed this new camera head, which allowed me to mount a small ring of LEDs close to the camera.

I seemed like a good idea at the time, however it makes terrible reflections onto the PCB. So back to square one. I’ll make some combination of external photo light as well as some white LED strips. The goals is to have uniform light with minimal reflection and not to obstruct the movement of the machine.

Where are my Pies?

Bummer,

The Raspberry Pi foundation did something weird, and all Raspberry Pi model A+ disappeared from the market. I could not order anything.

A month later they announced a new board – the Raspberry Pi Zero. It was great except it was also made from unobtanium. I managed to get a grand total of one from an eBay scalper.

Anyhow, I had to design a new version of the CD-changer emulator which worked with the Raspberry Pi Zero because it looked like the days of the A+ model were numbered.

So this is the first board I did, which was just a bit bigger than the Zero itself. On the image, you can see the board in a new box for it. The Pi Zero is MIA.

Also, my SMD soldering skills have improved slightly.

LCD monitor from an old laptop screen

Just for fun, I made this contraption. Connected an old Sony laptop screen to an HDMI control board (Realtek 2660) and “voila” a 9″ LCD monitor for my Raspberry Pi.

A few more pics here.

The best part was the copious amounts of scotch tape to hold things together.

I created a programmer for the Realtek board, so I can swap the firmware with one that was suitable for this screen size.

CD-Changer emulator mounted in my car

This is one of the first working prototypes. The box has a Raspberry Pi model A+ which does audio streaming over Bluetooth. I covered the box with copper foil to try an minimize the EMI interference.