What is a prototype?

A prototype is a preliminary model of something. Projects that offer physical products need to show backers documentation of a working prototype. This gallery features photos, videos, and other visual documentation that will give backers a sense of what’s been accomplished so far and what’s left to do. Though the development process can vary for each project, these are the stages we typically see:

Proof of Concept

Explorations that test ideas and functionality.

Functional Prototype

Demonstrates the functionality of the final product, but looks different.

Appearance Prototype

Looks like the final product, but is not functional.

Design Prototype

Appearance and function match the final product, but is made with different manufacturing methods.

Production Prototype

Appearance, function, and manufacturing methods match the final product.

Prototype Gallery

These photos and videos provide a detailed look at this project’s development.

About

Want to control things but need a controller? Phones work great but lack physical feedback, lack access to GPIO (general purpose input/output) and can be difficult for the maker to program. Game controllers are great but leave you needing a separate device to control your project. I was looking for an all-in-one device that could control a variety of devices while remaining portable and hackable. It wouldn't hurt if I could play games on it too. Why not!? I couldn't find anything I liked, so I designed my own.

The concept I came up with was a portable, handheld Raspberry Pi Zero computer that integrates a 3.5" touchscreen, a couple joysticks and lots of buttons. It needed to be compact, battery operated and good looking. It also needed to use components that are well supported by the maker/Raspberry Pi community. Joysticks, chargers, boost supplies, etc are available as modules that you can simply wire together. I don't consider a breadboard portable, so I designed a case that would allow me to take it on the road.
Most devices like this hack existing portable devices or 3D print cases. This leaves a lot of room for error and/or a prototype look and feel. I don't think that's good enough so I designed and built a case out of "real" materials. This gives it a high quality, finished look and feel that makes me proud to show it off.

Wooden grips shown in Bolivian Rosewood

Once we finished it, we decided that other people might be interested in a device like this, so OmniJoy was born.

Wiring all the components is not easy, prone to error and not rugged enough to survive an active, portable lifestyle, so we designed a custom printed circuit board that integrates all the components onto one board. That makes things cleaner, easier, smaller and just plain better.

First Printed Circuit Board Design

While we were designing the first circuit board, we took the opportunity to add features we felt would be awesome for a device like this. We added more buttons, an Arduino compatible processor for better realtime-IO support, on-board audio for media and alerts, and a full-size USB-A connector to simplify expandability.

We also wanted the circuit board to be usable on its own, so we shaped it to match the case. This will let you use it as you make modifications, even before packing it back into the case. You can also make your own case or simply save some money if you don't need the case.

Lots of control options!

OmniJoy Circuit Board Features:

Dimmable 3.5" 480x320 resistive touchscreen display

Two analog joysticks

6 buttons, 1 navigation nub, 2 shoulder scrolling wheels

Arduino compatible co-processor for real time GPIO

Uses two customer supplied 18650 size batteries for long run time

On-board charging circuit

Low power operation, drawing around 0.5A with full brightness/load

Onboard audio

Full-size USB-A connector for connecting external devices

Spare GPIO broken out to 0.1" headers

Most chips have a readily available datasheet (except the Raspberry Pi) with application examples

Open source hardware (CC BY-NC-SA 4.0) so you get the schematics and layout files to make your own

You'll need an HTML5 capable browser to see this content.

Replay with sound

Play with sound

00:00

00:00

Video: Buttons and joysticks and wheels, oh my!

Next, we designed a case to be a simple laser cut stackup so that it could be easily made by regular people. We want competent makers to be able to build the case from scratch using tools available at most local makerspaces. We're releasing the files you need to make it yourself.

OmniJoy Case Features:

