Hello, all. Thanks to everyone who responded to my post.
I decided to make sure I had something that worked with what I have now and used Curses to finish it. However, it turns out that the extra work and problems with using GPIO pins and wiring up controllers that way is a small amount of headaches and work compared to what I thought it would be and the software part is actually easier than doing it this way. So in the end I will hooking the Raspberry Pi up directly to the buttons and use the Raspberry Pi's GPIO library to do it all. For posterity and in case other beginners want to look at it, here is what I have with curses that works now. Tried to add a function to cause it to only work for a certain amount of time and that did not work. Will worry about that when I do the new programme based off of directly connected buttons and have those working. Thanks everyone. Here is the keyboard controls the colours script. (Raspberry Pi B+, Blinkstick Pro and LED Adapter, analouge RGB LED light strip.) import curses import atexit import time from datetime import datetime from blinkstick import blinkstick starttime = time.time() screen = curses.initscr() curses.noecho() curses.curs_set(0) screen.keypad(1) screen.nodelay(1) led = blinkstick.find_first() timered = 0 timeyellow = 0 timeblue = 0 timestamp = str(datetime.now()) colour = 0 screen.addstr("Eflag 1") while True: event = screen.getch() if event == ord("q"): flog = open('flag1log.text', 'a') flog.write(timestamp + '\n' + 'Red Team: ' + str(timered) + '\n' + 'Yellow Team: ' + str(timeyellow) + '\n' + 'Blue Team: ' + str(timeblue) + '\n') flog.close() curses.endwin() break elif event == ord("r"): colour = 1 screen.addstr("Red Activated") elif event == ord("y"): colour = 2 screen.addstr("Yellow Activated") elif event == ord("b"): colour = 3 screen.addstr("Blue Activated") if colour == 1: led.pulse(red=255, green=0, blue=0, repeats=1, duration=3000, steps=50) timered += 1 print timered if colour == 2: led.pulse(red=255, green=255, blue=0, repeats=1, duration=3000, steps=50) timeyellow += 1 if colour == 3: led.pulse(red=0, green=0, blue=255, repeats=1, duration=2000, steps=50) timeblue += 1 if time.time() == (time.time() + 30): flog = open('flag1log.text', 'a') flog.write(timestamp + '\n' + 'Red Team: ' + str(timered) + '\n' + 'Yellow Team: ' + str(timeyellow) + '\n' + 'Blue Team: ' + str(timeblue) + '\n') flog.close() curses.endwin() break -- https://mail.python.org/mailman/listinfo/python-list