scanlime049 – iCEBreaker FPGA Quick Look

Today’s video is about a package sent in by 1BitSquared with a prototype FPGA board. These boards are part of a new generation of open hardware which builds on a foundation of open source FPGA tools. At the time we streamed this live, the crowdfunding campaign was about to launch. It’s been successfully funded, and at this time you can pre-order boards from the next batch.

scanlime049 – iCEBreaker FPGA Quick Look

The iCEBreaker page is on Crowd Supply.

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

scanlime048 – Icestudio LED Matrix Driver Part 4

In the fourth and final part of our HUB75-style display driver series, we make a cool demo in gateware using the modular driver! In this segment we’ll add a frame buffer and implement a video feedback plus munching squares effect in Verilog and Icestudio.

scanlime048 – Icestudio LED Matrix Driver Part 4

The Icestudio editor and the entire build toolchain are free and open source software!

The FPGA board and adapter PMOD are part of the iCEBreaker CrowdSupply campaign, which was successfully funded! This is a great little FPGA dev board, and a platform designed to help more people get started with FPGAs using open source tools.

This project is available on Github.

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

scanlime047 – Icestudio LED Matrix Driver Part 3

In the third part of our HUB75-style display driver in Verilog and Icestudio, we start looking at demoscene-style effects to implement next, and implement a gamma correction and dithering module to improve color quality.

scanlime047 – Icestudio LED Matrix Driver Part 3

The Icestudio editor and the entire build toolchain are free and open source software!

The FPGA board and adapter PMOD are part of the iCEBreaker CrowdSupply campaign, which was successfully funded! This is a great little FPGA dev board, and a platform designed to help more people get started with FPGAs using open source tools.

This project is available on Github.

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

scanlime046 – Icestudio LED Matrix Driver Part 2

In this second part of the HUB75-style display driver in Verilog and Icestudio, we’ll debug and reorganize the existing gateware into something modular that we can build upon, with nice and stable Binary Code Modulation for brightness control.

scanlime046 – Icestudio LED Matrix Driver Part 2

The Icestudio editor and the entire build toolchain are free and open source software!

The FPGA board and adapter PMOD are part of the iCEBreaker CrowdSupply campaign, which was successfully funded! This is a great little FPGA dev board, and a platform designed to help more people get started with FPGAs using open source tools.

This project is available on Github.

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

scanlime045 – Icestudio LED Matrix Driver Part 1

In this project we’ll be programming up some FPGA “gateware” using the visual Icestudio environment and the industry standard Verilog language, in order to display full color images on an inexpensive HUB75E-style LED video wall panel.

This first video focuses on project bringup and just getting *something* on the screen, even if it’s a bit buggy!

scanlime045 – Icestudio LED Matrix Driver Part 1

The Icestudio editor and the entire build toolchain are free and open source software!

The FPGA board and adapter PMOD are part of the iCEBreaker CrowdSupply campaign, which was successfully funded! This is a great little FPGA dev board, and a platform designed to help more people get started with FPGAs using open source tools.

This project is available on Github.

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

scanlime044 – FPGA Quick Answer

We’re doing some projects now with FPGAs, but first what even is that? This is a quick answer, compiled from the unscripted explanations I would give live.

scanlime044 – FPGA Quick Answer

Thank you so much for watching, subscribing, and sharing my videos. And a special thanks to my supporters on Patreon, where recurring donations make this content possible.

For an alternative to youtube and twitch, check out Diode Zone.

If you’d like some of those cool scanlime stickers or Servo AF stream gear, check out the shop.

For previous episodes, check out the full scanlime playlist.

Each episode is compiled together from many livestreams which you can hang out with on the companion scanlime-in-progress channel.

Follow @scanlimelive for live streaming announcements.

DSi RAM tracing

It seems like a lot of people have been seeing my Flickr photostream and wondering what I must be up to- especially after my photos got linked on hackaday and reddit. Well, I’ve been meaning to write a detailed blog post explaining it all- but I keep running out of time. So I guess a “short” blog post is better than nothing.

