Jump to content

Re: hardware problems


rutgerv
 Share

Recommended Posts

Hi guys,

I'm happy to announce that I have finished the hardware of my 8xMBSID and today I ran the MBSID V2 software for the first time. At the moment I only use one core and two 6581 SID's. Some issues on my side that still need to be fixed:

1.  Grounding problem. Connecting the local ground to the earth pin of the wall outlet introduces loud hum. On the scope it looks like the positive part of a sine wave only and it varies heavily over the ground tracks of the PCB and the (also grounded) metal case of my rack. It seems to be an internal groundloop since it even shows up on the scope when no other cables (audio/midi) are attached. When I 'lift' the ground everything is fine. Since I have 230V inside my case I definitely want the case itself to be connected to ground and preferably 'earth'. How is this possible? Should leave the ground inside the unit floating (including the output grounds) and put the case to earth potential? Or is it safe enough to connect the case to the local ground (A.C. ground).

2. I need to calibrate the AOUT_LC modules and rewrite the driver for the 12/12/8 bit configuration (dual frequency control and single resonance, which is routed to both external filters).

Besides these issues I noticed some strange behaviour in the MBSID V2 Beta 6 release that I want to mention:

- The filter cutoff values are not between 0 and 127 but include letters (seem to be three digit hexadecimal?). When I turn up the filter frequency, using my menu rotary encoder, the filter sometimes jumps a bit back or a bit forth. Like going up from 40 to 50 in steps of 1 and after 50 jumping back to, lets say, 45, and from there on increasing.

- Under some circumstances the resonance values are not limited to their limits. When I decrease the resonance I sometimes can go 'beyond' 0 (back to 15) and when I decrease it jumps back to 0 after having reached 15. However, sometimes it works just fine.

Anyone else with these problems?

Kind Regards,

Rutger

Link to comment
Share on other sites

- The filter cutoff values are not between 0 and 127 but include letters (seem to be three digit hexadecimal?).

Mmmm. High rez. Thhat's gooood.

When I turn up the filter frequency, using my menu rotary encoder, the filter sometimes jumps a bit back or a bit forth. Like going up from 40 to 50 in steps of 1 and after 50 jumping back to, lets say, 45, and from there on increasing.

What encoder type have you installed and configured?

Link to comment
Share on other sites

Hehe, I already had the hope that the hexadecimal notation for the frequency parameter meant that it is hi-resolution. However, it still behaves a little weird.

My encoder is an ALPS EC12. I know about the issue with this encoder, so I uploaded MIOS 1.9f (pre release) and set the enconder type to DETENDED3. On other parameters everything increases smoothly and I think that the filter parameter does too, but somehow I hear it differently.

Kind regards,

Rutger

Link to comment
Share on other sites

Hi Rutger,

the MBSID V2 feedback thread is not intended for discussing general hardware issues - if everybody would do this, the oversight would get lost even more.

1: Unfortunately I'm not an expert in solving grounding problems - I would have to see the circuit and would have to do some experiments in order to find out the root cause. Maybe somebody else has an idea

Encoders: the "speed mode" (acceleration factor) is automatically selected depending on the resolution. On higher resolutions, values will be incremented faster depending on the encoder speed. The idea is, that you are still able to sweep over the whole value range with a single turn (press SHIFT button in addition), but that you can also finetune parameters when moving the encoder slowly.

With lower resolutions (especially for 4bit resonance), the acceleration has no effect

I don't know about an issue with a resonance limit check - it's handled like any other menu parameter, and it works since years. Did you already try another encoder? E.g., swap it with a one which is working?

Best Regards, Thorsten.

Link to comment
Share on other sites

For the grounding issue, please try the following:

Try to seperate the case grounding and the circuit grounding as follows:

Wire a 10 Ohm Resistor and a 100n (keramic) cap in parrallel. Connect this filter between your circuit-ground (from the pcb) and the case. Connect the case to main-earth.

Normally this reduces the hum and you have both grounded. The case and the circuit.

Your hum issue could also have another reason:

What kind of transformer did you have inside your case?

Please try (for a test) to put the transformer outside the SID Case and verify your hum. If it's gone you have to use another transformer inside the case or you put your transformer outside in a seperate case.

greets

Doc

Link to comment
Share on other sites

Hi,

thanks, TK, for making this a seperate topic. I'll do some more experiments with the encoder (an ALPS EC12). However, I dout that the problem lies within the encoder, because on other parameters everything seems to be working just fine. It's good to know that the encoder speed matters in terms of stepsize through the parameter.

