element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Benefits of Membership
    • Achievement Levels
    • Members Area
    • Personal Blogs
    • Feedback and Support
    • What's New on element14
  • Learn
    Learn
    • Learning Center
    • eBooks
    • STEM Academy
    • Webinars, Training and Events
    • More
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • More
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • More
  • Products
    Products
    • Arduino
    • Dev Tools
    • Manufacturers
    • Raspberry Pi
    • RoadTests & Reviews
    • Avnet Boards Community
    • More
  • Store
    Store
    • Visit Your Store
    • Choose Another Store
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Episode 373: Raspberry Pi Fallout Terminal PC
  • Blog
  • Forum
  • Documents
  • Events
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Project Videos requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Engagement
Author: mcollinge
Date Created: 20 Nov 2018 7:53 PM
Last Updated: 17 Mar 2022 9:02 AM
Views: 1055
Likes: 8
Comments: 57
Related
Recommended

Episode 373: Raspberry Pi Fallout Terminal PC

Raspberry Pi Fallout Terminal PC

element14 Presents  |  DJ Harrigan's VCP Profile  |  Project Videos

 

You don't have permission to edit metadata of this video.
Edit media
x
Upload Preview

Typing a password by hand is so blase, so why not spice up your daily PC unlocking routine by creating an overly contrived password keeper? In the modern Fallout games, you find many a RobCo terminal lying about ready to reveal secrets from before the great war, but in order to gain access, you often need to “hack” the system. Let’s re-create our own mini terminal to emulate a keyboard and unlock a computer in “real life.”

 

 

Bill of Material:

 

Product NameManufacturerQuantity
Buy Kit

Raspberry Pi 3B+

RASPBERRY PI1Buy Now

PiTFT

ADAFRUIT1Buy Now
Speaker PhatPIMORONI1Buy Now
5VDC Power SupplyXP POWER1Buy Now
Pushbutton SwitchNTE ELECTRONICS1Buy Now
1141 -  Assembled Data Logging Shield For ArduinoADAFRUIT1Buy Now
OnOff ShimPIMORONI1Buy Now
Verbatim 3mm FilamentVERBATIM1Buy Now
Trinket 5V 16MhzADAFRUIT1Buy Now
Power AdapterXP POWER1Buy Now
DC Power ConnectorMCM1Buy Now

 

Additional Parts:

 

Product NameQuantity

M2x6 Screw Flathead

6

M2.5x6 Screw Philips

4

M2.5x10 Screw Philips

4

White, Charcoal, and Hammered Black Spray Paint

1

Micro USB B to USB A cable

1

6mm Tactile Switch

6

 



Attachments:
3D Files.zip
  • terminal
  • robco
  • fallout 3
  • fallout 4
  • bethesda
  • pimoroni
  • fallout
  • game
  • serial terminal
  • hacking minigame
  • curses
  • raspberry pi
  • fallout 76
  • fallout new vegas
  • miniature
  • friday_releasedj
  • hacking
  • friday_release
  • 3d printed
  • e14presents_djharrigan
  • Share
  • History
  • More
  • Cancel
Anonymous

