No announcement yet.

uOled-96G2 locks up

  • Filter
  • Time
  • Show
Clear All
new posts

  • uOled-96G2 locks up

    Quite regularly, my uOled-96G2 module freezes up. The last image is shown but it doesn't respond any more to serial commands. Also once every 10 start-ups, it hangs on the welcome splash screen. Is there any way to avoid this from happening? I use the uOled-ready signalling to make sure the module allows accepting commands. But this apparently is not helping much.

  • #2
    What make and model of uSD card are you using?

    If you have another card try that


    • #3
      Thanks for the quick reply. The SD card I use is a SanDisk Mobile Ultra 4 GB, Micro SD HC


      • #4
        I would hope that uSD card should be ok, but again, if you have another one, please try that.

        Can you supply a log of the commands sent and the responses received?

        Can you supply a picture of how everything is connected?

        What baud rates are you using?

        What is your driving system?


        • #5
          Here is how the system is powered up. As the screen freezes also on power up, I think it is a good place to start. The lock up also occurs sporadically after a successful start of the uOled.
          Programmed in basic, but I guess you get the picture with the comments.

          Sub Ol_reset() ' Subroutine
          Oled_reset = 0 ' OLED reset, pull pin low
          Waitms 100 ' Length of RESET-Impuls , 100 ms
          Oled_reset = 1 ' Oled reset set, reset pin high
          Do : Loop Until Oled_ready = 0 ' wait for OLED ready, Oled_ready is the IO1 pin of the uOled
          Wait 2 ' wait another 2 seconds End Sub
          End Sub

          Then a sound command is sent at 115200 baud:

          Sub Ol_beep(byval Anzahl As Integer , Byval Tonhoehe As Byte , Byval Dauer As Integer , Byval Pause As Integer)
          Dim Ibeep As Integer
          Dim X_dau As Integer
          Dim H_dau As Byte At X_dau + 1 Overlay 'high byte
          Dim L_dau As Byte At X_dau + 0 Overlay 'low byte
          X_dau = Dauer
          For Ibeep = 1 To Anzahl
          Print #buart_oled , Chr(hf_beep) ; Chr(lf_beep) ; Chr(0) ; Chr(tonhoehe) ; Chr(h_dau) ; Chr(l_dau); 'send command for sound to uOled
          A1 = Inkey(#buart_oled)
          If A1 = 6 Then Exit Sub ' uOled acknowledgment OK
          If A1 <> 0 Then
          Print #buart_test , "ACK=" ; A1 '' uOled acknowledgment not OK
          Exit Sub
          End If
          Waitms Pause
          Next Ibeep
          End Sub

          The driving system is a Lithium Polymer cell of 750 mAh. In the supply there is a 5V charge pump to boost the voltage to 5V only for the uOled.
          Next post I will post a picture and see if I can get some response from the module.


          • #6
            The PCB mounted in a keyfob. The header of the uOled has been replaced by direct cable connection to lower its profile.
            Attached Files


            • #7
              Sorry, I'm not getting any ideas from this.

              Are you able to monitor communications into and out of the display?

              Are you able to detect the display 'stopping' in your controller's code and reset it (since you have reset connected)?

              Are you sure it's not your controller that is locking up?

              What is the voltage to the display when the lockup occurs?

              Again, have you tried another uSD card? (Expecially since the issue seems quite elusive and replacing the uSD is, comparatively, so simple)


              • #8
                I will try another SD card. Easy test for sure. As to other questions:
                I can monitor communication into and out of display, however a freeze on start up I can not monitor since the system can not start with the serial cable connected (the serial cable feeds voltage into the controller preventing it from booting up properly). I have tried resetting the display through my controller's firmware , but it won't get past the splash screen. The controller is not freezing as there is a flashing led to monitor this. Voltage to display is 5V. I will try another SD card and see if things change.


                • #9
                  >the serial cable feeds voltage into the controller preventing it from booting up properly

                  Is there some way to float those pins during reset? (or maybe try and set them in the opposite sense)


                  • #10
                    Not easy. What I will do is to put in some seconds time delay at the very start of the program before the uOled is addressed. This will give me time to insert the serial cable. When you mean 'communications info out of the module' I presume you mean the acknowledgement codes sent? The firmware of my controller already catches those so I will see if I can see anything.

                    Question: is there any specifications / limitations for the voltage ramp-up when powering the uOled (i.e. maximum rise time)?


                    • #11
                      There shouldn't be any restrictions, check the datasheet, but I don't believe there is anything that could cause issues.

                      Why I asked about floating the TX pin during startup was that I beleive the module can be prevented from booting if the TX is held in 'break', but I can't see how that could be happening as there would have to be issues elsewhere


                      • #12
                        Indeed, that shouldn't be an issue, because the serial comm between controller and uOled is separate from comm between controller and my laptop (for debugging). I hope to have some more info by the end of today.


                        • #13
                          OK, did a lot of testing. Good thing is that I have 4 units of hardware, so I could swap the uOled from one to the other, as I did with the flash cards. It soon appeared that one of my PCB's is faulty. No idea which component went rogue, but the freezes got progressively worse until the entire PCB gave up. uOled is stil working fine though. problem solved in as far as uOled is concerned, it was never the cause of trouble. Thanks for thinking with me.