

Remote64-controller
Provides a method for N64 homebrew developers to test their roms on remote hardware
- Size
- 44.1 × 82.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 20
- Nets
- 57
- Pads
- 109
- Tracks, vias
- 113, 2
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 7 Mar 2022
- Updated
- 24 Apr 2022
Overview
Remote64-controller is an open-source printed circuit board by bigbass1997, from the bigbass1997/remote64 repository on GitHub. It is a 2-layer board of 44.1 × 82.7 mm with 20 parts on 57 nets, routed with 113 tracks and 2 vias.
It is built around the PIC18F47K42-E/P, MCP2221A-I/P and PN2222A, with the SB1100E-G among its other parts. Its parts include 5 connectors, 3 capacitors, 3 resistors, 3 switches and 2 ICs. It belongs with the PIC boards of this library.
Main components
4PIC18F47K42-E/P
PDIP-40-40℃~+125℃ 128KB 12bit 1KB 2.3V~5.5V 36 5bit 64MHz 8 Bit 8KB Built-in FLASH PIC PDIP-40 Microcontrollers (MCU/MPU/SOC) ROHSMicrochip TechnologyMicrocontrollers (MCU/MPU/SOC)MCP2221A-I/P
PDIP-14-40℃~+85℃ 13mA 3V~5.5V 46uA USB 2.0 USB to UART、USB to I2C PDIP-14 USB Converters ROHSMicrochip TechnologyUSB ConvertersPN2222A
TO-92-3-55℃~+150℃ 1 NPN 1A 300MHz 300mV 40V 625mW NPN TO-92-3 Bipolar (BJT) ROHSNTE ElectronicsBipolar (BJT)SB1100E-G
DO-41-65℃~+150℃ 1 Independent 100V 1A 30A 500uA@100V 850mV@1A DO-41 Schottky Diodes ROHSComchipSchottky Diodes
README
README.mdDescription
This project enables N64 homebrew developers to test their roms on real hardware, without actually owning said hardware.
Project is split in two parts: the server which handles all incoming requests, performs them on hardware, and sends back what happened; and the client which is what developers use to test their roms.
The server side can be run by anyone that has a compatible hardware setup. It manages incomming requests for testing, captures the console's output, and relays that information back to the client. Servers may have a varying set of capabilities. If the client requests a feature the server doesn't support, the user will be notified.
If a client connects while another test is in progress, the new client will be placed in a queue and automatically serviced once the current test has finished. The maximum length of a test is defined by the server, but will likely be quite generous.
Why does this exist?
Ultimately, this is an attempt to reduce the cost of entry into N64 homebrew and research. Especially given the chip shortage and other circumstances that have severely limited flashcart production.
While it is possible to ask others to test a rom build, it's also possible that no one will be available when needed. This is not intended to completely replace developers purchasing their own flashcarts/consoles, nor to replace community testers; rather it is here to supplement those testing methods.
Which server should I connect to?
TODO
Server Capabilities
The bare minimum a server setup requires is some method to automatically upload and start the provided ROM image, and a capture device to record the video output with. The server software will not work without a valid video stream, even if live playback isn't enabled.
Optional capabilities include:
- Live playback (requires decent upload speed)
- Audio recording (for final recording, and live playback if enabled)
- Controller input (requires live playback and input passthrough)
Repo Structure
/client/, /common/, and /server/ make up the software side, while /controller/ contains the hardware used by the
server for powering the system on/off, and passing in controller inputs.
/docker/ contains container build script(s) that can be used for cross-compiling.
Compiling/Building
If you wish to build from source, for your own system, Rust is integrated with the cargo build system. To install Rust and cargo, just follow these instructions. Once installed, while in the project's root directory, run cargo build --bin remote64-client --release to build (use --bin remote64-server for server builds), or use cargo run --bin remote64-client --release to run directly. The built binary will be available in ./target/release/
To cross-compile builds for other operating systems, you can use rust-embedded/cross.
The Cross.toml file is configured to expect a local docker container for linux and windows builds.
Linux
Docker: docker build -t remote64-image-linux:tag docker/linux/
Rust: cross build --target x86_64-unknown-linux-gnu --bin remote64-client --release
Windows
Docker: docker build -t remote64-image-windows:tag docker/windows/
Rust: cross build --target x86_64-pc-windows-gnu --bin remote64-client --release
Note: Cross-compiling for windows is currently broken. I cannot get the container to recognize the portaudio library.
Parts
20| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 0.1uF | Capacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mm | C1, C2, C3 |
| 2 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R3 |
| 2 | Conn_01x02 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_PT-1,5-2-5.0-H_1x02_P5.00mm_Horizontal | J2, J4 |
| 2 | OJE-xx-1xxLMx | remote64-controller:OJE-SS-105LMH | K1, K2 |
| 2 | PN2222A | Package_TO_SOT_THT:TO-92_Inline | Q1, Q2 |
| 2 | SB1100E | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1, D2 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2 |
| 1 | ControllerPort | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J5 |
| 1 | ICSP | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J3 |
| 1 | MCP2221A | Package_DIP:DIP-14_W7.62mm | U1 |
| 1 | MCU_RESET | Button_Switch_THT:SW_PUSH_6mm_H7.3mm | SW1 |
| 1 | PIC18F47K42 | Package_DIP:DIP-40_W15.24mm | U2 |
| 1 | USB Port | Connector_USB:USB_B_OST_USB-B1HSxx_Horizontal | J1 |
Questions
How big is the Remote64-controller PCB?
It measures 44.1 × 82.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Remote64-controller use?
20 parts, built around the PIC18F47K42-E/P, MCP2221A-I/P, PN2222A and SB1100E-G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Remote64-controller KiCad files?
From the bigbass1997/remote64 repository on GitHub, at the commit this page was made from: the board is controller/hardware/remote64-controller.kicad_pcb and its schematic controller/hardware/remote64-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Remote64-controller design in my own project?
Its repository states no licence, so its author keeps all rights: ask bigbass1997 before reusing the design.
Similar boards
- 2 layers49.5 × 49.5 mm

- 2 layers74.9 × 89.2 mm

Pictas
bigbass1997/PICTAS
Low-cost replay device for playing back Tool Assisted Speedruns on real hardware
37 parts9 - 2 layers63.5 × 45.5 mm

F ramune avr
obskyr/f-ramune
A device for testing and programming FRAM chips! Finally you can be sure that FRAM you bought from China works.
27 parts6 - 2 layers60 × 100 mm

- 2 layers39.4 × 20.3 mm

- 4 layers100 × 100 mm

- 2 layers100 × 79 mm

- 4 layers99.1 × 75.7 mm

Circuit tap
gcoonrod/circuit-tap
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
65 partsApache-2.0