VGA1306 (VGA-out for DIY Arduboys implemented on an FPGA!)

Howdy - I’ve just uploaded the Eagle files and BOM to the GitHub repository as a ZIP file… SO GO NUTS!

If you do end up making a run of boards then count me in for one or two! :sweat_smile:

Fair warning - the schematic is kind of ugly, I was only really using it for connecting the necessary signals together and didn’t take the time to make it pretty.

This was for the ‘prototype’ batch of 10 autorouted boards - Matt at kitsch-bent then took these files and worked on a nicer manually routed PCB for the boards that were sold on his shop.

The part numbers in the BOM that start with ‘3’ are from Seeed’s “open parts library” (parts that they always carry in stock):


Hey @uxe!

Anyhow, I would take a couple too if they aren’t too expensive.

@ande3367 where are you located?

I am located in minnesota usa.

I will take a look at the schematic and make a board file and figure out what sort of price we can expect.

1 Like

I don’t think you’ll be able to manage PCB + assembly much cheaper than the USD$38 each kitsch_bent was selling them for unfortunately… I plugged the BOM and gerbers into Seeed, and they’re saying USD$23.82 each (for Qty 10) but this isn’t including some of the component costs that their system didn’t / couldn’t auto-populate the prices for… :confused:

I did some layout and pricing. I think I can get the price down to $20 per board if I do the assembly my self. This would mean changing some of the components to larger sizes and the memory would be surface mount. Everything would be ordered from china except the memory and FPGA, so it would take a month or two to get to me after manufacturing. The one problem I found is no one has the memory chip in stock. not sure what could be substituted for it.

IS25LP128F-JBLE is a surface mount part I used with the same FPGA for this board.

Keep in mind you will need some way of programming / reprogramming the flash memory chip though - the reason I had it socketed here was so it can just be popped out and put into a programmer.

If you are doing a redesign, one nice feature I only considered after the fact would be to have a little bank of 3 dip switches so you could manually select the display colour by toggling the RGB pins on the VGA output…

Here are some teaser pictures. I added a socket so a DIP chip can be used if you don’t want to use the surface mount memory. It would be one or the other, I don’t think both would work at the same time. I just tied the pins together. If anything I do is a bad idea let me know. I am still in the electronics learning phase.

For the dip switches, would it just be toggling the color channel on or off or would it function in a different way?

1 Like

Here is the board bottom.

You want the dip-switches to switch between a connection to the R/G/B colour signal pins, and a connection to ground (0V = no colour / black).

I can look at buying and pre-programming a bunch of the memory chips for you down the road when you are close to assembly…

Good thing with at least having the through-holes for the socket on-board is that you could always solder in some header pins there and possibly program the surface-mount chip ‘in-place’.

PS. for the socket, I would opt for one with the square (‘leaf’) contacts, not the round (‘machined’) contacts:


I added the switch and changed the socket. I have a little room above and below the switch. Is there anything else we want to add. I was thinking some header pins to watch the vga signals?

I have a programmer for the memory chips, so flashing them isn’t a problem.

The current board dimensions are 74mm long and 33mm wide.

What about… expanding the board to fit the 32u4 and associated passives so you’ve got a complete VGA Arduboy.

Even better if it’s FX compatible with the flash chip! :slight_smile: :slight_smile:

Lol I started doing this in eagle and got swamped with other work

I have the schematic complete though if someone wanted to do the routing (or let autorouter rip and pray).

As a proof of concept I even bodged a bluetooth controller to make the entire thing a consolized arduboy on a breadboard. Demo around 8.5 minutes into video.

I saw in the arduboy contest someone made for the HDMI is that dramatically different than what’s being done here?

If I understand correctly you can actually push a VGA… or is it DVI signal through an HDMI cable?

If we had an Arduboy that worked at full speed over HDMI I would be interested in building some for sale.

DVI-D over HDMI works fine, it’s just a passive adapter. VGA or DVI-A requires some sort of conversion, since they are analog signals.

1 Like

Nice! What are the extra 3 switches for? You only want 3 to toggle RGB on/off?

Also, yes, DVI over HDMI is a thing that can be done -



Haha! If you’re able to come up with what would otherwise be an Arduboy console I’ll totally support that any way I can!

Actually, come to think of it it might be the cheapest option since no battery or screen is required!

1 Like

I kind of want to buy a cheap pico projector, 3d print a new shell and shove everything inside for 80" projected arduboy goodness!

Nice! What are the extra 3 switches for? You only want 3 to toggle RGB on/off?

The extra 3 were to tie the rgb vga pins to ground. I wasn’t sure if I could just cut the connection with the switch or if it had to actually be grounded.

Ah… right! So what you want is a single-pole double-throw dip switch, something like one of these -

Looking at the datasheet (see below image) you would for example connect the Red signal on the VGA connector to the C (common) pin, and then moving the dip switch up or down would switch that VGA pin between a connection to ground (no colour) or the connection to the Red signal coming out of the FPGA - make sense? And then by mixing different switch combinations of Red / Green / Blue you get 8 output colours to choose from:



Makes sense. I had looked for those and couldn’t find any for a decent price. The six position SPST one I have is $0.28. Do you think there is any risk of damaging the board if the switches are not set correctly and a resistor gets connected to ground?