Top Comments

  • mrvolt
    mrvolt over 3 years ago in reply to dougw +2

    Thanks Doug. I think I want to make a slight redesign to make this a general purpose Pi Case for future development.

  • mrvolt
    mrvolt over 1 year ago in reply to skwirl42 +2

    Wow James, I'm stoked you're still going strong on this! Also, you can definitely post the game you're working on. It's only spam if that's the only thing you do post, but you're actually sharing and contributing…

  • mrvolt
    mrvolt over 1 year ago in reply to xxbigladxx +2

    Hi there,

     

    There are multiple ways to run a program at boot. Here's a good tutorial: https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/

  • cmelrose
    cmelrose 4 months ago

    Is it possble to get help with this project still? Looking for wiring diagram to get me started. Thanks

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • leopulce02
    leopulce02 11 months ago

    hi, where I can find the python file about the terminal? and then when I have install it, what I have to do for run the programm in a corret way, I'm not an expert of python. thank for all.

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • mrvolt
    mrvolt over 1 year ago in reply to xxbigladxx

    Hi there,

     

    There are multiple ways to run a program at boot. Here's a good tutorial: https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/

    • Cancel
    • Up +2 Down
    • Reply
    • More
    • Cancel
  • xxbigladxx
    xxbigladxx over 1 year ago in reply to skwirl42

    Would you be able to make a YouTube tutorial of how to run the .py files please?

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • xxbigladxx
    xxbigladxx over 1 year ago

    How do i run it, can someone please tell me!

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • skwirl42
    skwirl42 over 1 year ago

    Ok, I'll admit, I got really carried away with the software. I've designed a hypothetical processor for the RobCo RX-9000 terminal at the instruction level, and written an emulator for it using SDL and some other bits and pieces. There's an assembler, as well, but no compiler. I really don't want to write a compiler, so I'm opening up the github repo so if anyone's interested in working on that you'll have access to the emulator, etc. If you're interested in working on it, I have documentation as google docs that I can pass along. I haven't implemented everything I've documented because I was hoping to get a toolchain together to more easily develop for it. So far the assembler is pretty rudimentary, there's no linker, everything has to start from a single file with includes.

     

    Right now it uses cmake to build, and there's support for macOS with makefiles, and MSVC for Windows. Since I use cross-platform technologies it should be easily portable to linux as well, but other than the pi I don't really have a linux dev environment, and the pi is a bit slow for compiling and such.

     

    If anyone knows of a place where it'd be good to post this to get wider exposure, please let me know. If you'd like to take a look it's at:

     

    https://github.com/skwirl42/robco-processor/

     

    On a hardware note, I don't have the design skills to make the new faceplate to replace the 3D-printed one. I have some rough drawings in google docs, but I don't know how to translate that into something usable to cut accurately into metal or acrylic or whatever. If anyone's interested I've got my rough sketches in https://docs.google.com/drawings/d/1qXP3hbj4QRZNAJLzQZtH0kLJBn-T8wZeEcBwxhXdALA/. Like I said, I don't have the design skills or manufacturing know-how to get this made. If there's anyone will to make some sort of CAD design usable for laser cutters or whatever, that fits the original BOM (other than the keyboard section) I'd be really appreciative. I know of a couple of places here where I could get it manufactured. The keyboard layout was mainly concerned with getting keys in for the hacking game, but since they'll be driven by an existing USB keyboard controller they should be easily changed.

     

    On an unrelated note, our game got pretty good reception. It's the first PGA-licensed golf game in a few years, and it's a lot more accessible than our older games based on the same core, The Golf Club. It used to be more strictly simulation, but the team put a lot of effort into making it playable for people new to computer golf.

    • Cancel
    • Up +1 Down
    • Reply
    • More
    • Cancel
  • skwirl42
    skwirl42 over 1 year ago in reply to mrvolt

    I love Fallout, so having a little terminal of my own sounded like just the thing. Eventually I'd like to be able to play holodisk games through the pseudo-OS I'm working on, but for now it's just a text console. I've been dying to make a fantasy game console for years, and so maybe I can do that with this environment.

     

    I'm working on PGA Tour 2K21, and am pretty stoked that one of the recent gameplay trailers (https://www.youtube.com/watch?v=ZH8K1R7t59o ) shows off some of my work. I implemented the replays and highlights during PGA Tour mode, and then some of my colleagues made them look great. I'm not gonna mention the last project I helped ship, because it bombed hahaha

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
  • mrvolt
    mrvolt over 1 year ago in reply to skwirl42

    Wow James, I'm stoked you're still going strong on this! Also, you can definitely post the game you're working on. It's only spam if that's the only thing you do post, but you're actually sharing and contributing to the community as a great example.

    • Cancel
    • Up +2 Down
    • Reply
    • More
    • Cancel
  • skwirl42
    skwirl42 over 1 year ago

    So, it's been a year and a half, but I've still been plugging away at this. I've changed some of my approach, concentrating mostly on making use of my strengths (software) and less on my weaknesses (making new hardware). Here's what I'm working on:

    • Using a Pi Zero W
    • The aforementioned robco-os project (https://github.com/skwirl42/robco-os) - now includes the version of hack.py that runs inside it
    • Cutting down the word list - mostly removing proper names
    • Optimizing how the word list is read in - it was reading the whole file in at once, so I had it load it line-by-line and only adding the words of the correct length to the list
    • A probably over-engineered python module written in C++ that directly accesses the framebuffer of the PiTFT to draw a console with a custom font (available at https://github.com/skwirl42/pitft-fbprovider - the 'pitft-only' branch of robco-os has an example of usage)
      • Requires the PiTFT to be set up as a framebuffer device
      • Loads a font in png format then draws text to the framebuffer with it
      • I know there's functionality built into linux to do these things, but I like that kind of low-level programming
    • Keyboard input is being handled with the tcod (https://python-tcod.readthedocs.io/en/latest/index.html) module, as I already had that imported for the tcod version of console rendering
      • Could also be used for mouse input, since tcod is built on top of SDL and uses its event system
    • Took apart a USB keyboard, traced its matrix, and I'll be using the controller board for a new physical keyboard with 14 keys
    • To make room for the new keyboard, replacing the faceplate with cutouts for the keys, and in a more durable material (possibly metal - the PLA broke easily - possibly an inferior print)
      • Unfortunately, I don't have the CAD chops to design this myself, and certainly don't have the metalworking skills
    • Use adhesive leatherette for the faceplate to match the in-game look
    • Adding an external USB port coming from an internal USB hub - the external port will be where the power button was originally intended to be

     

    I want to make use of the touchscreen, since I intend this to be a relatively general purpose machine. I've been exploring different tools for gesture recognition but haven't found one I'm happy with. The idea would be to use gestures for text input and to enter commands beyond what's available from the physical keyboard. The adafruit page suggests using xstroke, but it hasn't had an update in ages and works best when the desktop is available (it won't be in my project). Another option I'm considering is $-family of gesture recognizers (Impact of $-family) since there's a python module for the $Q variant. It has the problem of not being able to differentiate gestures based on orientation, so a line drawn left-to-right matches a template of a right-to-left (or up/down) gesture.

     

    All this while also working at my day job programming video games. I don't know if I'd get this post deleted or whatever for plugging the game I'm working on, so I won't. But my linkedin profile lists my employer, and it's not much of a jump to find out what we're currently working on.

    • Cancel
    • Up +1 Down
    • Reply
    • More
    • Cancel
  • skwirl42
    skwirl42 over 2 years ago in reply to skwirl42

    I did have an idea for this. It’s pretty easy to interface with Wii controller peripherals like the nunchuck and classic controller, so I may do that.

    • Cancel
    • Up +1 Down
    • Reply
    • More
    • Cancel
>
Element14

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2022 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • Facebook
  • Twitter
  • linkedin
  • YouTube