uChip Simple VGA Console (uSVC)

by ITACA Innovation

Portable, DIY, open hardware retro-gaming console

$1,369 raised

of $2,000 goal

68% Funded

Pledge Now

$30

uChip Simple VGA Console (uSVC) Kit

One DIY uSVC kit containing all of the components you will need to build your uSVC. The uChip is pre-programmed and MicroSD card slot is pre-soldered. All other parts are easy-to-solder, through-hole components.


$12

3D-Printed Enclosure for uSVC

A stylish, 3D-printed case, designed and printed by Stefano Rubini to the precise specifications of uSVC.


$5

Power & Data Cables

A (male) USB Type-B to (male) USB Type-A power cable and a (female) USB Type-A to (male) Micro-USB OTG cable

Details

Recent Updates


As Featured In

Geeky Gadgets

"The do-it-yourself games console provides an easy platform to create and play 8-bit retro style games."

Open Electronics

"The graphics presented on the campaign page are quite impressive, being software generated signals..."

Hackster News

"The chip was designed to drop into nearly any 16-pin dip socket, making it a versatile platform for any number of projects, from robotics to IoT devices."

Gaming Gadgets

"...richtet sich die uChip Simple VGA Console an Tüftler, Hobby-Programmierer und erfahrenere Anwender. So verfügt das Gerät selbst über kein Gehäuse – das müsstet ihr euch bauen. Ähnliches gilt für die Software, die ihr am besten selbst programmiert."

uSVC is part of the Microchip Get Launched design program.

Learn, Solder, Program, and Play. Not Necessarily in That Order.

uSVC is a simple, do-it-yourself game console that allows you to create and play retro-style 8-bit games with standard USB controllers and keyboards. It comes as a kit, and all you need to assemble it are basic, through-hole soldering skills. In fact, all you really need is a soldering iron and some solder wire. The microSD card socket is the only surface-mount component on the whole board, and we’ve taken care of that one for you, so you’ll have "basic, through-hole soldering skills" by the time you’re done.

Put another way, uSVC is…

  • A DIY soldering kit that we've optimized for simplicity and fun
  • A retro-gaming console with three ready-to-play games
  • An educational platform with a comprehensive Application Programming Interface (API) and a series of guides that will have you designing your own games in no time
  • A development framework that goes well beyond games—use the expansion headers we provide to connect third-party peripherals, and you've got everything you need to design any number of low-cost devices that depend on USB connectivity and VGA output

Graphics & Sound

uSVC can display up to 256 on-screen colors at its standard resolution of 320x200 pixels, with a 57 Hz refresh rate, or it can render up to 400 lines with a pixel aspect ratio of 2:1. It has four 8-bit PCM channels mixed to a 10-bit mono channel and samples at 30 KSPS. It also provides for an optional global low-pass filter with a per-frame selectable low-pass frequency.

Fancy Graphics Made Simple

uSVC handles multiple video modes, including 8x8-pixel tiled modes with 16 or 256 colors and a 2 bits-per-pixel (bpp) bitmapped mode that supports up to 256 on-screen colors by changing the palette every 8 horizontal pixels.

Tiled modes support sprites with the following features:

  • Sprites up to 128 pixels in width or height are automatically handled by the graphics engine, so you don't need to join smaller sprites to achieve larger ones
  • Up to 128 8x8 sprites can be drawn in one 256-color frame if they are 8-pixel aligned
  • For arbitrary alignment, up to 66 sprites can be displayed in one 256-color frame
  • All tiled modes support horizontal and vertical sprite flipping
  • The 256-color tiled mode supports 90°, 180°, and 270° sprite rotation and x/y swapping
  • By blending sprites and background graphics in 256-color mode, uSVC also supports partially transparent sprites that can be used to represent explosions, smoke, ghosts, and other lighting effects
  • Choose whether to give layer priority to sprites or tiles
  • Smooth, full-screen, arbitrary-x/y scrolling in tiled modes
  • The color-change engine for 16-color mode supports per-line changes to the entire palette or to any one of its 16 colors
  • Color-change also works at high (400 line) resolution for smoother dithering effects and up to 256 on-screen colors
  • Per-line vertical row remapping can be used to produce reflection effects, such as water, and split or flipped screens
  • Row remapping also works at high (400 line) resolution
  • Independent, per-line and per-tile horizontal scroll facilitates water distortion effects, parallax, etc.
  • Supports an optional, bottom- or top-fixed section to display status information such as a running score

Design & Play Games

Build It.

uSVC is made up of a single uChip and a handful of standard, through-hole components, so it’s perfect for beginning solderers. The only SMD component is the micro SD card reader, which we’ve pre-soldered onto the PCB. The tiny uChip that drives uSVC is, of course, fully assembled; you just have to slot it into its socket when you’re done putting everything else together.

