Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. Time to dust off this thread!

Time to dust off this thread!

Scheduled Pinned Locked Moved Uncategorized
30 Posts 6 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • cato@chaosfurs.socialC cato@chaosfurs.social

    RE: https://chaosfurs.social/@cato/116563857284574318

    Time to dust off this thread! I have now - motivated by a looming deadline, because I promised this display for an event this weekend - managed to make a custom control board and integrate it into my existing software framework!

    cato@chaosfurs.socialC This user is from outside of this forum
    cato@chaosfurs.socialC This user is from outside of this forum
    cato@chaosfurs.social
    wrote last edited by
    #2

    There it is! It can control all 8 rows of LCDs and the alternating indicators that are left of each line of text.

    Link Preview Image
    cato@chaosfurs.socialC 1 Reply Last reply
    0
    • cato@chaosfurs.socialC cato@chaosfurs.social

      There it is! It can control all 8 rows of LCDs and the alternating indicators that are left of each line of text.

      Link Preview Image
      cato@chaosfurs.socialC This user is from outside of this forum
      cato@chaosfurs.socialC This user is from outside of this forum
      cato@chaosfurs.social
      wrote last edited by
      #3

      I added a "line flags" feature to my software - basically a uint8_t with up to 8 flag bits per line of text that can be used for the indicators or whatever else a display might hold in the future. My web frontend automatically renders these as checkboxes based on the display configuration.

      Link Preview Image
      cato@chaosfurs.socialC 1 Reply Last reply
      0
      • cato@chaosfurs.socialC cato@chaosfurs.social

        I added a "line flags" feature to my software - basically a uint8_t with up to 8 flag bits per line of text that can be used for the indicators or whatever else a display might hold in the future. My web frontend automatically renders these as checkboxes based on the display configuration.

        Link Preview Image
        cato@chaosfurs.socialC This user is from outside of this forum
        cato@chaosfurs.socialC This user is from outside of this forum
        cato@chaosfurs.social
        wrote last edited by
        #4

        Since this display is using mosaic segmented LCDs, creating the font data would be a huge pain in the butt to do by just writing down raw bytes. So I made a quick and dirty little tool by tracing a photo of the LCD layout in Inkscape, using this in a HTML file with some JavaScript to make it interactive and having that spit out the correct bytes for the drawn character.

        cato@chaosfurs.socialC 1 Reply Last reply
        0
        • cato@chaosfurs.socialC cato@chaosfurs.social

          Since this display is using mosaic segmented LCDs, creating the font data would be a huge pain in the butt to do by just writing down raw bytes. So I made a quick and dirty little tool by tracing a photo of the LCD layout in Inkscape, using this in a HTML file with some JavaScript to make it interactive and having that spit out the correct bytes for the drawn character.

          cato@chaosfurs.socialC This user is from outside of this forum
          cato@chaosfurs.socialC This user is from outside of this forum
          cato@chaosfurs.social
          wrote last edited by
          #5

          Fun fact! This thing is using 60 bits per character. No, it doesn't use any padding in between. I had to do some annoying bit shifting to get a nice data stream.

          cato@chaosfurs.socialC 1 Reply Last reply
          0
          • cato@chaosfurs.socialC cato@chaosfurs.social

            Fun fact! This thing is using 60 bits per character. No, it doesn't use any padding in between. I had to do some annoying bit shifting to get a nice data stream.

            cato@chaosfurs.socialC This user is from outside of this forum
            cato@chaosfurs.socialC This user is from outside of this forum
            cato@chaosfurs.social
            wrote last edited by
            #6

            Font done, bootup shows the hostname and IP (as much as fits on a single module at least). Exactly as it should be!

            cato@chaosfurs.socialC 1 Reply Last reply
            0
            • cato@chaosfurs.socialC cato@chaosfurs.social

              Font done, bootup shows the hostname and IP (as much as fits on a single module at least). Exactly as it should be!

              cato@chaosfurs.socialC This user is from outside of this forum
              cato@chaosfurs.socialC This user is from outside of this forum
              cato@chaosfurs.social
              wrote last edited by
              #7

              The alternating blinker control also works!

              cato@chaosfurs.socialC 1 Reply Last reply
              0
              • cato@chaosfurs.socialC cato@chaosfurs.social

                The alternating blinker control also works!

                cato@chaosfurs.socialC This user is from outside of this forum
                cato@chaosfurs.socialC This user is from outside of this forum
                cato@chaosfurs.social
                wrote last edited by
                #8

                Aaaand I'm in integration hell

                cato@chaosfurs.socialC 1 Reply Last reply
                0
                • cato@chaosfurs.socialC cato@chaosfurs.social

                  Aaaand I'm in integration hell

                  cato@chaosfurs.socialC This user is from outside of this forum
                  cato@chaosfurs.socialC This user is from outside of this forum
                  cato@chaosfurs.social
                  wrote last edited by
                  #9

                  There seems to be some sort of problem once more than 4 LCD buses are plugged in. But measuring the shared signal lines, the signal levels and edges as well as the power rails look totally fine, so it's not just the driver being too weak...?
                  It fails in a repeatable, consistent way too, so random glitches seem very unlikely.
                  Even at a comically slow 5 kHz clock it still fails.
                  But enough for today, I really need to sleep

                  foxotronic@anubis.socialF cato@chaosfurs.socialC 2 Replies Last reply
                  0
                  • cato@chaosfurs.socialC cato@chaosfurs.social

                    There seems to be some sort of problem once more than 4 LCD buses are plugged in. But measuring the shared signal lines, the signal levels and edges as well as the power rails look totally fine, so it's not just the driver being too weak...?
                    It fails in a repeatable, consistent way too, so random glitches seem very unlikely.
                    Even at a comically slow 5 kHz clock it still fails.
                    But enough for today, I really need to sleep

                    foxotronic@anubis.socialF This user is from outside of this forum
                    foxotronic@anubis.socialF This user is from outside of this forum
                    foxotronic@anubis.social
                    wrote last edited by
                    #10

                    @cato without knowing the circuity; do they may interfere via ground/chassis?
                    Where do you measure the signals: next to the source or next to the sink?
                    Are the glitches also present while measuring?
                    How do you even measure? What propes do you use?

                    (Don't expect an expert discussion from me – those are merely ideas where i would suspected sources of errors while not knowing anything)

                    cato@chaosfurs.socialC 1 Reply Last reply
                    0
                    • foxotronic@anubis.socialF foxotronic@anubis.social

                      @cato without knowing the circuity; do they may interfere via ground/chassis?
                      Where do you measure the signals: next to the source or next to the sink?
                      Are the glitches also present while measuring?
                      How do you even measure? What propes do you use?

                      (Don't expect an expert discussion from me – those are merely ideas where i would suspected sources of errors while not knowing anything)

                      cato@chaosfurs.socialC This user is from outside of this forum
                      cato@chaosfurs.socialC This user is from outside of this forum
                      cato@chaosfurs.social
                      wrote last edited by
                      #11

                      @Foxotronic yeah I measured at the source because it's easier but I was pretty tired, I'll do some more measurements today. Can't say if it happens while measuring yet

                      1 Reply Last reply
                      0
                      • cato@chaosfurs.socialC cato@chaosfurs.social

                        There seems to be some sort of problem once more than 4 LCD buses are plugged in. But measuring the shared signal lines, the signal levels and edges as well as the power rails look totally fine, so it's not just the driver being too weak...?
                        It fails in a repeatable, consistent way too, so random glitches seem very unlikely.
                        Even at a comically slow 5 kHz clock it still fails.
                        But enough for today, I really need to sleep

                        cato@chaosfurs.socialC This user is from outside of this forum
                        cato@chaosfurs.socialC This user is from outside of this forum
                        cato@chaosfurs.social
                        wrote last edited by
                        #12

                        New insights: It must be a signal integrity issue where the LCDs can't get the data quite right. See this capture. Red is clock, blue is data input, brown is data output, green is latch (irrelevant here). I am sending the same data across the whole display so even thouth the output lags behind 10 characters (600 bits), it SHOULD be the same pattern. Every group of HIGH bits is shortened by one bit.

                        Link Preview Image
                        cato@chaosfurs.socialC 2 Replies Last reply
                        0
                        • cato@chaosfurs.socialC cato@chaosfurs.social

                          New insights: It must be a signal integrity issue where the LCDs can't get the data quite right. See this capture. Red is clock, blue is data input, brown is data output, green is latch (irrelevant here). I am sending the same data across the whole display so even thouth the output lags behind 10 characters (600 bits), it SHOULD be the same pattern. Every group of HIGH bits is shortened by one bit.

                          Link Preview Image
                          cato@chaosfurs.socialC This user is from outside of this forum
                          cato@chaosfurs.socialC This user is from outside of this forum
                          cato@chaosfurs.social
                          wrote last edited by
                          #13

                          (also yay, finally managed to get my PicoScope to work in Linux. One less reason to boot up the old Windows install)

                          1 Reply Last reply
                          0
                          • cato@chaosfurs.socialC cato@chaosfurs.social

                            New insights: It must be a signal integrity issue where the LCDs can't get the data quite right. See this capture. Red is clock, blue is data input, brown is data output, green is latch (irrelevant here). I am sending the same data across the whole display so even thouth the output lags behind 10 characters (600 bits), it SHOULD be the same pattern. Every group of HIGH bits is shortened by one bit.

                            Link Preview Image
                            cato@chaosfurs.socialC This user is from outside of this forum
                            cato@chaosfurs.socialC This user is from outside of this forum
                            cato@chaosfurs.social
                            wrote last edited by
                            #14

                            pretty sure the clock (red) shouldn't have hiccups like this

                            Link Preview Image
                            cato@chaosfurs.socialC 1 Reply Last reply
                            0
                            • cato@chaosfurs.socialC cato@chaosfurs.social

                              pretty sure the clock (red) shouldn't have hiccups like this

                              Link Preview Image
                              cato@chaosfurs.socialC This user is from outside of this forum
                              cato@chaosfurs.socialC This user is from outside of this forum
                              cato@chaosfurs.social
                              wrote last edited by
                              #15

                              let's play around with some series termination

                              cato@chaosfurs.socialC 1 Reply Last reply
                              0
                              • cato@chaosfurs.socialC cato@chaosfurs.social

                                let's play around with some series termination

                                cato@chaosfurs.socialC This user is from outside of this forum
                                cato@chaosfurs.socialC This user is from outside of this forum
                                cato@chaosfurs.social
                                wrote last edited by
                                #16

                                330R on both data and clock - data is acceptable, but clock is way too weak. It still registers though! Still showing garbage anyway. But now the data out doesn't keep losing bits 😄
                                Gonna try 100R on clock and leave it at 330R for data.

                                Link Preview Image
                                cato@chaosfurs.socialC 1 Reply Last reply
                                1
                                0
                                • R relay@relay.infosec.exchange shared this topic
                                • cato@chaosfurs.socialC cato@chaosfurs.social

                                  330R on both data and clock - data is acceptable, but clock is way too weak. It still registers though! Still showing garbage anyway. But now the data out doesn't keep losing bits 😄
                                  Gonna try 100R on clock and leave it at 330R for data.

                                  Link Preview Image
                                  cato@chaosfurs.socialC This user is from outside of this forum
                                  cato@chaosfurs.socialC This user is from outside of this forum
                                  cato@chaosfurs.social
                                  wrote last edited by
                                  #17

                                  I extended my font generator thingy to allow the reverse operation, i.e. entering bytes and showing what they would look like on the LCD. I then added a function to shift the data bit by bit, and tried it with the character I am trying to send (5), and of course - one left shift and I get exactly the garbled characters I am seeing on the display. So that is what's happening. Somehow there is a single bit shift in all of the data

                                  cato@chaosfurs.socialC 1 Reply Last reply
                                  0
                                  • cato@chaosfurs.socialC cato@chaosfurs.social

                                    I extended my font generator thingy to allow the reverse operation, i.e. entering bytes and showing what they would look like on the LCD. I then added a function to shift the data bit by bit, and tried it with the character I am trying to send (5), and of course - one left shift and I get exactly the garbled characters I am seeing on the display. So that is what's happening. Somehow there is a single bit shift in all of the data

                                    cato@chaosfurs.socialC This user is from outside of this forum
                                    cato@chaosfurs.socialC This user is from outside of this forum
                                    cato@chaosfurs.social
                                    wrote last edited by
                                    #18

                                    I did confirm with the oscilloscope that what the LCD is receiving is valid data now and that the data matches what it should be. So the bit shift must have occurred outside of the timeframe I sampled with the scope

                                    cato@chaosfurs.socialC 1 Reply Last reply
                                    0
                                    • cato@chaosfurs.socialC cato@chaosfurs.social

                                      I did confirm with the oscilloscope that what the LCD is receiving is valid data now and that the data matches what it should be. So the bit shift must have occurred outside of the timeframe I sampled with the scope

                                      cato@chaosfurs.socialC This user is from outside of this forum
                                      cato@chaosfurs.socialC This user is from outside of this forum
                                      cato@chaosfurs.social
                                      wrote last edited by
                                      #19

                                      i.

                                      i switched the clock phase (SPI mode 1 instead of 0)

                                      and it works

                                      i can't

                                      cato@chaosfurs.socialC 1 Reply Last reply
                                      0
                                      • cato@chaosfurs.socialC cato@chaosfurs.social

                                        i.

                                        i switched the clock phase (SPI mode 1 instead of 0)

                                        and it works

                                        i can't

                                        cato@chaosfurs.socialC This user is from outside of this forum
                                        cato@chaosfurs.socialC This user is from outside of this forum
                                        cato@chaosfurs.social
                                        wrote last edited by
                                        #20

                                        why?? I tested with Arduino's shiftOut weeks ago and it worked?? Isn't shiftOut also mode 0?

                                        cato@chaosfurs.socialC 1 Reply Last reply
                                        0
                                        • cato@chaosfurs.socialC cato@chaosfurs.social

                                          why?? I tested with Arduino's shiftOut weeks ago and it worked?? Isn't shiftOut also mode 0?

                                          cato@chaosfurs.socialC This user is from outside of this forum
                                          cato@chaosfurs.socialC This user is from outside of this forum
                                          cato@chaosfurs.social
                                          wrote last edited by
                                          #21

                                          Link Preview Image
                                          citali@fellies.socialC mist@chaosfurs.socialM thiccpaws@tech.lgbtT cato@chaosfurs.socialC sam@shonk.sam.axS 5 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups