RC2014 Troubleshooting

So I soldered it all together, and it doesn’t work. Typical. It looked so easy, all of the instructions are straightforward, and the boards are clear and labeled for easy assembly.

I guess this is the story for many projects and some of them never proceed past this point and end up in the junk box. But, sometimes there’s a guide for what to do when there’s trouble.

So this is my guide to how I fixed my RC2014.

1. Power supply

I installed a 7405 linear regulator into the provided slot on the backplane. Because there was no space for a protection diode I added one in series to the power input terminal. First, remove all of the cards from the backplane. We’ll start with power supplies. Using a 12V supply, let’s check that there is 5V and GND available to every backplane slot.

IMG_0107

7805 Regulator with 1A linear diode in Vin.

2. Reset

I have used the new backplane Reset function. Let’s test that it is effective in providing 5V pull up normally, and pull down to GND when the reset button is depressed.

3.Clock Function

The CPU requires a Clock, and that is provided by the small PCB containing the crystal and the buffer amplifiers. I didn’t equip the Reset button or resistor on my build, because 2x resistors is not required, and only one switch was included in the materials provided.

Using an oscilloscope to watch the signal, the performance of the Clock and its crystal can be measured. So the crystal is oscillating and produces 7.353MHz with a good strong signal. And it is available across the backplane to all the slots.

[Add picture later. I’ve lost the USB stick.]

4. CPU General

Insert the CPU module and check that it has 5V power, GND, and the Clock and Reset lines are working as expected.

On the Address lines, there should be a signal at 1.232 MHz, representing the cycle of CPU running NOPs. With this signal in place, we can move on to the ROM and RAM modules.

[Add picture later, I’ve lost the USB stick.]

5. ROM & RAM

Now we check that there is power and ground at both of the ROM and RAM modules. If that is the case then it is back to the logic analyser to check what is happening on the system now that the CPU has access to instructions to read.

6. Logic Analyser

With an 8 input logic analyser we can’t look at all of the signals at one time, so let’s choose some relevant ones. The lower few address lines are interesting, because they show where the CPU is reading instructions as it starts up. Also, if the Serial I/O port is attached then the Tx and Rx lines can be monitored on the backplane too.

Reset the system to see what happens immediately after the Reset is released. Note the ASCII text message appearing on the Tx line on the backplane, noting the Geoff Seale copywrite, the invitation to choose cold or warm boot, and the memory size. This means that the RC2014 is living, but somehow the Serial I/O board is not functioning properly. So we need to focus attention there.

7. Serial I/O

The Serial I/O card should be connected to the FTDI Basic or other FTDI FT232R equivalent device. As I had a PL2303 based serial cable, I decided to use that, as it is much cleaner than using an FTDI adapter, and it allows the Serial I/O board to be positioned anywhere on the backplane.

IMG_0108

Prologic PL2303 Serial Cable, exits inline with backplane connector.

The Logic Analyser shows that the 63B50P chip is doing its job and producing characters on the Tx line. But we aren’t seeing characters on the FTDI Rx line on the Terminal. That is a problem. Note that there are 2.2kOhm resistors in series with the serial module Rx and Tx lines. That’s a bit more than I’d expect to see. Let’s reduce those resistors down to around 100 Ohm. They could be 0 Ohm, but it is better to be a bit conservative.

Reducing the in series resistance doesn’t allow either the FTDI or the Prologic interface to work either. There’s something else going on here.

With both the Logic Analyser and the FTDI interface attached to the RC2014 the comforting welcome from Greg Searle appears on the Terminal, urging us to cold or warm boot. Yet, when the logic analyser is removed the serial I/O is no longer working.

This looks like some kind of ground loop problem. I don’t know how this can be fixed easily. The RC2014 device only works when there is a ground provided by another source, such as the Logic Analyser.

8. Other issues

The Serial I/O device was delivered one incorrect IC socket (14 pin instead of 16 pin), so I had to solder one chip directly to the board. Not a big issue.

There is no mention of how the ROM system needs to be configured. There are three options available for selection. The right one is with all of the address lines set to 0.