Program It.

Have you ever wanted to create your own game? It’s easy! We developed a comprehensive set of APIs and an editor so that you can focus on the art and the C code without having to worry about fiddly USB stuff, VGA signal generation, and other complications. And, like uChip, uSVC is fully open source!

Here’s how it works:

  • Unleash your creativity and produce your own art!
  • Or don't! If your creative strengths lie elsewhere, you'll find plenty of good game art, free of charge, at sites like https://opengameart.org and https://itch.io.
  • Convert your graphics and sounds to uSVC-compatible formats and generate maps for your levels with our free, open-source, easy-to-use editor.
  • Add those converted files to the uSVC template project.
  • Program your game logic in C. We already did the dirty work, so there's no assembly required!

And here’s what you’ll need:

  • An IDE with support for the GCC (ARM) toolchain. We use Atmel Studio 7 for Windows, which is free to use, but you can work in your favorite IDE, be it Eclipse or NetBeans or something else.
  • A tool with which to flash uSVC while you are developing your game. We use BOSSA/BOSSAC, which is open source.
  • The uChip Game Map Editor, which allows you to export audio and graphics into C files that are suitable for uSVC. It is an open source, Java-based application. You can download it here or check out the source code here.
  • A graphics editor. We use GIMP, which is open source.
  • Audio editing tools you can use to create and edit samples (or generate MIDI sounds!) We use Audacity (which is open source) and Anvil Studio (which is free to use).

And don’t worry, we’ll soon be publishing detailed guides on how to develop for uSVC using Atmel Studio, BOSSAC, and the uChip Game Map Editor!

Control It.

Yes, it would have been much easier for us to make uSVC require some old-school joysticks and controllers, but that didn’t feel right to us. So we went ahead and implemented a USB stack instead of just supporting serial and parallel I/O. Why?

  • Being old technology, serial and parallel controllers can be hard to find. This way, you can pick up a USB controller at the nearest electronics shop.
  • In fact, we suspect that many of you already own one.
  • (And don't worry, if you have a favorite game controller from the good ol' days, you can probably find a USB version.)
  • USB provides a unified interface that supports a huge number of standard controllers and keyboards. If we had chosen some other interface, we would have been stuck with that format, feature set, and array of controller types. We'd also have been stuck with the quality of whatever compatible devices happen to exist in the market.
  • uSVC's USB stack also allows it to work with dongle-based wireless keyboards and controllers, which are readily available.
  • And finally, uChip has a native host peripheral, so...why not take advantage?

Long story short, getting the controller or keyboard state is as simple as calling a C function.

Enjoy It!

You might have noticed that we’re rather excited about how easy it is to design great games for uSVC. But we definitely want you to have something you can play while you’re working on that first project, so we went ahead and published three open source games. In addition to the obligatory Tetris clone—do people really make game consoles without a Tetris variant? That just doesn’t seem right to us—we also produced Fair Play Race and Redballs.

You can learn more about these games and other existing uSVC content below.

Or…Do Something Weird With it

Already quite good at soldering? Don’t want to design retro-style games? Not even interested in playing retro-style games? Unmoved by the thought of writing code that would allow you and a friend to connect two uSVCs and go head-to-head? We still think you will find value in the uSVC development platform.

Yes, uSVC is a gaming console, but it also has an expansion port—one that’s optionally configurable as an SPI interface—so it’s highly customizable. Use that port to plug in your favorite NES controller. Or to connect some LED strips, synchronize those strips with the frames you are generating, and light up a wall. Or to add a serial-to-parallel shift register and some relays to create a home automation control panel. Or to build a karaoke machine you can carry around in your pocket. The possibilities are limited only by your imagination. (And your willingness to take a break from Fair Play Race. It’s pretty fun.)

In terms of software-only project possibilities, the USB stack is modular, so you can easily add drivers to support other (low- and full-speed) USB devices. And if that’s not enough, remember that the whole uSVC software stack is open source, so there’s really very little you can’t do.

Just Powerful Enough & Just the Right Size

No doubt, you could pick up a Raspberry Pi, install Linux, and play your favorite old games on MAME. Or you could get yourself a multi-GHz, multi-GB board and program some real smooth "8-bit" games. But how gratifying would that be, really? And what would you learn from the process? Or you could saddle yourself with a half-MIPS 8-bit processor, like those that powered the consoles of the era, and now suddenly you’re coding up tic-tac-toe in assembly, and it’s hard and maybe not really all that much fun.

We believe the Cortex M0+ in uChip hits the right mark to let you program comfortably in C without removing the constraints that make retro-style games so compellingly innovative.

As an added bonus, uSVC is quite small. Even without relying on tiny SMD components, uSVC still fits in the palm of your hand. And the games that it plays are even smaller.

