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

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?

Yep… cost is a bummer. You could use 3 of these together and would still be under a dollar?

The N in the part number is for ‘non-shorting’ - probably better not to risk potentially frying the FPGA? or the monitor? :grimacing:

Ill take a look.

I also discovered we can program the flash over spi via a ftdi232h and usb. Instead of adding a dip one. Not sure how much people want to reprogram the flash.

You are probably correct, people are unlikely to want to reprogram the flash.

Do you think it would work to hook the switch to the some of the FPGA pins and have the switch selection run through the program? That way the switch could be programed to select different palettes as well as selecting what outputs are on and off? Does that make sense? The switch would be an input to the FPGA and the program would dictate what it does?

So long as fpga resources are available, it’d be trivial to make a single button selection switch to cycle through palettes

Yes, you could connect a button to an FPGA input and have it cycle through palettes. You could even add some code on the Arduino side, and have it send through parameters to choose palettes, to do it all in software instead.

And if you add another five resistors, connected to five more FPGA pins, then you’d have 256 colours to choose from instead of only 8!

But then you will definitely want to think about the flash chip needing to be reprogrammable, because once people have a button(s) it can lead to “wouldn’t it be neat if the button did such and such” or “I want to change the colours in the palettes” etc :sweat_smile:

Add a more powerful Arduino and you could start writing games in colour instead of monochrome, and in 640x480 instead of 128x64, and on and on and on… :grin:



put 3 potentiometers on the board to pick the color.

connect the brush to the VGA output, one end to the FPGA and the other end to ground.

1 Like

Ah feature creep, my old friend … the grim reaper of many of my projects


I think we have had enough with the feature creep and more stuff can be added in other revisions.

I have decided to go with this switch. I comes in around $2 plus shipping.

I have added the extra button to the fpga pins to ground, so a feature can be added if wanted.

The other 3 will ground the vga pins allowing for the RGB signals to be switched on or off.

I left in the dip socket for the removable memory or a header to program on board memory. Not sure if that would work or not given that it would be in circuit.

I have added the easyeda board and schematic files and a pdf schematic to my github.

I think I will order some prototype PCB from china and test them before I order all the parts for others that want a board.


Nice! :slightly_smiling_face:

I’ve attached a ZIP file with the code and .bin file to go on the flash chip.

I’ve modified the code a little so that your extra switch on pins 99/100 will work as an ‘invert palette’ switch, enjoy! (10.8 KB)

1 Like