The basic program is described on Greg Searle’s Simple Z80 web page. There is little mention that this this is where to go for additional software support and programming assistance.

Anyway, with the caviet that the device has to be connected with an external earth, the RC2014 is working perfectly.

9. Earth Issues

After asking Spencer for some ideas, and doing some further circuit testing, I found that I had somehow damaged the ground wire near the centre of the backplane. That was allowing the RC2014 to function when GND was provided by both FTDI and Logic Analyser on opposite sides of the backplane, but to fail when only one GND was provided.

I resolved this by soldering an additional wire along the entire GND line. Whilst  I could have just bridged the gap, I preferred to improve the GND stability by adding conductor all along its length. I covered the wire with hot-glue to increase its stability. As a side effect it adds a non-slip characteristic to the backplane, and helps to protect my desk from being scratched.

IMG_0105

GND wire hidden under a protective hot glue sheath.

Now that I’ve fixed my dodgy soldering on the GND line, everything is much better, and works perfectly

IMG_0106

The hot glue sheath helps to hold the solder pins off my desk too. Integrated non-slip.

Elekit TU-879S Stereo Valve Amplifier Kit Review

Update May 12, 2013

I was testing my Arduino powered voltage controlled oscillator, when I noticed that the Right channel was very soft. Almost, but not quite, inaudible. Immediately, I suspected that there was a problem with one of the valves but, no, it was something else. Read more at bottom of this post.

Choosing the Elekit TU-879S

Looking for a new project, I decided to build a valve (tube) amplifier kit. So, let’s follow the process and see where it takes us.

I was looking for something that around $100, as a toy to play with. But it seems that that price level is unachievable, so we have to pay more. But, as the purchase price goes up, this thing can no longer be just a toy. It must become a functional durable product, that can actually be used by anyone.

There are a couple of valve stereo amplifier kits on the market, such as this Stereo Tube Amplifier Kit for under US$200, or this Model 16LS Stereo Integrated Tube Amplifier for US$250. Both looked good, and are cost effective. But, both suffered from the problem that they are built on a breadboard, and leave 300V exposed on open wires. Ok for a toy, but unusable in the long run for family members, or even my own careless fingers.

Some further research on the Internetz turned up the Elekit TU-879S, which seems to fit the requirements exactly. Less than AU$1,000 so it can be imported to Australia with no GST issues. Kit looks very well made, and professionally presentable. No loose HV wires to electrocute anyone. And, most importantly a very strong user community who have built and use the Elekit TU-879S in their audio systems, and provide input on modifications and improvements.

Oh. Oh. Think I just hit the “BUY” button.

Victor Kung at VKMusic created the English instruction manual used by Tube Depot. I just learned that unfortunately, Victor is getting nothing for his translation and original market development work. I suggest that you buy the kit from him directly.

This kit uses three valves, one a single valve dual Triode voltage gain stage, and two power gain Pentodes driving the output transformers, to produce 8W per Channel. All of the valves are readily available using either New Old Stock (NOS), or new products equivalent manufactured in Russia, or China. My finished version is pictured below, wearing ’58 Telefunken 12AX7, modern production SED Winged “C” 6L6GC, and alternatively ’61 production GE 6L6GC.

Dsc04094Dsc04097Dsc04096
Dsc04098Dsc04101

Research while waiting (on back order)

There are a couple of excellent reviews of the Elekit TU-879S which I won’t reproduce here. Save to say that they provided some ideas for improving, or hacking, the Elekit TU-879S, and that even before I had built it.

The first noteworthy improvement is to substitute the decoupling capacitors between the input and the pre-amp stage, and then before the power-amp stage. The Positive Feedback review suggests using VCap capacitors in those locations, and raves about the results. Great, but I’m not about to spend 50% of the total purchase price on 4 components. Let’s look for some cost effective alternatives.

The Internetz seem to suggest that Mundorf has a good name and quality product, so an order was placed for 4x MCap Supreme capacitors at Madisound Speaker Components. These MCap capacitors have a musical heritage, with dual series counter-wound cores supposedly cancelling impedance effects, but don’t add too much to the project cost.