Good Luck Finding a MicroSD Card Small Enough

A 1 GB MicroSD card—which will set you back about $7 online, most of which is the shipping charge—has room to store all of the games that a reasonable person is likely to play in their lifetime. (About 3200 of them.) If you’re an unreasonable person, you should of course feel free to upgrade that card, but you’re going to have your work cut out for you.

Technical Specifications

  • uChip
    • ATSAMD21E18 @ 48 MHz
    • 256 kB of flash (232 kB available for the game)
    • 32 kB of RAM
  • MicroSD: Can store games and game data
  • VGA output: 57 Hz vertical frequency, 30 kHz horizontal frequency
  • Audio: 3.5 mm, 10 bit output jack
  • Controllers: Uses standard USB controllers and keyboards
  • Power Input: 5 V via USB cable, 100 mA (up to 80 mA observed)
  • Dimensions (W x L x H): 48 x 86 x 17 mm (without 1 cm hex standoffs or solder joints)

Existing uSVC Content

When the console boots, select which game you want to play, and you're ready to go in just a few seconds!

uSVC Games

Here’s a taste of what we’ve made so far. We developed these games to show off the capabilities of uSVC, but we’re betting that you and the rest of the community can do even better!

Fair Play Race

A top down racing game with full screen scrolling, up-to 256 on-screen colors, transparency, layer prioritization of tiles, animated tiles, two playfields, sprite flipping, and 90°, 180°, and 270° rotation effects. Defeat your opponents (or destroy them…the Fair Play part is meant ironically) to earn the money you will need to upgrade your car.

Redballs

A Worms clone! Up to four teams of little creatures combat against each other with an assortment of 15 weapons. You can play against the CPU or against other players.

Redballs shows that uSVC can do what an Amiga 500 was able to do with 512 kB of RAM and a custom chipset. It demonstrates the 16-color tiled mode, layer prioritization of sprites, per-tile x-scrolling (for water distortion), palette remapping (for water coloring), and per-line color changes (for background shading). It also showcases uSVC’s ability to displaying a lot of on-screen sprites.

Tetris

As promised, we improved our original Tetris clone and adapted it for uSVC’s enhanced bitmapped mode.

uSVC Demos

In addition to the games above, we have published four demos for uSVC.

Horse-riding demo

A demo that shows nearly the full potential of the 16-color mode: big sprites, high-resolution vertical row remapping (for water effects), color changing, palette remapping, both sprite and tile layer prioritization, and per-line x-scrolling to simulate waves.

This demo was created using graphics submitted to Open Game Art by two users: Stagnation, and and Surt. We have made only minor palette changes while adapting it for uSVC.

Sprite Demos

We have also produced several demos that display a particular number of randomly rotated sprites, in 256-color mode, on a scrolling background with animated tiles. They include demos with:

  • 66 sprites, each at 8x8 pixels
  • 28 sprites, each at 16x16 pixels
  • 9 sprites, each at 32x32 pixels

What’s Included…

The Kit

  • One uChip with pre-soldered headers and the open source uSVC game loader pre-programmed. (The game loader sits on top of the standard uChip bootloader, so you can always repurpose the uChip for other projects and reflash the game loader on down the road.)
  • The PCB, with a pre-soldered SMD MicroSD card reader.
  • All of the components you will need to build your uSVC, including screws and spacers
  • The Bill of Material (BOM) and assembly drawings. (Additional instructions, schematics, layouts, firmware, game code, and map editor code will be available on our website before the end of the campaign.)

The Enclosure

And if you’re not set up to print your own, we would be more than happy to provide a stylish, 3D-printed case—designed and printed by Stefano Rubini to the precise specifications of uSVC.

The Cables

We will also send you the following if you don’t already have them:

  • A USB Type-B power cable
  • A (female) USB Type-A to (male) Micro-USB data cable

Other Things You’ll Need to Assemble Your uSVC

  • A soldering iron, some solder wire, and a cutter with which to trim the terminals
  • A FAT32-formatted microSD card. Any capacity should work, as a typical game is only 300 kB
  • A 5 V USB power supply. Even though uSVC consumes less than 80 mA, we suggest at least a 500 mA power supply, as they provide better transient response.
  • A VGA cable (unless your monitor has one built-in)
  • A VGA Monitor that can accept a 30 kHz horizontal and 57Hz vertical synchronization signals. (All the VGA monitors and televisions we tested worked fine with uSVC, but we recommend checking the specs of your monitor just to be sure.)
  • If you're using an HDMI monitor, you will need a VGA-to-HDMI converter
  • A USB keyboard or controller
  • Some amplified speakers (unless your monitor accommodates 3.5 mm audio input)

