HOPE Badge Computer

Latest state of the HBC:



So in July 2016, my friend Andrew and I attended Hackers on Planet Earth. HOPE is a moderately-sized hackers convention that happens every other July in New York City. It’s been happening since 1994 and I’ve attended all but one of them, and this year will be no different.

I’ve been searching for a new Project to work on, and I’ve found it in what we’re calling the HOPE badge computer. The name is subject to change.

Rough design criteria follow:

  • Design from the ground up. A truly home-grown fully custom computer. Only the CPU is off-the-shelf, everything else is designed by us.
  • To learn about and gain appreciation of the design challenges and constraints that the pioneers of the personal computers faced in the 1980’s. Limited memory. Limited hardware resources.
  • Something Retro in design. Think 1980’s or early 1990’s. Or heck, maybe even something 19th Century!
  • FPGA-based project using Altera’s BEMICRO MAX10. This is a 8K LE device. It’s cheap, around $30. Probably has just enough power to get the job done. I hope.
  • Soft-Core CPU. For now, it’s the J68 CPU (Motorola 68000). This may change based on performance requirements. There will be excellent custom hardware support. Assuming we have the room, CPU-intensive tasks can be exported to hardware.
  • 7″ Touchscreen LCD 800 x 480 x 24-bit color. Very modern display capabilities.
  • Custom Hardware described in Verilog.
  • Assembly-language coding for all of the base machine support. If we’re lucky, we might get some type of tool-chain for C going, for higher-end applications.
  • Custom everything — a real, from the ground up, custom computer:
    • LCD Driver: we’re driving the LCD at about 33mhz, 24-bit Parallel bus. No weak serial SPI calling pre-stored graphics images. We have complete pixel-by-pixel control of the display….as fast as the Display will take it.
    • Graphics Card / GPU: our own design, or heavily-modified open source including Text Generation for fonts. Think tile maps, sprites, and so on. Specs to come on this.
    • Arcade-style graphics.
    • I/O Controllers: Touchscreen, PS/2 keyboard, UARTs for serial ports, and so on.
    • Memory controllers: I’ve got an open-source one running now, but it needs interfaced to work with the existing J68 CPU core.
    • Our own OS: Definitely does not run linux.
    • Our own Libraries
    • Our own Hardware and associated APIs
  • Hopefully something wearable — hence the badge part.

What this isn’t:

  • The equivalent of building a PC– it’s not an assembly project where everything is already made, and all you need to do is plug the pieces together.
  • Using a Raspberry PI or Beagle Bone ghz System-on-Chip, and then buying a USB hub, and some off-the-shelf accessories.
  • Under-powered Arduino using external third-party shields.

Current Status of 3/17/2017:  Proof of concept soft-core J68 is running. LCD driver works and we can put a test pattern on it. 68000 monitor software(VUBUG.txt) runs — the J68 successfully boots using the built-in USER FLASH MEMORY for the ROM and FPGA-based RAM(m9k’s). Serial UART communication works. A 24-bit 96khz DAC has been tested and works for proof of concept audio support! A battery has been added, and the badge computer has been mounted in this prototype.

I’ve managed to get a memory controller, that matches the 16-bit width required for the J68, and supports byte read/writes, working by itself.

The controller is now integrated! Yay! The J68 can read/write into the onboard 8MB SDRAM!

Update post is here: https://www.techtravels.org/2017/02/j68-onboard-sdram/

I’ve also added a 4MB SRAM onto the edge connector of the FPGA board. This will be our frame buffer!


Wish me luck by commenting below!


Various 68000 Projects and Resources











Feed Shark

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>