The second improvement is to replace the existing dual linear variable potentiometer with a higher grade unit. The provided unit is a $2 ALPS plastic film component. For a little more, with respect to the value of the end product, the TKD 2CP-601S 100K stepped dual log taper potentiometer provides a good alternative. One was ordered from HiFi Collective in the UK. At about $40 it bridges a logarithmic gap in price between the original $2 component, and the ultimate component being a $300 stepped resistor array.

So with these two modifications, we have effectively upgraded the “small signal” part of the amplifier, where noise and non-linearity have the most effect. There are a number of other modifications suggested, but they are more drastic than simple component selection and replacement, and can wait until after I’ve established what the base-line of performance is for the Elekit TU-879S.

Valve search

The 6moons review goes into some of the options available for the Elekit TU-879S. Really, there are so many options around that it is a lifetime of experimentation to find the best valve sound from this amplifier. In fact, half the fun of this kit is reading the Internetz opinions on which valve creates what sort of sound. Often, strong opinions on individual valves are expressed without reference to the rest of the signal chain (pre-amp, speakers, listening environment, etc) such that the argumentation takes on a religious air.

12AX7 (Voltage Gain)

There are many many reviews of this 12AX7 valve type. Within these reviews there is one type that stands alone at the pinnacle of sound reproduction, the 12AX7 / ECC83 Telefunken with smooth plates. Luckily TC Tubes has some (one only as I write this) in stock. These valves have a 40,000 hour life time, so there is no problem to buy a “premium new”  test device, with exactly matched triodes. The one that I received from TC Tubes was made in April 1958, and tests Gm 100%/100%, which is about perfect.

Also as an alternative, there are great reviews of the military version of the 12AX7 being the 5751 which has a lower gain (Mu of 70 vs. Mu100 for 12AX7), and is also extremely low noise. TC Tubes has these GE 5751 in stock too. TC Tubes shipped me a 1961 vintage GE 5751 with matched Gm 108%/108%.

There are many other alternatives of these valves, and as I mentioned, I think that they are all subject to a lore of selection.

6L6GC (Power Gain)

As the Elekit TU-879S accepts a variety of similar Pentode valves, it is difficult to determine which ones should be on the list to try. Cruising the forums, it seems that this amplifier works best with the 6L6GC, which is the same type that it ships with.

As the power valve has a limited (though long) life of around about 10,000 hours, I am not keen to spend a large amount of money on NOS for this position. So my ideal is to find the “best” modern valve and see what the service lifetime is in practice, before investing in a NOS alternative.

After looking at some reports at Watford Valves, I decided to get a matched set of SED Winged “C” 6L6GC valves, also from TC Tubes. These will complement the Electro Harmonix valves provided with the kit.

Once I’m sure that it is a good investment, in terms of sound quality and listening hours, I’ll certainly get some NOS power valves to use.

Update: I’ve decided to take the plunge on NOS Pentodes, and get some GE 6L6GC from TC Tubes. Reviews of these suggest that it has an excellent performance, exceeding any current production valve though possibly not the best available NOS.

The construction process

When you un-box the kit, with the components packed so neatly into 10 heat-sealed individual bags, and each piece of metal wrapped and separated by brown paper, you remember what the Japanese are famous for. OCD grade accuracy. Clearly, this kit is perfect.

The English translation of the instructions, and the inclusion of a 230V power transformer of the same type as the 100V original, are finesse added by Victor Kung at VKMusic. There is no need to add any further internal photographs of the process. Assembly, for someone who is used to soldering SMD and micro-electronic components, is a breeze. Absolutely everything is explained exactly, and everything is perfectly easily done.

The English translation has two small (tiny) typos in resistor numbering, which confused me for a minute (also OCD), but looking at the Japanese original instruction cleared up my confusion.