Why Would We Do Such a Thing?

Last year, we created uChip, an open source Arduino Zero compatible development board in a 16 DIL package. To show off its features and its flexibility, we developed a small VGA board and coded up a rudimentary Tetris game for it. Our goal was to prove that uChip could handle VGA signal generation, USB host duties, game logic, and rendering. And it worked!

Our original Tetris implementation from a year ago... Quite rudimentary, wasn't it?

Later on, we realized that we still had quite a bit of margin to work with and could add many more features to the VGA signal-generation routines. How far could we push the limits of a 48-MHz Cortex M0+, with 256 kB of flash and 32 kB of RAM? Our answer is uSVC, the uChip Simple VGA Console, a fully open source retro-gaming console that you can assemble and program yourself.

While the hardware, firmware, and software are all quite mature, we still have some room, during the campaign itself, to add a handful of features to the game editor, produce some new guides and demos, and perhaps even implement a suggestion or two from our backers. So drop us a line!

Why Crowdfunding?

To make uSVC successful, we need to join forces! Help us get through this list, and we’ll help you show your game design talents to the rest of the world!

uSVC hardware V2.x
uSVC kernel
Some Example games
uSVC editor (with new features added daily)
Additional demos and tutorials (under development)
Affordability and community (we need your help!)

Support & Documentation

The open source community has done a great deal for us, both in terms of our private hobbies and with regard to our business. Inspired by that example, we have published several open source projects, including uChip, but we’re always looking for more ways to give back.

Everything we have made for uSVC is open source: the editor, the firmware, the layouts, the schematics, and of course the games and demos. It’s worth mentioning, too, that we developed the project itself using free and open source software (KiCAD), so you can add features without paying for a commercial software license! (Though you can release your games under any license you want.)

Meanwhile, we’ll be posting weekly campaign updates, and we encourage you to reach out using the Ask a Technical question form on our campaign page.

Manufacturing Plan

Despite the maturity and stability of the platform, we are up against the same challenges faced by anyone who’s ever tried to manufacture an electronic device. Parts, fabrication, assembly, and shipping are all quite expensive unless a minimum order quantity is reached. By crowdfunding uSVC, we can be confident that—as long as we reach our funding goal—we won’t find ourselves in some tragic situation where we spend more on shipping, for example, than we do on the hardware itself. Nobody wants to see that. Furthermore, we can amortize the costs of components and manufacturing while taking advantage of Crowd Supply’s worldwide fulfillment service.

We will provide additional detail in our weekly campaign updates as we finalize our manufacturing arrangements.

Fulfillment & Logistics

Shipping will be handled by Mouser Electronics. If you are located in the EU, Switzerland, Australia, or Canada, Mouser will pre-pay VAT and pre-clear customs so you won’t have to deal with the customs house. You will receive a tracking number by email when your uSVC ships.

Risks & Challenges

2020 is working very hard to remind us all that serious, unexpected circumstances can arise. But we’ve taken precautions for this project. In our opinion, the most significant risks faced by crowdfunded electronics projects are:

  • Creators who over-promise and deliver products that don't work as expected
  • Creators who fail to account for all expenses and end up running out of money before shipping to backers
  • Products that arrive late due to component shortage or manufacturing delays
  • Shipping problems

So let’s consider each point!

The Product

  • When it comes to functionality, uSVC already works and is ready to ship. (It helps that it's built on uChip, which is a proven platform.

Unanticipated Expenses

  • We have accounted for everything and baked in an adequate margin to ensure that we can deal with any unexpected events. We will be able to fill all orders.

Components & Manufacturing

  • We have chosen standard components, and any part with availability issues can be easily replaced. There is very little risk of delays due to component shortages.
  • The only assembly required on our part is soldering the MicroSD card reader, and we plan to handle that rather than bringing in a third party. Again, we're not worried.
  • PCB fabrication for uSVC is quite straightforward. We expect it to take as little as one week.
  • We manufacturer uChip, so we can reserve enough of those to avoid shortages simply by keeping them off the market. If we start to run out, we will announce a new estimated ship date for subsequent uSVC backers and get busy making more.

Shipping

  • Crowd Supply's fulfillment partner, Mouser Electronics, has rather a lot of experience moving boxes from one place to another.
  • If we encounter delays due to COVID-19 (or some other doomsday scenario that 2020 has been keeping in reserve), we will let you know in a campaign update.

Funding ends on Dec 03, 2020 at 03:59 PM PST (11:59 PM UTC)


Credits

ITACA Innovation

ITACA INNOVATION is a project started by four young researchers from Padova with the aim of applying academic knowledge of electronics to practical applications. ITACA supports your ideas by providing all of the technical and engineering knowledge you will need to implement them.


next-hack

Antonio Rizzo

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: