Universal touch computer
PICOmputer Touch is portable pocket computer tools — using a Raspberry Pi Pico to drive a 30-button touch-sensitive PCB with room for an IPS display panel in the Universal PICOmputer TOUCH.
PICOmputer TOUCH uses capacitive touch-sensitive "keys" built directly onto the PCB to reduce the bill of materials compared with earlier variants with physical switches.
A cut-out at the top provides room for a 1.69" IPS display with a resolution of 280×240, while the back plays host to a Raspberry Pi Pico board to drive the device.
The software side is driven by CircuitPython. It’s designed to function as a pocket computer.
It interprets keypresses by triggering CPIO pins to change their state before registering the input on the LCD screen.
Software on boot have simple menu choice to run different apps on startup,
Config,py contain all important HW definitions
Picomputer.py maintain all important backgrounds ass display, keyboard and sound
You can easy create new apps but instead on big smartphones you have all hardware under your control,
you no need really on millions lines of Linux kernel or big brother hearing you passwords or private sensitive data.
Idea of this computer was to modern replacement I think missing CASIO databank on market.
Remote communication, instead WiFi you can communicate from device with Long Range Radio module LoRa can send message
to another unit about 4km far away.
If you wan Wi-Fi there is no problem, you can easy solder pin compatible Raspberry Pi PICO W in case you want USB-C
and more memory there is Waveshare RP2040PLUS which have also Li-Ion battery charger.
Features:
-Based on Raspberry Pi PICO
-1.69" IPS LCD 280x240
-30 touch buttons QWERTY keyboard with optional backlight
-135mm x88mm x 1.6mm dimensions
Supported displays:
-12pin st7789 IPS 280x240 via flex cable 1.69" inch
-any display with popular china module pinout GND,VCC,SCK,DAT,RES,DC,CS,BACKLIT connected externally with wires
Compatible 1.69" display, maybe more this list is only from my order history ....
- [1.69 Inch IPS Display 240*280 ST7789 SPI](https://www.aliexpress.com/item/1005001989214658.html)
- [1.69 Inch IPS Display 240*280 ST7789 SPI](https://www.aliexpress.com/item/1005003754663260.html)
- [1.69 Inch IPS Display 240*280 ST7789 SPI](https://www.aliexpress.com/item/1005004819147206.html)
- [1.69 Inch IPS Display 240*280 ST7789 SPI](https://www.aliexpress.com/item/1005003768946439.html)
Components:
- 1x Raspberry Pi PICO
- 1x BSS123 SMD SOT23
- 1x 10R 0603
- 1x 4k7 0603
- 13x 1M 0603
- 1x Piezo speaker
- 1x 12pin st7789 IPS 280x240 - 1.69"
Simple explanation how my touch keyboard work
I invented this thing 2 months ago, then I every day excited wait for envelope with boards to check if my theory will work.
Keyboard was last and weakest part of PICOmputer project, my goal is to design easy assemble device which everyone will be able to build with a minimum skills.
And now to reveal how 13GPIO is enough for 30 buttons
Columns
Row
If you put finger on letter "G" your finger is enough big to change capacity on column plate and middle placed row.
In software you can easy check which button is touched, in this case
If touch.GP1 and touch.GP8 then letter="G"
I was worried if it would work, because Raspberry Pi PICO have no native HW touch inputs,
just something made in software, but by my test it work very reliable.
Because display have exactly same thickness as PCB board = 1.6mm it can exactly fit inside board. Check here:
Touch keyboard reading example
import touchio
def readKeyboard():
key=-1
if touch_up.value:
key=1
if touch_down.value:
key=2
if touch_left.value:
key=3
if touch_right.value:
key=4
if touch_ok.value:
key=5
if touch_back.value:
key=6
return key
touch_back = touchio.TouchIn(board.GP14)
touch_down = touchio.TouchIn(board.GP3)
touch_left = touchio.TouchIn(board.GP9)
touch_ok = touchio.TouchIn(board.GP2)
touch_up = touchio.TouchIn(board.GP8)
touch_right = touchio.TouchIn(board.GP1)
Display configuration demo
from adafruit_st7789 import ST7789
# Release any resources currently in use for the displays
displayio.release_displays()
tft_cs = board.GP21
tft_dc = board.GP16
spi_mosi = board.GP19
spi_clk = board.GP18
spi = busio.SPI(spi_clk, spi_mosi)
backlight = board.GP22
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs)
display = ST7789(display_bus, width=280, height=240, rowstart=1, colstart=26, rotation=270, backlight_pin=backlight)
# Make the display context
# splash = displayio.Group()
# display.show(splash)
print("Display test")
Audio code example - simple BEEP
def beep():
audioPin = PWMOut(board.GP0, duty_cycle=0, frequency=440, variable_frequency=True)
audioPin.frequency = 5000
audioPin.duty_cycle = 10000
time.sleep(0.02)
audioPin.duty_cycle = 0
audioPin.deinit()
Audio code example - mp3 playback
import board
import audiomp3
import audiopwmio
audio = audiopwmio.PWMAudioOut(board.GP0)
decoder = audiomp3.MP3Decoder(open("/mp3/new.mp3", "rb"))
audio.play(decoder)
while audio.playing:
pass
print("Done playing!")
Universal touch computer
*PCBWay community is a shared platform and we are not responsible for any design issues.
- Comments(1)
- Likes(3)
- 1 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
9design
-
6usability
-
7creativity
-
6content
More by Misenko
- PICOmputer - front panel - Tape design - 2inch LCD 12.11.2021 Update: frame adjusted to 2" inch display 11.5.2021 update: skull logo replaced with sta...
- PICOmputer - side board 4mm + 4mm PICO ZX and PICOmputer - side board 4mm keyboard + 4mm battery
- PICOmputer - side board triangle Pico ZX and PICOmputer BOX - side board
- PICO ZX - bottom cover board PICO ZX - bottom cover board
- PICO ZX - top panel PICO ZX - top front panel
- RetroVGA - bottom board RetroVGA - bottom board
- RetroVGA - side 2x RetroVGA - side board
- RetroVGA - front panel RetroVGA Front top cover board.
- RetroVGA - Raspbery Pico multi retro computer Universal retro computer emulator based on Raspberry Pi PICOFirmware and sample games are in "Other ...
- Universal touch computer PICOmputer Touch is portable pocket computer tools — using a Raspberry Pi Pico to drive a 30-button ...
- PICO ZX Spectrum 128k This project is mainboard/motherboard, you need alsoBottom https://www.pcbway.com/project/shareproje...
- PicoTouch HMI PICO based single board panel.Amazing #circuitpython libraries with mp3, touch and IPS display suppo...
- ArmaLamp - Armageddon resistant night lamp ArmaLamp Aims to Brighten Up Those Dark Post-Apocalypse NightsDesigned to harvest sunlight during th...
- Universal Python Education Raspberry PICO Pocket Computer - BACK FRONT board Universal Raspberry Pi PICO computer for Retro gaming and much MORE !!!!
- Universal Python Education Raspberry PICO Pocket Computer - SIDE 3x SIDE board Universal Raspberry Pi PICO computer for Retro gaming and much MORE !!!!
- Universal Python Education Raspberry PICO Pocket Computer - FRONT FRONT board Universal Raspberry Pi PICO computer for Retro gaming and much MORE !!!!
- PICOmputer - front panel - Original design - 1.54nch LCD ICOmputer - front panel - Armachat design - 2inch LCDPICOmputer - front panel - Tape design - 2inch ...
- PICOmputer - front panel - Armachat design - 2inch LCD PICOmputer - front panel - Tape design - 2inch LCD12.11.2021 Update: frame adjusted to 2" inch displ...
-
Low Noise Preamp based on Arp 2600 Synthesizer
36 0 0 -
-
-
Line Level Stereo Input to 3 Stereo Output Sharing PCB
164 0 0 -
-
-
-