Thanks, doc, for the advice. I'll try the tip and let you know if it works. I already tried a floating ground for the system and that works very well, however I don't want my metal case to be ground lifted since it might cause the same kind of trouble when it's placed in a rack. An issue however is that my jack sockets are mounted to the metal case and the ground pin (cable shielding) also connects to the sockets body and thus the metal case. If I use earth as reference for the audio signal I'll get the hum again, so i'll somehow have to isolate the sockets from the case. I wish I had PCB mounted plastic sockets....

Kind regards,

Rutger

ps. TK (or any other assembler expert), where do I start to modify the AOUT bit resolutions. I already found the AOUT_LC driver but somehow the driver receives already converted data from another function. Where does the AOUT_LC driver get called, and where are the variables (12 bit and 4 bit) calculated? I'd like to modify this to 12/12/8 (for dual freq and single res). My plan is to use the resonance parameter of every left SID for controlling the AOUT and just ignore the right channel resonance setting. That way I don't have to modify the patch structure and still keep independant resonance control for the internal SID filter.

Link to comment
Share on other sites

The AOUT driver gets 8 x 12bit values, and you don't need to change the patch structure just to add some additional controls. So long the F2A option is not enabled, you can control the AOUT values individually within the EXT menu, and if you prefer F2A, you are also able to disable or change the channel assignments within the setup_*.asm file.

You can for example disable the assignments for the right SID very easily, so that the channels are free accessible from the modulation matrix when the F2A option is enabled. When it is not enabled, the channels are free accessible anyhow.

First AOUT value is in AOUT0_[LH], second in AOUT1_[LH], third in AOUT2_[LH], etc...

In a later version I'm planning to add an optional 8bit resonance support for external filters. It's already prepared (8bit are stored within the patch structure), just only a compile switch needs to be added which changes the max value and mapping of the CS menu entry for resonance.

Best Regards, Thorsten.

Link to comment
Share on other sites

I came to the decision, that it doesn't really make sense to provide an optional compile switch for 4bit/8bit editing of the resonance parameter - now it's always edited with 8bit resolution (in V1 it was always edited with 7bit resolution, and nobody complaint...)

The change is available in beta7 (-> http://www.midibox.org/forum/index.php?topic=9457.0)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK,

that is very nice! Good decision on the 8-bit resonance resolution!

The channel on/off switching system for the AOUT module is great! One thing that I still don't understand (maybe due to my lack of assembly knowledge), is where bit depth conversion of the resonance parameter takes place for controlling the AOUT driver. You explained that the AOUT driver receives 8*12bit values, but how is the 4-bit resonance for your current setup extracted from those values? I would love to change it to 8-bit and send it to a single SR.

Kind regards,

Rutger

Link to comment
Share on other sites

One thing that I still don't understand (maybe due to my lack of assembly knowledge), is where bit depth conversion of the resonance parameter takes place for controlling the AOUT driver. You explained that the AOUT driver receives 8*12bit values, but how is the 4-bit resonance for your current setup extracted from those values? I would love to change it to 8-bit and send it to a single SR.

Everything is done within the driver. E.g., if you would select the sid_aout or sid_aout_ng driver, all values would be forwarded to the DAC with 12bit resolution.

The AOUT registers are handled the following way:

AOUTx_H[7] is cleared whenever the appr. AOUT value has been updated from the sound engine.

The AOUT driver has to check this bit, it has to transfer the 12bit value to the DAC, and set the bit so that the transfer won't be repeated so long the value hasn't been updated again.

The lower 8bit of the AOUT value is located in AOUTx_L[7:0], the upper 4bit in AOUTx_H[3:0]

The AOUT_LC driver always updates all 74HC595 registers (8 for 4 modules), whenever any AOUTx value has been changed (an individual update is not possible with chained AOUT_LC modules)

As you can read in the source code, the SID_AOUT_LC_UPDATE_MACRO extracts a 12bit bitfield from aout_a, and a 4bit bitfield from aout_b.

The resulting 16bit value is transfered to 2 chained 74HC595

So, all you need to do is to change the macro, so that it partitionates the bitfield as desired.

Or maybe you need to write different macros for different value alignments.

This means: if you want to transfer a 8bit value instead, you can get the value from AOUTx_H[3:0] and AOUTx_L[7:4]. But these bitfields into TMP1 (or TMP2), fill the remaining TMP variable with useful data, and call the SID_AOUT_LC_Load2SR routine, which will transfer TMP[12] to the AOUT_LC module

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK,

thanks for the explanation! I had great fun tonight re-programming the AOUT_LC driver. However, the bits do not reach the 74HC595 in the order I meant them to arrive. Maybe I swapped LSB and MSB or maybe I mis-interpreted the order in which the bits are put out to the 75HC595. The stranged thing is that the bits seem to be all over the place.

So I have a couple of more questions. Hope you don't mind :).

Is TMP1 sent to each first or each second SR in the chain? And is the order in which the AOUT_LC's are updated starting at the end or the beginning of the chain. In other words:

This?

Core -> TMP1(first) -> TMP2 -> TMP1  -> TMP2

Or this?

Core -> TMP2 -> TMP1 -> TMP2 -> TMP1(first)

Or this?

Core -> TMP2 -> TMP1(first) -> TMP2 -> TMP1

(or this? Core -> TMP1-> TMP2 -> TMP1(first)  -> TMP2, which seems highly illogical).

I've experimented some more with the other problems, and the problem with the limit on the resonance parameter seems to be solved since I updated to Beta7. Also the strange non-linearity in the SID's internal filter control has been solved, at least for the biggest part. The filter modulated patches now sound quite alright! Maybe something from the 8580 code slipped into the compilation of the 6581 HEX i've been using previously.

Anyway...my MB SID V2 is getting together very nicely!

Greetings,

Rutger

Link to comment
Share on other sites

Core -> TMP2 -> TMP1 -> TMP2 -> TMP1(first)

it should be this one, but if you want to ensure, just put unique values into the TMP registers (like 1, 2, 4, 8 ) and check the logic levels on the 74HC595 output pins. This test maybe takes 5 minutes, but it saves a lot of time :)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi TK,

