Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • 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 (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Rawr! I love bit banging

Rawr! I love bit banging

Scheduled Pinned Locked Moved The Lounge
graphicshardwareiotperformancecode-review
17 Posts 10 Posters 0 Views 1 Watching
  • 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.
  • H Offline
    H Offline
    honey the codewitch
    wrote on last edited by
    #1

    There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

    To err is human. Fortune favors the monsters.

    D C G J E 6 Replies Last reply
    0
    • H honey the codewitch

      There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

      To err is human. Fortune favors the monsters.

      D Offline
      D Offline
      dan sh
      wrote on last edited by
      #2

      This is prime example of click bait. :)

      "It is easy to decipher extraterrestrial signals after deciphering Javascript and VB6 themselves.", ISanti[^]

      1 Reply Last reply
      0
      • H honey the codewitch

        There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

        To err is human. Fortune favors the monsters.

        C Offline
        C Offline
        Calin Negru
        wrote on last edited by
        #3

        Sounds like a hard drive related discussion, and maybe bad segments/sectors due to too much physical action.

        H 1 Reply Last reply
        0
        • C Calin Negru

          Sounds like a hard drive related discussion, and maybe bad segments/sectors due to too much physical action.

          H Offline
          H Offline
          honey the codewitch
          wrote on last edited by
          #4

          What?

          To err is human. Fortune favors the monsters.

          C 1 Reply Last reply
          0
          • H honey the codewitch

            There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

            To err is human. Fortune favors the monsters.

            G Offline
            G Offline
            glennPattonWork3
            wrote on last edited by
            #5

            Read the title and thought 'Ow Er Missus', mind you bit banging I find can be good for the soul... but I'm odd...

            B 1 Reply Last reply
            0
            • H honey the codewitch

              What?

              To err is human. Fortune favors the monsters.

              C Offline
              C Offline
              Calin Negru
              wrote on last edited by
              #6

              Did I say something impolite? I had read the title and I`ve let my imagination run wild. The title usually sets the tone so I made my comment with that in mind.

              H 1 Reply Last reply
              0
              • C Calin Negru

                Did I say something impolite? I had read the title and I`ve let my imagination run wild. The title usually sets the tone so I made my comment with that in mind.

                H Offline
                H Offline
                honey the codewitch
                wrote on last edited by
                #7

                No I just didn't understand you, since what I wrote had nothing to do with hard drives, and I don't normally associate the phrase "bit banging" with them so it threw me.

                To err is human. Fortune favors the monsters.

                C F 2 Replies Last reply
                0
                • H honey the codewitch

                  No I just didn't understand you, since what I wrote had nothing to do with hard drives, and I don't normally associate the phrase "bit banging" with them so it threw me.

                  To err is human. Fortune favors the monsters.

                  C Offline
                  C Offline
                  Calin Negru
                  wrote on last edited by
                  #8

                  I went a little further down with reading (just one sentence), it looks like you`re still talking about the same earthly thing (or things). Since it`s about freedom I thought why not join the party, programmer style of course.

                  H 1 Reply Last reply
                  0
                  • C Calin Negru

                    I went a little further down with reading (just one sentence), it looks like you`re still talking about the same earthly thing (or things). Since it`s about freedom I thought why not join the party, programmer style of course.

                    H Offline
                    H Offline
                    honey the codewitch
                    wrote on last edited by
                    #9

                    Well, I haven't had to wave a dead chicken over this code yet. I'm still researching it. First crawl, finally deal in the meta, and magic.

                    To err is human. Fortune favors the monsters.

                    C FreedMallocF 2 Replies Last reply
                    0
                    • H honey the codewitch

                      No I just didn't understand you, since what I wrote had nothing to do with hard drives, and I don't normally associate the phrase "bit banging" with them so it threw me.

                      To err is human. Fortune favors the monsters.

                      F Offline
                      F Offline
                      Fueled By Decaff
                      wrote on last edited by
                      #10

                      Heh, I once considered trying to create a floppy drive emulator by bit-banging the IO on a raspberry Pi, but concluded that the IO was too slow. Is that close enough? :-)

                      1 Reply Last reply
                      0
                      • H honey the codewitch

                        Well, I haven't had to wave a dead chicken over this code yet. I'm still researching it. First crawl, finally deal in the meta, and magic.

                        To err is human. Fortune favors the monsters.

                        C Offline
                        C Offline
                        Calin Negru
                        wrote on last edited by
                        #11

                        Quote:

                        dead chicken

                        the party turns ugly, I`m leaving. don`t want to learn what that syntax means. btw, you won`t see me as quest from now on. In the light of what you just said, spells and code no thanks.

                        1 Reply Last reply
                        0
                        • G glennPattonWork3

                          Read the title and thought 'Ow Er Missus', mind you bit banging I find can be good for the soul... but I'm odd...

                          B Offline
                          B Offline
                          Brisingr Aerowing
                          wrote on last edited by
                          #12

                          You're normal compared to some people I know on Discord.

                          What do you get when you cross a joke with a rhetorical question? The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism. Do questions with multiple question marks annoy you???

                          1 Reply Last reply
                          0
                          • H honey the codewitch

                            There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

                            To err is human. Fortune favors the monsters.

                            J Offline
                            J Offline
                            jmaida
                            wrote on last edited by
                            #13

                            yup. when the bits align the stars will shine.

                            "A little time, a little trouble, your better day" Badfinger

                            1 Reply Last reply
                            0
                            • H honey the codewitch

                              Well, I haven't had to wave a dead chicken over this code yet. I'm still researching it. First crawl, finally deal in the meta, and magic.

                              To err is human. Fortune favors the monsters.

                              FreedMallocF Offline
                              FreedMallocF Offline
                              FreedMalloc
                              wrote on last edited by
                              #14

                              Quote:

                              I haven't had to wave a dead chicken over "this" code yet.

                              Which begs the question: What code has had dead chickens waved over it? So ... How many chickens do you have now? How many did you start out with?

                              H 1 Reply Last reply
                              0
                              • FreedMallocF FreedMalloc

                                Quote:

                                I haven't had to wave a dead chicken over "this" code yet.

                                Which begs the question: What code has had dead chickens waved over it? So ... How many chickens do you have now? How many did you start out with?

                                H Offline
                                H Offline
                                honey the codewitch
                                wrote on last edited by
                                #15

                                I never use my own chickens. ;P

                                To err is human. Fortune favors the monsters.

                                1 Reply Last reply
                                0
                                • H honey the codewitch

                                  There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

                                  To err is human. Fortune favors the monsters.

                                  E Offline
                                  E Offline
                                  englebart
                                  wrote on last edited by
                                  #16

                                  My favorite bit banging trick was setting up hardware sprites on the C64 with their pixels rendered from memory location 0x0000 or 0x0100(call stack). You could see system clock, etc like a heart beat of the machine. Also figuring out how to put a piece of electrical tape over certain pins on cartridges and plugging them in on a hot machine.

                                  1 Reply Last reply
                                  0
                                  • H honey the codewitch

                                    There's little more satisfying than spelunking through a little MCU's hardware registers to try to eek some more performance out of its I/O. DMA, hardware SPI, SDMMC, here there be dragons. Every new platform is like unwrapping a new toy. Downside is my code is getting uglier and uglier as it supports more and more platforms, with little I can do about it. When it comes to driving LCD displays, one thing I did though was this. I decoupled the graphics driver itself, from the bus it uses, and both of those from the graphics library. library-->driver-->bus like that. So now, I improve the bus, say optimizing it to use the Teensy's DMA capabilities and blammo all of my drivers benefit. My code is unique in terms of IoT graphics libraries in that way. The bottom line is a little mess goes a long way and improves performance for all my driver code across the board. I've done it for the ESP32, and in part for the Teensy 4.x so far - the latter is a work in progress. It's deeply satisfying to cover that much ground by modifying one header file. And to do so by going back to the kind of coding I grew up with - smashing things up until i get to the wiring in the walls, figure out how it works, and tap right into the mains. It's delicious.

                                    To err is human. Fortune favors the monsters.

                                    G Offline
                                    G Offline
                                    grralph1
                                    wrote on last edited by
                                    #17

                                    It is Delicious I agree. Done a lot of it over the years. It is success that makes it delicious. When you don't succeed it makes it more mundane. However the conversation that you had with @CalinCali was so funny. I now have visions of you waving someone else's dead chicken over your code, casting a spell, that puts a hex on it. Spells and coding has got to be good. For everyone.

                                    "Rock journalism is people who can't write interviewing people who can't talk for people who can't read." Frank Zappa 1980

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Don't have an account? Register

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