As the provided resistors are 5% accuracy specification, during the construction process I checked the actual resistance of all resistors before assembly using an accurate digital multimeter, and tried to match closest pairs of resistors to the same circuit position in both Left and Right channels. The thought behind that was that even if the circuit was very slightly off specification because of the tolerance in the resistor values, then at least Left and Right channels would be matched.

The modification process

With the Mundorf MCap Supreme capacitors being much larger than the standard polypropylene capacitors they have to be fitted onto the back of the PCB. No problem, there is plenty of space.

Dsc04081Dsc04080Dsc04079Dsc04078

The TKD 2CP-601S potentiometer is a little more tricky. Fortunately, the pin-outs are identical to the supplied device, so the volume control PCB can be used. I just needed to kink the pins towards each other slightly to get a fit. The volume circuit PCB shows some minor flux damage, as I had to remove the provided volume potentiometer fitted first for testing.

The axle housing on the TKD 2CP-601S is slightly greater diameter than that provided, but rather than drilling out the top cover I decided to use a pocket knife to cut “flats” on the two sides of the threads since it almost fit. As the housing metal is aluminium, and it is cut into a fine thread, it is easy to remove enough metal from both sides with a knife to get the potentiometer to fit cleanly into the slot. This could alternatively be done (better) with a small flat file.

Secondly, the tab on the front face needs to be removed so that it will fit flush with the front panel. Snip with side cutters, and it is gone.

Finally, the axle is about 5mm longer than that on the provided pot. I used large pliers holding the end of the axle to hold it still, whilst using a small hacksaw, resting against the pliers as a guide, to cut through the soft brass. Easily done. Don’t hold the body of the potentiometer when cutting, otherwise the axle will turn, and you will surely damage it. Use a file to tidy up the cut edges on the axle.

Testing & listening

The initial testing and listening was done using the provided Chinese 12AX7 and Electro Harmonix 6L6GC valves. Everything worked well. The amplifier is amazingly quiet on idle. No audible hum at all. If a line level source is connected into one input, with the other input selected, some crosstalk can be heard at high volume. But generally this is not noticeable, and can be removed simply by switching off the alternative source.

Both the SED and Electro Harmonix valves produce the lovely blue aurora surrounding the valve, when viewed in the darkness. The pictures below try to capture it, but don’t do it justice. The GE valves don’t produce the blue aurora, but that doesn’t affect their excellent sound quality.

Dsc04085Dsc04088

Once the proof testing was finished, I replaced the standard valves with the special NOS 1958 Telefunken 12AX7, and the matching 1961 GE 6L6GC valves. Amazing the difference in sound quality. After a few hours of burn-in, I started listening to the U2 War album, and I could swear that Bono started to sound incredibly like Elvis. Some of his spirit must be trapped inside the little glowing bottles.

Repair Update

Early May 2013, I was experimenting with a voltage controlled oscillator to see how sine waves would behave, and to test my speakers and my ears, when I noticed that the Right channel had become almost inaudible. I hadn’t previously noticed, or may be I had noticed but had put it down to my speakers being too old.

I did some standard trouble testing, and found all the valves to be good and also inputs and speakers to be good. It therefore had to be something inside the amplifier.

I gathered all my tools, slightly concerned that it would be hard to identify what was the problem. I needn’t have worried. The problem was obvious. Burnt black obvious.

Damage - Before

Electrically, R13 and R14 are 330 ohm 3W resistors, which provide the current load for the power valves. At idle they should present about 21V on Pin 8 of each of the power valves. In my measurements, the left channel was presenting at 28V and the Right channel at 58V. The significantly lowered current through the Right channel was causing the reduced amplification.

As soon as I turned the board over, the Right resistor sort of just fell off the board. Pretty well burnt out.

I have replaced the faulty pair R13 and R14 with 330 ohm 5W resistors, and have done a little bit of aerial bridging to try to support the weakened PCB tracks. The image below shows the result. It is not pretty, but it has returned the amplifier to working, with 22V showing on each of the valve’s Pin 8, and the volume level from each channel being similar.

My suggestion, use 5W resistors when you’re making this kit, and try to keep enough space around the resistors so that they don’t burn the nearby capacitors and sheathed wiring. In the photo the faulty resistors can be seen too, with the lower leg on the Right resistor almost turned to carbon powder.