I have very good news! I have the AOUT_LC's working. In the design fase I wasn't aware of the abnormal connection between J6(Core) and J1(AOUT), so I just mapped the pins 1:1. Somehow this caused the AOUT_LC to put out rather random signals. However, I fixed the connection (had to break some of those nice 12mil traces on my PCB  :'( and replace with a wire link) and went back to the original AOUT_LC driver. Now the output made much more sense. From this point I was able to rewrite the driver to output my 12/12/8 configuration. Today I recalculated the gain needed to reach a maximum of 10.67V output from the AOUT_LC's (I don't have trimmers, but fixed resistors).

After this I made some adjustments to the CV control of the resonance and tuned the filters. Wow! Those filters really kick much more uhm...arsch...than the SID's internal ones (at least those of the 6581). Thank you Rick Jansen and Bob Moog!

The only problem I still have is that there's too much digital noise coming through the outputs, but I'm not sure where it comes from. I kept the analog and digital supply lines seperated until the PSU and I have seperate analog and digital grounds.

Wilba, did you have similar issues with your big PCB?

Two points that could possible be bugs in the Beta 7 release:

- The volume parameter in the CFG menu is NOT affecting the SID's volume (6581).

- When I switch to another patch the 6581's give a loud click (not related to noise from the encoder itself). It really comes from the SID's audio output. The 8580 does not give this click.

Kind regards,

Rutger

Link to comment
Share on other sites

The volume parameter in the CFG menu is NOT affecting the SID's volume (6581).

Did you enable the V2A option? It disables the SID volume control for good reasons (because some people are planning to control an external VCA with this option).

When I switch to another patch the 6581's give a loud click (not related to noise from the encoder itself). It really comes from the SID's audio output. The 8580 does not give this click.

thats an issue with the 6581... or a feature? The DC offset changes depending on the volume, filter and oscillator assignments.

Believe me, I tried a lot to eliminate this click (e.g. slow fade out/in of volume), but clicking sounds were still present, so that I removed all this experimental stuff, as it only added some additional delays (up to 1 second) on patch changes, which people probably would report as a "bug" (what is a bug???) as well.

Best Regards, Thorsten.

Link to comment
Share on other sites

The only problem I still have is that there's too much digital noise coming through the outputs, but I'm not sure where it comes from. I kept the analog and digital supply lines seperated until the PSU and I have seperate analog and digital grounds.

Wilba, did you have similar issues with your big PCB?

I don't think so, not like your issues. I have separate analog and digital grounds, joined up near the 7809 ground pin. The ground pins of SIDs are connected to the analog ground. I don't hear hum or anything like that. The only digital "noise" is coming from the PLED display, and then only when I turn the volume to max and listen with headphones, and my guess is that noise isn't even coming through the ground but rather more an RF interference (it changes in sound depending on what pixels are showing!)

Link to comment
Share on other sites

Hi guys (and girls),

Did you enable the V2A option? It disables the SID volume control for good reasons (because some people are planning to control an external VCA with this option).

No, I did not. The V2A option is turned off. I've also set the AOUT_LC output channels for the V2A option to 0 (= off), in the setup asm file.

thats an issue with the 6581... or a feature? The DC offset changes depending on the volume, filter and oscillator assignments.

Believe me, I tried a lot to eliminate this click (e.g. slow fade out/in of volume), but clicking sounds were still present, so that I removed all this experimental stuff, as it only added some additional delays (up to 1 second) on patch changes, which people probably would report as a "bug" (what is a bug???) as well.

Best Regards, Thorsten.

Haha, thanks for the explanation! I'm already really really happy with the sound and the options so far. You've done an amazing job, TK!

I've found a way to eliminate the noise a bit more. I found that part of the noise came from a capacitor in the op-amp integrator circuit in the output stage (which is not part of TK's design, of course  ;D). The capacitors in this circuit are very sensitive to interference and I put one quite close to the on-board bankstick EEPROM's. Appearantly these can cause quite some interference... I've moved the capacitor, extending the leads with some extra wire, and that works quite well. The left channel of the output still has a bit of digital noise, but the S/N ratio has improved quite a bit. I hope it will be enough. Another solution would be to rebuild the output stage on a seperate board and mount it away from any other stuff.

I plan to write some detailed info on the PSU and Moog filter designs, with schematics and maybe a PCB layout as well. The PSU has been tested up to full load of my circuit and is still holding very well, although it runs rather hot. I definitely don't want to touch it after the synth has been on for more than half an hour.

Greetings,

Rutger

ps. Anyone have some spare 8580/6582? I'd be glad to exchange for some tested and known-to-be-working 6581's.

Link to comment
Share on other sites

No, I did not. The V2A option is turned off. I've also set the AOUT_LC output channels for the V2A option to 0 (= off), in the setup asm file.

Just tried it again - it works.

What is different in your setup? Or is it just the fact, that the SID volume register has only a 4bit resolution, but the editor handles it with 8bit resolution (for the V2A option - same as for resonance)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi guys,

just another update. I've now tested all AOUT_LC modules and each of the 4 cores and everything works perfectly!

I've made some big improvements on hum and digital noise problem by the way. When I took a closer look to my PSU I found that the -12V wasn't as clear as I expected after all. Some 100Hz (due to full wave rectifier), 1mV peak to peak, was still there, while it was absent at the +12V line. It appeared that the ground also carried this waveform, but only close to the PSU and even of different levels at different ground points in the PSU. I think that the PCB track resistance and path (-12V grouding being the farthest away) caused these strange differences in ground potential. The solution in this case was simple: an extra (very FAT) wire across the PSU (from ground to ground) to have some extra low resistance connection to the point where the whole system is grounded (center tap from transformer). The problem of extra hum when joining the earth and local ground is solved with this too!

The last fix I made was increasing the gain of the opamp that goes into the Moog filter circuit and decreasing the gain of the output stage. Raising the signal level as early as possible (directly after the SID) improved the S/N ratio alot!

A final fix (a very nice one, I think!) to the SID's own noise problem is to drop the Moog filter cutoff to below audible when the SID's not playing. This really makes a very nice and quite synth. I only have to modify all patches to do so, but I have to build patches anyway!

Up next: designing the frontpanel and paying the Schaeffer-company too much for their overpriced but totaly hot frontpanels!

I really have to say that I'm totaly amazed by all the work TK already put into the SID V2 design! And I'm really glad that I solved all the problems. The synth is now ready for stage! I'll probably be doing 4 shows with it in september and oktober! :).

Kind regards,

Rutger

ps. Oh, before I go....I have one little question (quote: Columbo):

- TK, did you take into account that some keyboardists like to pitch-bend up for about 2 octaves, keep the bender there for a while (while playing different notes) and that these notes will be out of tune when there's not compensation for the pitch scaling?

Link to comment
Share on other sites

Hi TK,

I have a couple of (I hope simple) final questions:

1. Is there a way to assign CC controllers from my master keyboard to certain features in the SID synth? I only found a working way through the KNOB CC's, but my sustain pedal is not having any effect and the MdW source is not passing on the position of my modwheel. Is there a way to activate the sustain pedal (CC# 64) and the modwheel?

2. How can I set the MIDI TX/RX LED function to an output of J5? I already found that SR# 0 is the J5 connection, but I cannot find how I route the MIDI TX/RX LED functions to this output.

Kind regards,

Rutger

Link to comment
Share on other sites

Hi Rutger,

the MBSID V2 firmware only supports 5 7bit CCs: #1 (Modwheel), and #16...#19 (General Purpose Controllers)

They have to be assigned within the KNB menu page.

In future there will be an additional possibility to access all sound parameters via NRPN with full resolution (up to 14 bit). However, this won't help in your particular case - sorry.

2: The MIDI Tx/Rx feature has been removed from the firmware, as it conflicts with other features. I would propose to add a hardware based MIDI Tx/Rx LED based on the LTC module

Best Regards, Thorsten.

Link to comment
Share on other sites

No, the Rx/Tx LEDs wouldn't be assignable via DOUT table, the refresh cycle is too slow.

This Rx/Tx feature costs too much CPU time... I don't really like this option, and I don't understand why I ever added this to the firmwares, as there is a much better working hardware based solution...

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...