craig@craigjb.com
Githubhttps://github.com/craigjb Twitterhttps://twitter.com/craig_jbishop

From eBay junk to JTAG on a gigantic FPGA board


eBay is a magical place, somewhere in the middle of the vast AliExpress-Digikey spectrum… well, it is magical for those interested in giant FPGA parts anyway. In previous posts, I detailed the Gameslab, which is a handheld game console built around reballed Zynq (XC7Z035) parts off eBay, which turned out to be perfectly fine after fixing my own mistakes. So, I’m no stranger to the hopes and fears of buying used and unknown quality FPGA components off eBay. That said, thanks to @rombik_su on Twitter, I’m down an even deeper rabbit hole on a HAPS-DX7 board with a Xilinx Virtex-7 XC7VX980T (whopping 612 kLUTs), a smaller Kintex XC7K70T, and a relatively tiny Lattice LCMXO2-7000HC. I’ll try to document the journey in this post.

Continue reading
From eBay junk to JTAG on a gigantic FPGA board

Rust on Risc-V (VexRiscv) on SpinalHDL with SymbiFlow on the Hackaday Supercon Badge


What do Rust, Risc-V, and SpinalHDL all have in common? They can all run on the Hackaday Supercon 2019 badge! In this rather lengthy post, I go through how to get started with SpinalHDL on the badge, how to setup a Risc-V soft core using VexRiscv, how to assemble a basic program for it, and finally how to target and build embedded Rust for it.

Continue reading
Rust on Risc-V (VexRiscv) on SpinalHDL with SymbiFlow on the Hackaday Supercon Badge

Interview with David Galloway - Retro game dev, Game Boy dev and more!


This week I had the awesome opportunity to interview David Galloway, a long-time game developer across many platforms. We met because I was wrong about the nature of the Game Boy CPU in this post, and I’m glad I made that mistake, because what an amazing guy to meet! In this extra-length interview, we discuss early 6052 games, Apple II game development, early 1990s game dev, Game Boy dev, speed-code for sprites, texture atlases, radiosity maps, video card drivers, and more!


Continue reading
Interview with David Galloway - Retro game dev, Game Boy dev and more!

STM32L0 Rust Part 1 - Getting Started


The embedded Rust development ecosystem is changing fast. A bunch has changed even since early 2019 when I started prototyping firmware for the Gameslab’s system controller (STM32L0). Most of the changes are incredible! Device support crates, hardware abstraction layers (HALs), and even USB support are all very usable now for Cortex-M devices. In this post, I’ll summarize the ecosystem and show how to get started with embedded Rust on a STM32L0 part.

Continue reading
STM32L0 Rust Part 1 - Getting Started

Desert Rust slides: crate organization


These are the slides from a talk I gave at Desert Rust, our Phoenix metro area Rust developer meetup.

Continue reading
Desert Rust slides: crate organization

Gameslab schematic


Here’s the Gameslab schematic in all of its completely non-cost-optimized glory! I had linked to it in a previous post, but this makes it more obvious. Made with KiCad!

Continue reading
Gameslab schematic

Gameslab case in detail


The Gameslab case is made of three custom-machine aluminum plates and held together by only four screws. Notice there aren’t any screw holes showing on the front.

Continue reading


Fried by design and fried by accident


On the way to a working Gameslab, I had a few failures, some more “fun” than others. For example, it turns out that when your giant Zynq FPGA heats up to 70C while idling without any configuration, you might have a problem somewhere. Also, don’t solder while batteries are plugged in. Things die when you do. And, let’s not forget my newly found, strong distaste for QFP parts.

Continue reading
Fried by design and fried by accident

Gameslab project overview


If you went to Hackaday Supercon 2019, you might have seen someone wandering around with a badge that was way too heavy looking. That was me! And that badge was a Gameslab, my FPGA-powered handheld game console. As the blog posts from years ago prove, I’ve been thinking about building Gameslab for a long time, and over the last few months, I have finally done it. In this post, I’ll explain what exactly a Gameslab is (game-slab, as in brick, or unwieldly object that plays games), why I built one, what’s in it, and how I got it working.

Continue reading
Gameslab project overview

A large BGA, DDR3, & impedance control on a 6-layer PCB


A few months ago, I bought a couple Xilinx Zynq XC7Z035s off of eBay. These are beefy parts, even today! Each one has a dual core ARM Cortex A9, DDR controller + other peripherals, and a giant FPGA fabric (275k “logic cells”). The description did say “refurbished”, and hopefully that means just reballed, which isn’t uncommon for these expensive parts. Anyway, since I bought them, I’ve been itching to design a board for the parts and try them out. Specifically, I’ve wanted to get around to designing and building my Gameslab portable game console project. Well, after years of thinking about it, I finally put in the time to design the boards. And, in this post plus a few more to come, I’ll write about that process in detail. Today, I want to talk about how to even start, since these high-speed parts have more requirements on the PCB than your typical microcontroller.

Continue reading
A large BGA, DDR3, & impedance control on a 6-layer PCB

Copyright © 2017 Craig J Bishop