Project update 3 of 9
Since the TinyFPGA BX is building upon the success of the original TinyFPGA B2 board, there are already many makers and hobbyists creating projects using the B2. I would like to highlight some of these projects as well as a project of my own I am preparing for Maker Faire Bay Area 2018.
Alan Garfield, Niels Moseley, and a few other contributors have created an Apple 1 computer that can run on the TinyFPGA B2 and can easily be ported to the BX. This implementation can run the original Apple 1 ROM including WozMon and Apple Basic.
The Apple 1 computer uses a 6502 at it’s heart and the FPGA version is no different. Instead of using a physical chip it uses Arlet Otten’s Verilog 6502. The 6502 was also used in the Acorn Atom, Commodore 64, Apple II, and many other classic 8-bit machines.
Instead of using a microcontroller core, Juanma Rico used IceStudio and the IceStudio Pixel Stream Collection to build a pong-like video game. It is a very impressive demo and it only scratches the surface of what the IceStudio Pixel Stream Collection and TinyFPGA boards are capable of.
The game supports two players and keeps score like the original Pong.
Miodrag Milanovic has ported MicroPython to several FPGA boards including a port for the TinyFPGA B2. MicroPython is an implementation of Python designed to run on microcontrollers with limited resources and no operating system. It is a pretty fantastic way to get aquanted with hardware and software.
In this case, Miodrag uses the open source picorv32 RISC-V core from Clifford Wolf to execute the MicroPython interpreter. All of the program code is stored on the SPI flash and executed in place. In the end, you get a Python console where you can directly control the pins of the TinyFPGA board. Because the entire project is open source, you could expand upon it and add your own peripherals inside the FPGA to be controlled by Python.
I am going to have an exhibit at Maker Faire Bay Area 2018 this year and have been hard at work at a few demos to show off the TinyFPGA boards. I’ve spent a lot of time working on a simple two-player snake game running on a picorv32 CPU inside a TinyFPGA BX. I’ve implemented VGA and PS/2 interfaces to allow the TinyFPGA BX to provide interesting input and output for the game. I’ve also put in some work to get C++ to work on the picorv32 CPU. There’s more work to be done there, but the demo is working well and progress is promising.
Below is a demo video - it was edited on my phone, and yes, that is stock music from the phone. Enjoy.
Alongside the snakes game I am also developing a new TinyFPGA BX Computer Project Board that provides audio, VGA, PS/2, SD Card, and SPI SRAM. It’s a through-hole kit that you will be able to order from TinyFPGA and assemble yourself. If you’re not so great with the soldering iron you will also be able to get it preassembled.
I am so happy with how the campaign is going! I find myself refreshing the Crowd Supply page quite a bit more than I would like to admit. There is less than a week left before the campaign ends and I am getting ready to for the boards to be manufactured. I believe I am still on track to ship by July 1st, but there are many opportunities left for delays to creep in and cause that to slip. If the date changes I will make that clear in an update.
Thanks again to everyone for your support in backing this project. I’m getting more excited as we near the final days and hours of the campaign and the real work will begin.
Have an excellent weekend everyone and look forward to another update next week!