update builder's manual

This commit is contained in:
ohsqueezy 2023-04-25 18:28:02 -04:00
parent b30391bdcc
commit 1618dacc4d
25 changed files with 444 additions and 277 deletions

View File

@ -23,8 +23,8 @@ the following restrictions:
3. This notice may not be removed or altered from any source distribution.
Assets
------
Assets and documents
--------------------
Art, sound, document, and schematic assets are released under CC BY 4.0 To view a copy of this
license, visit <http://creativecommons.org/licenses/by/4.0/>
Art, sound, documentation, manuals, and schematics are released under CC BY 4.0. To view a copy of this
license, visit <http://creativecommons.org/licenses/by/4.0/>.

View File

@ -5,6 +5,13 @@ Scrapeboard
So, you think you can skateboard, but can you scrapeboard, you slime bag? Scrapeboard is a DDR inspired alt control game that uses a real skateboard deck instead of your feet. Do you have the moves to skate through a gauntlet of goons all the way to Tony Hawk?
Donations
---------
Send us a donation through [Ko-fi](https://ko-fi.com/scrapeboard)!
[![Donate at Ko-fi](https://storage.ko-fi.com/cdn/kofi3.png?v=3)](https://ko-fi.com/Z8Z7FX41L)
Controller
----------
@ -100,26 +107,17 @@ The `--minimize-load-time` flag can be useful when testing because it sacrifices
License
-------
Original Scrapeboard code is released without restriction on copying, modifying, or selling, under the zlib license. Art, sound, text, and schematic assets are released under CC BY 4.0. This means users are free to use Scrapeboard for any use, including modifying it and even selling the modification, and the modifications would not need to be released as open source. Use of the assets requires attribution is given to Scrapeboard for the original assets, and if the source is distributed, the zlib license must be included as the license for the original code.
Original Scrapeboard code is released without restriction on copying, modifying, or selling, under the zlib license. Art, sound, text, and schematic assets are released under CC BY 4.0. Users are licensed to modify Scrapeboard and even sell their modifications. Scrapeboard code and assets can be used in other projects, even closed source ones. Use of the assets requires attribution is given to Scrapeboard for the original assets. If the source is distributed, the zlib license must be included as the license for the original code. The full license is in [LICENSE.txt][].
PGFW is included under its zlib license. Python, Pygame, Arduino and Raspberry Pi all have their own licenses, but they are not distributed with this project.
See [LICENSE.txt][]
PGFW is included under [its zlib license](https://open.shampoo.ooo/shampoo/pgfw/LICENSE.txt).
Contact
-------
More information is available [at the website](https://scrape.nugget.fun). Email us at scrape (at) nugget (dot) fun.
Donations
---------
Send us a donation through [Ko-fi](https://ko-fi.com/scrapeboard)!
[![Donate at Ko-fi](https://storage.ko-fi.com/cdn/kofi3.png?v=3)](https://ko-fi.com/Z8Z7FX41L)
[1]: Scrapeboard_Builder's_Manual.md
[2]: Scrapeboard_Builder's_Manual.md#electronics-1
[1]: doc/Scrapeboard_Builder's_Manual.md
[2]: doc/Scrapeboard_Builder's_Manual.md#electronics-1
[Pygame]: https://pygame.org
[Makey Makey]: https://makeymakey.com
[serial program]: serial/serial.ino

View File

@ -3,16 +3,22 @@ Scrapeboard Builder's Manual
![demo](https://scrape.nugget.fun/www/Scrapeboard_Gameplay_Demo_picture_in_picture.webp)
Scrapeboard is an arcade game that uses a skateboard deck and metal floor pads. In the game, the player is a lizard who is given a skatedeck by Tony Hawk and challenged to physical matches against a series of goons. The object of each match is to perform combinations of foot moves on a sliding board as they are displayed on screen.
Scrapeboard is an arcade game that uses a skateboard deck and metal floor pads for input. In the game, the player is a lizard who is given a skatedeck by Tony Hawk and challenged to physical matches against a series of goons. The object of each match is to perform combinations of foot moves on a sliding board as quickly as possible as they are displayed on screen.
The game is available to play at select game conventions and festivals, but it is also a D.I.Y. project that is not difficult to reproduce. This manual covers how to build a full Scrapeboard system. It includes how to install and test the software, how to build the electronics, and how to fabricate a controller using a skateboard deck, metal pads, and plywood.
![Time lapse of build](https://scrape.nugget.fun/local/manual/Scrapeboard_platform_timelapse.webp)
![Time lapse of build](img/Scrapeboard_platform_timelapse.webp)
---
include_toc: true
---
Audience
--------
It is intended for a general audience. There are steps that involve beginner level electronics and wood working. The instructions assume some understanding about how to connect components when using the Arduino. There are steps that require the use of a drill.
The manual is intended for a general audience. There are steps that involve beginner level electronics and wood working. The instructions assume some understanding about how to connect components when using the Arduino. There are steps that require the use of a drill.
There is a significant time investment to consider from reading the manual and sourcing the supplies to building the software, electronics, and hardware. Multiple days should be set aside if building a system from start to finish.
Purpose
-------
@ -48,7 +54,7 @@ Although there are still improvements being worked on, the 2022 model is what th
Supplies
--------
#### Electronics
### Electronics
* [Arduino][3] or [Raspberry Pi 4 (2GB or higher)][4]
* Desktop or laptop computer (not required if using Raspberry Pi)
@ -61,24 +67,24 @@ Supplies
* 4 × [4.7k resistors](https://www.amazon.com/dp/B07QJB3LGN)
* 4 × [5mm screw terminals](https://www.amazon.com/dp/B088LSS14J)
#### Hardware
### Hardware
* 4 × [plywood](https://www.homedepot.com/p/203504324) pre-cut to 15" × 21" × 3/4" each (oak or birch hardwood recommended)
* 4 × 12" × 18" metal sheets ([aluminum composite sheet](https://www.homedepot.com/p/308670310) cut into 4 pieces, [street signs](https://www.ebay.com/itm/134245723578), or if insetting with a router, thin metal sheets [pre-cut](https://www.lowes.com/pd/Hillman-12-in-x-18-in-Steel-Solid/3057631) or [cut your own](https://www.lowes.com/pd/IMPERIAL-24-in-x-3-ft-Galvanized-Steel-Sheet-Metal/3234805) are also an option)
* 68 × [Flat-head wood screws #12 × 5/8"](https://www.amazon.com/dp/B07KWB4GNF) (#10 are OK if #12 are hard to find)
* 4 × [#8 washers](https://www.homedepot.com/p/204276449)
* 4 × [plywood](https://www.homedepot.com/p/203504324) pre-cut to 15x21x3/4" each (oak or birch hardwood recommended, note: if the platform doesn't need to be portable, 1 big piece of plywood or any type of wood floor can be used)
* 4 × 1/8x12x18" metal sheets (for example, [aluminum composite sheet](https://www.homedepot.com/p/308670310) cut into 4 pieces or [street signs](https://www.ebay.com/itm/134245723578))
* 68 × [Flat-head sheet metal screws #12 7/8"](https://www.zoro.com/i/G9189975/)
* 4 × [#12 washers](https://www.zoro.com/i/G0585042/)
* 8 × [Flat metal brackets with 5/8" screws](https://www.amazon.com/dp/B07Z8YLFCN)
* 20' - 30' [16 AWG wire](https://www.ebay.com/itm/272488348389)
* [Skateboard deck](https://www.ebay.com/sch?_nkw=blank+skateboard+deck)
* 2 × [Surface-mounted anchor rings](https://www.harborfreight.com/4-piece-surface-mounted-rope-rings-97767.html)
* 6 × [#10-24 × 3/4" machine screws](https://www.amazon.com/dp/B08474HKMT) with [hex nuts](https://www.amazon.com/dp/B082D6FV5H)
* 10 × [#8-1/2" Wood screws](https://www.amazon.com/dp/B09D952RV5)
* 6 × [#12-24 × 5/8" flat head machine screws](https://www.zoro.com/i/G1631332/) and [#12-24 nuts](https://www.zoro.com/i/G1271146/)
* 10 × [#8-1/2" sheet metal screws](https://www.amazon.com/dp/B09D952RV5)
* [Thin metal strip](https://www.amazon.com/dp/B00745VXN2)
* [Non-slip floor padding](https://www.amazon.com/dp/B09QS47P21)
* [Carpet tape](https://www.amazon.com/dp/B07H88SWCM)
* [Non-slip floor padding](https://www.amazon.com/dp/B09QS47P21) (recommended for keeping the platform from sliding)
* [Carpet tape](https://www.amazon.com/dp/B07H88SWCM) (recommended for keeping the platform from sliding)
* [WD-40](https://www.amazon.com/dp/B00IOX8M0A/) (recommended for drilling into metal)
#### Tools
### Tools
* Drill
* Hammer
@ -87,16 +93,26 @@ Supplies
* Measuring tape
* Countersink bit (recommended)
* Wire strippers (recommended)
* Wrench (recommended)
* Wrench and/or pliers (recommended)
* Screwdriver (recommended)
* Sandpaper (recommended)
* Router (optional, see notes below)
#### Optional
### Optional
If access to a router is available, a more compact version of the platform with a smooth, flush surface can be created. It will require creating insets for the metal panels, inner screws, brackets, and wires using the router. To create this version, make the following supply substitutions, and follow the steps marked optional in [Building a Scrapeboard and platform](#Building-a-Scrapeboard-and-platform).
* Replace plywood with smaller, square pieces: 4 × [plywood](https://www.homedepot.com/p/203504324) pre-cut to 14x14x3/4" each (oak or birch hardwood recommended)
* Replace metal sheets with [4 × 18-gauge, 12x12" metal sheets](https://www.amazon.com/dp/B09RZMTZBG)
* Replace the 68 × #12 7/8" sheet metal screws with
+ 68 × [#12-24 × 5/8" flat head machine screws](https://www.zoro.com/i/G1631332/)
+ 68 × [#12-24 nuts](https://www.zoro.com/i/G1271146/)
+ 68 × [#12 washers](https://www.zoro.com/i/G0585042/)
* Add [3/4" straight bit](https://www.amazon.com/dp/B07ZC974L1)
* Add [router edge guide](https://www.amazon.com/dp/B0771Y41W6) (recommended)
It is also possible to add latches to the back of the wood if the platform is expected to be taken apart and reassembled frequently. In that case, make the following substitution.
* Use a router to create insets for the metal panels, inner screws, brackets, and wires
* [3/4" straight bit](https://www.amazon.com/dp/B07ZC974L1)
* [Router edge guide](https://www.amazon.com/dp/B0771Y41W6) (recommended)
* Replace 36 of the flat-head #12 × 5/8" wood screws with [#12-24 × 5/8" flat head machine screws](https://www.amazon.com/dp/B074ZMZ18Z), [#12-24 nuts](https://www.amazon.com/dp/B094D4B8G9), and [3/16" washers](https://www.homedepot.com/p/204276449)
* Replace flat metal brackets with 8 [latches](https://www.amazon.com/dp/B07GKHD61X) and 32 [#4 × 1/4" round head screws](https://www.homedepot.com/p/204275185)
Preparing a computer
@ -119,7 +135,7 @@ If using a Raspberry Pi, it must have 2GB or higher RAM, and only the Raspberry
##### Imager
![Pi imager home screen](https://scrape.nugget.fun/local/manual/pi_imager_home_screen.png)
![Pi imager home screen](img/pi_imager_home_screen.png)
1. Get the [Raspberry Pi imager](https://www.raspberrypi.com/software/) software and launch it (note: must be run as authorized user)
2. Choose `"Raspberry Pi OS (other)" -> "Raspberry Pi OS Lite (64-bit)"` under `"Operating System"`
@ -127,7 +143,7 @@ If using a Raspberry Pi, it must have 2GB or higher RAM, and only the Raspberry
##### Imager settings tab
![Pi imager settings](https://scrape.nugget.fun/local/manual/pi_imager_settings.png)
![Pi imager settings](img/pi_imager_settings.png)
1. Click the gear button to open the settings
2. Check off "Set hostname" and change to "scrapeboard"
@ -150,12 +166,12 @@ Click "WRITE" in the Imager window
6. Optional: run `sudo apt update && sudo apt upgrade` to update the operating system
7. The system is ready for installing the game software and other software requirements
Installing the game software and other software requirements
------------------------------------------------------------
Installing the software
-----------------------
These instructions depend on the operating system, so each section is divided into subsections by OS.
### Requirements
### Software requirements
* [Python 3.7+](https://python.org)
* [Pygame 2+](https://pygame.org)
@ -277,7 +293,7 @@ It may be necessary to configure sound by replacing the contents of `~/.asoundrc
defaults.pcm.device 0
defaults.ctl.card 1
### Linux / non-lite Raspberry Pi
#### Linux / non-lite Raspberry Pi
Install pip from the package manager
@ -289,7 +305,7 @@ Install pygame through pip
#### Windows, OS X, other
For checking if pip needs to be installed and how to install it, see <https://pip.pypa.io/en/stable/getting-started/>. If necessary to install, use pip from the command line (PowerShell or Terminal, for example)
[Check if pip needs to be installed](https://pip.pypa.io/en/stable/getting-started/). Use that same link to get instructions on how to install it if necessary. After pip is installed, call it from the command line to install Pygame (using PowerShell or Terminal, for example).
python -m pip install pygame
@ -302,7 +318,7 @@ Use Git clone with the `--recursive` flag to download both the game and framewor
### Launch
![Launch from command line](https://scrape.nugget.fun/local/manual/launch_from_command_line.png)
![Launch from command line](img/launch_from_command_line.png)
It should be possible to run in keyboard mode and test input with key presses now. The `--no-serial` flag is used to indicate keyboard mode.
@ -316,227 +332,9 @@ The `--kms` (Kernel Mode Setting) flag is necessary for running on the lite OS b
./OPEN-GAME --no-serial --kms
Electronics
-----------
### Launch Scrapeboard automatically on Raspberry Pi (optional)
![Finished breadboard](https://scrape.nugget.fun/local/manual/circuit_finished_breadboard.jpg)
A simple circuit constructed with either an Arduino or Raspberry Pi is necessary to connect the input pads with the game. This image shows the finished circuit connected to a Raspberry Pi.
### Circuit
Four input pins on the microcontroller need to be connected to the game's four input pads, with a 4.7k resistor in each connection. With the program loaded onto the microcontroller, when a connection is made between two pads with any conductive material, they are registered as connected. During each loop of the program, each of the four pads is set to low output while the others are set to high input. The low output pulls down the high input if they are connected, so if an input set high is read as low, that means the two low pins are connected.
#### Arduino
1. Connect pins 2, 3, 4, and 5 to the breadboard using jumper wires
2. Extend each connection using a 4.7k ohm resistor
3. End each connection with a screw terminal
#### Raspberry Pi
1. Connect pins 37, 35, 33, and 31 to the breadboard using jumper wires (these pins are also referred to as GPIO 26, GPIO 19, GPIO 13, and GPIO 6).
2. Extend each connection using a 4.7k ohm resistor
3. End each connection with a screw terminal
### Loading the program
#### Arduino
![Arduino IDE upload](https://scrape.nugget.fun/local/manual/arduino_IDE_upload.png)
Download the [Arduino IDE](https://www.arduino.cc/en/software) and connect it to the Arduino. Make sure the Arduino is connected in `Tools -> Port`. Open [serial/serial.ino](serial/serial.ino) in the IDE. Load the program into the Arduino using `Sketch -> Upload`.
#### Raspberry Pi
The electronics program does not need to be loaded separately onto the Raspberry Pi because the code that reads the Raspberry Pi's GPIO pins is built into the game's Python code.
### Testing the circuit
If the game is running on Raspberry Pi Lite OS, the commands below must also have the `--kms` flag.
#### Arduino
Launch the game without any flags to indicate Arduino (or serial) mode. Serial data being output by the Arduino will be read over USB.
./OPEN-GAME
Test the connection between any two screw terminals using a jumper wire, and the lizard should appear on screen.
#### Raspberry Pi
Launch the game with the `--pi` flag to indicate that input is coming through the Raspberry Pi's GPIO pins.
./OPEN-GAME --pi
Test the connection between any two screw terminals using a jumper wire, and the lizard should appear on screen.
Building a Scrapeboard and platform
-----------------------------------
The controller hardware has two main parts:
* a custom built platform
* the scrapeboard (a modified skatedeck)
![Board and platform assembled](https://scrape.nugget.fun/local/manual/board_and_platform_assembled.jpg)
The platform consists of four metal plates capable of supporting the weight of a person that should not move even under constant friction. The scrapeboard is a regular skatedeck with two round metal pads connected by a thin metal strip attached to the underside.
This manual describes how to use four pieces of plywood as the base for the metal plates. However, it is not necessary to use any specific base, as long as the metal plates are spaced correctly, don't move, and allow the round metal pads on the scrapeboard to scrape over them. The metal could be fastened directly to the floor or a single piece of plywood if the platform doesn't need to be portable.
![Underside routing](https://scrape.nugget.fun/local/manual/underside_routing.jpg)
If using plywood, a router may be used to carve channels for insetting the metal plates, brackets, inner screws, and wiring. These channels can help with portability and durability, but they are not necessary. Steps for doing this are included, but they are marked as optional.
The electronics are assumed to be installed in front of the platform, near where the screen is. If installing the electronics behind the platform, adjust wire lengths and wire channel orientations.
### Terminology
To avoid confusion between similar parts, the following terms are used:
* *Platform*: all four panels
* *Panel*: a single piece of the four panel platform, a piece of wood with a single metal plate attached
* *Plate*: the metal part of the panel by itself
* *Pad*: one of the two metal anchor rings on the underside of the scrapeboard
### Platform
![Finished platform](https://scrape.nugget.fun/local/manual/platform_finished.png)
The platform for a standard Scrapeboard build consists of four evenly spaced metal plates, about 12" × 18" each, spaced 5" apart. The metal plates can be mounted in any manner, as long as they are firmly attached. This manual describes how to mount the metal to four 15" × 21" × 3/4" pre-cut pieces of plywood and bracket the pieces together. It also describes how to use a router to inset the metal parts and wiring, but those parts are optional.
#### Measuring
<img src="https://scrape.nugget.fun/local/manual/platform_measuring_plate.gif" />
First, measure an outline for the metal, making sure to keep the correct amount of space between the metal plates, close enough together that diagonal moves will register but far enough apart that a single round metal pad on the scrapeboard won't be able to touch two plates simultaneously. Since the round metal pads for the scrapeboard are 4" in diameter, the metal plates should be slightly farther apart, with a 5" gap between each horizontal and vertical neighbor.
1. For each of the wood pieces, measure 2.5" inward from the two inner edges, going along each edge, marking off 2.5".
2. Draw a line parallel to the edge of the wood piece on each of the two inner edges. These lines mark where the metal plate should be attached.
#### Inset (optional)
![Insetting metal plate](https://scrape.nugget.fun/local/manual/platform_inset_plate.webp)
In order to get the metal plates flush with the platform, it is necessary to remove a thin layer of wood from where the metal will be attached. A router can be used to cut away a thin layer from all parts of the wood other than the cross section between the metal plates, everything other than the 2.5" previously measured on each piece.
1. Insert a 3/4" diameter straight bit into the router.
2. For thinner metal, if it is thin enough to get caught and bent, set the router depth to 1/16" so the metal will be slightly recessed. This is done to ensure the edges of the metal won't get caught on the scrapeboard and pried from the wood. For thicker metal that can remain flat even when being scraped against, set the router depth to the thickness of the metal.
3. On each panel, route two straight channels into the wood, one along each inside part of the lines previously drawn where the metal will be set. Use a router edge guide if possible to make a straight cut.
4. Use the router to remove the rest of the inner wood from the channels to the edge of the wood, leaving only the cross section. In the end, there should be a recess exactly the shape of the metal plate on each panel.
#### Machine screw channels (optional)
![Routing screw channels](https://scrape.nugget.fun/local/manual/platform_machine_screw_channels.webp)
Using machine screws and nuts to fasten the metal to the wood has a few advantages over drilling the metal directly into the wood with wood or sheet metal screws. Since machine screws and nuts can be regularly tightened, there is a better chance of them keeping the metal firmly in place throughout the lifetime of the platform, even under heavy friction. Also, they will not be affected by the screw holes stripping if the screws ever need to be removed and reinserted.
In order to use machine screws, there must be 3/4" channels routed into the underside of the platform, so the nuts won't stick out and prevent the platform from sitting flat on the ground. It is only necessary to do this for the inner sides of each metal plate, the sides that touch the cross section, because those are the sides that will be receiving heavy friction.
1. Insert a 3/4" diameter straight bit into the router.
2. On each panel, using the lines already measured into the top of the panel, measure out 3/4" wide channels on the underside of the panel along the two inner edges under each metal plate. The channels should each start at the edge and come 3/4" inward. The line marking the outer edge of each channel can be drawn by drawing a line along the side edge of the panel, connecting the top of the panel with the bottom, indicating on the bottom where the metal edges are. Draw lines from the mark straight in along the bottom of the panel to indicate where to route.
3. Use the router to carve two channels with the outside of each channel along the lines drawn.
#### Wire channels (optional)
![Making a wire channel](https://scrape.nugget.fun/local/manual/platform_wire_channel.webp)
Putting wire channels under the metal plates can help prevent the wire from being accidentally cut or torn by foot traffic or the scrapeboard.
In order to be able to separate the panels, the wire routing is done separately for each panel with just a short channel on each corner. However, if the platform doesn't need to be portable, the channels can be customized so all wires emerge from the front of the platform.
1. On each panel, mark a point 1 sq. inch inward from the outermost corner.
2. Optionally, the 3/4" bit can be swapped for a smaller 1/4" bit.
3. Set the depth of the router to 1/4".
4. On the two front panels, assuming they are the panels closest to the electronics and screen, route a channel straight in from the front edge to the 1" mark, so the wire will be sticking out the front of the platform.
5. On the other two wood pieces, do the same, but carving in from the side edges, so the wires will be sticking out the side of the platform.
6. Place the metal plate on the panel temporarily. Mark a point on the plate 1/2" away from the channel, going toward the outer edge, and use a 1/4" drill bit to drill a hole there. Since the hole is for only the metal, use a piece of scrap wood instead of the platform piece as the backing when drilling into the metal. This is the hole where the metal contact in the wire will be threaded through.
#### Wire preparation
There will be four wires total, one for each metal plate. They should be cut long enough to reach the Arduino or Raspberry Pi. To have them all terminate at the same point, the back two wood pieces should have longer wires than the front two.
1. Measure the distances between the Arduino or Raspberry Pi and each metal plate. This will vary depending on the setup, and it is a good idea to measure extra distance.
2. Cut wire at the measured distance for each plate with an extra 4" - 6" for inserting and running the end of the wire into the plate.
3. For each wire, at one end use wire strippers to cut off the sheathing and expose 1/4" of wire. These ends will be inserted into the screw terminals.
4. For each wire, at the other end, use wire strippers to cut off the sheathing and expose 2" or more of wire. These ends will be attached to the metal plates.
#### Metal plates
The metal plates need to be screwed into the platform, leaving the measured cross section of bare wood between them. The wires then need to be attached to the metal plates. To attach the metal plates to the wood, 16 screws are used per plate, all along the edges, 3/8" inward from the edge. Additionally, one screw is placed in the far corner of each plate for attaching the wire.
1. On each panel, place the metal plate along the measured lines. If the optional wire channel step was done, the wire should be inserted into the channel, and its contact part should be threaded through the hole drilled for it. In the end, just the contact part of the wire should be sticking out a hole at the far corner with enough slack to wrap around a screw a couple of times.
2. Each of the 16 main screws should be 3/8" away from the edge of the metal. Mark points for the screws so they are evenly spaced around the edge of the metal. With one mark at each corner, there should be two marks between the corners on the short edges, and four marks between the corners on the long edge.
3. Insert a 7/64" drill bit into the drill.
4. Pre-drill a hole for each screw through the metal and into the wood at each mark. For the wire hole, pre-drill into the wood under the hole. If using machine screws on the inner edges, these holes should go all the way through the wood and out the underside. If the channels were routed correctly, each hole will emerge in the center of its channel on the underside. For any holes not using machine screws, the pre-drill holes do not need to go deep into the wood.
5. Screws that stick out of the metal can catch the round metal pads of the scrapeboard when it scrapes over them, causing the metal to pry out. Because of that, countersinking should be done on the two inner edges of each plate before drilling in the screws. This will allow the screw heads to be drilled flush with the panel. If the metal plate is thin, the countersink should be on the wood under the plate, so the metal itself will sink into the hole. If the metal is thick, ideally as thick as the screw head, the countersink should be on the metal, so the screw head will drill flush with the metal. If using a countersink bit, insert it into the drill and create a countersink at each previously drilled hole that matches the size of the screw heads. If not using a countersink bit, use a large drill bit to simulate a countersink bit and drill a shallow hole on top of the previously drilled holes.
6. Insert a screw into each non-wire hole and drill it in.
7. The contact part of the wire should still be sticking out through its hole from under the metal plate. Place a washer over the hole, with the wire under it. Place a screw in the pre-drilled hole in the wood. Screw in the screw a bit, then wrap the wire clockwise around the screw under the washer. Drill the screw in fully. The wire should now be clamped tightly between the washer and the metal plate.
#### Brackets
The brackets should be attached to the underside of the platform. They are necessary for holding the pieces together. With 8 - 12 evenly spaced brackets, the pieces will hold together firmly. The brackets may be inset into the wood using a router. If using the clasp style brackets, this step is necessary. Ordinary flat brackets can be either inset or not.
1. Flip the platform onto its backside, keeping all four pieces arranged in their proper orientation.
2. Along the cross section seam, place the brackets so they are evenly spaced, covering as much area as possible, without getting too close to the edge or the center.
3. If using clasp style brackets, in order to get a tight hold, the two sides of each bracket should be drilled so they are very slightly farther apart than the neutral state they come in, separated about 2mm farther. To do this, unclasp the bracket after placing it, and move each side back about 1mm.
3. (Optional) If doing routing, trace around the bracket to mark where the channel will go.
4. (Optional) Use the router to carve a channel in the same way the wire channels were carved, just deep enough so the top of the bracket will not come out farther than the wood and place the brackets again.
5. Directly drill the brackets into the wood using the appropriate screws.
6. If using clasp style brackets, clasp the brackets and ensure they are able to close and hold tightly. If not, remove the screws, adjust their positions, and drill them in again until the brackets are tight.
#### Non-slip padding (optional)
The non-slip padding is necessary on many surfaces to keep the platform from slipping. If the platform is placed on a very non-slippery surface like carpet, it may not be necessary. The non-slip padding can be attached to the underside of the wood pieces or it can be placed on the floor between the platform and floor.
1. On each panel's underside, measure areas for non-slip padding to attach. If there are channels from routing, either measure around the channels or include them in the measurement and cut off the non-slip padding over the channels after attaching it. Depending on how the padding is going to be applied and the size of the non-slip padding material, this may mean making multiple measurements or one big measurement. Either way, measure so the padding covers as much area as possible while allowing the panel to rest as flat as possible on the ground.
2. Cut the non-slip padding material into the shapes measured.
3. Apply carpet tape to the back side of each piece of non-slip material.
4. Firmly press each piece of non-slip material into its measured place on the underside of the panel.
#### Connecting
The platform is now finished. It can be connected to the Arduino or Raspberry Pi and tested before moving on to building the board.
1. Carefully flip the platform back over, taking care near the seams because the underside bracketing can make it susceptible to snapping.
2. For each wire, insert its far end into its appropriate screw terminal. Going clockwise from the top left plate, for Arduino, the wires connect to pins 2, 3, 4, and 5. For Raspberry Pi, the wires connect to pins 37, 35, 33, and 31 (also known as GPIO 26, GPIO 19, GPIO 13, GPIO 6).
3. Use any metal conductor to touch one metal plate to another. The lizard should appear on the screen.
### Scrapeboard
The standard scrapeboard is a skatedeck with two round metal pads drilled into either end of the bottom. The pads are connected by a flat metal strip, creating a conductive contact across the length of the underside of the board. The recommended metal pads to use are actually anchor rings, ordinarily used to hook cargo to a tow cable. They are used because their unique disk shape and slightly raised edges allow for the best motion with the board. The board is subject to a lot of friction and pressure, so it's recommended to follow this manual unless intending to build a heavily modified version of the controller.
#### Metal strip
The metal strip is used to connect the metal pads so the signal can be conducted from one to the other. The strip should be attached to the underside, going directly across the length of the middle. The metal pads will then be drilled on top of it.
1. Measure out and cut enough wire strip so that it will go along the entire flat part of the underside of the skatedeck. It doesn't have to go up the curved ends, but it should go past the truck holes.
2. Drill the wire strip directly into the underside of the board using the 1/2" wood screws, distributing the screws evenly and covering as much area along the length of the strip as possible.
#### Metal pads
The metal pads should be placed slightly farther out than the truck holes and held in place by machine screws and nuts.
1. If using the recommended anchor rings, first remove the ring from the base. Pry up the center flap slightly with a screwdriver or other tool, and the ring should slide out.
2. Use a hammer on the center flap to flatten it as much as possible.
3. For each metal pad, place it directly in the center of the underside, with its center about 1" farther toward the end of the board than the truck holes. The center hole of the pad should be directly above the metal strip, ideally lined up with an existing hole in the strip. If the hammering of the center flap caused the hole to move off center, it is fine to leave the hole off center a bit.
4. Insert a 1/4" drill bit into the drill.
5. The center hole of the anchor can be used as a drill point. Drill a hole through the wood so that a 3/8" machine screw can fit snugly through. The hole should also pass through the metal strip.
6. Insert the machine screw from the top of the deck through the underside. Attach a nut to the underside and tighten with a wrench or pliers and screwdriver.
7. Two more holes need to be drilled into the metal on either side of the center hole, through the wood, and out the other side of the deck. The holes must be perpendicular to the length of the board. For each hole, spray some WD-40, then drill all the way through both the metal and wood.
8. Repeat step 5 for the new holes.
#### Connect
The board and entire build should now be complete. Try placing the board on two metal pads. The lizard should appear on the screen.
Advanced
--------
### Launch Scrapeboard automatically on Raspberry Pi
First, make the Raspberry Pi skip the login prompt. Use the `raspi-config` script and select `System Options -> Boot / Auto Login -> Console Autologin`.
An optional, advanced step is to make the game launch at boot time on the Raspberry Pi. First, make the Raspberry Pi skip the login prompt. Use the `raspi-config` script and select `System Options -> Boot / Auto Login -> Console Autologin`.
To launch Scrapeboard at startup, create a file at `/etc/systemd/system/scrapeboard.service` with the following contents
@ -565,6 +363,233 @@ Now Scrapeboard will launch at startup and will restart itself if it ever is clo
Since it restarts automatically when quit with the usual quit button, there is also `SHIFT + q` to permanently quit and get back to the Raspberry Pi console.
Electronics
-----------
![Finished breadboard](img/circuit_finished_breadboard.jpg)
A simple circuit constructed with either an Arduino or Raspberry Pi is necessary to connect the input pads with the game. This image shows the finished circuit connected to a Raspberry Pi.
### Circuit
Four input pins on the microcontroller need to be connected to the game's four input pads, with a 4.7k resistor in each connection. With the program loaded onto the microcontroller, when a connection is made between two pads with any conductive material, they are registered as connected. During each loop of the program, each of the four pads is set to low output while the others are set to high input. The low output pulls down the high input if they are connected, so if an input set high is read as low, that means the two low pins are connected.
#### Arduino
1. Connect pins 2, 3, 4, and 5 to the breadboard using jumper wires
2. Extend each connection using a 4.7k ohm resistor
3. End each connection with a screw terminal
#### Raspberry Pi
1. Connect pins 37, 35, 33, and 31 to the breadboard using jumper wires (these pins are also referred to as GPIO 26, GPIO 19, GPIO 13, and GPIO 6).
2. Extend each connection using a 4.7k ohm resistor
3. End each connection with a screw terminal
### Loading the program
#### Arduino
![Arduino IDE upload](img/arduino_IDE_upload.png)
Download the [Arduino IDE](https://www.arduino.cc/en/software) and connect it to the Arduino. Make sure the Arduino is connected in `Tools -> Port`. Open [serial/serial.ino](serial/serial.ino) in the IDE. Load the program into the Arduino using `Sketch -> Upload`.
#### Raspberry Pi
The electronics program does not need to be loaded separately onto the Raspberry Pi because the code that reads the Raspberry Pi's GPIO pins is built into the game's Python code.
### Testing the circuit
If the game is running on Raspberry Pi Lite OS, the commands below must also have the `--kms` flag (even if using an Arduino with Raspberry Pi Lite).
#### Arduino
Launch the game without any flags to indicate Arduino (or serial) mode. Serial data being output by the Arduino will be read over USB.
./OPEN-GAME
Test the connection between any two screw terminals using a jumper wire, and the lizard should appear on screen.
#### Raspberry Pi
Launch the game with the `--pi` flag to indicate that input is coming through the Raspberry Pi's GPIO pins.
./OPEN-GAME --pi
Test the connection between any two screw terminals using a jumper wire, and the lizard should appear on screen.
Building a Scrapeboard and platform
-----------------------------------
The controller hardware has two main parts:
* a custom built platform
* the scrapeboard (a modified skatedeck)
![Board and platform assembled](img/board_and_platform_assembled.jpg)
The platform consists of four metal plates, usually mounted to wood, that must be capable of supporting the weight of a person and should not move even under constant friction. The scrapeboard is a regular skatedeck with two round metal pads on the underside (near where the trucks are usually attached) connected together by a thin metal strip.
This manual describes how to use four pieces of plywood as the base for the metal plates. However, it is not necessary to use any specific base, as long as the metal plates are spaced correctly, don't move, and allow the round metal pads on the scrapeboard to scrape over them. The metal could be fastened directly to the floor or a single piece of plywood if the platform doesn't need to be portable.
![Underside routing](img/underside_routing.jpg)
An optional, compact and flush version of the platform, mentioned earlier in [history](#history) and [supplies](#supplies),
can be built with smaller metal plates by carving channels for the plates, brackets, inner screws, and wiring using a router. These channels can help with durability and portability and will make the surface smooth and flush, but they are not necessary for creating a working platform. Steps for doing this are included, but they are marked as optional.
The electronics are assumed to be installed in front of the platform, near where the screen is. If installing the electronics behind the platform, adjust wire lengths and wire channel orientations.
### Terminology
To avoid confusion between similar parts, the following terms are used:
* *Platform*: all four panels
* *Panel*: a single piece of the four panel platform, a piece of wood with a single metal plate attached
* *Plate*: the metal part of the panel by itself
* *Pad*: one of the two metal anchor rings on the underside of the scrapeboard
### Platform
![Finished platform](img/platform_finished.png)
The platform for a standard Scrapeboard build consists of four evenly spaced metal plates, spaced 4" apart. The metal plates can be mounted in any manner, as long as they are firmly attached. This manual describes how to mount the metal to four pre-cut pieces of plywood and bracket the pieces together. It also describes how to use a router to inset the metal parts and wiring, but those parts are optional.
#### Measuring
![Metal plate outline](img/metal_plate_outline.jpg)
<img src="img/platform_measuring_plate.gif" />
First, measure an outline for the metal, making sure to keep the correct amount of space between the metal plates, close enough together that diagonal moves will register but far enough apart that a single round metal pad on the scrapeboard won't be able to touch two plates simultaneously. Since the round metal pads for the scrapeboard are just under 4" in diameter, the metal plates should be around 4" apart. This can be adjusted if the round metal pads are slightly different in diameter.
1. For each of the wood pieces, measure 2" inward from the two inner edges, going along each edge, marking off 2".
2. Draw a line parallel to the edge of the wood piece on each of the two inner edges. These lines mark where the metal plate should be attached.
#### Inset (optional)
![Insetting metal plate](img/platform_inset_plate.webp)
In order to get the metal plates flush with the platform, it is necessary to remove a thin layer of wood from where the metal will be attached. A router can be used to cut away a thin layer from all parts of the wood other than the cross section between the metal plates (everything other than the 2" previously measured on each piece).
1. Insert a 3/4" diameter straight bit into the router.
2. Adjust the router depth to match the thickness of the metal, so the surface of the metal will be flush with the wood. If using 18-gauge metal plates, for example, set the router depth to 1/16". This is done to ensure the edges of the metal won't get caught on the scrapeboard and pried from the wood.
3. On each panel, route two straight channels into the wood, one along each inside part of the lines previously drawn where the metal will be set. Use a router edge guide if possible to make a straight cut.
4. Use the router to remove the rest of the wood between the channels and the edge of the wood, leaving only the cross section. In the end, there should be a recess the metal plate can be placed into on each panel.
#### Machine screw routing (optional)
Using machine screws and nuts to fasten the metal to the wood has a few advantages over drilling the metal directly into the wood with wood or sheet metal screws. Since machine screws and nuts can be regularly tightened, there is a better chance of them keeping the metal firmly in place throughout the lifetime of the platform, even under heavy friction. Also, if the screws ever need to be removed and reinserted or the metal needs to be replaced, the machine screws can easily use the same holes, whereas regular sheet metal screws may have trouble with the holes stripping over time.
Using machine screws requires routing which will allow washers and nuts to be used on the underside of the platform to keep the machine screws tightened in place.
##### Inner screws (optional)
![Routing screw channels](img/platform_machine_screw_channels.webp)
For the inner two rows of machine screws (parallel to the cross section of wood), create two 3/4" channels on the underside of each panel.
1. Insert a 3/4" diameter straight bit into the router.
2. On each panel, using the lines already measured into the top of the panel, measure out 3/4" wide channels on the underside of the panel along the two inner edges under each metal plate. The channels should each start at the edge and come 3/4" inward. The line marking the outer edge of each channel can be started by drawing a line along the side edge of the panel, connecting the top of the panel with the bottom, indicating on the bottom where the metal edges are. Draw lines from the mark straight in along the bottom of the panel to indicate where to route.
3. Adjust the depth of the router to 5/16".
4. Use the router to carve two channels with the outside of each channel along the lines drawn.
##### Outer screws (optional)
For the screws along the edge of the platform, each screw will need its own routed inset on the underside of the panel. Each screw is routed individually to avoid routing full strips of wood off the edges of the underside, which would cause the wood to crack under the player's weight.
1. Measure and mark points where the screws will emerge. These points will correspond with points on the metal where the screws will be inserted. The marks should be 3/8" in from the edge of the wood and evenly spaced. Note that if the metal plates do not come up to the edge of the wood, the marks may need to be more than 3/8" in. The outermost corner screw should be spaced differently because it would be too close to the corner to route away the wood. For the corner screw, move the mark inward half the distance toward its neighboring screw along the edge corresponding to either the front or back of the platform.
2. Using the same router bit and depth from the previous step, route 3/4" channels in from the edge of the wood, one for each screw, each channel going in about 3/8" past the screw mark to give room to the washer and nut.
#### Wire preparation
![Stripped wire endings](img/stripped_wire_endings.jpg)
There will be four wires total, one for each metal plate. They should be cut long enough to reach the Arduino or Raspberry Pi. To have them all terminate at the same point, the back two wood pieces should have longer wires than the front two.
1. Measure the distances between the Arduino or Raspberry Pi and each metal plate. This will vary depending on the setup, and it is a good idea to measure extra distance.
2. Cut wire at the measured distance for each plate.
3. For each wire, at one end use wire strippers to cut off the sheathing and expose 1/4" of wire. These ends will be inserted into the screw terminals.
4. For each wire, at the other end, use wire strippers to cut off the sheathing and expose 2" or more of wire. These ends will be attached to the metal plates.
#### Metal plates and wire connections
![Drilling in metal plate](img/platform_metal_plate.webp)
The metal plates must be screwed into the platform, leaving the measured cross section of bare wood between them. The wires must be attached to the metal plates. To fasten the metal plates to the wood, 16 screws are used per plate, all along the edges, 3/8" inward from the edge.
Each screw head should be flush with the metal, leaving the surface of the metal smooth even at the edges. To do this, a countersink must be made for each screw head. For 1/8" thick metal, the countersink can be directly in the metal. For 18-gauge metal, the countersink will be in the wood, and the metal will be pulled into the countersink when the screws are tightened.
1. On each panel, place the metal plate along the measured lines.
2. Each of the screws should be 3/8" away from the edge of the metal. Mark points for the screws so they are evenly spaced around the edge of the metal. With one mark at each corner, there should be two marks between the corners on the short edges, and four marks between the corners on the long edge.
3. *(if using machine screws)* If the optional machine screw routing steps were done earlier, the outermost corner screw mark should be brought inward along the edge corresponding to either the front and back of the platform, half the distance to its neighboring screw mark.
4. *(if using sheet metal screws)* Insert a 7/64" drill bit into the drill. Pre-drill a hole for each screw through the metal and into the wood at each mark. The hole should only go a bit into the wood.
4. *(if using machine screws)* Insert a __" drill bit into the wood. Drill a hole all the way through the wood and out the underside for each mark. Each hole should emerge in the center of its channel on the underside.
5. *(if using 1/8" thick metal)* Use either a countersink bit or a thick drill bit to drill a countersink the same circumference as the screw head slightly into the metal, just enough for the screw head to be inserted into the metal.
5. *(if using 18-gauge metal)* Use either a countersink bit or a thick drill bit to drill a counter sink slightly larger than the circumference of the screw head into the wood, just deep enough so that the metal will bend into the countersink after the screw is inserted and tightened from the underside.
6. Insert a screw into each hole and drill it in. If using sheet metal, include a washer at the corner screw, and carefully wrap the wire around the screw, under the washer before drilling.
7. *(if using machine screws)* Flip the panel over. The screws should be sticking out of the bottom of the panel. Place a washer over each screw and screw a hex nut onto the screw by hand. On the outermost corner, carefully wrap the wire around the screw before attaching the washer and nut. Holding the panel on its side, use pliers to hold each nut in place while using the drill on the top side to tighten the screw. The screw should push the metal into the wood countersink, leaving the metal surface flush.
#### Brackets
The brackets should be attached to the underside of the platform. They are necessary for holding the pieces together. With 8 - 12 evenly spaced brackets, the pieces will hold together firmly. The brackets may be inset into the wood using a router. If using the clasp style brackets, the insetting is necessary. Ordinary flat brackets can be either inset or not.
1. Flip the platform on its backside, with all four pieces arranged in their proper orientations.
2. Along the cross section seam, place the brackets so they are evenly spaced, covering as much area as possible, without getting too close to the edge or the center.
3. *(if routing)* Trace around the bracket to mark where to route the wood. If using the clasp style brackets, leave some extra room in the outline.
4. *(if routing)* Use the router to carve a channel in the shape of the bracket. The router depth should be set to the thickness of the bracket. If using the clasp style latches from the supply list, the router depth will be 3/8". After routing, put the brackets back in place.
5. *(if using clasp style brackets)* In order to get a tight hold, the two sides of each bracket should be drilled so they are very slightly farther apart than the neutral state they come in, separated about 2mm farther. To do this, first draw pencil marks where the holes would be in the neutral position. Then, unclasp the bracket, and move each side back about 1mm.
6. Directly drill the brackets into the wood using the appropriate screws. For the clasp style brackets, these will be the #4 1/4" screws.
7. *(if using clasp style brackets)* Clasp the brackets and ensure they are able to close and hold tightly. If not, remove the screws, adjust their positions, and drill them in again until the brackets are tight.
#### Non-slip padding (optional)
The non-slip padding is necessary on many surfaces to keep the platform from slipping. If the platform is placed on a very non-slippery surface like carpet, it may not be necessary. The non-slip padding can be attached to the underside of the wood pieces or it can be placed on the floor between the platform and floor.
1. On each panel's underside, measure areas for non-slip padding to attach. If there are channels from routing, either measure around the channels or include them in the measurement and cut off the non-slip padding over the channels after attaching it. Depending on how the padding is going to be applied and the size of the non-slip padding material, this may mean making multiple measurements or one big measurement. Either way, measure so the padding covers as much area as possible while allowing the panel to rest as flat as possible on the ground.
2. Cut the non-slip padding material into the shapes measured.
3. Apply carpet tape to the back side of each piece of non-slip material.
4. Firmly press each piece of non-slip material into its measured place on the underside of the panel.
#### Connecting
The platform is now finished. It can be connected to the Arduino or Raspberry Pi and tested before moving on to building the board.
1. Carefully flip the platform back over, taking care near the seams because the underside bracketing can make it susceptible to snapping.
2. For each wire, insert its far end into its appropriate screw terminal. Going clockwise from the top left plate, for Arduino, the wires connect to pins 2, 3, 4, and 5. For Raspberry Pi, the wires connect to pins 37, 35, 33, and 31 (also known as GPIO 26, GPIO 19, GPIO 13, GPIO 6).
3. Use any metal conductor to touch one metal plate to another. The lizard should appear on the screen.
### Scrapeboard
The standard scrapeboard is a skatedeck with two round metal pads drilled into either end of the bottom. The pads are connected by a flat metal strip, creating a conductive contact across the length of the underside of the board. The recommended metal pads to use are actually anchor rings, ordinarily used to hook cargo to a tow cable. They are used because their unique disk shape and slightly raised edges allow for the best motion with the board. The board is subject to a lot of friction and pressure, so it's recommended to follow this manual unless intending to build a heavily modified version of the controller.
#### Metal strip
The metal strip is used to connect the metal pads so the signal can be conducted from one to the other. The strip should be attached to the underside, in the middle, running from one metal pad to the other. The metal pads will then be drilled on top of it.
1. Measure and mark on the underside of the skatedeck where the center of the metal pads will be. They should each be about 1" in from the center of the truck holes.
2. Measure a length of metal strip so the strip will go from one center to the other.
3. Drill the wire strip directly into the underside of the board using the 1/2" sheet metal screws, distributing the screws evenly and covering as much area along the length of the strip as possible.
#### Metal pads
The metal pads are attached on the underside of the skatedeck, slightly closer together than the truck holes, and held in place by machine screws and nuts.
1. If using the recommended anchor rings, first remove the ring from the base. Pry up the center flap slightly with a screwdriver or other tool, and the ring should slide out.
2. Use a hammer on the center flap to flatten it as much as possible.
3. For each metal pad, place it directly in the center of the underside, with its center about 1" farther toward the center of the board than the truck holes. The center hole of the pad should be directly above the metal strip, ideally lined up with an existing hole in the strip. If the hammering of the center flap caused the hole to move off center, it is fine to leave the hole off center a bit.
4. Insert a 1/4" drill bit into the drill.
5. The center hole of the anchor can be used as a drill point. Drill a hole through the wood so that the #12-24 5/8" machine screw can fit snugly through. The hole should also pass through the metal strip.
6. Use a countersink bit or large drill bit to create countersinks for each screw on the top of the board. These will prevent the screw head from sticking out of the board. They will also allow the 5/8" machine screws to stick out on the underside just enough to attach a nut. Each countersink can go through the grip tape and slightly into the wood.
7. Insert the machine screw from the top of the deck through the underside. Attach a nut to the underside and tighten with a wrench or pliers and screwdriver. If the screw is not sticking out far enough, repeat step 6 with a deeper countersink.
8. Two more holes need to be drilled into the metal on either side of the center hole, through the wood, and out the other side of the deck. The holes should be on the opposite sides of the metal strip (not going through the strip). For each hole, spray some WD-40, then drill all the way through both the metal and wood.
9. Repeat step 7 for the new holes.
#### Connect
![Complete platform and board](img/complete_platform_and_board.jpg)
The board and entire build should now be complete. Try placing the board on two metal pads. The lizard should appear on the screen.
[SDL mixer]: https://github.com/libsdl-org/SDL_mixer/releases
[SDL ttf]: https://github.com/libsdl-org/SDL_ttf/releases
[SDL image]: https://github.com/libsdl-org/SDL_image/releases

View File

@ -0,0 +1,61 @@
Scrapeboard events checklist
============================
This is a list to look over while packing and before leaving for an event. For some events, some of these supplies may be unnecessary. For example, if the event uses a TV monitor, the projector wouldn't be necessary.
Basics
------
* Platform: four metal/wood panels with attached wires
* Skatedeck with attached metal pads
* Arduino
* Arduino USB cable
* Laptop that can run Scrapeboard
* Power for laptop
* HDMI cable
* PCB
* Male-to-male PCB pin adapter (usually in the Arudino already)
* Mini flat-head screwdriver
* HDMI Projector
* Projector screen
* Regular flat-head screwdriver
* Regular phillips-head screwdriver
* Pliers
* Mailing list clipboard
Raspberry Pi
------------
The Raspberry Pi is the preferred way to run the game, but it's more untested than using a laptop and Arduino. Ideally, bring both the Arudino + laptop version and the Raspberry Pi one.
* Raspberry Pi with Scrapeboard pre-installed and set to auto launch
* Raspberry Pi power adapter
* Micro-HDMI to HDMI cable
* PCB
* Mini phillips-head screwdriver
* USB keyboard
Sound
-----
The projector's speaker can be used for audio, but when not using a projector, a bluetooth speaker should be included.
* Bluetooth speaker with AUX input
* AUX cable
* USB charger for speaker
Merch
-----
* T-shirts
* Stickers
* Square credit card reader phone adapter
Extras
------
* Backup platform
* Backup skatedeck
* Extra resistors
* Extra speaker wire
* Knife

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

BIN
doc/img/Scrapeboard_underside.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

BIN
doc/img/metal_plate_outline.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

BIN
doc/img/stripped_wire_endings.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

BIN
www/Youtube_commercial_cover.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -370,9 +370,89 @@
<div id="calendar">
<p>
<!-- Play Scrapeboard at an upcoming event! -->
Check back soon for upcoming events!
Play Scrapeboard at an upcoming event!
<!-- Check back soon for upcoming events! -->
</p>
<div class="date upcoming">
<div class="day-of-week">
Fri. - Sun.
</div>
<div class="day">
Oct. 27 - 29
</div>
<div class="year">
2023
</div>
<div class="location">
<a href="https://derpycon.com/">
Derpy Con, NJ
</a>
</div>
</div>
<div class="date current">
<div class="day-of-week">
Fri. & Sat.
</div>
<div class="day">
Jun. 16 & 17
</div>
<div class="year">
2023
</div>
<div class="location">
<a href="https://derpycon.com/anime-night-out/">
Anime Night Out, NJ
</a>
</div>
</div>
<div class="date past">
<div class="day-of-week">
Sat. - Sun.
</div>
<div class="day">
Apr. 15 & 16
</div>
<div class="year">
2023
</div>
<div class="location">
<a href="https://www.egdcollective.org/wafflegames2023">
Waffle Games, NYC
</a>
</div>
</div>
<div class="date past">
<div class="day-of-week">
Fri.
</div>
<div class="day">
Mar. 24
</div>
<div class="year">
2023
</div>
<div class="location">
<a href="https://www.eventbrite.com/e/bar-grill-with-pool-table-tickets-588671491277">
Shovels Bar and Grill, San Francisco
</a>
</div>
</div>
<div class="date past">
<div class="day-of-week">
Tue.
</div>
<div class="day">
Mar. 21
</div>
<div class="year">
2023
</div>
<div class="location">
<a href="https://www.eventbrite.com/e/indie-byog-bring-your-own-game-gdc-2023-by-sub-zero-sound-tickets-532872615337">
Buzzworks, San Francisco
</a>
</div>
</div>
<div class="date past">
<div class="day-of-week">
Thu - Sun
@ -585,6 +665,11 @@
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(1, 1fr);
}
div#credits p#links iframe
{
margin: auto;
}
}
/* portrait */
@ -612,10 +697,11 @@
<!-- DONATION WIDGET -->
<iframe id='kofiframe' src='https://ko-fi.com/scrapeboard/?hidefeed=true&widget=true&embed=true&preview=true' scrolling="no"
style='border:none;padding:0px;margin:auto;margin-top:50px;height:600px;background:rgba(0, 0, 0, 0);overflow:hidden;display:block'
title='scrapeboard'>
</iframe>
<!-- <iframe id='kofiframe' src='https://ko-fi.com/scrapeboard/?hidefeed=true&widget=true&embed=true&preview=true' scrolling="no"
style='border:none;padding:0px;margin:auto;margin-top:50px;height:600px;background:rgba(0, 0, 0, 0);overflow:hidden;display:block'
title='scrapeboard'>
</iframe>
-->
<!-- FOLLOW BUTTONS -->
@ -626,16 +712,13 @@
<div id="credits">
<p id="links">
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<a href="https://twitter.com/diskmem?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true"
data-show-count="true">
<a href="https://twitter.com/diskmem?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true">
Follow @diskmem
</a>
<a href="https://twitter.com/snakesandrews?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true"
data-show-count="true">
<a href="https://twitter.com/snakesandrews?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true">
Follow @snakesandrews
</a>
<a href="https://twitter.com/ClementShimizu?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true"
data-show-count="true">
<a href="https://twitter.com/ClementShimizu?ref_src=twsrc%5Etfw" class="twitter-follow-button" data-size="large" data-dnt="true">
Follow @ClementShimizu
</a>
</p>