-
Added another Keyboard Driver Feature
10/30/2018 at 06:13 • 0 commentsLooks like I lied. While working on it, I realized that I couldn't Control+C anything because I hadn't implemented the Control Key, so I quickly added a Control Lock Key so you push that, then the letter you want. Got RetroPie installed, but it doesn't want to run from the Pi Desktop, so I will have to look into that. Not a high priority though as it currently does all of the basics that I want.
-
Keypad Drivers now launching at startup
10/29/2018 at 15:49 • 0 commentsI now have the keypad drivers launching at startup. The only thing left that I would like to get done before Supercon is to get a few emulator games running. After I get back, I definitely have some ideas for hardware improvements. For instance, I want to design a more streamlined board so that it doesn't have so many modified boards in it.
-
Mode changing works great. Also can power off.
10/18/2018 at 06:49 • 0 commentsI finished up the mode changing by listing out all of the mode transitions and the conditions for switching to modes. With that clearly defined, making all of the changes in the code was easy. I also added the ability to power down by going to 2nd->Off which sends the shutdown command to the system. If you're in TI-83 mode, then it will avoid powering off the system. Icons are loaded relative to the current directory rather than having the path hardcoded, which helps with flexibility. Earlier tonight, I was on Adafruit's Show and Tell and you can watch me give a brief overview of the calculator. In case it doesn't jump to the correct time from my link, my presentation starts about 11:37.
-
Keyboard Driver Almost Done
10/16/2018 at 04:57 • 0 commentsI ended up using the key combination for On and Mode (it seemed appropriate) to change the mode, which basically is between TI-83 keyboard mode for the TI-83 emulator and Regular mode which allows through various submodes access to just about all of the standard keyboard keys. Also, I finished up adding all of the keyboard layouts and most of the functionality for changing modes is in place. The only thing left is for changing having it drop out of alpha mode if alpha lock isn't engaged and 2nd mode after a key press. Since the TI-83 didn't originally have lower case alpha characters, I've been making up my own system that functions similar to the TI calculators with lower case such as the TI-85/TI-86/TI-89. Also, I may end up adding some game modes if necessary for playing emulators or whatnot. Perhaps even some mouse emulation.
While adjusting the LCD brightness was originally a planned feature, running the GPIO commands does not seem to be working, even from the command line. If I have enough time, I may end up trying to debug that, but it's not a big deal as maximum brightness seems to be ideal anyways.
There's a few other optional features that I'd like to add in that don't really affect the functionality as much as the portability. Since things are coming along so nicely, I'll probably have time to take a stab at that, but I have a lot of things on my plate, so I won't spend too long on that.
-
Ti-83 Calculator Emulation Fully Working
10/15/2018 at 06:01 • 0 commentsI now have all of the physical keys on the calculator including the On Key functioning within the calculator emulator. I still need to figure out how I want to switch to non-TI modes. I'm thinking maybe a key combination or mounting a hidden switch and maybe just wiring it up to one of the 7 unused button combos. Not much else to say than that it's looking good for finishing this on time.
-
Making some Good Progress with Keyboard Driver
10/14/2018 at 05:01 • 0 commentsI've been working on writing the keyboard driver, which has turned out to be the hardest part of this project so far. I ended up writing it with GTK+ 2 in C so that I could show a status icon depending on the mode it's in. Then I needed to use the X11 system to emulate a keyboard. At this point, I now have a status icon appearing in the system tray and it is successfully emulating typing. The next steps are figuring out the correct key codes to enter and having it change modes, update the icon, and change to the appropriate set of keys. The ultimate goal is to bring this around full circle and run a TI-83 calculator emulator, which I also got compiled and working. After that, I plan on installing some emulators and games that can be run on the calculator. I'm hoping to get this all finished by the Hackaday Supercon in a couple weeks or so.
-
Voltage Monitoring is now working
09/29/2018 at 17:20 • 0 commentsWhile doing research about how to display the battery voltage in the menu for the Raspberry Pi, I initially came across some information that developing plugins for LXPanel was the way to go. However, it seems the Raspberry Pi PIXEL environment is a highly customized version of LXDE and I was unable to find information of how to create a plugin. However, did notice that there is an existing plugin called "System Tray" which is part of the menu by default, so I looked in that direction and came across some python code that uses GTK+ to display an icon in that system tray. In fact the code I came across was for a battery monitor that read some system information about the battery and showed a representation there.
I was able to adapt this code to work with my existing python code that read the MCP3002 instead of the system and now it's working great. I just need to find the best way to run this on startup and it should be finished.
My plan is to take a similar approach for the keypad, except I'll be doing that in C since I'm more comfortable doing low level stuff there. However, if it turns out rewriting my keypad driver in Python is easier, I'll go that route.
-
Shutdown now blacks out the screen
09/19/2018 at 04:35 • 0 commentsI followed a tutorial on turning off the screen for the shutdown command and that worked with the shutdown command, but not by using the menu to shutdown. I ended up making a modified version of rpi-display-backlight.service that removes the conditional and runs the command to shut off the display and that worked great for the menu only, so I ended up just implementing both methods and it's working good. I also figured out how to disable the screen blanking because it was getting a bit annoying. It was really as simple as installing xscreensaver and disabling it through the menu, so turning it back on through the UI is pretty easy.
I did a little bit of research and it looks like I will probably end up making my keypad driver into an lxpanel plugin so that I can display if the 2nd or Alpha keys are pressed. For the battery level, I think the best approach is to look at interfacing an existing battery lxpanel plugin with my code that reads the voltage level so that it will display on on the menu bar.
-
Fixed USB Extension
09/17/2018 at 01:18 • 0 commentsI fixed the USB extension on the bottom of the calculator so all hardware is now working. On the software side, placed code to control the backlight in a script and I'm trying to get it to run the script on shutdown. I may decided to actually create a simple service if I can't get that to work consistently.