Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    James Bowman

    excamera.com · Personal blog · on HN since 2010

    James Bowman writes about FPGA and hardware projects, including the J1 Forth CPU, the Gameduino boards, and small software experiments.

    Visit blogHN submissions
    Hardware & ElectronicsRetro ComputingLanguages & Compilers
    What HN says

    HN commenters link his J1 Forth CPU and its iCE40 SwapForth version as compact designs, and recommend the Gameduino boards he created.

    Stats for nerds
    41HN people shared it
    22linked in comments
    813story points
    Apr 2025last shared
    2011people per year2025

    Top posts on HN

    1. 1
      The J1 Forth CPU
      19 people · 524 points · first shared 2010 · 54 comments on HN
    2. 2
      A reasonably speedy Python ray tracer
      5 people · 164 points · first shared 2016 · 47 comments on HN
    3. 3
      Show HN: Compressed directories on Linux
      1 person · 70 points · first shared 2017 · 38 comments on HN
    4. 4
      J1a SwapForth built with IceStorm
      9 people · 37 points · first shared 2015 · 4 comments on HN
    5. 5
      J1: A Small Forth CPU Core for FPGAs [pdf]
      5 people · 5 points · first shared 2020 · Discussion on HN
    6. 6
      CHIP-8: 40 Games on an Arduino Uno
      1 person · 3 points · first shared 2015 · Discussion on HN
    7. 7
      Show HN: Batch color correcting images
      1 person · 3 points · first shared 2017 · Discussion on HN
    8. 8
      Show HN: Crowd-funded Arduino video game adapter in FPGA
      3 people · 2 points · first shared 2011 · 1 comments on HN
    9. 9
      Gameduino 2: this time it’s personal
      3 people · 1 points · first shared 2013 · Discussion on HN
    10. 10
      Gameduino: a game adapter for microcontrollers
      1 person · 1 points · first shared 2011 · 1 comments on HN

    What HN people wrote when they linked it

    • nickpsecurityMar 2016

      I still doubt it's better at reducing complexity because that stuff is horrific in RTL. I can express it with a parallel programming language with ease. A parallel programming language with macros and automatic placement onto cores/DSP's would be even easier. Describe it, compile, and it probably runs. With hardware, I'm looking at several more layers of verification, testing, material checks, and so on.

      High-level synthesis tools on the other hand might make your claim true. They're a combo of HW and SW languages.

      "A simple example of such would be a dedicated Forth processor plus a Forth implementation. They two together are often much simpler than, say, a standalone Forth implementation for x86.
      "

      Simpler for who? The person implementing both a Forth implementation and a x86 processor? Or the person just implementing a Forth on x86? I've seen Forth implementations in SW. They're trivial. Compilers, libraries, and hardware do all the heavy lifting. I'll put it to the test, though, as I feel you might have picked a good example.

      J1 Forth CPU Verilog code
      http://excamera.com/files/j1demo/verilog/j1.v

      eForth assembler for Z80 & such in few assembly instructions
      http://www.figuk.plus.com/4thres/systems.htm

      Forth interpreter in Ada (1985)
      http://www.forth.com/archive/jfar/vol3/no2/article7.pdf

      Maybe it's just that I don't know Verilog. However, the Verilog code looks more like the assembler in second link. It's like a pile of gibberish. The Ada code is very…

    • drivers99Aug 2022

      I ran out to Barnes & Noble and bought your book right after seeing your post and seeing one nearby that had it in stock. (Amazon was going to take a couple weeks to send it. Actually some other company was the sender. Weird. Also I didn’t notice you had it online but I like having the book and paying you anyway. :) )

      So I picked up the book Thursday and finished the basic ray tracer Friday :) Not counting chapter 5 of course so there’s a lot more that I can add from here but it’s made me interested in multi-processing to make it faster, (mine is in unoptimized Python currently, using pygame to have a canvas/window and calling it for each pixel), maybe using GPU shaders to do it (never used those before), and learning about techniques other people are using[1][2] (from YouTube etc), and going down the rabbit hole of old CGI animations from the last 50 years[3].

      Looking forward to the second half of the book this weekend. I have written a basic renderer before. I did an independent study class in college and I wrote a stereoscopic one for the iGlasses VR headset[4] in the 90s (you just have to draw using two cameras and interlace the images).

      [1] https://youtu.be/A61S_2swwAc “NamePointer - I made a better ray-tracing engine”

      [2] https://excamera.com/sphinx/article-ray.html “A reasonably speedy Python ray-tracer”

      [3] https://youtu.be/WV4qXzM641o “The Compleat Angler (1978)” Ray tracing animation with refraction, rippling water, etc. from 1978!

      [4]…

    • _0ffhDec 2011

      Unfortunately the question is, strictly speaking, unanswerable.
      The best one could do is come up with a specific design and estimate the number of gates needed, and then one couldn't be sure exactly how suboptimal the design in question is, regarding gate count.
      One of the most basic design choices is probably how much and which work to do using dedicated logic, and how much to do using general purpose logic and microcode.
      One may get an idea of the order of magnitude of gates required by taking a minimal CPU core (say, the j1 core from http://excamera.com/sphinx/fpga-j1.html), writing a minimal lisp interpreter on that core, and adding the gates needed to store the interpreter to the number of gates used for the core. This is left as an exercise for the reader.

    • adastra22May 2022

      Well there's an active community of people writing their own operating systems. Why do that when Linux is available? I don't think a further reason is required for the hobbyist.

      But there are various actual products which result from efforts to create a minimal forth that are interesting. One of my favorites is the J1 CPU: https://www.excamera.com/sphinx/fpga-j1.html

      Also I think many of these personal forths have explored interesting areas of programming language design, and when I have read about those which have been made public I often learn something new. It's like code poetry.

    • watmoughOct 2017

      Huh? There's loads of cheap dev kits for a few 10's of bucks on eBay.

      Example: http://www.ebay.com/itm/ALTERA-FPGA-Cyslonell-EP2C5T144-Minimum-System-Learning-Development-Board-/401255830236?var=&hash=item5d6cb612dc:m:m-tMy5MOZfxAvfiGVkWVMGg

      This uses the EP2C5T144. Some basic getting started info here: http://www.leonheller.com/FPGA/FPGA.html [Leon Heller]

      You can run a free copy of Quartus and use it to run Verilog / VHDL cpus, or anything else you want to do.

      Same applies to the Xilinx FPGAs.

      A really cool example project: http://excamera.com/sphinx/fpga-j1.html

    • entaloneralieNov 2022

      This talk covers some of the design decisions that lead to the design of the uxn stack machine.

      https://vimeo.com/771406693#t=85m30s

      C source code of the VM, 100 lines.

      https://git.sr.ht/~rabbits/uxn/tree/main/item/src/uxn.c

      An example assembly file for that stack machine

      https://git.sr.ht/~rabbits/uxn/tree/main/item/projects/examples/exercises/fib.tal

      Another stack machine designed to target FPGA with an elegant design, mentioned in the talk above.

      https://excamera.com/sphinx/article-j1a-swapforth.html

    Related

    FPGA.orgfpga.org16 people

    GRVI Phalanx joins The Kilocore Club

    FPGA.org
    Publication · last shared 2026
    Dave Griffithspawfal.org50 people

    Fluxus – A 3D game engine for live-coding worlds into existence

    Dave Griffiths
    Personal · last shared 2022
    Justine Tunneyjustine.lol251 people

    Show HN: Redbean – Single-file distributable web server

    Justine Tunney
    Personal · last shared 2026
    Clifford Wolfclifford.at80 people

    Project IceStorm: open-source toolchain for Lattice iCE40 FPGAs

    Clifford Wolf
    Personal · last shared 2021
    Linaro Bloglinaro.org47 people

    Linux on Snapdragon X Elite: Linaro and Tuxedo Pave the Way for ARM64 Laptops

    Linaro Blog
    Company · last shared 2026
    JeeLabsjeelabs.org21 people

    Low-end Linux

    JeeLabs
    Personal · last shared 2025
    James Hagueprog21.dadgum.com472 people

    Things That Turbo Pascal is Smaller Than

    James Hague
    Personal · last shared 2026
    CPU Shackcpushack.com80 people

    The Soviet 1801VM2 LSI-11 Processor

    CPU Shack
    Publication · last shared 2026