HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
greatscottgadgets
luna
Python2020–2021
greatscottgadgets / luna

luna

Amaranth HDL framework for monitoring, hacking, and developing USB devices

2Distinct people
3Mentions
0Explicit recommenders
1.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Amaranth HDL framework for monitoring, hacking, and developing USB devices

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2020-10-31 09:47:44 UTC to 2021-02-19 11:41:25 UTC. Weeks start Monday, UTC.

012020-10-26 00:00:00 UTC to 2020-11-02 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 262020-11-02 00:00:00 UTC to 2020-11-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-11-09 00:00:00 UTC to 2020-11-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-11-16 00:00:00 UTC to 2020-11-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-11-23 00:00:00 UTC to 2020-11-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-11-30 00:00:00 UTC to 2020-12-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-12-07 00:00:00 UTC to 2020-12-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-12-14 00:00:00 UTC to 2020-12-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-12-21 00:00:00 UTC to 2020-12-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsDec 212020-12-28 00:00:00 UTC to 2021-01-04 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-04 00:00:00 UTC to 2021-01-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-11 00:00:00 UTC to 2021-01-18 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-18 00:00:00 UTC to 2021-01-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-25 00:00:00 UTC to 2021-02-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-02-01 00:00:00 UTC to 2021-02-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-02-08 00:00:00 UTC to 2021-02-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-02-15 00:00:00 UTC to 2021-02-22 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsFeb 15

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Oct 262020-10-26 00:00:00 UTC2020-11-02 00:00:00 UTC101
Nov 22020-11-02 00:00:00 UTC2020-11-09 00:00:00 UTC000
Nov 92020-11-09 00:00:00 UTC2020-11-16 00:00:00 UTC000
Nov 162020-11-16 00:00:00 UTC2020-11-23 00:00:00 UTC000
Nov 232020-11-23 00:00:00 UTC2020-11-30 00:00:00 UTC000
Nov 302020-11-30 00:00:00 UTC2020-12-07 00:00:00 UTC000
Dec 72020-12-07 00:00:00 UTC2020-12-14 00:00:00 UTC000
Dec 142020-12-14 00:00:00 UTC2020-12-21 00:00:00 UTC000
Dec 212020-12-21 00:00:00 UTC2020-12-28 00:00:00 UTC000
Dec 282020-12-28 00:00:00 UTC2021-01-04 00:00:00 UTC000
Jan 42021-01-04 00:00:00 UTC2021-01-11 00:00:00 UTC000
Jan 112021-01-11 00:00:00 UTC2021-01-18 00:00:00 UTC101
Jan 182021-01-18 00:00:00 UTC2021-01-25 00:00:00 UTC000
Jan 252021-01-25 00:00:00 UTC2021-02-01 00:00:00 UTC000
Feb 12021-02-01 00:00:00 UTC2021-02-08 00:00:00 UTC000
Feb 82021-02-08 00:00:00 UTC2021-02-15 00:00:00 UTC000
Feb 152021-02-15 00:00:00 UTC2021-02-22 00:00:00 UTC101

What Hacker News says

