GithubHelp home page GithubHelp logo

make-42 / pscreen Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 47.69 MB

A small screen for displaying computer information.

License: GNU General Public License v3.0

OpenSCAD 18.70% Go 69.62% CMake 3.68% Shell 1.77% C 6.23%

pscreen's Introduction

pScreen

A small screen for displaying computer information.

Demo video

Demo video

BOM

  • Raspberry Pi Pico (5.00€)
  • SSD1322 (256x64) (19.08€)
  • PLA for the case (0.20€)
  • Various M2 screws and nuts length (choose those that fit best for your build format) (0.40€)
  • Wires (0.40€)

Total: 25.08€

Building

3D Printed Parts

Print all files starting with SSD1322_ in CAD/STLs/.

Rotate the pieces in your slicer accordingly and print with standard settings and no supports.

(note: These files are generated from the OpenSCAD files in CAD/OpenSCAD/. You can modify and create new presets in the .json files in that directory and generate the corresponding files using OpenSCAD. The variables are made to be copied between the files. This enables quickly adding support for new screens.).

Wiring

Wire all the parts up according to this diagram (found in CAD/Fritzing/). SSD 1322 wiring

Software

Firmware

Building the firmware for the Raspberry Pi Pico is as easy as installing the dependencies (cmake and gcc), cd-ing into Software/Firmware/ and running:

git submodule update --init --recursive
sh build.sh

The built .uf2 firmware files are located in Software/Firmware/build/.

You just need to boot your Raspberry Pi Pico into BOOTSEL mode and drag and drop them into the mounted drive to upload the firmware.

Client

Building the client is as simple as installing golang, cd-ing into Software/Companion App/ and running:

go mod tidy
go build

You can then run the client with:

./pscreen

You can then select the connected device by pressing b and start broadcasting to it with s.

Adding and removing modules is pretty self explanatory (use a and r).

Some parameters for the client such as module tweaks, client language, resolution, speed and timeouts can be changed in Software/Companion App/config/config.go.

Changing these parameters requires recompiling the software.

Afterword

I have tried making the whole project as modular and tweakable as possible. You can add new modules and new support for new screens pretty easily. If you do, don't forget to create a pull request.

If you have any questions, you can open an issue. I'd be happy to help!

Most importantly, have fun!

pscreen's People

Contributors

make-42 avatar

Watchers

 avatar

Forkers

vega-d

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.