NATIVE FEATURES in C language:
- Retro computer emulation
- ZX spectrum
- C64
- Atari 800
Ideal For CIRCUITYTHON Learning
Working parts in python...
- detect powersupply voltage and USB connection
- MP3 Playback
- Display backlight bightness
- send message to another device via LoRa Radio
- QWERTY keyboard
- multi lines text editor
- read store files to intenall system
- safe boot
- GPS parse
- I2C sensors
CUSTOMIZABLE FRONT PANEL COVER TO YOUR USE PURPOSE !!!
I am take care to minimize external components, use maximum features integrated on PICO board: Power switch use enable input on PICO, ON-BOARD LED is visible thanks to missing solder mask, PICO boot button hole. Overall dimensions are smallest as possible.FEATURES:Smallest as possible 100x100x10mmAbsolute minimum components.Auxiliary USB-C for power only.Access to boot buttonbonus flashing star with internal led.IPS 240x240 display / 320x240. 3 types or morePiezo Speakerfree GPIO headerReset buttonpower switch controlling internal buck-boostmicro SD cardoptional RFM95 LoRa radioSupported displays:12pin st7789 IPS 240x240 via flex cable 1.3" inch12pin st7789 IPS 240x240 via flex cable 1.54" inch12pin st7789 IPS 320x240 via flex cable 2" inch8pin st7789 IPS 240x240 via headerany display with popular china module pinout GND,VCC,SCK,DAT,RES,DC,CS,BACKLIT Required components:1x Raspberry PICO37x DTS63K tactile switch 7mm height, Or another 1N force is very comfortable to press1x BSS123 Transistor for display backlight1x 10R 0603 Resistor for display backlight1x 4k7 Resistor for display backlight1x LPT1109DS PIEZO sound beeper1x JS202011CQN C&K or MSS-2235 NINIGI Side Switch For power off but it work withoutCODE EXAMPLES and DEFINITIONSDISPLAYtft_cs = board.GP21
tft_dc = board.GP16
spi_mosi = board.GP19
spi_clk = board.GP18
spi = busio.SPI(spi_clk, spi_mosi)
backlight = board.GP20
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs)
display = ST7789(display_bus, rotation=270, width=320, height=240, backlight_pin=backlight)
KEYBOARDcols = [digitalio.DigitalInOut(x) for x in (board.GP1, board.GP2, board.GP3, board.GP4, board.GP5, board.GP14)]
rows = [digitalio.DigitalInOut(x) for x in (board.GP6, board.GP9, board.GP15, board.GP8, board.GP7, board.GP22)]
keys1 = ((' ', '.', 'm', 'n', 'b',"dn"),
("ent", 'l', 'k', 'j', 'h',"lt"),
('p', 'o', 'i', 'u', 'y',"up"),
("bsp", 'z', 'x', 'c', 'v',"rt"),
('a', 's', 'd', 'f', 'g',"tab"),
('q', 'w', 'e', 'r', 't',"alt"))
keys2 = (('_', ',', '>', '<','""','{'),
('~', '-', '*', '&', '+','['),
('0', '9', '8', '7', '6','}'),
('=', '(', ')', '?', '/',']'),
('!', '@', '#', '$', '%','\\'),
('1', '2', '3', '4', '5',"alt"))
keys3 = ((':', ';', 'M', 'N', 'B',"dn"),
("ent", 'L', 'K', 'J', 'H',"lt"),
('P', 'O', 'I', 'U', 'Y',"up"),
("bsp", 'Z', 'X', 'C', 'V',"rt"),
('A', 'S', 'D', 'F', 'G',"tab"),
('Q', 'W', 'E', 'R', 'T',"alt"))
LORA Radio# Define pins connected to the chip.
CS = digitalio.DigitalInOut(board.GP13)
RESET = digitalio.DigitalInOut(board.GP17)
spi = busio.SPI(board.GP10, MOSI=board.GP11, MISO=board.GP12)
# Initialze radio
RADIO_FREQ_MHZ = config.freq #869.45 # Frequency of the radio in Mhz. Must match your
print('starting Lora')
try:
rfm9x = ulora.LoRa(spi, CS, modem_config=ulora.ModemConfig.Bw500Cr45Sf128,tx_power=23) #, interrupt=28
except:
print("Lora module not detected !!!") #None
OTHER THINGS, speaker, internal PICO featuresdef beep():
audioPin = PWMOut(board.GP0, duty_cycle=0, frequency=440, variable_frequency=True)
audioPin.frequency = 5000
audioPin.duty_cycle = 1000*(config.volume)
time.sleep(0.002)
audioPin.duty_cycle = 0
audioPin.deinit()
def get_VSYSvoltage():
VSYSin = ((VSYS_voltage.value * 3.3) / 65536) * 3
return VSYSin
LED = digitalio.DigitalInOut(board.LED)
LED.direction = digitalio.Direction.OUTPUT
VSYS_voltage = analogio.AnalogIn(board.VOLTAGE_MONITOR)
VBUS_status = digitalio.DigitalInOut(board.VBUS_SENSE) # defaults to input
VBUS_status.pull = digitalio.Pull.UP # turn on internal pull-up resistor
SMPSmode = digitalio.DigitalInOut(board.SMPS_MODE)
SMPSmode.direction = digitalio.Direction.OUTPUT
SMPSmode.value=True
GPS I2C connection / configurationuart = busio.UART(None, board.GP17, baudrate=9600, timeout=10)
gps = adafruit_gps.GPS(uart, debug=False)
i2c = busio.I2C( board.GP27, board.GP26, frequency=200_000)
rtc = adafruit_ds3231.DS3231(i2c)
3D PCB enclosure?More pictues in BLACK ...BLACK AND PURPLE version in PELICAN CASE 1055