Post by tjmotter on May 8, 2019 16:40:17 GMT -5
Onkyo Firmware
Much like a modern laptop or desktop, an Onkyo Receiver is a highly complex design that is constructed with many different Processors. Also like a computer, each of these Processors requires:
Clock – usually delivered by a crystal located on the board
Memory – can be located on the board or, in some cases, internal to the processor
Code – firmware which is used to initialize the processor and to coordinate its function
In my experience, Crystals and Memory rarely fail so debug issues typically start with the processors and/or the firmware. The processors used also tend to be fairly resilient however there are exceptions to this including DSP chips and newer generations of HDMI controllers that have exhibited design flaws or sit in critical areas that can be damaged by external forces like power surges and lighting strikes. For example, over the past several years, Onkyo designs using a Texas Instruments designed DSP chip have been found to be prone to early failure and were featured in an Extended Warranty program by Onkyo (which has now ended).
media.digikey.com/pdf/PCNs/Texas%20Instruments/PCN20121114000_Obs.pdf
Some examples of devices within an Onkyo that require firmware include:
MAIN CPU – Firmware is installed internal to this chip as well as on an external chip. This firmware is responsible for system diagnostics, power on functions and Front Panel control
DSP 1 (Digital Signal Processor) – Firmware is installed on an external chip. These chips come in several different sizes and types including NOR Flash and NAND Flash with varying pin counts. Some designs (NR616) have 1 DSP while others (NR3008) have up to 3. This device decodes the incoming Audio signal and figures out how to convert it to full surround sound. The TI device referenced above has an ARM based Processor embedded in it that runs a variant of Linux. Note that this chip also typically controls the Network and USB ports on the Receiver.
DSP 2 – Firmware is installed on an external chip. Like DSP 1 and 3, the type of firmware chip can vary depending on how much code is required and how quickly that code needs to be delivered to the processor. DSP 2 works in conjunction with all other DSP’s to add processing power to the DSP subsystem for enhanced features like AUDYSSEY MultiEQ XT32. DSP 2 is typically configured as a “slave” to DSP 1 (“master”).
DSP 3 – In some cases, 2 DSP’s are not enough so a 3rd is added. Firmware is installed on an external chip. Like DSP 1 and 2, the type of firmware chip can vary depending on how much code is required and how quickly that code needs to be delivered to the processor. DSP 3 works in conjunction with all other DSP’s to add additional processing power to the DSP subsystem and is typically configured as a “slave” to DSP 1 (“master”).
VMPU (Video Main Processor Unit) – Firmware is installed internal to this chip and is responsible for managing all video functions. This chip coordinates the VSP and all HDMI chips.
VSP (Video Signal Processor) – Firmware is installed on an external chip and is responsible for performing the calculations necessary for video “upscaling” to convert low res video to HD or UHD. This chip often also provides the “On Screen Display (OSD)” functions.
HDMI – On newer models, Firmware is required to allow the HDMI controller to boot and is located on an external chip. This device switches the HDMI input to the appropriate HDMI output based on the selection made on the front panel (BD, VCR, CBL/SAT etc.)
HDCPTX (HDMI Transmitter) – On newer models from Onkyo (NR636 for example) firmware is installed on an external chip to support a processor embedded in the HDMI Transmitter chip which is responsible for sending HDMI signals to the TV or projector while implementing copy protection.
HDCPRX (HDMI Receiver) – On newer models, like the NR636, firmware is installed on an external chip to support a processor embedded in the HDMI Receiver chip on HDMI 3 to enable copy protection.
DAC (Digital to Audio Conversion) – Older models like the NR3008 have a fully populated board that performs the Digital to Analog conversion. On these models, this board also has a firmware chip but it is unclear what it does.
Types of Firmware chips
Onkyo uses a wide variety of firmware chips in their designs. These chips can vary between devices (DSP1 vs. DSP2 or DSP3) and between model families. Some examples include:
MAIN CPU – Most firmware is installed on flash that is internal to this CPU. Onkyo typically adds an external EEPROM (Electronically Erasable Programmable Read Only Memory) as well that hosts “personality” information (like the model number). The firmware on the chip contains the program that the MAIN CPU runs and reprogramming this firmware requires a specialty Programmer from a company called Renesas. The purpose behind the 2nd piece of firmware seems to be that it allows the Onkyo Firmware update tools to detect what machine is being updated and allows Onkyo to stop customers from installing the wrong firmware package for their model. On the NR838 for example, this chip is Q7001 and is a small 8 pin (SOIC-8 Wide) design. In many cases Onkyo uses the same board for several different models and it is often possible to convert them by simply moving this firmware chip between the two boards or making a copy of the “personality” you want and installing it on the new board. Examples include: You can convert an NR3007 board to an NR5007 (and vice versa) by moving this “personality module”. Similarly, you can convert an RZ900 board to an RZ800 (and vice versa).
DSP 1 – These devices use a NAND Flash for Firmware. An Onkyo Receiver uses this type of design for its high capacity and speed. To make these devices work, they install a piece of software called “YAFFS” (Yet Another Flash File System) on the NAND which (essentially) converts it into a hard drive. One of the drawbacks to this approach is that every single DSP 1 firmware chip is unique (i.e 2 identical Onkyo NR616’s will each have a different code base on this chip) making it more complex to fix since you can’t simply make a copy. Another drawback is that a NAND chip will develop bad blocks over time so one of the YAFFS systems primary function is to monitor the NAND and manage these bad blocks so that they don’t impact the system. This (again) makes it more difficult to copy since no 2 NAND chips are likely to have the same bad block map. It is possible to address both of these issues but note that fixing DSP 1 firmware issues is difficult. Making matters worse, DSP 1 firmware failures are also the most common. On the NR838 for example, this chip is Q3002 and is a large package with 48 pins (TSOP-48 type B). The “trick” here is to find a working board, grab a copy of the firmware from it and install it on a new NAND chip that has no bad blocks. Be aware that the copy you use must be compatible. As an example, an NR616 has 1 DSP and Basic Audyssey 2EQ. An NR717 has 2 DSP’s and Audyssey 2EQ and an NR818 has 2 DSP’s and Audyssey MultiEQXT32. You can’t use the same software for all of these devices. The NR717 software won’t provide MultiEQXT32 if you install it on an NR818 board and the NR616 software won’t understand how to access the 2nd DSP on an NR717. What you can do is to take a copy of an NR609 (with 1 DSP) DSP firmware and install it on an NR509 or an Integra 20.3 to get it to start up. After it starts, you can use the Onkyo firmware update to convert it to the appropriate model. Unfortunately, the Onkyo updates do not seem to install the “hooks” for a 1 DSP system to talk to connect to a 2nd DSP.
DSP 2 and DSP 3 – These devices use a NOR Flash for Firmware. Unlike NAND, NOR Flash doesn’t suffer from “bad block” issues so these can be easily copied. On the NR838, this chip is Q3304 which is an 8 pin SOIC design. Conversely, on the NR3007, this chip is Q3401 (DSP2) and Q3501 (DSP3) using a large package with 48 pins (TSOP-48 type A). Note that DSP 2 and 3 have a dependency on the firmware installed on DSP 1. This means that a firmware issue that stops one of these from booting could be either an issue with the DSP 1 firmware chip or its own firmware chip.
VMPU – Most older Onkyo designs utilize a Renesas based VMPU which can utilize the same specialty programmer as the MAIN CPU. Newer designs utilize a processor from Toshiba. Both of these types of chips have flash memory embedded within them which hosts the firmware. On the newer Toshiba parts, the datasheet suggests that the chip provides a mechanism for loading firmware from even on a system with no code installed. As such, the only mechanism I have found to make changes on this part is to use the Onkyo firmware update process. On the older systems (Renesas based), Onkyo places a connector on the board to allow for programming of these chips. While they rarely fail, they can require re-programming in some conditions. For example, the part number for an NR3007 HDMI board is the same as the part number for an NR3008 HDMI board. It is possible to convert the NR3008 board into an NR3007 HDMI board by moving 1 resistor, reprogramming the VMPU and then using the Onkyo firmware update utility to update all of the rest of the firmware in the system. In this example, since the MAIN CPU is located on a separate board and is already setup as an NR3007 device, the Onkyo update will happily convert the firmware over to that of an NR3007 EXCEPT for the VMPU which will get confused and lock up. Using the external programmer it is a relatively simple task to grab a copy of a good VMPU firmware package and then install it onto a different board.
VSP – The VSP uses a NOR flash for hosting firmware so it is easy to copy. On the NR838 which uses the Marvel QDEO VSP chip, the firmware chip is marked as Q8040 and is a 16 pin NOR flash (SOIC-16). On older models like the NR3008 which use the IDT REON VSP chip, this chip is marked as U8031 and is also a NOR flash but has 56 pins (TSOP-56). I have found that this firmware seems to be compatible across all models that use the same chip. For example, you can use the VSP firmware from an NR818 on an NR616 because both use the same Marvel controller. Similarly, you can use the firmware from an NR3008 on an NR5007 because both use the same SX-50 (Reon) chip.
HDMI – The HDMI controller chips being used by Onkyo on newer designs are based on the SII9573CTU chip. This chip uses an 8 pin (SOIC-8) design to host the firmware. On the NR838, this chip is listed as Q8305. This chip is easily copied for use on designs with the SII9573CTU
HDCPTX/HDCPRX – Onkyo models from the x3x (e.g NR838) generation began to implement the HDCP specification which enforced copy protection on content. To make this work Onkyo had to upgrade the HDMI transmitter and one of the HDMI receivers with new devices that utilized an internal processor each of which required its own firmware. On the NR838 for example, these are listed as Q8405 and Q8403.
How Onkyo Updates work
Onkyo firmware updates are managed by the Main DSP chip. As noted previously, this chip runs a version of Linux much like many PC's and Servers so its capabilities as a fully functioning computer are utilized by Onkyo to update the firmware for the rest of the subsystems in the Receiver. The one big challenge I have noticed is that if a device (for example, DSP 2) isn't working starting properly, DSP 1 has no mechanism to update its firmware. One of the threads on this forum related to a user with an NR646 who had no sound. What we found is that he could start a firmware update but it would always stop at about 90% on the DSP 1 update. As we looked into this we realized that it was actually finished with the DSP 1 update (which is why the user could still access USB and Network functionality) but Onkyo bundled DSP2 firmware in with this as well and DSP2 wasn't booting up. This can happen if power is shut off in the middle of a firmware update but is generally pretty rare. In this case, since DSP2 couldn't boot up, there was no way for DSP1 to update its firmware. The solve this issue, I pulled the DSP2 firmware chip off of a bad board I had lying around, used my programmer to grab a copy and then sent that copy to the user via email. He was able to find someone locally with a chip programmer, copy my file to the device, solder it back on the board and get his system running again.
In this example I sent the user the exact code that he needed but in many cases, you only need to get the chip to boot. Once you can get the chip to startup, you can use the Onkyo Firmware Update utility for that model to update its program for the specific model it is installed in. For example, when I see QDEO chips (VSP's) that aren't booting, I will typically grab a copy of the QDEO program from any board I have lying around, make a copy and install it. It really doesn't matter which version of software I install, only that the software will allow the QDEO chip to boot up so that I can use the Onkyo Firmware Update process to upgrade it to the correct value for that board. Some devices (like DSP 1) do not receive a complete update and instead, Onkyo simply adds patches but others, like DSP2, VSP, VMPU, HDCP and HDMI firmware get a complete update from the Onkyo utilities so you only need to give them some type of code to get them to startup.
Other observations
I often have people ask me questions like: "can I update the firmware on my NR616 to give it Audyssey XT32?" or "Can I use the DSP firmware from an NR636 to get Atmos functionality on my NR616?". The answer is "absolutely no way". First, the NR616 only has 1 DSP while the unit that has Audyssey (NR818) has two and the NR636 also has 2. The reason Onkyo added 2 DSP's is most likely because 1 DSP did not have enough computing power to perform DSP function AND figure out the Audyssey calculations. In the case of the NR636, to make Atmos work, Onkyo had to drop Audyssey altogether and move to "object based sound modelling" (called AccuEQ) These two DSP's work VERY closely together and DSP 1 uses DSP 2 as "extra horsepower" so even if you put an NR818 firmware chip on an NR616, you don't have enough horsepower to make it work. Similarly, the NR616 won't have enough horsepower to drive AccuEQ.
Having said this, the NR717 has 2 DSP's but has the same Audyssey solution as the NR616 so in this case, it might work but would likely still have a whole raft of issues. First, if you think about Audyssey setup in terms of what you see as a user, it obviously touches the DSP because that is where the sound is manipulated BUT, it is the Main CPU that asks you to plug in the setup mic. It is the VMPU that shows the screen with the Sofa and all the speakers during the setup and all of this is touching the HDMI subsystem as well. This means that if you change the DSP 1 firmware to another model, you are probably also going to have to change the MAIN CPU firmware, the VMPU firmware and possibly the HDMI firmware to get all of the features to work together properly. Simply put, this may be possible but it isn't worth the time, just go out and buy a new receiver with the features you want.
Todd