3 sources
I'm about 20kloc in to a (not public) nMigen project, including a UDP/IP stack, various peripheral drivers, a DSP pipeline, and some custom networking code. So far I think "do the advantages of being able to metaprogram outweigh..."is a resounding "yes", but I came to it with extensive Python experience so it feels like a very natural fit to me, and given how other attempts at embedded metaprogramming go (Tcl...) I'm not sure Python is easily beat. Being able to integrate with numpy for DSP work, pytest for simulation and testing, Python packaging (such as it is) for distributing modules and managing dependencies and versioning, and simulating inside Python too are all additional compelling advantages. nMigen is a pretty fledgling project so there aren't a ton of big projects in it yet, but for example Luna[0] (from the makers of the Hack
Read the rest
RF) implements a full USB stack including USB3 support, with enough abstraction that you can create a USB-serial converter inside your FPGA using two I/Os for full-speed USB and wire it into the rest of your project in about ten lines of Python[1]. [0]: https://github.com/greatscottgadgets/luna [1]: https://github.com/greatscottgadgets/luna/blob/master/exampl... Migen, the Python-based project nMigen is based off, has been around for longer and has some large projects, such as LiteX[2] which uses Migen to glue together entire SoCs, including peripheral cores such as GigE, DDR3/4, SATA, PCIe, etc, all written in Migen, and is pretty widely used. It also pulls in Verilog/VHDL designs (such as many of its CPU core choices) since it's easy to pull in those from the Python side. [2]: https://github.com/enjoy-digital/litex/
In Designing a RISC-V CPU, Part 1: Learning hardware design as a software engineer
What the hell, here are a bunch of half-baked ideas that I haven't made time for because I'm lazy and stressed out and exhausted. Would love to hear if any of these sound interesting. 1. Designing a protocol for an amateur radio cellular network. This started out with some spread spectrum experiments and an interest in low-probability-of-intercept (below the noise floor) communication. The idea I have now is sort of a cross between APRS and DMR using modern modulation techniques. The network would consist of rooftop "cells" with internet connections, and mobile transponders that communicate with those cells. There'd be some sort of callsign or key based addressing scheme and IP-like network topology discovery. Everything will be authenticated. I'd love to have an encrypted mode, but this seems unlikely unless the laws change, which also s
Read the rest
eems unlikely. 2. Open-source firmware or gateware implementation of a USB PD controller that supports entering/exiting alternate modes properly. Inspired by Kate Temkin's LUNA project [1]. I got the impression that PD was out of scope for LUNA, at least for the time being, but it would be really nice to have both a USB and PD stack that could be integrated onto a small, inexpensive chip without the proprietary mess. The motivation for this was wanting to design a split keyboard with a USB Type-C cable connecting the two halves instead of the usual TRRS cable, and discovering that USB alternate modes are a horror show. [1] https://github.com/greatscottgadgets/luna 3. Wi-Fi from scratch. This would essentially be a book (like Linux From Scratch) where you incrementally design the hardware needed to speak Wi-Fi, culminating in something that looks like Computer <-> Linux driver <-> FPGA <-> IQ modulator <-> antenna, allowing you to talk over 802.11g at one of the lower speed coding rates (BPSK or QPSK). 4. Firewalled IoT Hub. A Raspberry Pi that hosts an Wi-Fi AP for untrusted IoT devices. By default, clients on this AP can't see each other and can't access the Internet. The hub hosts a web interface on the primary network that allows you to send commands to your IoT devices, manage firmware updates, control network access rules, etc. 5. Discrete RISC-V CPU on a dinner-plate sized PCB, dressed up to look like a silicon die. Essentially Robert Baruch's LMARV-1 [2] in Monster6502 [3] form-factor. It would be neat to be able to design the CPU in an HDL and then use a yosys backend that can synthesize it as a netlist of either discrete transistors or 7400-style logic. After seeing Robert's design progress, this is starting to seem infeasible, but Olof Kindgren's SERV core is pretty tiny and might just fit. Other people have already discussed doing something like this [4]. [2] https://github.com/RobertBaruch/riscv-reboot [3] https://monster6502.com/ [4] https://twitter.com/BruceHoult/status/1310747415075459073 6. Low power Linux + Wi-Fi SoM. There's a power consumption gulf between microcontroller and application processor based embedded systems, and no good options if you want to add Wi-Fi to a project, don't want to consume a lot of power, and want a battle-hardened networking stack. I think a good solution to this problem might be to use a low-power application processor (like a Cortex-A7) and build a Linux system for it that is aggressive about sleep states and using DMA to transfer data from other parts of the system while the processor is asleep. The system would basically only wake up for mandatory housekeeping and to fire off network bursts. Like a Raspberry Pi, but instead of the default system image giving you a desktop, it'd give you a super minimal system that lends itself to running a single program with a standard, easy way to configure when to sleep/wake, what to buffer up while asleep, and when to trigger network events.
In Ask HN: What are you working on?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.