Damage - After repair

Freetronics freeRTOS Retrograde Real Time Clock (DS1307) – Part 3 Final

In Part 2  I promised to build a very stylish finished product, that could be displayed with pride. Well, I don’t think I’ve quite achieved that. But, at least now I consider the project finished, and now have the confidence to get on with other projects.

I have mounted some tiny servos, the funky white on blue LCD display, and the Freetronics 2010 board on some Craftwood. Cutting the hole for the LCD was a bit hit & miss, using a carving knife to shape the hole, and managing not to loose any fingers in the process.

Dsc04060Dsc02851

The hour servo is mounted at the bottom of the board, and travels clockwise from midnight, with noon vertical, until it re-tours to 0 on the stroke of midnight. The hour hand travels clockwise from 0 minutes at the bottom, over 30 minutes horizontal, to 59 minutes at the top of the stroke. At 0 minutes, the minute hand re-tours to 0 at the bottom. I find the movement of the servos on the stroke of the hour somewhat like a chime. Not too oppressive, but enough to draw my attention to the passing of another hour.

As the 4 line LCD has so much screen real estate, I have added the maximum and minimum temperature display, with hour, day and month when each extreme was reached.

Adding the LM335Z Temperature IC was discussed in Part 2. I found that the accuracy of the LM335Z IC could be improved by firstly knowing exactly what the Vcc was for operating the AVR device. Measuring this, and putting it in the calculation enabled enough accuracy to be found. Using the 5V regulator on the Freetronics 2010 delivered 4.97V for me, and this value is hard coded into the code. I have several LM335Z devices and they have different offsets, which is adjusted by modifying the subtraction in the Kelvin to Celsius calculation. As the LM335Z is accurate once the offset is established, there is no need to operate it in the “accurate” mode, IMHO, given we have software to make the adjustments it needs.

Dsc02855Dsc02852Dsc02854

The instability in the temperature readings discussed in Part 2 was caused by the long wires to the sensor. Once the device was fixed into the prototyping area on the 2010, together with bypass capacitor, the stability of readings improved greatly. However, during testing, I noted that the maximum values were reading very high. These false high maximum values were caused because the ADC process was sampling during a servo move. The servos consume a lot of power, and this causes voltage drop on Vcc. Hence the reference voltage for the ADC is no longer accurate.

Dsc02845Dsc02847

To prevent the ADC from operating during the servo moves, I simply used one of the freeRTOS semaphores I established previously. I use semaphores to control access to the LCD, the I2C and to the ADC. Use of a semaphore enables independent processes to share a single hardware resource without conflicts developing. The fix for the erroneous high maximums was done simply by taking the ADC semaphore (to prevent the ADC reading process from starting) during times when the servos are being instructed to move. Simple, with freeRTOS to manage the process interaction for me.

ERRATA

The code included in the updated source does not properly fix the issue of false maximum temperatures. It incorrectly releases the ADC semaphore immediately following resetting the PWM values. This means that the hands can still be moving when the ADC process gets unblocked which causes false maximums, because of voltage droop in Vcc, typically at midnight when both hands are in motion.

The fix is to move the vTaskDelay call between the set_PWM_hardware and xSemaphoreGive calls. I also increased it to 2000 milli Seconds too, to ensure the hands are really stopped before the ADC process gets unblocked.

set_PWM_hardware( servoHours_uS, servoMinutes_uS );

vTaskDelay( 2000 / portTICK_RATE_MS ); // a 2 second delay to ensure the hands have properly stopped.

xSemaphoreGive( xADCSemaphore );

 

END ERRATA

Another piece of code added since Part 2 is to write the maximum and minimum temperatures and the times the extremes occurred into the EEPROM available on the 2010. The functions to use the EEPROM are available in the AVR library and are very straightforward to use. Having a permanent record of temperature extremes is perhaps one thing this clock does, that other clocks in my house can’t do.