Compact size and simple construction (6.5"W x 3.75"H x 1.375"D)

Removable back panel allows easy access to the microSD card

Ergonomic grip allows for one handed operation

Easily modifiable to add extra functionality

Guarded on/off switch

Options for navigation switches or buttons

Brass threaded heat-set inserts

3D printed or bespoke wooden grips

Open source hardware so you can download the files you need to make your own case

Case assembly animation - It's easy!

Of course just providing hardware isn't enough, so we've written the drivers that are required to make everything work.

OmniJoy Software Features:

Full configuration files for display and touchscreen

Right joystick emulates a mouse with the right shoulder switch emulating mouse keys

Left joystick, buttons, switches emulate keyboard presses

Real-time hardware status available in file system

Easy to modify key mapping using a configuration file (planned)

Fully commented, user-land, open source software

Playing Minecraft

To get the most out of the Arduino compatible processor:

Fully compatible with the Arduino IDE

Arduino bootloader and OmniJoy firmware pre-installed

Auto-reset enabled programming header

Instructions and files required to customize the Arduino environment to support OmniJoy on your computer

Fully commented, open source firmware

Running the Arduino IDE

How OmniJoy Works

OmniJoy is a set of hardware interfaces and a case for a Raspberry Pi Zero. OmniJoy comes with the drivers needed to make the buttons and joysticks emulate a keyboard and mouse as well as drive the other components (touchscreen, audio, etc).

OmniJoy can be used as-is, as a portable, handheld, Raspberry Pi-based Linux computer. But by customizing it, you can make it work with your project! Adding additional software, or writing it yourself, can give OmniJoy more functionality. We use it to control our widgets and play the occasional game.

You'll need an HTML5 capable browser to see this content.

Replay with sound

Play with sound

00:00

00:00

Video: Demonstrating basic operation of OmniJoy

OmniJoy can also be used with the Arduino when more precise timing is required. A device like the Raspberry Pi might struggle with this because its processor is very busy doing operating system tasks, while the Arduino can be dedicated to doing a single task. An example is controlling standard radio controlled aircraft using PPMSUM output; even the smallest timing glitch could cause lost communication and therefore momentary loss of control. All of the controls route through the Arduino, so you don't even need to program the Pi to make use of OmniJoy's controls.

How will you use it?
Ideas for additional functionality:

As a portable RetroPie device

Robot control via wifi and video streaming

LEGO® Mindstorm controller

Home automation controller

RC controller for cars and planes

And more! What will YOU come up with!?

You'll need an HTML5 capable browser to see this content.

Replay with sound

Play with sound

00:00

00:00

Video: Putting OmniJoy through its paces

You'll need an HTML5 capable browser to see this content.

Replay with sound

Play with sound

00:00

00:00

Video: OmniJoy can control a smorgasbord of motors and servos with stock RC transmitters and receivers

Rewards

We want to provide you with a high quality, useful controller that you can use for your own applications. We've created several reward levels to give you a chance to try one out, or just support the cause.

Shout Out Reward:

Show our project some support, and we'll send you an awesome, vinyl cutout OmniJoy sticker (3" wide) and a bonus sticker as a thank you. You'll also receive project updates as we progress.

OmniJoy Sticker - it's vinyl, it's cutout, it's awesome!

T-Shirt Reward:

Get a t-shirt with the OmniJoy logo! You'll also receive project updates as we progress.

Get an OmniJoy t-shirt! It's got an octopus and a retro joystick - what more needs to be said?!

Bleeding Edge Reward:

Get a populated prototype OmniJoy circuit board as soon after the campaign ends as possible. You'll be getting any problems and/or patches that are on the prototype board but you'll have it faster and get it cheaper (at or near cost). You can provide feedback in the process and get a head start with creating your applications. We'll make every effort to ensure this board fits the final enclosure but we can't make any guarantees. You'll still need a Pi Zero, microSD and batteries to get started. Plus you get the "Shout Out" sticker package as well.

OmniJoy Barebones Reward:

Get a populated and tested release version OmniJoy circuit board without a case as soon after it's released to manufacturing as possible. Plus you get the "Shout Out" sticker package as well.

Barebone circuit board

OmniJoy Basic Kit Reward:

Get a populated and tested circuit board and a set of laser cut acrylic parts and hardware to build an OmniJoy case. You'll need to solder in your Pi and do the final assembly of the case. Plus you get the "Shout Out" sticker package as well.

Kit contents (3D printed grips shown)

OmniJoy with Wooden Grips Reward:

Get a populated and tested circuit board and a set of laser cut acrylic parts with the hardware to build an OmniJoy case. This option includes rough cut wooden grips. You'll need to solder in your Pi and do the final assembly of the case. The grips will also need to be sanded and finished. Plus you get the "Shout Out" sticker package as well.

Unfinished wooden grips

Wooden grips after just 30 minutes of sanding

Robot Ready Option (3D printed or wooden grips) Rewards:

We'll do almost all of it for you! You'll get a complete, assembled unit ready to install your batteries and power up. Wooden grip option includes sanded and finished wooden grips. Plus you get the "Shout Out" sticker package as well.

Ready to Robot!

Robot ready with 3D printed grips

If you want to combine rewards:

If you are interested in combining multiple rewards (for example, a t-shirt and a Robot Ready OmniJoy), just add up the dollar amounts and enter that as your pledge amount under the higher reward level. Then, after you submit, a "Contact me" option will be available right above the rewards section on the right side of the page. Use this to send us a private message stating which rewards you would like to combine.

Risks and challenges

We've tried to minimize risks in the design as much as possible. Design features like:

Standard and stocked parts to ensure fast and reliable delivery times.
Laser cut acrylic and 3D printed grips give us loads of options for manufacturers.
Simple board layout to make board population and testing easier.
We've already contacted professional 3D printing companies, as well as received production-ready versions of the printed grips. We've also been in contact with laser cutting companies, and have quotes for costs and production times in hand. We are confident based on the results we have already received that you will be getting a quality, tested product. All OmniJoy reward levels will pass through our hands prior to shipping so quality assurance is not up to a 3rd party.

The first run circuit board allowed us to find and fix lots of problems with the design. We don't plan to stray far from this design in order to reduce the risks of creating new problems. We'd love to add lots of new features, but we also know feature creep can destroy a project like this. However, there are some issues that needed a redesign.

The biggest challenge by far has been getting the display working to the level we feel is needed for a project like this. It was easy to make assumptions about how well certain display driving methods would work but actually testing them showed us how horrible these little displays can be. My initial tests showed either frame rates of less than 5Hz or 100% CPU load. After a number of hard learning experiences, we've opted for an RGB/DPI interface that (unlike other available displays) actually uses the Pi's on-board GPU and provides up to 60Hz update rates. This will leave the CPU free to do what you want it to and give you a nice smooth display. We have a working solution, but the downside is that it utilizes GPIO that is needed for other functions. This means we have to design in additional components to regain that functionality. Though this increases the parts count (and therefore the cost), we feel it is worth it! We feel a responsive user interface and minimal system load is very important to a device like this.

We recommend using a Pi Zero but if you plan to use a Pi Zero W with OmniJoy, it has some limitations. Due to the nature of the design, it's difficult to provide a clear path for the wifi antenna; the circuit board is simply too close to the antenna. This means WiFi range is limited. For best results, we recommend a plugging in a USB WiFi device for the maximum range. We will make every attempt to improve Pi Zero W range but we can make no promises.

We're on our fourth case iteration and feel we're fairly dialed in on the design. A production version will need to be finalized with minor tweaks once the production-ready circuit board is completed.

Overall, we're confident that we can get you an OmniJoy in the stated time frame.

Kickstarter is not a store.

Pledge $90 or more
About $90

Bleeding Edge

Get a populated prototype OmniJoy circuit board as soon possible. This will likely have patches and limitations but you'll get it sooner and cheaper than other reward levels. You'll also get the "Shout Out" sticker package as well.

Kickstarter is not a store.

Pledge $200 or more
About $200

OmniJoy Basic Kit

Get a completed OmniJoy circuit board, with a laser cut acrylic case kit and 3d printed grips. Add a Pi Zero, microSD and batteries to get started. You'll also get the "Shout Out" sticker package as well.

Kickstarter is not a store.

Pledge $235 or more
About $235

OmniJoy with Wooden Grips

Get a completed OmniJoy circuit board, with a laser cut acrylic case kit and wooden grips. The wooden grips will need finishing. Add a Pi Zero, microSD and batteries to get started. You'll also get the "Shout Out" sticker package as well.

Kickstarter is not a store.

Pledge $285 or more
About $285

Robot Ready OmniJoy Basic

Get everything except batteries. We'll provide a Pi Zero, pre-loaded microSD card, and wifi adapter in a finished case. You provide batteries and just turn it on! You'll also get the "Shout Out" sticker package as well.

Kickstarter is not a store.

Pledge $335 or more
About $335

Robot Ready OmniJoy with Wooden Grips

Get everything except batteries. We'll provide a Pi Zero, pre-loaded microSD card, and wifi adapter in a finished case. You provide batteries and just turn it on! You'll also get the "Shout Out" sticker package as well.