The executive summary is that I’ve been working on making it possible to run homebrew games on the DSi. If you’ve used The Homebrew Channel on the Wii, you know what I’m talking about- we’d basically like to have the same thing for the DSi. And as it turns out, the DSi has a lot in common with the Wii.

I haven’t been working on this project alone. I’ve been collaborating with the excellent software and hardware engineers in Team Twiizers, the group responsible for The Homebrew Channel. Bushing has written a couple blog posts about our DSi efforts so far: one on the RAM tracing effort in general, and one with a sample trace.

My role in this project lately has been building hardware and software for a tool which is effectively a low-level CPU debugger for the DSi. It attaches to the RAM bus between the RAM and CPU, it’s capable of tracing all traffic in ‘real-time’ (after slowing down the system clock so the required bandwidth fits in USB 2.0), and just this week I got RAM injection working. The hardware interposes on one of the chip select signals between the CPU and RAM. If an address floats by that we want to patch, the hardware can quickly disable the real RAM chip and drive new data onto the bus as the CPU continues to read. It’s a very effective technique, and my hardware has a pretty capable system for storing and retrieving up to 16 kB of patch data now.

So why is all the complex hardware needed? Well, we hit two big dead-ends:

  • Several of us managed to run code from within a DSi-enhanced game using modified save files, but most of the interesting hardware on the DSi (like the SD card slot, and the internal flash memory) is disabled when these games are running. The earlier Team Twiizers Classic Word Games hack, WinterMute’s cookhack, and my own cookinject all suffer from this problem.
  • I’ve been able to read and write flash memory for a while. This isn’t as interesting as it may sound, since nearly all of the flash is encrypted. However, by running a lot of tests where we modified or compared the encrypted data, we were still able to gain a lot of knowledge about the layout of the flash memory, and some information about how the system boots.

What we’d really like to do is understand more about how the console’s main menu works, and how software is installed and loaded on the DSi. The best way to do this seemed to be RAM tracing. It required an FPGA and a lot of crazy soldering under a microscope, but now it’s working and we’re well on our way to unlocking the secrets of DSi homebrew.

If you’re interested in following our efforts to make homebrew possible on the DSi, definitely subscribe to Bushing’s blog at hackmii.com. He understands the Wii (and by extension, the DSi) better than I ever will, and he’s great at writing about it.

I have a Flickr set with lots more photos, but these are two of my favorite. The first is a photo of the entire setup as it’s currently configured. The second is a picture of the craziest of the microscopic solder joints in this project. This is where I separated the chip-select signal I mentioned above, giving the FPGA the ability to sit between the CPU and RAM. The trace I’m tapping into is buried under four other PCB layers. For a sense of scale, the orange enameled wire is 32 AWG, or about 0.2mm in diameter. Normal 30 AWG wire-wrapping wire is actually only the third smallest size of wire I’ve been using in this project 🙂

Debugging setup with new FPGA

Via excavation closeup

If you’re interested in the C and Verilog source code, it’s in Subversion as usual.

Fun with FPGAs: SPI EEPROM emulator

I found a fun excuse to practice my digital logic design over the past few days:

Loading the SRAM

This is an FPGA emulating the SPI EEPROM (save game memory) in a modified Nintendo DS game cartridge. The emulated EEPROM is backed by 1 MB of SRAM, and there is a USB interface that you can use to simultaneously read or write the SRAM from a PC.

You can use it to really quickly modify or inspect the contents of a game’s save memory- for example, for developing save game exploits or reverse engineering save file formats. You can also use the large memory space as a fast shared memory buffer, for sending debugging information or memory dumps back to the PC, or for loading larger blocks of code from the PC.

The FPGA design is written in Verilog, and I’m running it on the popular Digilent Spartan 3 board. The upload/download tool that runs on the PC is written in Python, plus it can be used as a Python module for writing more complex tools that interact with the DS through this shared memory buffer. Source code is in Subversion, and released under an MIT-style license.