Help me fix my unreliable Wavestate!
Moderators: Sharp, X-Trade, Pepperpotty, karmathanever
Help me fix my unreliable Wavestate!
Hi all,
I have a sick wavestate (original) that was purchased 2nd hand. I was never quite rock solid, always occasionally froze mid-play or occasionally wouldn't boot up.
Lately it's become more unreliable and rarely boots up at all, freezing on the "Korg wavestate" splash screen.
I have a good bit of experience fixing synthesizers and other electronics so I did some troubleshooting, but at this point I'm pretty stumped. Here's what I've tried so far:
I took the unit apart and set it up on my electronics bench, with keyboard and panel connected.
There are no obvious visible signs of damage to the boards or components. Nothing feels particularly hot to the touch when running. In fact, while stuck on the boot screen, even the Broadcom chip on the RPi CM3+ barely gets warm without the heatsink attached, so it's probably not doing much.
To rule out a bad power supply, I connected it to a stable bench PSU @ 12VDC. No change.
The blue LED on the main board still flashes when stuck on boot screen.
When connected via USB, Win 10 finds the wavestate audio device.
Bonjour Browser shows the ssh/sftp services of the wavestate.
Booting into USB Boot Mode works, and windows then sees the BCM2710 boot device (from the Raspberry Pi Compute Module 3+).
I had the RPi Compute Module I/O board and a spare 8GB CM3+, so I took the CM3+ out of the wavestate, connected it via the I/O board to a pc with USB, booted it using rpiboot and dumped the contents of the eMMC flash. At that point, I switched modules and wrote the flash to the other CM3+, effectively cloning it. That way I could eliminate an unreliable CM3+ as the source of the issues. The process worked as expected, but still freezes on the boot screen with the clone installed.
(see below, if anyone is interested in the process)
I can't check firmware version from the menu since it no longer boots, but looking at the files in the flash, it appears to be 2.1.3.
The System Updater does not work (no device found), but the USB Boot Utility works. I tried updating the cloned CM3+ to firmware 3.1.7, and that reported as successful. It still freezes the same way.
Just out of curiousity, booting the CM3+ in the I/O board with HDMI video hooked up shows a pretty typical embedded Linux boot sequence (looks like they used Yocto to build the system) and nothing really stands out. Then again, I'm not sure exactly what I'm looking for and how this works on a healthy unit.
Does anyone here know more about wavestate internals than I do? Any further suggestions would certainly be welcome.
I have a sick wavestate (original) that was purchased 2nd hand. I was never quite rock solid, always occasionally froze mid-play or occasionally wouldn't boot up.
Lately it's become more unreliable and rarely boots up at all, freezing on the "Korg wavestate" splash screen.
I have a good bit of experience fixing synthesizers and other electronics so I did some troubleshooting, but at this point I'm pretty stumped. Here's what I've tried so far:
I took the unit apart and set it up on my electronics bench, with keyboard and panel connected.
There are no obvious visible signs of damage to the boards or components. Nothing feels particularly hot to the touch when running. In fact, while stuck on the boot screen, even the Broadcom chip on the RPi CM3+ barely gets warm without the heatsink attached, so it's probably not doing much.
To rule out a bad power supply, I connected it to a stable bench PSU @ 12VDC. No change.
The blue LED on the main board still flashes when stuck on boot screen.
When connected via USB, Win 10 finds the wavestate audio device.
Bonjour Browser shows the ssh/sftp services of the wavestate.
Booting into USB Boot Mode works, and windows then sees the BCM2710 boot device (from the Raspberry Pi Compute Module 3+).
I had the RPi Compute Module I/O board and a spare 8GB CM3+, so I took the CM3+ out of the wavestate, connected it via the I/O board to a pc with USB, booted it using rpiboot and dumped the contents of the eMMC flash. At that point, I switched modules and wrote the flash to the other CM3+, effectively cloning it. That way I could eliminate an unreliable CM3+ as the source of the issues. The process worked as expected, but still freezes on the boot screen with the clone installed.
(see below, if anyone is interested in the process)
I can't check firmware version from the menu since it no longer boots, but looking at the files in the flash, it appears to be 2.1.3.
The System Updater does not work (no device found), but the USB Boot Utility works. I tried updating the cloned CM3+ to firmware 3.1.7, and that reported as successful. It still freezes the same way.
Just out of curiousity, booting the CM3+ in the I/O board with HDMI video hooked up shows a pretty typical embedded Linux boot sequence (looks like they used Yocto to build the system) and nothing really stands out. Then again, I'm not sure exactly what I'm looking for and how this works on a healthy unit.
Does anyone here know more about wavestate internals than I do? Any further suggestions would certainly be welcome.
Dan Philips will know a great deal more about the Wavestate than the rest of us are ever likely to. I would expect he has been extremely busy with getting the multi/poly to release, and hasn't been seen on here for quite a while.
As for troubleshooting, the obvious candidates are power supply rail quality and connectivity of the Raspberry Pi CM3 with the other parts of the synth. It may even come down to one cracked surface mount component, or a bad solder joint.
There are a few snippets out there in the public domain. Basically the Wavestate consists of two main boards, as you've discovered.
It runs on a Raspberry Pi Compute Module 3.
Main panel board - contains user interface elements (display, buttons, knobs, wheels) MCUs to support them and communicate with the CM3.
Processor circuit board KLM55055 - subsystems for audio, MIDI, keyboard, power, and socket for the CM3.
The KLM55055 board is also present in the opsix synth. In the Wavestate MkII and Modwave MkII, this has been replaced by the KLM55364 board, and is fitted with a CM4.
The following may also be of general interest:
https://talldog.dozuki.com/Guide/Korg+D ... on+Guide/9
.
As for troubleshooting, the obvious candidates are power supply rail quality and connectivity of the Raspberry Pi CM3 with the other parts of the synth. It may even come down to one cracked surface mount component, or a bad solder joint.
There are a few snippets out there in the public domain. Basically the Wavestate consists of two main boards, as you've discovered.
It runs on a Raspberry Pi Compute Module 3.
Main panel board - contains user interface elements (display, buttons, knobs, wheels) MCUs to support them and communicate with the CM3.
Processor circuit board KLM55055 - subsystems for audio, MIDI, keyboard, power, and socket for the CM3.
The KLM55055 board is also present in the opsix synth. In the Wavestate MkII and Modwave MkII, this has been replaced by the KLM55364 board, and is fitted with a CM4.
The following may also be of general interest:
https://talldog.dozuki.com/Guide/Korg+D ... on+Guide/9
.
Ha, yeah if Dan would like to chime in, I'm sure he'd know better than any of us what might be going on...
I agree that power and physical damage is a good place to start. Especially since it's been intermittent and getting worse. As mentioned, power is verified good (both by measuring the original PSU and by using my bench supply to power the unit). I didn't see any physical damage to any of the boards, and trying a different RPi CM3+, with the same result, more or less rules out damage to the CM3+. However, there could certainly be some damaged component/joint/trace on the main board that's not obvious.
It's a bit odd to me that it prevents the unit from finishing the boot process. Perhaps it's waiting for initialization of some external peripheral (or from the STM32 MCU on the main board) and never gets the corresponding signal back?
When I have some more time I'll do a more careful inspection of the boards.
I agree that power and physical damage is a good place to start. Especially since it's been intermittent and getting worse. As mentioned, power is verified good (both by measuring the original PSU and by using my bench supply to power the unit). I didn't see any physical damage to any of the boards, and trying a different RPi CM3+, with the same result, more or less rules out damage to the CM3+. However, there could certainly be some damaged component/joint/trace on the main board that's not obvious.
It's a bit odd to me that it prevents the unit from finishing the boot process. Perhaps it's waiting for initialization of some external peripheral (or from the STM32 MCU on the main board) and never gets the corresponding signal back?
When I have some more time I'll do a more careful inspection of the boards.
Here's an update with some new developments:
Working with the assumption that it might be a bad solder joint/trace/connection, I put the original CM3+ back on the main board, did some gentle bending and warping, and whaddayaknow... it booted up again! Pretty consistently too.
On a side note, it would not boot up running on the "cloned" CM3+, even when restored to the exact eMMC contents as the original. Perhaps there are some additional checks taking place? Or perhaps I was just unlucky and the original issues happened with the cloned board?
Either way, this seems to support the bad solder joint hypothesis. I fact, if I slightly bend the main board while running, it will consistently freeze (easy to tell from the blinky lights on the panel). This would also explain why, in the past, it had been running ok on the bench, only to freeze when I put everything back in the case (perhaps with the additional slight stress from the mounting screws).
This is all a bit discouraging since, locating a bad solder joint or trace on a PCB like that is not going to be easy. I tried pressing/bending/warping different parts of the main PCB to try to pinpoint the location further, but I didn't have much luck. I was only able to reproduce it when bending the whole board. But I will continue that effort...
Working with the assumption that it might be a bad solder joint/trace/connection, I put the original CM3+ back on the main board, did some gentle bending and warping, and whaddayaknow... it booted up again! Pretty consistently too.
On a side note, it would not boot up running on the "cloned" CM3+, even when restored to the exact eMMC contents as the original. Perhaps there are some additional checks taking place? Or perhaps I was just unlucky and the original issues happened with the cloned board?
Either way, this seems to support the bad solder joint hypothesis. I fact, if I slightly bend the main board while running, it will consistently freeze (easy to tell from the blinky lights on the panel). This would also explain why, in the past, it had been running ok on the bench, only to freeze when I put everything back in the case (perhaps with the additional slight stress from the mounting screws).
This is all a bit discouraging since, locating a bad solder joint or trace on a PCB like that is not going to be easy. I tried pressing/bending/warping different parts of the main PCB to try to pinpoint the location further, but I didn't have much luck. I was only able to reproduce it when bending the whole board. But I will continue that effort...
That's a good point. I applied freezer spray to each part of the board while running. The only place that triggered the symptoms was when spraying the board area underneath the CM3+ module. Obviously that makes it difficult to pinpoint the exact location since the module has to be installed for the system to run (and detect when it hangs). There's also a possibility that the shock from the freezer spray triggered something on the module itself, since it's pretty densely populated, and that this is just a red herring.
PostPosted: Sun Oct 27, 2024 7:24 pm Post subject:
Interesting. Freezer spray can sometimes be used to good effect when searching for bad solder joints. A bit of localised heat from a narrow nozzle on a hot air rework station might also help, in some cases.
However, it was consistent, and I'm running out of ideas. So I took the CM3+ module out and reflowed all joints on the connector and all components underneath. I also inspected all the traces and joints extra carefully in that area.
Sadly none of that seems to have had any effect. After booting it up again, bending the board slightly would still make it hang.
I can usually get most broken things running again, but this one has proven to be very stubborn...
Visual inspection with a good quality stereo microscope, with gentle prodding, can sometimes reveal a tiny break in a track, joint, or component.
The main board has some vias that don't make contact with the outside layers, suggesting it is probably a multi-layer board. There are no obvious clues to how many layers are present. Faulty vias can be temperature sensitive, and difficult to detect. Broken internal tracks, too!
It's certainly not for lack of trying, that you've been unable to find the culprit.
A new board is going to be cheaper than a new Wavestate.
.
The main board has some vias that don't make contact with the outside layers, suggesting it is probably a multi-layer board. There are no obvious clues to how many layers are present. Faulty vias can be temperature sensitive, and difficult to detect. Broken internal tracks, too!
It's certainly not for lack of trying, that you've been unable to find the culprit.
A new board is going to be cheaper than a new Wavestate.
.
Sadly that's a piece of equipment I do not own.Visual inspection with a good quality stereo microscope, with gentle prodding, can sometimes reveal a tiny break in a track, joint, or component.
Agreed. Since there are no large BGAs or other things that would be hard to route otherwise, my guess is the main board is 4 layers. The CM3+, with the big broadcom chip on it, is probably even more. So yeah, there could even be an internal break.The main board has some vias that don't make contact with the outside layers, suggesting it is probably a multi-layer board. There are no obvious clues to how many layers are present. Faulty vias can be temperature sensitive, and difficult to detect. Broken internal tracks, too!
I hate giving up but it might be the only realistic option.
If I can't easily source a new main board, one hack I might try is mounting it inside the case with something gently pushing on it, giving it a bit of extra tension. Since it seems to be mechanical, perhaps I can find a way where it runs without crashing. It might not be the most robust solution, but it could at least buy me some time.