About 40 years ago one of the professors at a local tech school gave me a jar full of diodes. I counted them- 936 diodes - and then put them back in the jar and forgot about them. I found them recently while going through all of my old stuff and debated going through them now that I had gotten into the hobby. Then they went back into the box. Maybe I'll check on them in another 20 years.
I had to make another change. The MUX select line (which actually goes to the CD4051 INHIBIT input) is filtered through a Schmitt Trigger.
I was using 15k resistors for the 16v pull ups on the 2n3904's These seem OK for all lines on the interface EXCEPT this select line.
It was not always reliably driving the Schmitt trigger. I swapped it to 8k on this line and that fixed it.
The other problem is the ~60 milliamp consumption is still too high, After a while of running the Hafler's crowbar will occasionally kick in and the MUTE light will come on. I'm guessing the original Hafler receiver board, being all CMOS design, had very low power consumption.
I have two options for the power issue.
1) Switch to the Digispark Pro as mentioned previously
2) Implement low power processor sleep mode on the Pro Micro.
With regard to item 2. I am not sure the arduino will wake up fast enough to process the incoming IR pulse stream.
But I will give it a shot. I am seeing conflicting info about this elsewhere on the web.
In any case the remote kit arrived today. I hooked it up and all is working. I now have a very functional remote setup for my Hafler.
Range is more than adequate for my needs. The little remote says it takes 2025 lithium button cell. But a 2032 cell fits fine.
The receive module has an LED that flashes with the incoming IR data stream. This is slightly visible from behind the Hafler's bezel.
Also included is a extra IR LED for if you wish to play with transmitting
The Arduino IRRemote library can transmit as well as receive. It is entirely possible to make a replica of the original Hafler remote complete with touch sensitive volume and balance knobs. It would be as simple as connecting two potentiometers, an LED, a few buttons, and a few resistors to the Arduino, There exist a capacitive touch library for the Arduino discussed here,,,
https://www.arduino.cc/reference/en/libraries/capacitivesensor/
3d print a reasonably copy of the remote case and you are there.
I was using 15k resistors for the 16v pull ups on the 2n3904's These seem OK for all lines on the interface EXCEPT this select line.
It was not always reliably driving the Schmitt trigger. I swapped it to 8k on this line and that fixed it.
The other problem is the ~60 milliamp consumption is still too high, After a while of running the Hafler's crowbar will occasionally kick in and the MUTE light will come on. I'm guessing the original Hafler receiver board, being all CMOS design, had very low power consumption.
I have two options for the power issue.
1) Switch to the Digispark Pro as mentioned previously
2) Implement low power processor sleep mode on the Pro Micro.
With regard to item 2. I am not sure the arduino will wake up fast enough to process the incoming IR pulse stream.
But I will give it a shot. I am seeing conflicting info about this elsewhere on the web.
In any case the remote kit arrived today. I hooked it up and all is working. I now have a very functional remote setup for my Hafler.
Range is more than adequate for my needs. The little remote says it takes 2025 lithium button cell. But a 2032 cell fits fine.
The receive module has an LED that flashes with the incoming IR data stream. This is slightly visible from behind the Hafler's bezel.
Also included is a extra IR LED for if you wish to play with transmitting
The Arduino IRRemote library can transmit as well as receive. It is entirely possible to make a replica of the original Hafler remote complete with touch sensitive volume and balance knobs. It would be as simple as connecting two potentiometers, an LED, a few buttons, and a few resistors to the Arduino, There exist a capacitive touch library for the Arduino discussed here,,,
https://www.arduino.cc/reference/en/libraries/capacitivesensor/
3d print a reasonably copy of the remote case and you are there.
I have now implemented power management and the current draw overall for the board has dropped to 36ma. The Hafler seems to be happy with that,
Extremely grateful to Nick Gammon's excellent tutorials and code examples regarding power management on the Arduino.
I am surprised that the CPU can wake up fast enough to process the IR data stream.
The way it is presently implemented the CPU goes to sleep after 5 seconds of inactivity on the IR recieve data pin.
The only problem is the serial output to the IDE terminal dies after the power management kicks in.
In addition I can't upload new code through the IDE once the board has gone to sleep. You have to compile the sketch and then quickly plug in the board into the PC usb port to upload the new code before power management kicks in the first 5 seconds.
I think maybe I would like to implement a separate jumper that would disable power management for development purposes.
Once I do that and clean up some other things I will post the Arduino code.
Extremely grateful to Nick Gammon's excellent tutorials and code examples regarding power management on the Arduino.
I am surprised that the CPU can wake up fast enough to process the IR data stream.
The way it is presently implemented the CPU goes to sleep after 5 seconds of inactivity on the IR recieve data pin.
The only problem is the serial output to the IDE terminal dies after the power management kicks in.
In addition I can't upload new code through the IDE once the board has gone to sleep. You have to compile the sketch and then quickly plug in the board into the PC usb port to upload the new code before power management kicks in the first 5 seconds.
I think maybe I would like to implement a separate jumper that would disable power management for development purposes.
Once I do that and clean up some other things I will post the Arduino code.
Arrrggh! I can't put the CPU to sleep. If I do that then the PWM output levels are lost! So volume and balance loose it.
Looks like I'm going to have to wait for the Digispark Pro board to get here and hope current consumption is less.
Alternatively I might have to abandon PWM and use a MAXIM digital potentiometer like the DS1267B.
I was also thinking if I switch the I/O drivers to MOSFETs (like a 2n7000) then that would also help reduce current consumption,.
Looks like I'm going to have to wait for the Digispark Pro board to get here and hope current consumption is less.
Alternatively I might have to abandon PWM and use a MAXIM digital potentiometer like the DS1267B.
I was also thinking if I switch the I/O drivers to MOSFETs (like a 2n7000) then that would also help reduce current consumption,.
2n7000 MOSFETS fixed my problem. Good thing I used machine pin sockets for the transistors. The 2n7000's dropped right in. Current consumption is now 44 milliamps. I have now disabled the sleep mode. However the low power library allows you to disable certain peripherals. So I turned off ADC, SPI and I2C. Although I don't believe disabling these saved very much.
I should mention that I do not notice and EMI noise issues as a result of the micro being hooked up to the system.
I am wondering how to handle the volume and balance settings. Presently on power up the default is volume at the lowest setting and balance is at midpoint.
It is possible to save the last volume/balance settings in non-volatile memory. This is easy to implement but I always worry about an erroneous loud setting somehow getting saved inadvertently. Perhaps I could have a limit check so it would only save the volume if it is below a certain range.
I have implemented the repeat function on volume and balance controls. If you hold the button down the IR remote button it will first send the initial code and then it will repeatedly send 0xFFFFFFF code until you release the button.
I should mention that I do not notice and EMI noise issues as a result of the micro being hooked up to the system.
I am wondering how to handle the volume and balance settings. Presently on power up the default is volume at the lowest setting and balance is at midpoint.
It is possible to save the last volume/balance settings in non-volatile memory. This is easy to implement but I always worry about an erroneous loud setting somehow getting saved inadvertently. Perhaps I could have a limit check so it would only save the volume if it is below a certain range.
I have implemented the repeat function on volume and balance controls. If you hold the button down the IR remote button it will first send the initial code and then it will repeatedly send 0xFFFFFFF code until you release the button.
I've been using the remote for the past few days and all is well. I've attached a zip file with the Arduino sketch I am currently using.
No doubt this may change. If it does i will post the latest here.
I might be willing to make some printed circuit boards for this project if there is sufficient interest. Chime in here to let me know..
No doubt this may change. If it does i will post the latest here.
I might be willing to make some printed circuit boards for this project if there is sufficient interest. Chime in here to let me know..
Attachments
I’ve read your story with great interest, as I had the unique experience of witnessing Jim Strickland develop the IRIS remote. That was in the late 80s when we were both working out of the Acoustat plant in Ft. Lauderdale, Florida. Acoustat was part of David Hafler Co. at that time, and Jim was doing most of the electronic design for Hafler. Naturally, the desire for rotary controls on the remote control led to its unique design. And in those days, there was no such thing as microcontrollers, so all the logic had to be done “the hard way.” Jim had a lot of experience in that area, as previously he worked at designing control systems for studio reel-to-reel machines. Heck, we didn’t have any computers in the plant at that time, so all mechanical design was done with pencil on paper, and PC layout was done on Mylar with Chart Pak tape and pads.
Although I’m sure Jim explained the intricacies of its design and development to me (we shared an office, and Jim was famous for his hours-long lectures), at this point I have no recollection of its inner workings, so I would be of no assistance there.
I do remember when Jim was evaluating the remote’s sensitivity to static discharge (i.e., scuffing feet on a carpet and touching the remote). Being in humid South Florida, “natural” static was hard to come by, so Jim sat on a wooden stool, touched the 5 kV output of an Acoustat interface to charge his body, and then touched the remote to simulate static discharge. We all thought that was a little crazy, but it worked, and Jim survived the process.
I happen to have an IRIS remote case – blank with no holes, just the two extruded halves and the plastic endcaps. I haven’t found a use for it in all these years, so I probably never will. Not sure if you’ve gotten to the point of housing your remote circuitry, but if you’re interested, PM me.
Thanks for the little trip down memory lane.
Although I’m sure Jim explained the intricacies of its design and development to me (we shared an office, and Jim was famous for his hours-long lectures), at this point I have no recollection of its inner workings, so I would be of no assistance there.
I do remember when Jim was evaluating the remote’s sensitivity to static discharge (i.e., scuffing feet on a carpet and touching the remote). Being in humid South Florida, “natural” static was hard to come by, so Jim sat on a wooden stool, touched the 5 kV output of an Acoustat interface to charge his body, and then touched the remote to simulate static discharge. We all thought that was a little crazy, but it worked, and Jim survived the process.
I happen to have an IRIS remote case – blank with no holes, just the two extruded halves and the plastic endcaps. I haven’t found a use for it in all these years, so I probably never will. Not sure if you’ve gotten to the point of housing your remote circuitry, but if you’re interested, PM me.
Thanks for the little trip down memory lane.
I've often wondered if Jim drew the IRIS preamp schematic himself, now I know. Thanks for the info. Do you know if his original schematic drawing survived? We all have the same copy of it, and it looks like it went through multiple trips through a washing machine and fax. I've always wanted to clean that up and make it more legible but it would take a month's worth of days to do it.I’ve read your story with great interest, as I had the unique experience of witnessing Jim Strickland develop the IRIS remote. That was in the late 80s when we were both working out of the Acoustat plant in Ft. Lauderdale, Florida. Acoustat was part of David Hafler Co. at that time, and Jim was doing most of the electronic design for Hafler. Naturally, the desire for rotary controls on the remote control led to its unique design. And in those days, there was no such thing as microcontrollers, so all the logic had to be done “the hard way.” Jim had a lot of experience in that area, as previously he worked at designing control systems for studio reel-to-reel machines. Heck, we didn’t have any computers in the plant at that time, so all mechanical design was done with pencil on paper, and PC layout was done on Mylar with Chart Pak tape and pads.
AcoustatAnswerMan - Thanks for the history.
In studying the IRIS schematic I found myself digging back into my old 80's electronics books. Things like Don Lancaster's "The CMOS Cookbook" and some of Forest Mim's stuff. A lot of the tricks used in the IRIS design are derived from these publications. But much is innovative extension of those ideas.
The idea of using one CD4051 MUX to mange and store the user's input selection and have it control a secondary CD4051 to actually direct the input is very clever.
Talon - the IRIS schematic is not too bad. It's just very terse. There is a lot going on with few components. It is very much like interpreting ancient hieroglyphs. Things like K163Ls are actually 2sk163L. Stuff like that.
There is not much that I cannot read on the schematic now. Mainly because I now understand how everything works.
But still I am wondering what is meant by "All Logic 0v lo +16/14V hi D.O.S"
What does the D.O.S mean?
The other thing I would like to point out is that about half the schematic (and about 2/3 of the PCB space) could be eliminated if a small microprocessor was employed. I guess that's a reason why I went into embedded development.
In studying the IRIS schematic I found myself digging back into my old 80's electronics books. Things like Don Lancaster's "The CMOS Cookbook" and some of Forest Mim's stuff. A lot of the tricks used in the IRIS design are derived from these publications. But much is innovative extension of those ideas.
The idea of using one CD4051 MUX to mange and store the user's input selection and have it control a secondary CD4051 to actually direct the input is very clever.
Talon - the IRIS schematic is not too bad. It's just very terse. There is a lot going on with few components. It is very much like interpreting ancient hieroglyphs. Things like K163Ls are actually 2sk163L. Stuff like that.
There is not much that I cannot read on the schematic now. Mainly because I now understand how everything works.
But still I am wondering what is meant by "All Logic 0v lo +16/14V hi D.O.S"
What does the D.O.S mean?
The other thing I would like to point out is that about half the schematic (and about 2/3 of the PCB space) could be eliminated if a small microprocessor was employed. I guess that's a reason why I went into embedded development.
AcoustatAnswerMan, et al. I have received your IRIS remote case and I have finished a reversed engineered 3d model of the case.
Thankyou for providing this.
I've made two models. One is the original dimensions, the other is a slimmer and more contemporary design.
The original design would be for those who wish to reproduce exactly the original IRIS remote and are using original electronics.
The slim design is a reduced thickness version that is just able to accommodate the diameter of a 18650 lithium ion battery.
I don't intend to utilize the original case I have received from AcoustatAnswerMan, other than to use it to create these 3d models. The case I received does not have all the holes bored for the switches and potentiometers. Since the case is aluminum, I don't feel like machining all these holes required for the potentiometers and push buttons.
It is far easier to 3d print a duplicate with the holes already part of the 3d model.
I am 3d printing the case as I write this and I will post the model on thingiverse.com shortly. I will provide a link to these files.
In addition I have created schematic and PCB artwork for the IR receiver board. I will post this artwork after I have made a PCB.
I have declined to produce and provide these PCBs or a kit since I feel the demand would be too low. But I understand there are those who may desire a remote such as I have.
Thankyou for providing this.
I've made two models. One is the original dimensions, the other is a slimmer and more contemporary design.
The original design would be for those who wish to reproduce exactly the original IRIS remote and are using original electronics.
The slim design is a reduced thickness version that is just able to accommodate the diameter of a 18650 lithium ion battery.
I don't intend to utilize the original case I have received from AcoustatAnswerMan, other than to use it to create these 3d models. The case I received does not have all the holes bored for the switches and potentiometers. Since the case is aluminum, I don't feel like machining all these holes required for the potentiometers and push buttons.
It is far easier to 3d print a duplicate with the holes already part of the 3d model.
I am 3d printing the case as I write this and I will post the model on thingiverse.com shortly. I will provide a link to these files.
In addition I have created schematic and PCB artwork for the IR receiver board. I will post this artwork after I have made a PCB.
I have declined to produce and provide these PCBs or a kit since I feel the demand would be too low. But I understand there are those who may desire a remote such as I have.
Getting there... Top is original Hafler and below is the 3d printed "slim version". I used a glass reinforced ABS but the finish is kind of rough. I think I might print another print in plain ABS. Takes a while to print - 12 hours. I think there may be some things I can do to the model to make it print faster.
So while my "plain ABS" and "slim" case prints - let us recap.
At this point we have created a remote receiver board that plugs into the IRIS pre-amp.
We are able to control with the inexpensive remote control that comes with the Arduino IR remote kit.
This remote has very simple up/down and left/right buttons that we have become accustomed to on modern IR remotes.
But the original Hafler remote was pretty nice. You had actual volume and balance knobs to turn. Furthermore, they were "capacitive touch activated"
As soon as you touched the knobs they overrode the settings on the amp potentiometers.
Implementation should be fairly straightforward. There exist a capacitive touch library for the Arduino. We should be able to implement this such that touching the potentiometers on the remote "wakes up" the Arduino transmitter board from deep sleep. This should allow for a very long battery life in the remote.
Our difficulty is associated with the software. We need to implement a IR command that transmits and accepts a parameter. Turning the potentiometers on the remote has to result in a volume or balance command that has an associated analog value transmitted. THs is very different than the basic volume up and volume down commands typically used in IR remotes today.
More details to follow.
At this point we have created a remote receiver board that plugs into the IRIS pre-amp.
We are able to control with the inexpensive remote control that comes with the Arduino IR remote kit.
This remote has very simple up/down and left/right buttons that we have become accustomed to on modern IR remotes.
But the original Hafler remote was pretty nice. You had actual volume and balance knobs to turn. Furthermore, they were "capacitive touch activated"
As soon as you touched the knobs they overrode the settings on the amp potentiometers.
Implementation should be fairly straightforward. There exist a capacitive touch library for the Arduino. We should be able to implement this such that touching the potentiometers on the remote "wakes up" the Arduino transmitter board from deep sleep. This should allow for a very long battery life in the remote.
Our difficulty is associated with the software. We need to implement a IR command that transmits and accepts a parameter. Turning the potentiometers on the remote has to result in a volume or balance command that has an associated analog value transmitted. THs is very different than the basic volume up and volume down commands typically used in IR remotes today.
More details to follow.
The slim case looks exceptionally good. Do you have a plan for reproducing the shiny plastic function overlay? I've seen those come up on the bay from time to time as hidden parts caches get liquidated, but I think it would be better to have a new one to go with the new case.Getting there... Top is original Hafler and below is the 3d printed "slim version". I used a glass reinforced ABS but the finish is kind of rough. I think I might print another print in plain ABS. Takes a while to print - 12 hours. I think there may be some things I can do to the model to make it print faster.
Talon - the IRIS schematic is not too bad. It's just very terse. There is a lot going on with few components. It is very much like interpreting ancient hieroglyphs. Things like K163Ls are actually 2sk163L. Stuff like that.
There is not much that I cannot read on the schematic now. Mainly because I now understand how everything works.
I envy you. I'm still learning basics so that schematic looks insane to me. I am definitely able to follow it better now, 3 years after I started studying, but there's a lot of room for me to improve.
But still I am wondering what is meant by "All Logic 0v lo +16/14V hi D.O.S"
What does the D.O.S mean?
To me it looks like U.O.S. and I think it means "Unless Otherwise Specified".
The other thing I would like to point out is that about half the schematic (and about 2/3 of the PCB space) could be eliminated if a small microprocessor was employed. I guess that's a reason why I went into embedded development.
I'd really be interested in that, assuming it doesn't negatively affect the sound. This preamp is one of the reasons I decided to study audio electronics, I've long wondered why it sounded better than anything else I've owned or even auditioned.
@delin
Please continue to post your updates; at least one person is reading.
😉
I borrowed a Hafler 915 years ago to play with. I was impressed enough with it that I threw together a quickie version of it to hold me over while I was tinkering around with my primary preamp. It's essentially same as what I saw in your IRIS schematic - CMOS analog switch with JFET buffers. Hafler used a simple diode matrix to select inputs though the 4051. I guess he could advertise back then that the product had no microcontroller generated EMI.
😉
Adding remote capability might be nice .... hmmm ....
mlloyd1
Please continue to post your updates; at least one person is reading.
😉
I borrowed a Hafler 915 years ago to play with. I was impressed enough with it that I threw together a quickie version of it to hold me over while I was tinkering around with my primary preamp. It's essentially same as what I saw in your IRIS schematic - CMOS analog switch with JFET buffers. Hafler used a simple diode matrix to select inputs though the 4051. I guess he could advertise back then that the product had no microcontroller generated EMI.
😉
Adding remote capability might be nice .... hmmm ....
mlloyd1
Despite the new changes I am still stumped as to why I cannot select the AUX and TAPE inputs..
In addition, I have discovered is that I cannot select AUX or TAPE inputs on the front panel of the IRIS with my remote board connected to the IRIS (in addition to the remote board not being able to select these inputs as well). The symptom is the associated input lights briefly and then the MUTE activates and then it selects TUNER. This is the normal power up sequence. It is as if a power supply glitch has occurred.
It is a mystery to me why this happens since all i/o lines that connect to the IRIS have the isolation diode and there is 0V potential behind the diode in the default state. In the idle state the IRIS should not even notice that the board is present.
The only commonality between these inputs is the "C" MUX line of the CD8051.
A few days ago I had finished a recap on one of my IRIS preamps and found a weird issue where the preamp would go into mute and then norm + tuner, like you would expect, and I could then select CD. However if i pushed any other button the preamp would switch to Video, then one of the AUX inputs, and finally settle into TAPE1, where it would stay until I power-cycled the preamp. I'd already changed out the tantalums that usually cause the mute locking issue, so I started changing the old ICs for new to see if that would help. I changed out all the TL082 and saw no improvement, but then I recalled there was a chip behind the display, an MC15041BCP I think. That same IC appears twice on the main board, I believe as part of the phono amplification. I pulled a working chip off the main board in another IRIS and then used that to replace the one behind my display. The inputs settled into their normal behavior after that.
I reread the thread and I don't recall seeing you mention this chip, so I'm wondering if you're aware of it. Maybe that thing is the key to your input command battle?
Hello. A few months back I purchased a Hafler 945 preamp from Barter Town; the seller said it had a few issues. I'm just getting around to it and finding a couple of frustrations. First, there is an online user manual, but no service manual or schematic available anywhere, as far as I can discover. Second, an led on the volume control is flashing, and there is no signal output. Per the user manual, these two conditions indicate that the unit is in the Mute mode (seller concluded this also). Now, again per the user manual, Mute can only be activated and deactivated, using the remote control; and, you guessed it, there is no remote control. There is a block diagram in the user manual, but it doesn't help much. As you would expect the remote functions seem to be controlled by integrated circuits. The insides of the unit look clean and un-tampered with. I located a replacement, substitute, and remote from an online source; with s/h it will run about $40, about what I paid for the unit. I am thinking that the preamp should probably reset itself when it is turned on and off. If that's true, I'd conclude that there is an ic problem that the remote wouldn't fix; therefore probably not worth messing with. Seems there ought to be a way to trigger the thing. I've got a drawer full of old remotes. Any ideas are appreciated.More interesting info...
Need to correct above...
4 REM V/B Active high pulse to set volume, active low to select balance
to...
4 REM V/B Active high pulse to select remote volume and balance.
Again this is a very interesting circuit that latches state as to whether the Pre-amp volume and balance potentiometer voltages are utilized versus the remote voltages.
What is interesting is the dv/dt opamp circuit that is attached to the volume and balance pots. As soon as you turn either on the pre-amp the remote volume/balance voltages are de-selected.
It is pretty cool to see how things were done when an embedded CPU was not utilized. Everything was done with a combination of analog computing with a good dose of diode logic. The CMOS parts used are not really logic parts so much as they are latches and switches. You almost get the feeling that everything could have been implemented with relays if that was all available to Hafler at the time!
So.. it looks like the Arduino code will have to toggle the REM V/B line before inc/dec'ing the volume or balance voltages.
Just to be clear the Arduino IR remote kit that I am getting has up, down, left, right buttons. Naturally I will use the up/down for volume and the left/right for balance. It is not clear to me if the remote will generate a repeating pulse if the buttons are held down. I'll cross that bridge when the remote kit gets here.
BTW, my remote kit is coming from China. I now see Amazon has a similar kit for a little more money. Should have went for that instead.
Also I forgot to include the following connections to the remote board
16 Tuner Light feedback into IRIS IR Remote board
17 CD Light feedback into IRIS IR Remote board
I don't know why the IRIS IR remote board needed this information but I don't believe it relevant to this remote implementation.
The remote control for the Hafler 945 preamp is a completely different animal than the remote for the IRS preamp. I suggest you start a new thread about the Halfer 945.
thank so much for your suggestionThe remote control for the Hafler 945 preamp is a completely different animal than the remote for the IRS preamp. I suggest you start a new thread about the Halfer 945.
- Home
- Amplifiers
- Solid State
- Making a Hafler IRIS remote control