Navigation

    M5Stack Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. bricox
    B
    • Continue chat with bricox
    • Start new chat with bricox
    • Flag Profile
    • Profile
    • Following
    • Followers
    • Blocks
    • Topics
    • Posts
    • Best
    • Groups
    Save
    Saving

    bricox

    @bricox

    Embedded software and electronics engineer

    4
    Reputation
    30
    Posts
    1741
    Profile views
    1
    Followers
    1
    Following
    Joined Last Online
    Location FRANCE

    bricox Follow

    Posts made by bricox

    • RE: FORUM RULES (!!!!READ THIS FIRST BEFORE POSTING!!!!)

      Hello @lukasmaximus,

      For those not familiar with the Markdown ...

      Snippets code example

      here is an example code.
      
      ```
      // this area is nested 3-backticks code block.
      const hello = "hello";
      ```
      
      

      Notes :

      1. To mark the block, don't forget line breaks after

      ```

      1. You can use to ...

      ~~~

      Result, after Copy/Paste to the left window :
      0_1616074520285_e068d0d1-059b-43d6-bd29-761c7ace8274-image.png

      posted in Forum Rules (!!!!READ THIS FIRST BEFORE POSTING!!!!)
      B
      bricox
    • RE: M5Paper EPD power consumption

      Use :

      void GT911::updateB()						// as update but modify by Bricox ...
      {
          r814E.reads = read(0x814E);				// "read struct" AND these 5 explicite bits fields
          if(r814E.status)
          {
              if(r814E.touchPts != 0)
              {
                  _is_finger_up = false;
                  _num = r814E.touchPts;			// "_num" could be definitively replaced by "r814E.touchPts"
                  uint8_t data[num * 8];
                  read(0x8150, data, _num * 8);	// read block of all fingers , up to 5*8 bytes
                  for(int j = 0; j < _num; j++)	// for each finger
                  {
                      uint8_t *buf = data + j * 8;// address base of each finger
      

      Sorry, comments that were aligned, in my notepad++ by multiple Tabs, are no longer aligned in the snippets viewer

      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      Structure

      typedef struct reg814E_s {		// 
       union {						// same location of 2 fields of 1 byte
         uint8_t reads;				// this byte
         struct {					// field bits of this byte
           uint8_t touchPts  : 4;	// b0 to b3 : number of touch points
           uint8_t haveKey   : 1;	// b4 : HaveKey
           uint8_t proxi     : 1;	// b5 : Proximity Valid
           uint8_t largeDet  : 1;	// b6 : large detect
           uint8_t status    : 1;	// b7 : buffer status
         };
       };
      } __attribute__((packed)) reg814E_t;	// minimize memory alignment
      

      or simpler writing

      typedef struct {
        union {              // same location of 2 fields of 1 byte
          uint8_t reads;     // this byte
          struct {           // field bits of this byte, starting with low weight
            uint8_t
              touchPts  : 4, // b0 to b3 : number of touch points
              haveKey   : 1, // b4 : HaveKey
              proxi     : 1, // b5 : Proximity Valid
              largeDet  : 1, // b6 : large detect
              status    : 1; // b7 : buffer status
          };
        };
      } reg814E_t;
      

      Declarations

      private:
          bool _is_finger_up = false;
          uint8_t _num = 0;
          uint8_t _rotate = ROTATE_0;
          tp_finger_t _fingers[2];
          reg814E_t r814E;
          uint8_t _iic_addr = 0x14;
          uint8_t _pin_int = -1;
          bool _sleeping = false;
      };
      
      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      Hello @felmue,

      While I was commenting on the source code, I found un bug in the GT911 driver :
      _fingers[] can be indexed up to 5
      0_1615984070738_8f7e3c61-28a7-42c1-8623-ea7928136753-image.png
      In declaration, _fingers[] can be indexed up to 2
      0_1615984224513_b83a9d9e-e32d-4ca9-905f-fc2a4eb6e57b-image.png

      In addition, it would be elegant to use bit fields for describing registers that have specific functions.
      An example : 0_1615984402868_5b228515-423f-44aa-ad3a-d75715da83e9-image.png

      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      Hello @felmue

      Find 1 output, to put low the INT signal of GT911, have another way possible ....
      In the ESP pdf, I found this :
      0_1615924512661_1f8661ba-bd5a-4d76-a558-18ffea82d6d8-image.png
      For reuse these pins, an article : https://www.instructables.com/ESP8266-Using-GPIO0-GPIO2-as-inputs/
      I think that, in the M5paper, we can use GPIO0 as output.
      What you think about ?

      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      hello,

      a little bit of electronics (because no present in official doc) :

      0_1615907585552_012bf0da-f9ae-4cb6-90e6-45a8efbcad81-image.png
      The PFL with C1, C2, C3, C4 R1 and C5:
      0_1615907925252_16b48c7b-d348-47ab-860e-a68f73c0f68e-image.png
      Remark : pin 7&8 are "shield"

      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      Hello guys .... @felmue, @fonix232, @tatar-andrei... and other enthusiasts ....

      I have others links for the GT911 driver in cpp
      With interrupt : https://github.com/nik-sharky/arduino-goodix/blob/master/Goodix.cpp
      No interrupt but handles 5 fingers : https://github.com/caiannello/ER-TFTM0784-1/blob/master/src/touch.cpp

      We’ll have to adapt these source codes.

      Sorry, i'm not a specialist for interrupts of Arduino framework....I am more familiar with the HAL framework of the STM32.

      Thank you for these sustained sharing

      posted in Cores
      B
      bricox
    • RE: M5Paper EPD power consumption

      @felmue
      To fully understand the GT911 controller, download these 2 pdf
      0_1615801735370_a92c71b1-cc76-49b8-9bef-90da8225880d-image.png
      https://www.crystalfontz.com/controllers/GOODIX/GT911/464/
      https://www.crystalfontz.com/controllers/GOODIX/GT911ProgrammingGuide/478/

      Several developments are desirable :

      • read position under interrupt and not in polling mode [GT911::update()]
      • Exploit more all modes
      • Check if the "green mode" (3.3mA) automatically change after 1 second of inactivity
      • Generate a sound when you touch it

      List of 21 other GT911 drivers :
      https://github.com/search?q=gt911
      including one in cpp:
      https://github.com/blackketter/GT911/blob/master/src/GT911.cpp

      posted in Cores
      B
      bricox
    • RE: [M5Paper] Ideas/recommendations for a revision or V2 model

      @fonix232
      My apologies, I don’t know how I made that big mistake ... ;>)
      You’re right, it’s definitely a native USB.

      The red symbol is, for me, that printfoot USB-C connector is on the pcb but not welded.
      This part of the schema is not completely greyed out as J10 because the 2 resistors R1 and R60 are welded.
      0_1615799393503_6e7b05c0-8cd3-4d95-b710-90b58b42b8d7-image.pngThe Google search with this image did not succeed.
      You’d have to look in the symbol library of the design software, I think it’s Altium...

      posted in Features Wish List
      B
      bricox
    • RE: [M5Paper] Ideas/recommendations for a revision or V2 model

      @fonix232
      USB-TYPEC/NC is not a real USB port because no bridge.
      The connector is USB-C but the line is UART only.

      posted in Features Wish List
      B
      bricox