1. Attachments are working again! Check out this thread for more details and to report any other bugs.

Reducing the beeps from the JBL amp

Discussion in 'Gen 2 Prius Audio and Electronics' started by brosnan, Apr 2, 2005.

  1. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    Sorry to start another thread on beeps, but let's focus this one on how (or if) we can reduce the volume (to zero?) of the loud beeps which occur when pressing MFD or steering wheel beeps. These were recently discovered by SynergyGuy to be generated inside the JBL amplifier under the passenger seat (for those with the external amp option).

    I've found the beeps are added to all speaker outputs inside the JBL unit. Seat belt related beeps come from somewhere else - no the audio speakers.

    At http://www.wb5mrn.com/prius/jblpcb.jpg is a photo which describes the structure of what's inside. It seems the MFD generates an AVCLAN command (see http://www.wb5mrn.com/prius/beep_command.jpg ) which is a request for beep. This is detected by the NEC uPD6708 IEBus controller which notifies the Analog Devices DSP microcomputer. The DSP chip synthesizes a sine wave and adds it (along with any equalization and other signal processing it might be doing on the main audio) to all the I2S serial digital audio outputs going to the Asahi Kasei DACs. Those chips generate the waveforms which are amplified and sent to the speakers.

    I was kind of hoping there was a analog tone generating chip. That way we could have reduced the beep amplitude with a volume knob. But it's deeping integrated into the firmware running on the DSP chips (presumably stored in the 2M Flash memory). So the options seem to be

    A) Decipher the instructions in the Flash memory and find the part that does beeping and rewrite it for a different amplitude or frequency that's less annoying and re-flash the contents.

    or

    B) Detect the beep command with a small microcontroller monitoring the serial data between the uPD6708 and the DSP chip, then activate the mute line for about 50ms to supress the beep sound.

    These are both hard. I feel there's a chance I might be able to do item B, but I'm hoping someone can come up with a simplifying idea. Any thoughts?
     
  2. knowledgeseeker

    knowledgeseeker New Member

    Joined:
    Apr 18, 2004
    57
    1
    0
    Location:
    Walnut Creek, CA
    Vehicle:
    2004 Prius
    <div class='quotetop'>QUOTE(brosnan\";p=\"77985)</div>
    Some thoughts ...

    Presumably the coding could be changed at either end - at the MFD where the beep signal is sent, or at the JBL where it is decoded. Perhaps one is simpler than another

    In the other "beep" thread it was noted that the Land Cruiser uses a similar setup, but with an analog amp. That amp might not know how to decipher the beep codes - and it might produce better sound. If it is possible to learn more about the LC amp, that might be a route. If someone has a chance to take a test drive or look through the LC manual, the beep behavior might be checked.

    Good luck - fixing this would repair the single most annoying "feature" of the car (for me - probably the bladder is a big issue for many).
     
  3. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    Good point about dealing with the beep on either end. That triggerred another thought. Maybe it's possible to build a little box that's in series with the 2 AVC-LAN wires. On the MFD it would pretend to be the JBL amp and listen to commands coming from the MFD. After decoding them, it would pass the commands on if they were volume, fader, tone adjust or similar commands. Beep commands would not be passed on. In fact they could trigger some circuit of our own choosing to make clicks or beeps which are adjustable and less annoying.
     
  4. Sufferin' Prius Envy

    Sufferin' Prius Envy Platinum Member

    Joined:
    Jul 7, 2004
    3,998
    18
    0
    Location:
    USA
    Vehicle:
    Other Non-Hybrid
    Maybe you could introduce a virus which would kill the beep, or at least change it into a quiet sneeze. :wink:
     
  5. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    The data sheet for the 6708 ( http://www.necel.com/nesdis/image/U10680EJ2V0DS00.pdf ) gives all the detail of the AVC-LAN (IEBUS) signalling. From that the beep command waveform can be decoded. Each low going pulse is a 0 if narrow and a 1 if wide. The upward isolated blips are the boundaries between master (MFD) and slave (JBL) talking. So here's the detail of the beep message:

    Header = 0x3 (start bit + not a broadcast)
    Master Address = 0x110 (The MFD's address I guess)
    Slave Address = 0x440 (The JBL's address I guess)
    [ACK] (first upward blip)

    Control Field = 0xf (write data)
    [ACK]

    Message Length Field = 0x5 (5 bytes of data will follow)
    [ACK]

    Data Field = 0x00
    [ACK]

    Data Field = 0x5E
    [ACK]

    Data Field = 0x29
    [ACK]

    Data Field = 0x60
    [ACK]

    Data Field = 0x01
    [ACK]


    So in hexadecimal, the beep command is the 5 byte sequence 00 5E 29 60 01

    Next - how to best detect or surpress these. One possibility: Use a microcontroller to detect this pattern, but before it gets to the end, mess up the last data byte so the parity bit will be wrong and the JBL won't (I hope) make the beep noise. Another possibility is that those 5 bytes include a volume parameter for the beep (and maybe frequency).
     
  6. bobc

    bobc New Member

    Joined:
    Jan 13, 2005
    361
    5
    0
    Location:
    Durham, NH
    Caveat: I have no clue what I'm tallking about...

    But, is it possible to just build a filter that filters out that freq. of the beep?
     
  7. V8Cobrakid

    V8Cobrakid Green Handyman

    Joined:
    Jun 6, 2004
    3,790
    152
    0
    Location:
    Park View, Los Angeles, CA. U.S.A
    Vehicle:
    2004 Prius
    Model:
    N/A
    i was going to post something like this.. but found i am also lost on what i'm talking about. I think you might have to add a "simple" filter like this to every speaker like. I think it would also kill the voice command been.

    quite a task on your guys hands. Hope you figure something out. You will help save us all from the evil beeps. :)
     
  8. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    I did think about a filter to get rid of the tone used in the beeps. Two things about this make it hard - one is to not affect sound quality (who knows - some music might contain exactly that same note) and the other is that there are at least 6 separate places where the filter is needed. Unfortunately those 6 channels are not all derived from one place - that could have limited it to a single filter.

    Keep the ideas coming, though!
     
  9. naterprius

    naterprius Senior Member

    Joined:
    Mar 15, 2004
    1,843
    11
    0
    Location:
    USA
    Vehicle:
    Other Non-Hybrid
    Mike, a much easier approach; just change the destination address to be something other than the JBL Amp! Perhaps the Amp would ignore the message on the bus?

    Nate
     
  10. engunneer

    engunneer Member

    Joined:
    Mar 14, 2005
    307
    0
    0
    Location:
    Medford, MA
    Vehicle:
    2020 Prius Prime
    Model:
    XLE
    As an EE, I'd actually engoy making a circuit to eat the beep command, but, it doesn't annoy me much, and I don't want to go tearing into my dashboard anytime soon, as I've only had the car for a fortnight. Anyone in the Seattle area willing to test a circuit if I build it?
     
  11. frenchie

    frenchie Member

    Joined:
    Oct 19, 2004
    150
    48
    0
    Location:
    France, not far from PARIS
    Vehicle:
    Other Hybrid
    Model:
    N/A
    <div class='quotetop'>QUOTE(engunneer\";p=\"78335)</div>
    you do not need to access to the dashboard , the amp is under the passenger seat.and the signals of the avc lan are there too. :roll:
     
  12. Chucka

    Chucka Junior Member

    Joined:
    Mar 23, 2005
    39
    0
    0
    Location:
    Fairfield County, CT
    Vehicle:
    2012 Prius
    Model:
    Four
    Actually what would be nice would be a box that processes the AVC LAN signal including the level, Balance and EQ functions and put out a Front L-R and Rear L-R signal that can be fed to an external amplifier.

    I have though of trying to obtain a JBL/Prius amplifier and modifying the inner workings to bypass the amplifier section and instead put out a line level signal that can be fed to an external amps at line level instead of speaker level.

    I would like to see someone produce such a product so that I don't have to. It looks like a number of cars are or will be using the AVC LAN protocal so possibly it can be used for more than one make and model of car.
     
  13. DanMan32

    DanMan32 Senior Member

    Joined:
    Aug 27, 2004
    3,799
    27
    0
    Location:
    Tampa Bay, FL
    Since we are working on the AVCLan, see if the touchscreen can be decoded. I'd love to feed that into my laptop as an external pointing device, either through USB, or through PS/2 input, if PS/2 input can send absolute location rather than movement.
     
  14. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    I have a feeling the touchscreen presses are showing up on the AVC-LAN. Let me try to capture and decode one. It's kind of slow using an oscilloscope but one or 2's not bad. Obviously a nice spin off from this project could be a bus monitor. Perhaps a little box that eavedrops on the AVC-LAN and sends RS232 human-readable versions of everything on the bus to a laptop serial port. Or as DanMan32 suggests a USB mouse interface (USB HID profile allows relative or absolute cursor control).

    And Nate - messing with the address does sound better than clobbering the data portion. The address comes earlier and the JBL won't know anything happened. Hopefully the MFD won't notice the missing ACK bits and resend forever. Probably it times out after a few tries since the beep's not very criticial.
     
  15. frenchie

    frenchie Member

    Joined:
    Oct 19, 2004
    150
    48
    0
    Location:
    France, not far from PARIS
    Vehicle:
    Other Hybrid
    Model:
    N/A
  16. naterprius

    naterprius Senior Member

    Joined:
    Mar 15, 2004
    1,843
    11
    0
    Location:
    USA
    Vehicle:
    Other Non-Hybrid
    Mike; we are now moving into my comfort zone... digital communication.

    My brain is just spinning over the possibilties... I MUST finish up my Auo-Lock mod before diving into this, however.

    Nate
     
  17. engunneer

    engunneer Member

    Joined:
    Mar 14, 2005
    307
    0
    0
    Location:
    Medford, MA
    Vehicle:
    2020 Prius Prime
    Model:
    XLE
    My idea was not even to mess up the data but to just buffer a command, check if it's a beep and resend it if OK. I'd even send the ACK back to the MFD, so it /thinks/ it beeped. If there is enough headroom left in the processor I use, it would be easy to grab all AVC-LAN outputs and toss them over a serial (RS-232) link, where anyone else could build a microcontroller interface right into thier project.

    Again, I'd rather not mess with my wiring just yet, but I can work on this on the side on Wednesday nights. I just need help getting up to speed with what we already know about AVC-LAN. Brosnan, you seem to know some about this. I would like to chat about this with whoever is interested. Maybe we can all set up a time to use the PriusChat chat room to discuss? We could probably have a solution out in a few weeks if we work at it.
     
  18. DanMan32

    DanMan32 Senior Member

    Joined:
    Aug 27, 2004
    3,799
    27
    0
    Location:
    Tampa Bay, FL
    Although it probably wouldn't matter, If a buffering method is to be used, I'd take it before it enters the amp.

    And you can't clobber/alter the address until you know the command, otherwise you'd also kill amp control besides the beeps. This means buffering would be required. If you intercept, and clobber data to the amp once it is detected to be a beep command, you may set off some AVC diagnostic codes.
     
  19. brosnan

    brosnan Member

    Joined:
    May 2, 2004
    159
    11
    0
    Location:
    Silicon Valley
    Vehicle:
    2010 Prius
    Model:
    IV
    IEbus monitor

    Looks like IEBus debuggers and monitors exist:
    http://www.apply.co.jp/English/catalog/aldm.pdf
    http://www.apply.co.jp/English/catalog/ieb2.pdf
    http://www.apply.co.jp/jp/ibus/iebus.html
    http://www.apply.co.jp/jp/ibus/apieb2.html

    Unfortunately they cost $1 to $2K and it's not clear they support Prius data rates. But the last link screen capture labelled Trace give a good idea for an RS232 log format.

    engunneer: I could attend a chat meeting tonight anytime or Thursday night anytime. Would be glad to discuss strategy.
     
  20. Chucka

    Chucka Junior Member

    Joined:
    Mar 23, 2005
    39
    0
    0
    Location:
    Fairfield County, CT
    Vehicle:
    2012 Prius
    Model:
    Four
    I wish we could get a manufacturer to jump on this project (beeps - level- balance - EQ - analog out) either as a stand alone product (prefered) or as part of their amplifier.

    Does anyone know if this same AVC-LAN system is used on other Toyota/Lexus cars or by any other manufacturers? There could be a growing aftermarket here......meaning HERE!.....With we Prius owners.