There are a lot of comments in the updated freeRTOS Retrograde Clock code, now hosted at Practical Arduino. As a reminder the code uses the AVR and Pololu Libraries, so these both need to be installed before you compile.

 

WiFi Dogbot

I was looking for a “why” for investing my time in Atmel AVR devices, because with a “why” progress is always faster. I think making an autonomous robot with dog-like behaviour will make an excellent one / two year multi-layer project, that will be able to demonstrate itself at the end. Also it won’t consume too much cash.

This post is to create a problem description, expected outcomes, and path I’ll be taking. It will also be a reference when I forget where I was going with this.

Why?

  • Being able to find my ‘Droid when it has gone missing around the house, and (more reguarly) being able to find my wife’s Crackberry is a fairly regular occurrence. So, I’d like to build something that can find both of these WiFi enabled devices. Also, being able to search out iPhones and WiFi APs, like a drug sniffer dog, would be mildly entertaining for family and visitors.

Expected features

  • Autonomously seek out and approach WiFi sources in order of strength.
  • “Bark” when the device is in close proximity.
  • Navigate & travel at dog speed in an unfamiliar environment.
  • Avoid aggressive obstacles within the map. “Growl” at these obstacles.
  • Reorientate autonomously if an aggressive obstacle “picks up” or “plays”.

Optional features

  • Follow someone around whether or not they have a WiFi device.

Assumptions

  • The floor is flat. Litter can be avoided. -> a cheaper indoor chassis can be used.
  • The room is small. 10m x 10m map can be built, with translation as map edge approached. -> memory conservation.

Initial Plan

  1. Build chassis platform for use indoors.
  2. Build motor controls to allow straight line, radius, and B?zier motion.
  3. Build emergency collision avoidance.
  4. Build long distance sensors.
  5. Build voice box – bark, growl, yap, whine, etc.
  6. Build area mapping.
  7. Build aggressive object collision avoidance.
  8. Build aggression response.
  9. Build WiFi sensors & target mapping.
  10. Build intelligence logic to enable end result.
  11. Build Thermal sensors & target tracking.

Component sourcing

  • Chassis

1x Pololu 5″ inch Robot Chassis RRC04A http://www.robotgear.com.au/Product.aspx/Details/353
1x Pololu 42 x 19mm Wheel and Encoder Set http://www.robotgear.com.au/Product.aspx/Details/307
1x TB6612FNG Dual Motor Driver Carrier http://www.robotgear.com.au/Product.aspx/Details/319
1x Pololu Ball Caster with 1″ Plastic Ball http://www.robotgear.com.au/Product.aspx/Details/370
2x 30:1 Micro Metal Gearmotor http://www.robotgear.com.au/Product.aspx/Details/344

1x Arduino Duemilanove http://arduino.cc/en/Main/ArduinoBoardDuemilanove
(will be replaced in step 9.)
1x Arduino Proto Shield http://www.sparkfun.com/commerce/product_info.php?products_id=7914

  • Emergency Sensors

3x Pololu Carrier with Sharp GP2Y0D810Z0F Digital Distance Sensor 10cm
http://www.robotgear.com.au/Product.aspx/Details/309

  • Long Distance Sensors.

2x Sharp GP2Y0A02YK0F Analog Distance Sensor 20-150cm http://www.robotgear.com.au/Product.aspx/Details/272
1x SRF10 Dual Transducer Ultrasonic Ranger http://www.robot-electronics.co.uk/htm/srf10tech.htm

  • Voice Box.

1x Piezo Buzzer from NerdKits

  • Aggression Sensors.

1x MMA7260QT 3-Axis Accelerometer http://www.pololu.com/catalog/product/766
1x LISY300AL Single-Axis Gyro http://www.pololu.com/catalog/product/765

  • WiFi Sensor (and revised Microcontroller Platform).

1x BlackWidow 1.0 http://www.seeedstudio.com/depot/blackwidow-10-p-613.html

  • Thermal Sensor.

1x Thermopile Array http://www.robotgear.com.au/Product.aspx/Details/294

So, maybe the next post once some more details are to hand.