This page hosts things I have built in the past. Projects are ordered by starting date.
Active project / Started Aug 16, 2021 / Last updated Mar 28, 2022
NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper screens, and flexible programming environment choices.
- 900MHz Cortex-A7 platform with 512MB RAM
- Linux operating system (Buildroot / Arch Linux / Ubuntu)
- Integrated WiFi and BT
- Suppports 6"/7.8"/9.7"/10.1"/10.3"/13.3" greyscale and color screens
- Expansion port for video input and touchscreen
Finished project / Started Mar 24, 2021 / Last updated Mar 21, 2022
ANSI/VT100-compatible serial terminal built with Raspberry Pi Pico and EL640.480-AM/AG screen
- RP2040 as main controller
- ANSI-compatible with some xterm extensions
- Supports 10.4" 640*480 TFEL screen
- Supports USB and PS2 keyboard
Active project / Started Mar 10, 2021 / Last updated Mar 27, 2022
Mod a ThinkPad X200T display into a pen tablet display, using single USB Type-C cable for power and data.
- X200T display: 12.1" 1280x800 IPS LCD with LED backlight
- 0.96" 160*80 IPS LCD sub screen for information display
- Uses USB Type-C DisplayPort Alt-Mode, supports 1-lane or 2-lane operation
- Wacom 256 level pressure sensitive digitizer
- RP2040 + PTN3460 + FUSB302 chipset
Cancelled project / Started Feb 1, 2021 / Last updated Apr 15, 2021
eBook Reader based on RP2040 MCU and ZBD Bistable LCD. Project cancelled due to long screen update time, unsuitable for interactive UI. Might revisit in the future
- RP2040 as main controller
- 6" 480x360 ZBD bistable monochrome LCD
- Tactile page flipping button + Capacitve touch navigation bar
Cancelled project / Started Mar 9, 2020 / Last updated Jun 10, 2021
Digital Audio Player with 2.13" Eink screen and CS43131 DAC. This project was my course project for Penn State EE300 Lab. As I was allowed to do pretty much whatever I wanted to do as long as it's a hardware project... I decided to take a crack on building a DAP -- something that I have wished to do for many many years but never actually get to finish. This is probably the most polished DAP I have ever built hardware wise, but the software is still a mess. The project is no longer under active development, and hardware/ software have since been merged into the Fobu project.
- NXP LPC5528 Cortex-M33F 150MHz processor
- Cirrus Logic CS43131 DAC, with > 120dB measured SNR
- 2.13" 250x122 16-level greyscale E-ink display
- Less than 90 mW overall power consumption at audio playback
Finished project / Started Jul 10, 2019 / Last updated Nov 18, 2019
This project aims to port Linux OS to the HP Prime calculator. It is based on the Buildroot distribution. I have finished most of the reverse engineering work, and have a working Linux system running on the prime.
- Supports HP Prime G2 graphing calculator (i.MX6UL 528MHz Cortex-A7)
- LCD, keypad, backlight, touchscreen, power management, NAND flash supported in Linux
Cancelled project / Started Jun 29, 2019 / Last updated Sep 1, 2019
Experimental Linux-based pocket audio player inside GameBoy case. Got Linux booting and audio codec working. Cancelled due to high power consumption.
- NXP i.MX 7S Cortex-A7 1GHz processor
- 512MB LPDDR2 memory
- Cirrus Logic CS43131 DAC
Stalled project / Started Sep 10, 2018 / Last updated Aug 9, 2021
This project aims to create a 386 SBC in Raspberry Pi formfactor with a real i386DX processor. An FPGA functions as a "bridge" or "chipset". The full system should be IBM-PC compatible, being able to run operating system and software written for IBM-PC. Supporting for other CPUs (like 386SX, 486) and other architecture (like PC-98) are planned, but not now. This project also includes a software x86 emulator for the simulation purpose.
To be finalized.
Finished project / Started Aug 16, 2018 / Last updated Sep 9, 2018
CSTN was once popular among low-end laptops and cellphones, and its predecessor, STN was almost the only viable option for laptop before TFT LCD was invented. Thanks to the advance of technology, they are fully replaced with TFT LCD. But just for fun, how would software and games today look like on a 90s CSTN LCD? Basically, this project aims to build an LCD monitor based around a CSTN screen.
- Written in Verilog, tested on Xilinx ML505 FPGA board
- Uses DDR2 for buffering, allows actual refresh rate to be mulitple of input refresh rate
- GLDP LUT based greyscale, up to 32768 colors at 240Hz refresh rate
Active project / Started Aug 16, 2021 / Last updated Mar 16, 2022
Fobu is a key fob sized open-source FPGA + ARM handheld device (formerly VerilogBoy Handheld). The intended usages are portable FPGA retro gaming system (FPGA-based implementation, ARM-based emulation, or both) and portable audio (both general format such as mp3, FLAC, etc. via ARM core and retro VGM such as FM, SSG, etc. via FPGA implementation) player. However, the architecture should allow other usages as well.
The photo shown was the r0.2 prototype. The current latest revision is r0.4. LCD and FPGA are working on r0.4.
- NXP i.MX RT1170 Cortex-M7F @ 1GHz + M4F @ 400MHz MCU
- Xilinx Spartan-7 XC7S25 FPGA
- 64MB 32-bit 200MHz SDRAM for MCU
- 16MB 16-bit 133MHz dual-channel Celluar RAM for FPGA
- 1.6" 320x320 transflective MVA LCD
- USB Type-C port for USB host/device and DisplayPort Alt-Mode video output
- Cirrus Logic CS43131 Audio DAC
Finished project / Started Feb 7, 2018 / Last updated Jan 9, 2021
This project is an open source Game Boy compatible console Verilog RTL implementation.
- Cycle-accurate SM83 (GB-CPU) implementation
- Working PPU, PSG and timer implementation
- Supports Pano Logic G1 devices and Xilinx ML505 dev board
Active project / Started Aug 6, 2017 / Last updated Apr 2, 2021
Full-frame 135 digital back for Nikon F3 SLR camera. Still working in progress.
- NXP i.MX RT1050 600MHz Cortex-M7F MCU + 32MB 16-bit SDRAM
- 2.8" 640x480 IPS LCD
- ADI AD9990 AFE + ADC
- Kodak/ONsemi KAI-11000/KAI-11002M/CM 35mm CCD
Finished project / Started Mar 21, 2016 / Last updated Dec 18, 2018
A simple calendar using EPD as main display based on STM32 microcontroller.
- STM32F207VET6 120MHz Cortex-M3 MCU with 128KB RAM and 256KB Flash
- Expansion: TF card slot support up to 4GB SDHC
- Display: 6 inch ED060SC4 800x600 Eink, up to 32-level greyscale