Skip to content

WildernessLabs/Juego

Repository files navigation

Juego

Open-source, Meadow-powered, multigame handheld console with DPads, speakers and a colored display.

Are you brand new to Meadow?

If you've never deployed a Meadow app before, you'll want to check out the Getting Started Guide which will get your development environment up and running and validate that you can build and deploy.

Contents

Purchasing or Building

You can get a Juego board from the Wilderness Labs store. You can also build a simpler Juego using a monocolor display and push buttons.

Getting Started

Playing Juego

Do you have a brand new Juego and you just wanna play some games? Check out the Juego.Samples repo with some games you can play out of the box:

Screenshot of the Juego.Samples repo readme showing several games that can be played.

Are you brand new to Meadow?

If you've never deployed a Meadow app before, you'll want to check out the Getting Started Guide which will get your development environment up and running and validate that you can build and deploy.

Using the Juego Hardware in your own App

To make using the hardware even simpler, we've created a NuGet package that instantiates and encapsulates the onboard hardware into a Juego class.

  1. Add the ProjectLab Nuget package your project:

  2. Instantiate the Juego class:

public class MeadowApp : App<F7CoreComputeV2>
{
    IJuegoHardware juego;

    public override Task Initialize()
    {
        juego = Juego.Create();
        ...
  1. Access Juego's onboard peripherals.
  • To create a MicroGraphics object with Juego's Display:
    ...
    if (juego.Display is { } display)
    {
        graphics = new MicroGraphics(display)
        {
            IgnoreOutOfBoundsPixels = true,
            CurrentFont = new Font12x16()
        };
        ....
    }
    ...
  • To instantiate Juego's Select and Start buttons:
    ...
    if (juego.SelectButton is { } selectButton)
    {
        selectButton.PressStarted += (s, e) => { ... };
        selectButton.PressEnded += (s, e) => { ... };
    }

    if (juego.StartButton is { } startButton)
    {
        startButton.PressStarted += (s, e) => { ... };
        startButton.PressEnded += (s, e) => { ... };
    }
    ...
  • To use Juego's speakers:
    ...
    for (int i = 0; i < 5; i++)
    {
        await juego.LeftSpeaker.PlayTone(
            new Frequency(440), TimeSpan.FromMilliseconds(500));
        await juego.RightSpeaker.PlayTone(
            new Frequency(540), TimeSpan.FromMilliseconds(500));
    }
    ...

Hardware Specifications

ILI9341 - 240x320 RGB LED display
Magnetic Audio Transducers - A pair of High quality piezo speakers
DPads - Directional Pads on either side of the display.
Select/Start Buttons - Classical Select and Start buttons
USB-C port - Port used to build/deploy apps to Juego
Rechargable Battery Slot - To play on the go
On/Off switch - Used to turn the Juego on and off

You can find the schematics and other design files in the Hardware folder.

Additional Samples

  1. Setup your Meadow Build Environment - If you haven't deployed a Meadow app before, you'll need to setup your IDE extension(s), deploy Meadow.OS, etc.
  2. Run the Demo App - Deploy the Juego demonstration app to see the built in peripherals at work.
  3. Check out the Juego.Samples repo - We recommend cloning the Juego.Samples repo. There you'll find a bunch of awesome samples that you can run right out-of-the box!
juego, iot, project, samples

Juego Hack Kit Version

This was an early hardware project to create a Meadow handheld multi-game project designed to work with 128x64 or 320x240 single color displays (SSD1306 or SSD1309)

Includes five games:

  • FrogIt
  • Pong
  • Span4 (2-player match 4 game)
  • Snake
  • Tetraminos (inspired by Tetris)

"Image of Juego Meadow prototype hardware"

Fritzing Diagrams of Juego using a Meadow Dev Kit

Juego using a SSD1309 Display connected via SPI and Push Buttons. Juego using a SSD1309 Display connected via I2C and Push Buttons.

Support

Having trouble building/running these projects?

  • File an issue with a repro case to investigate, and/or
  • Join our public Slack, where we have an awesome community helping, sharing and building amazing things using Meadow.