googlecreativelab / open-nsynth-super

Open NSynth Super is an experimental physical interface for the NSynth algorithm
Apache License 2.0
2.42k stars 270 forks source link

OLED screen won't turn on. #27

Open USERxUNKNOWN opened 6 years ago

USERxUNKNOWN commented 6 years ago

I have tried resoldering the jumpers and the pins but nothing is powering it. Nsynth makes noise when plugged into my MPC. So I know that at least works. Any ideas? Is there a firmware for the OLED that I am maybe missing?

KyleWerle commented 6 years ago

I don't think the MIDI goes through the STM and goes directly from the optocoupler input to the rPi. I'm pretty sure it is the same for the OLED (output directly from rPi), but with the way the nsynth app works it may not refresh correctly without the Firmware for the STM? I'm not entirely sure.

You may need to double check that you have flashed your STM with the nsynth firmware.

$ cd /home/pi/open-nsynth-super/firmware/src $ make install

You should get a confirmation similar to this after successfully flash the STM

** Programming Started **
auto erase enabled
Info : device id = 0x10006444
Info : flash size = 32kbytes
wrote 12288 bytes from file ../bin/main.elf in 0.607889s (19.740 KiB/s)
** Programming Finished **
** Verify Started **
verified 11788 bytes in 0.050784s (226.680 KiB/s)
** Verified OK **
** Resetting Target **
adapter speed: 1001 kHz
shutdown command invoked

Good luck!

nsynthsuper commented 6 years ago

The OLED doesn't require any firmware itself, if it's connected and working then it should power up. Regarding the firmware, if you can hear a difference when you turn the encoders and potentiometers then you will know that the firmware is installed and running correctly.

If you have a spare Arduino lying around then it may be worth using it to test the screen module you've got using the Adafruit example library.

acbakhit commented 6 years ago

I too am experiencing no display on my OLED, this is actually the second display I'm trying too, I'm thinking chances are low having two bad displays? Any other way of troubleshooting the display?

tekfunk commented 6 years ago

+1

My display is not working as well. When I hook up a monitor to the Pi, I can see the simulated display and all the knobs are working. Is there not something that we can run on the pi that can look for the display?

USERxUNKNOWN commented 6 years ago

*Bump

nsynthsuper commented 6 years ago

Per the previous comment, it would be worth checking that the OLED is functioning correctly using an Arduino or other separate device. Following that, you should check for continuity and shorts on your ONS board.

rockycamp commented 6 years ago

A note of caution with this part of assembly - some separation of the boards is advisable when soldering pins to the respective pads as this will avoid solder bridges that can get sandwiched between boards. That said, I have yet to get the OLED working. I have checked power and traced data and clock to the STM. I have also confirmed functionality of the OLED with arduino. Using 16Gb image. Firmware successfully flashed. Controls, audio and midi are all working.

UPDATE 1

I put a scope on the SSD1306 reset line and saw the rpi momentarily pull the reset line low upon startup. I also ran i2cdetect -y 1 to probe the i2c bus and found the MCU at 0x47 but no display at 0x3d. If I disconnect the display SDA then the MCU is not found which suggests that the the i2c bus relies on pull-ups resistors located on the display board. There is also a device at 0x4c but is labelled "UU" which I think is the PCM chip. So it would appear at this stage the display is not visible on the i2c bus.

UPDATE 2

Ok I have the OLED display working. I do not have a definitive answer as to why it does not appear on the i2c bus but can confirm that my problem was with the pre-canned image. Firstly, joints and continuity in my hardware were good but the display is not detected. When I created a new image from Raspian archive I was able to detect the display at address 0x3d. I then continued provisioning ons as per the instructions. This leaves open the possibility that the display may work with the stock image following an apt-get/upgrade and firmware rebuild/flash although, I have not attempted this process so can not confirm validity. Lastly I've observed that the screen only updates when I do not have UI devices connected to pi i.e. monitor, keyboard and mouse.

UPDATE 3

FInally I have got to the root cause of my non-working screen. The issue was that my rpi i2c 1 interface appears has some strange failure mode when connecting the screen. I have tried another rpi and also a model b+ and both detect the screen on the i2c bus. Note that the working OLED reported in update 2 above was with one of these rpi's combined with manually provisioned onss and not the faulty rpi. So ultimately it was a hardware problem. Can also confirm that stock image also works on these pi's.

WellDrestGhost commented 6 years ago

I am having similar issues as stated above.
I am using the 16GB LITE version of the firmware disk image. I have my Raspberry Pi 3 connected via HDMI to a monitor, as well as a keyboard. When the Rpi boots up, I can see what should display on the Nsynth's OLED in the upper-left hand corner. When I press keys to login and start the firmware installation, I am able to hear sounds (as if i pressed a key on a midi keyboard) coming out of the 3.5mm audio jack. I am able to turn the encoders, and the 6 potentiometers and move my finger around the touch pad with the display on my monitor responding correctly. After installing the firmware (via the instructions) I no longer get audio when pressing the keyboard. My OLED screen does not show a display (even after reseting) and I am not getting any response from a plugged in MIDI keyboard or Audio from the 3.5mm jack. I tried to get audio of the Rpi's audio jack, and still no response. I cannot see any physical solder bridges or shorts, however I am not ruling that out. Any ideas?

UPDATE I checked the connections with a digital multimeter and found a spot on the OLED pins that wasn't receiving any voltage. Started messing around with the connections using my soldering iron, and the screen popped on. I let the solder dry and it now turns on with sound and works as expected. My guess is as mentioned above, it could have been a solder bridge that I fixed when I reheated the solder. Not sure this would help anybody else, but there it is. Flawed soldering was the answer for me.