Hayling Island

Hayling Island

Saturday, January 25, 2020

.. and I forgot to mention the subwoofer project

I also have a Peerless 850140 25cm drive unit for a subwoofer. I have only had it about 19-20 years, in a box with a plastic port tube and a bundle of wadding. I now also have a collection of amplifiers ready to go, and I have a suitable 6dB/octave filter that I can use to make sure it doesn't get overcooked by higher frequencies.

So I really should bring all of those bits together, along with a 30-0-30 toroid, some 4700uF 63v nice capacitors, bridge rectifier and a suitably large heatsink and let's see if we can make the Lab reverberate.

Wednesday, January 22, 2020

TBS8922 on Liberator

So I think the clue is in the top line:

[   25.228598] cx88xx: subsystem: 8922:8888, board: NotOnlyTV LV3H [card=91,insmod option]

It would seem that the card is not being identified correctly, so when it comes to loading the firmware, that succeeds but is probably the wrong code for the board. Hence when the DVB bit tries to load, nothing happen.

I'm currently using the TBS recommended open source fork of their own driver, so I have the source code tree. The code that looks after the bring-up of the card is in their source code tree, somewhere in tbsdriver/media_build/v4l/.

It would seem that it is somewhere in cx88-dvb.c that this all goes horribly wrong. That file embeds cx88.h which has the definitions of all of the boards:

#define CX88_BOARD_NOTONLYTV_LV3H          91
#define CX88_BOARD_TBS_8922                92


Ah, so somehow the code misses the correct board. I wonder if there is a way of enforcing the correct board when the machine boots ? 

So, after a bit more hacking and installing different versions of the software, and remembering to "make clean", or sometimes destroying the entire source code tree, I am now at the stage of: 

niks@liberator ~ $ dmesg | grep cx88
[   27.332697] cx88xx: subsystem: 8922:8888, board: TurboSight TBS 8922 DVB-S/S2 [card=92,insmod option], frontend(s): 1
[   27.964969] rc rc0: cx88 IR (TurboSight TBS 8922 DV as /devices/pci0000:00/0000:00:1e.0/0000:06:01.2/rc/rc0
[   27.965042] rc rc0: lirc_dev: driver cx88xx registered at minor = 0, raw IR receiver, no transmitter
[   27.965069] input: cx88 IR (TurboSight TBS 8922 DV as /devices/pci0000:00/0000:00:1e.0/0000:06:01.2/rc/rc0/input37
[   27.965228] cx8802: cx2388x 8802 Driver Manager
[   27.965262] cx8800: found at 0000:06:01.0, rev: 5, irq: 21, latency: 128, mmio: 0xf9000000
[   27.965305] cx8802: found at 0000:06:01.2, rev: 5, irq: 21, latency: 128, mmio: 0xf8000000
[   27.965408] cx8800: registered device video2 [v4l2]
[   27.965473] cx8800: registered device vbi0
[   28.698345] cx88_dvb: cx2388x dvb driver version 1.0.0 loaded
[   28.698346] cx8802: registering cx8802 driver, type: dvb access: shared
[   28.698348] cx8802: subsystem: 8922:8888, board: TurboSight TBS 8922 DVB-S/S2 [card=92]
[   28.698348] cx88_dvb: cx2388x based DVB/ATSC card
[   28.698349] cx88_dvb: cx8802_alloc_frontends: allocating 1 frontend(s)
[   29.317187] dvbdev: DVB: registering new adapter (cx88[0])

Happy 2020 and all that

It's very nearly Brexit time.

I have decided to retire hermit-like, troglodyte-ish into my man-cave, my secret den, my Lab. And as always there are a ton of things to sort out in here.

There's the modular synth. I've only been actively building it since 1992, so time it was more permanently enclosed, and started being used all together rather than in bits on a bench. That's one project.

I have a Cambridge P500 power amp - discrete of course, no integrated amps here. (well there is one in the Optonica 4000). Anyway the Cambridge has lost one channel - both output transistors (class B) have decided to go short. Replacements are here, just waiting for me to box it up. Actually I have paused, since the heat sink on it looks a little, well, weedy and I wondered if I should get a heatsink out of one of the dead home cinema amps I have and use that. On the other hand, I will probably only ever use the P500 to provide the output amp for the mini-studio.

There's a whole bunch of FPGA and Arduino projects on the bench. Some relate to music. I want to recreate the authentic sounds of a Hammond B3, with Leslie on an FPGA. I also have a project to do digital SP/DIF output music synthesis. And then there are the many projects based around a 16 x 16 illuminated matrix for controlling sequencers and all. There' also the mini project here that will take the video from the HP16500a logic analyser / digital scope, make it into something suitable like s-Video and send it to the Hauppauge video card in  Liberator, the main Linux box that drives all of the screens here so I can use the Logic Analyser and put the video big enough on the screen that I can see it without squinting. I have a mouse that works on the HP16500a so I don't need to use the touch screen overlay, etc.

But the first thing to fix is the DVB-S2 satellite receiver in the Lab. It's a TBS8922 card, full PCI, has been working for several years at the old house but I can't get it to work on Liberator. I have been struggling on and off for a couple of months - scarcely a priority to fix here given everything else that needed doing. Anyway, now I am at the point where it *nearly* works;

niks@liberator ~ $ dmesg | grep -i cx88
[   25.228598] cx88xx: subsystem: 8922:8888, board: NotOnlyTV LV3H [card=91,insmod option], frontend(s): 1
[   25.781804] cx8800: found at 0000:06:01.0, rev: 5, irq: 21, latency: 128, mmio: 0xf9000000
[   25.781807] cx8802: cx2388x 8802 Driver Manager
[   25.781890] cx8802: found at 0000:06:01.2, rev: 5, irq: 21, latency: 128, mmio: 0xf8000000
[   25.781996] cx8800: registered device video0 [v4l2]
[   25.782026] cx8800: registered device vbi0
[   25.782054] cx8800: registered device radio0
[   26.111299] cx88_dvb: cx2388x dvb driver version 1.0.0 loaded
[   26.111301] cx8802: registering cx8802 driver, type: dvb access: shared
[   26.111302] cx8802: subsystem: 8922:8888, board: NotOnlyTV LV3H [card=91]
[   26.111302] cx88_dvb: cx2388x based DVB/ATSC card
[   26.111303] cx88_dvb: cx8802_alloc_frontends: allocating 1 frontend(s)
[   26.368863] cx88_dvb: frontend initialization failed
[   26.368865] cx88_dvb: dvb_register failed (err = -22)
[   26.368866] cx8802: cx8802 probe failed, err = -22