Latest state of the HBC as of March 2018:
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. Currently running at 66.67mhz.
- 7" Touchscreen LCD 800 x 480 x 24-bit color. Very modern display capabilities. Currently 12-bit VGA, support for 16-bit is built in, 24-bit on the horizon.
- 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. 800 x 480 x 12 bits. System is setup to support 16-bit color, eventually 24-bit will be supported.
- 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. Text Generation works!
- Memory mapped Frame-Buffer is in place and works!
- Arcade-style graphics.
- I/O Controllers: Touchscreen, PS/2 keyboard, UARTs for serial ports, and so on.
- Memory controllers: Modified open-source SDRAM controller with glue logic is integrated. SRAM is integrated.
- 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/26/2018: Proof of concept soft-core J68 is running. VGA Support has been added and a custom PCB houses SRAM for the frame buffer. 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.
Both the SRAM and SDRAM have glue logic and is fully integrated into the J68 and memory map!
I've got a small 4x20 LCD partially integrating for displaying CPU status.
Wish me luck by commenting below!
Various 68000 Projects and Resources