How to build a Pi Pico Matrix Touch Keypad

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 83

  • @mtnwildernessfamily
    @mtnwildernessfamily ปีที่แล้ว

    I've been watching a few of your videos. Your channel is awesome! With the number of amazing videos you have, I can't believe you don't have >100K subscribers. Please keep posting. Love watching all the microcontroller videos!

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว +1

      Thank you so much for your amazing compliment @mtnwildernessfamily ! The subscribers will come ;)

    • @mtnwildernessfamily
      @mtnwildernessfamily ปีที่แล้ว +1

      @@DustinWatts It's a well deserved compliment! Yes, they will.

  • @TheTinkerDad
    @TheTinkerDad 3 ปีที่แล้ว +6

    Yes! I've also learned the hard way that you should never solder a microcontroller board to your PCB! And that was before I got my desolder gun... :)
    Also, thanks for sharing this, having more and more examples of using the Pi Pico is useful for everyone!

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      De-soldering all those header pins is not fun indeed! Now I have my Pico, I"m inspired to do more projects with it!

  • @cabe_bedlam
    @cabe_bedlam 3 ปีที่แล้ว +6

    Can confirm, that’s exactly what happens when I open a box from pcbway! :)

  • @williammckee4369
    @williammckee4369 ปีที่แล้ว +1

    this was great. I enjoyed making it. Is there an easy way to use this same setup or the touchdeck to make a simple camera SD card viewer? Thanks

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      Thank you so much for your kind words! I really appreciate that you had fun building it!
      It is definitely possible, because the SD card is connect to the Pico especially for this reason, that people want to make totally different things and might want to use the SD card.
      However, I don't know about the "easy" part. But there are a few examples of different libraries that might help you:
      From the TFT_eSPI library: github.com/Bodmer/TFT_eSPI/blob/master/examples/Generic/ESP32_SDcard_jpeg/ESP32_SDcard_jpeg.ino
      Via Google: randomnerdtutorials.com/esp32-microsd-card-arduino/
      If the pictures are not JPEG you off course need to search for another image decoding library.

    • @williammckee4369
      @williammckee4369 ปีที่แล้ว

      @@DustinWatts Thank you very much for that info. I purchased your 2 esp32 combiners with the pico and was looking for other ways to utilize them. I was also looking to purchase the other boards listed in TFT_eSPI user setups. Thanks again, I have been taught a lot watching your videos.

  • @nifargo14rules
    @nifargo14rules 2 ปีที่แล้ว +1

    So, I'm doing this for a work project since they gave us all a Pico to play with and just got the PCB in the mail today. I was doing some test fitting before i solder everything together tonight and realized there are no pins or anything for the 4 points labeled SD card and don't see anything in the instructions or video specifying. Am I supposed to have something to mount here or is the SD card needed for this to fully function? Just want to be sure before i start so i don't have to redo it all. Great video though, thanks!

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว

      Usually the 4 header pins for the SD card don;t come with the screen module. It is not needed so you so not have to solder them. I would recommend it, but in that case just for stability! If you have the pinheaders and sockets I would use them, if not. Not an issue for the functionality! Good luck with your work project!

  • @nv7jjo
    @nv7jjo ปีที่แล้ว +1

    Great video and project! I wonder if it would be difficult to add custom icons instead of numbers and have multiple layers?

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว +1

      Thanks for the compliment! I would call both projects intermediate. And both will take some time and a lot of coding. But doable.
      Have a look at FreeTouchDeck (also by me). That runs on an ESP32 and basically has both things you are wondering about implemented. :)

    • @nv7jjo
      @nv7jjo ปีที่แล้ว

      @@DustinWatts Do you think it would be easier to implement usb connection with a esp32-s3 to the freetouchdeck?

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      @@nv7jjo FreeTouchDeck has been updated to support the USB connection from ESP32-S3. So yes...

    • @nv7jjo
      @nv7jjo ปีที่แล้ว +1

      @@DustinWatts my thought was to go for the freetouchdeck first but it didn't have usb connection. But now when it's not a problem anymore I will go for it again. Thank you for the help.

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      @@nv7jjo You are welcome!

  • @chriswoodward8325
    @chriswoodward8325 ปีที่แล้ว +1

    Hi Dustin, works a treat except every time its powered on, it wants to recalibrate touch screen! Any ideas?

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว +1

      Hi Cris! Probably yes... in the script there is line: `#define REPEAT_CAL` if that is set to `true` it will run the calibration function each time the Pi boots. If set to false, it will check for a calibration file that is written to the internal flash and only runs the rest of the calibration if the script is not there. So try to upload the sketch with `#define REPEAT_CAL false`. that should do the trick!

  • @FixationwithCarnage
    @FixationwithCarnage ปีที่แล้ว +1

    what changes would you have to make for a 2.8in display?

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      In the FreeTouchDeck.ino you can set the width and height of your screen, the rest is calculated from that. Also make sure you select the right screen in the User_Setup.h of the TFT_eSPI library. Should be all!

  • @raider0220
    @raider0220 3 ปีที่แล้ว +1

    hello can you do this without any sodering
    ??

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      You can use a breadboard and jumper wires. But be aware that loose connection can cause weird glitches.

  • @diyak0
    @diyak0 3 ปีที่แล้ว +1

    Great job, can you make home control panel (auotomation) with this touch lcd and nodemcu to control other relay wifi, arduoino,sensors,..

  • @danip1204
    @danip1204 10 หลายเดือนก่อน +1

    im sorry but do we have to solder in the sd card slot and if so where can i buy one and which type of sd card slot should it be? Sorry I am new to this and this is the first ever Raspberry project ever for me

    • @DustinWatts
      @DustinWatts  10 หลายเดือนก่อน +1

      Hi Dani, The SD card is not used, but you should solder it for stability on the other side. No problem btw... asking is never a problem! Good luck with your Matrix!

  • @michaelkulpa7082
    @michaelkulpa7082 3 ปีที่แล้ว +1

    How does this project compare to the ESP32 Touchdown? It seems to be the same screen but the pico has fewer resources.

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      It is a bit apples and oranges. The ESP32 has WiFi, BLE etc. But the Pico has USB HID support.

  • @JavierRodriguez-yo5jr
    @JavierRodriguez-yo5jr 2 ปีที่แล้ว +2

    Thanks a lot for this tutorial!!
    My 13 years kid is excited to make it work but the touch panel is not responding at all. After some days breaking our minds, I found out that we bought a capacitive ILI9488 (not resistive) and it looks that the touch pins have different names and I guess different functions. Do you know if there is any reciprocation between pins? Or do u have any tips to make it work? I tried to search on internet but I didn't find any information about it.
    Thanks again for sharing this nice project and Merry Christmas!!

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว +1

      Hi! What screen exactly did you buy? I can do some research for you and tell you how and if it is possible to still make it work!

    • @JavierRodriguez-yo5jr
      @JavierRodriguez-yo5jr 2 ปีที่แล้ว

      ​@@DustinWatts Hi, at screem the descrption sais : Serial TFT LCD Module Display Screen with Touch Panel Driver IC ILI9488 Support capacitive touch GT911
      It's the same that u used but with capacite touch. all pins are the same but in the touch area it appears both pin labels, resistive and capacitive.
      The pin labels correspondence is this:
      T_CLK --- C_SCL
      T_CS --- C_RST
      T_DIN ---
      T_DO --- C_SDA
      T_IRQ --- C_INT
      Thanks again for your time

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว

      @@JavierRodriguez-yo5jr That is an I2C screen so you would need the drivers for that screen. And possibly alter the code....

    • @JavierRodriguez-yo5jr
      @JavierRodriguez-yo5jr 2 ปีที่แล้ว +1

      @@DustinWatts I'll try to find the drivers for a IC2 screen. I will let you know my advances. Thanks

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว

      @@JavierRodriguez-yo5jr Good luck!

  • @PCBWay
    @PCBWay 3 ปีที่แล้ว +2

    The details! Great job

  • @marcelschreiber3266
    @marcelschreiber3266 ปีที่แล้ว

    Hi,
    I have another question: Which display is the right one?
    the 320x480 from ali under the video or the 480×320 from amazon?

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      I would say they are both the same. 320x480 is vertical and 480x320 is horizontal, but in the software you set the orientation :)

    • @marcelschreiber3266
      @marcelschreiber3266 ปีที่แล้ว

      @@DustinWatts
      ok thank you than I buy the one from ali.

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      @@marcelschreiber3266 Yeah just buy where it is the cheapest for you (with shipping and all). They are all the same. Just make sure it is 480x320 and the driver is the ILI9488. Don't forget to select "With touch", otherwise you do not have a touchscreen and then this project won't work.

    • @marcelschreiber3266
      @marcelschreiber3266 ปีที่แล้ว

      Ok thankyou

  • @kevinroach9380
    @kevinroach9380 3 ปีที่แล้ว +1

    Can the touch screen buttons size and style be changed?

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      Yes. Within a certain limit (to do with the TFT_eSPI library). You can make more buttons, less, different colours, etc. Just have a look a the code, because it is all done in the sketch itself. But if you have a specific change, let me know and I will try to add an example!

    • @kevinroach9380
      @kevinroach9380 3 ปีที่แล้ว +1

      @@DustinWatts what i would like is direction buttons, left, right, up, down. Then seperate up and down. The other buttons are fine.

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      @@kevinroach9380 The labels can have text labels. I'm not sure about arrows that are included in the fonts, but you can always use the characters "", "^" and "v" as arrows. You can also adapt the buttons to show images although that is beyond the scope of this demo because that would mean drawing images and not just text on a label.

    • @kevinroach9380
      @kevinroach9380 3 ปีที่แล้ว

      @@DustinWatts THANKS

  • @37shubhamgupta64
    @37shubhamgupta64 ปีที่แล้ว +1

    Compilation error: 'class TFT_eSPI' has no member named 'getTouch' it show touch error and 977 | #warning >>>>------>> TOUCH_CS pin not defined, TFT_eSPI touch functions will not be available!

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      You need to #define TOUCH_CS in UserSetup.h of the TFT_eSPI library. Even if you don't need it because you are using another library for touch for example, TOUCH_CS is used by the keypad/button class. So must be defined. It does not have to be a pin that is in use. But is has to be defined. Just choose a pin you are not using (just to be safe) and the error/warning goes away. I use 21 (see example) because that is what I use for the resistive touch screen and just left it.

    • @37shubhamgupta64
      @37shubhamgupta64 ปีที่แล้ว

      @@DustinWatts when I upload its show no drive to deploy failed uploading uploading error

  • @irfanbagci84
    @irfanbagci84 9 หลายเดือนก่อน

    Hello there,
    I'm using ILI9488 3,5" screen and choosed in the user_setup file. But when i compile the code it gave this error.
    I can not find the solution over internet and i wanted to write in here in case someone has this same error .
    Error: #error Touch screen not supported in parallel or SPI PIO mode, use a separate library.

    • @DustinWatts
      @DustinWatts  9 หลายเดือนก่อน +1

      Sorry for the late response, but I don't have a solution for you. Maybe you can post an issue on the TFT_eSPI or the PICO core by Earl E Phillhower?

  • @marcelschreiber3266
    @marcelschreiber3266 ปีที่แล้ว +1

    Hallo dustin i have a question for you is This still working?

  • @adrianrubio5396
    @adrianrubio5396 2 ปีที่แล้ว +1

    Can anyone direct me to a proper way to blank the screen when I turn the computer off. I have no way to shut off the USB port when my computer goes to sleep or is shut down. the computer is in the same room as a television and the TFT lights up the entire room when the room lights are off and makes glare on the TV. I have tried coding it into the touch pad myself but have only been frustrating myself.

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว +1

      Hmm… difficult. You could code in a sleep function as there is in FreeTouchDeck. We could also look in to the USB Keyboard library to see if there is a way to check for an active USB host and if not, go to sleep…

    • @adrianrubio5396
      @adrianrubio5396 2 ปีที่แล้ว

      @@DustinWatts Thanks! That's a great pointer. I'll look in the appropriate libraries and check out the FreeTouchDeck code.

  • @Gallo12
    @Gallo12 2 ปีที่แล้ว +1

    Hey thank you for this project and video! Is it possible to load images for the buttons from the SDCard?

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว +1

      Yes it is. Have a look a the TFT_eSPI examples on loading images from a filesystem.

    • @Gallo12
      @Gallo12 2 ปีที่แล้ว

      @@DustinWatts Will do, awesome, thanks for your fast reply!

  • @andyfraser5876
    @andyfraser5876 3 ปีที่แล้ว +1

    I've had an ILI9488 kicking about for a while, which I've never actually seen working (due to scarcity of drivers), so I decided to build this in order to test it. There was no touch screen calibration on first boot, and the touch screen didn't appear to work, so I forced a re-calibrate which fixed it.
    I'd like to utilise the SD card slot to make a music player; does your board support that?

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว +1

      Yes, the SPI and CS of the SD card are also connected. I have to be honest, I haven't tested SD card functionality yet. But I see no reason why it shouldn't work!

    • @andyfraser5876
      @andyfraser5876 3 ปีที่แล้ว +1

      @@DustinWatts Thanks. I've just ordered 5 boards (China Post), so I'll have spares (eventually), if anyone wants one.

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      @@andyfraser5876 You might want to post this on my Discord. If someone that lives near you that might be worth it.

    • @andyfraser5876
      @andyfraser5876 3 ปีที่แล้ว

      The boards arrived today. Just 2 weeks which is much quicker than expected. Please let me know if anyone wants one.

    • @agoktugaydin
      @agoktugaydin 2 ปีที่แล้ว

      Hi Andy, i have the same problem. At first boot, there is no calibration screen. And touch screen does not respond. How can i re-calibrate it ?

  • @oktri322
    @oktri322 3 ปีที่แล้ว

    Where can i found all the keyboard code?

    • @DustinWatts
      @DustinWatts  3 ปีที่แล้ว

      Follow the link in the description: github.com/DustinWatts/Pico-Matrix-Touch-Keyboard

    • @oktri322
      @oktri322 3 ปีที่แล้ว

      @@DustinWatts omg, sorry, i mean the keyword code, like Numpad 1 is NUMPAD_ONE or anything. i've been looking for an hour and still cant find it

  • @stevet647
    @stevet647 ปีที่แล้ว

    Hi I know this is a very old project but I have been using it for a very long time. It looks like some of the libraries have been updated and when I compile I am getting the following error "Arduino15\libraries\TFT\src\utility\glcdfont.c:3:10: fatal error: avr/io.h: No such file or directory" That or I am doing something different this time and I cannot tell what. I liked this project and it was awesome when it was running but the Pico it was on failed and I am now using a Pico W. Hope it is an Easy Answer.

    • @DustinWatts
      @DustinWatts  ปีที่แล้ว

      That's annoying. I try to keep my projects up to date, but since I don't use this one myself I rely on users like you to tell me something broke. But just to be sure that it is a library vs. program issue, can you open an issue on Github? Tell me what IDE you are using, what libraries and their versions, the board you are using, post the whole error log, etc. It will avoid a long discussion here on TH-cam. You can also join my Discord server which could be faster.
      A quick fix maybe: put the file github.com/Bodmer/TFT_eSPI/blob/master/Fonts/glcdfont.c in the folder: Arduino15\libraries\TFT\src\utility\
      But I don't think this is the best solution :)
      l'm also wondering why avr/io.h is involved on an RP2040. DId you select the right board?

  • @Heorhii-e4e
    @Heorhii-e4e 7 หลายเดือนก่อน +1

    Thanks)

    • @DustinWatts
      @DustinWatts  7 หลายเดือนก่อน

      You are welcome!

  • @TheEmbeddedHobbyist
    @TheEmbeddedHobbyist 3 ปีที่แล้ว +1

    Great one, this time I won't have to try and find a USB hub that works with Win8.1 ;-)

  • @claudionoguchi
    @claudionoguchi 3 ปีที่แล้ว

    Great job!!
    Please test a Waveshare 3.5inch Touch Display Module for Raspberry Pi Pico, 65K Colors, 480×320, SPI .
    Thanks!

  • @ToPProjectsCompilation
    @ToPProjectsCompilation 3 ปีที่แล้ว +2

    Hey, the project is amazing. If you wish to feature it, kindly contact us.

    • @sunwukong6268
      @sunwukong6268 3 ปีที่แล้ว

      Found this because of the ToP Video

  • @orphanpixels
    @orphanpixels 3 ปีที่แล้ว +1

    Parts have arrived. Assembled the components. I'll let you know how it goes once I've learned how to Arduino/Pi. :)
    Made it through up to pasting new code but when loading the - Pico Matrix Touch - file hit a "filename, directory name or volume syntax etc" error. any help greatly appreciated.

  • @jnkmal9519
    @jnkmal9519 2 ปีที่แล้ว +1

    What's wrong with breadboards?

    • @DustinWatts
      @DustinWatts  2 ปีที่แล้ว

      Loose and bad connections can make the screen fail.