mirror of
https://github.com/dekuNukem/USB4VC.git
synced 2025-10-31 11:26:46 -07:00
added baseboard tester
This commit is contained in:
78
user_program/bb_tester.py
Normal file
78
user_program/bb_tester.py
Normal file
@@ -0,0 +1,78 @@
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import RPi.GPIO as GPIO
|
||||
from demo_opts import get_device
|
||||
from luma.core.render import canvas
|
||||
from PIL import ImageFont
|
||||
|
||||
OLED_WIDTH = 128
|
||||
OLED_HEIGHT = 32
|
||||
|
||||
my_arg = ['--display', 'ssd1306', '--interface', 'spi', '--spi-port', '0', '--spi-device', '1', '--gpio-reset', '6', '--gpio-data-command', '5', '--width', str(OLED_WIDTH), '--height', str(OLED_HEIGHT), '--spi-bus-speed', '2000000']
|
||||
oled_device = get_device(my_arg)
|
||||
|
||||
font_regular = ImageFont.truetype("ProggyTiny.ttf", 16)
|
||||
font_medium = ImageFont.truetype("ChiKareGo2.ttf", 16)
|
||||
font_large = ImageFont.truetype("ProggyTiny.ttf", 32)
|
||||
|
||||
max_char_per_line = {font_regular:21, font_medium:17, font_large:11}
|
||||
width_per_char = {font_regular:6, font_medium:7, font_large:12}
|
||||
|
||||
def oled_print_centered(text, font, y, this_canvas):
|
||||
text = text.strip()[:max_char_per_line[font]]
|
||||
start_x = int((OLED_WIDTH - (len(text) * width_per_char[font]))/2)
|
||||
if start_x < 0:
|
||||
start_x = 0
|
||||
this_canvas.text((start_x, y), text, font=font, fill="white")
|
||||
|
||||
class my_button(object):
|
||||
def __init__(self, bcm_pin):
|
||||
super(my_button, self).__init__()
|
||||
self.pin_number = bcm_pin
|
||||
GPIO.setup(self.pin_number, GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
||||
self.prev_state = GPIO.input(self.pin_number)
|
||||
|
||||
def is_pressed(self):
|
||||
result = False
|
||||
current_state = GPIO.input(self.pin_number)
|
||||
if self.prev_state == 1 and current_state == 0:
|
||||
result = True
|
||||
self.prev_state = current_state
|
||||
return result
|
||||
|
||||
PLUS_BUTTON_PIN = 27
|
||||
MINUS_BUTTON_PIN = 19
|
||||
ENTER_BUTTON_PIN = 22
|
||||
SHUTDOWN_BUTTON_PIN = 21
|
||||
|
||||
plus_button = my_button(PLUS_BUTTON_PIN)
|
||||
minus_button = my_button(MINUS_BUTTON_PIN)
|
||||
enter_button = my_button(ENTER_BUTTON_PIN)
|
||||
shutdown_button = my_button(SHUTDOWN_BUTTON_PIN)
|
||||
|
||||
loop_count = 0
|
||||
def print_pattern():
|
||||
global loop_count
|
||||
loop_count = (loop_count + 1) % 2
|
||||
if loop_count:
|
||||
with canvas(oled_device) as draw:
|
||||
draw.text((0, 0), "ABCDEFGHIJKLMNO", font=font_medium, fill="white")
|
||||
draw.text((0, 15), "PQRSTUVWXYZ0123", font=font_medium, fill="white")
|
||||
else:
|
||||
with canvas(oled_device) as draw:
|
||||
draw.text((0, 0), "===================", font=font_medium, fill="white")
|
||||
draw.text((0, 15), "===================", font=font_medium, fill="white")
|
||||
|
||||
print_pattern()
|
||||
|
||||
while 1:
|
||||
time.sleep(0.1)
|
||||
if plus_button.is_pressed():
|
||||
print_pattern()
|
||||
if minus_button.is_pressed():
|
||||
print_pattern()
|
||||
if enter_button.is_pressed():
|
||||
print_pattern()
|
||||
if shutdown_button.is_pressed():
|
||||
print_pattern()
|
||||
@@ -4,4 +4,5 @@
|
||||
|
||||
scp ./* pi@192.168.1.62:~/usb4vc/rpi_app
|
||||
# ssh -t pi@192.168.1.62 "pkill python3;cd ~/usb4vc/rpi_app;python3 usb4vc_main.py"
|
||||
ssh -t pi@192.168.1.62 "pkill python3;cd ~/usb4vc/rpi_app;python3 firmware_flasher.py /home/pi/usb4vc/firmware/PBFW_IBMPC_PBID1_V0_1_5.hex"
|
||||
# ssh -t pi@192.168.1.62 "pkill python3;cd ~/usb4vc/rpi_app;python3 firmware_flasher.py /home/pi/usb4vc/firmware/PBFW_IBMPC_PBID1_V0_1_5.hex"
|
||||
ssh -t pi@192.168.1.62 "pkill python3;cd ~/usb4vc/rpi_app;python3 bb_tester.py"
|
||||
@@ -243,7 +243,7 @@ def enter_dfu():
|
||||
time.sleep(0.05)
|
||||
# Release RESET, BOOT0 still HIGH, STM32 now in DFU mode
|
||||
GPIO.setup(PBOARD_RESET_PIN, GPIO.IN)
|
||||
time.sleep(1)
|
||||
time.sleep(0.5)
|
||||
|
||||
def exit_dfu():
|
||||
# Release BOOT0
|
||||
@@ -254,7 +254,7 @@ def exit_dfu():
|
||||
time.sleep(0.05)
|
||||
# Release RESET, BOOT0 is LOW, STM32 boots in normal mode
|
||||
GPIO.setup(PBOARD_RESET_PIN, GPIO.IN)
|
||||
time.sleep(0.05)
|
||||
time.sleep(0.5)
|
||||
|
||||
def fw_update(fw_path, pbid):
|
||||
is_updated = False
|
||||
|
||||
Reference in New Issue
Block a user