Pinned Repositories
ESP32_minimal
Minimal code for a 'bare metal' ESP32 program which does not use ESP-IDF. Really just a learning exercise because the ESP-IDF is Apache-licensed and quite good; I just had trouble finding lower-level information about the chip.
game_and_watch_fun
Repository containing code to run on a Nintendo Game and Watch.
GD32VF103_templates
A few minimal bare-metal "hello, world" programs to help learn about the GD32VF103 RISC-V microcontroller without relying on a particular framework.
KiCAD_STM32_Example
Example project containing a KiCAD project for a basic STM32 breakout board.
min_freertos_blink
An example FreeRTOS project for STM32 microcontrollers. I'm hoping this can be a simple starting point for learning about using a realtime operating system.
STM32_CPP_Inheritance
Example firmware to run an SSD1306 display as a demonstration of C++ inheritance in an embedded application on an STM32 ARM Cortex-M chip.
STM32_LiPo_Example
Simple lithium battery-powered STM32 board using an MCP73831 for charging.
STM32F0_minimal
Absolute minimum code required to boot an STM32F0 chip.
STM32F0_minimal_C
Minimal code required to boot an STM32F0 chip into a C 'main' method.
STM32F723E_QSPI_Example
Example program demonstrating how to access Quad-SPI Flash chips using an STM32F723E Discovery Kit.
WRansohoff's Repositories
WRansohoff/game_and_watch_fun
Repository containing code to run on a Nintendo Game and Watch.
WRansohoff/STM32F723E_QSPI_Example
Example program demonstrating how to access Quad-SPI Flash chips using an STM32F723E Discovery Kit.
WRansohoff/rv32i_nmigen_blog
Minimal RISC-V RV32I CPU design as described in a companion blog post.
WRansohoff/STM32_UART_Examples
A few simple example projects demonstrating how to use some core features of STM32 UART peripherals.
WRansohoff/nmigen_getting_started
A few basic designs to demonstrate the syntax for using nMigen's basic features.
WRansohoff/STM32F7_ramloaders
A couple of examples demonstrating how to run ephemeral programs in RAM and use Tightly-Coupled Memories on an STM32F723E Discovery Kit.
WRansohoff/nmigen_ice40_spi_flash
Simple test application to read data out of an iCE40 FPGA board's SPI Flash chip.
WRansohoff/RFM95W_LoRa_test
Minimal STM32 application to demonstrate sending and receiving messages over LoRa using a HopeRF RFM95W radio module.
WRansohoff/STM32_quickstart
Another 'quickstart' recipe for starting a new STM32-based GCC project. I've tried a few different project layouts for bare-metal C applications targeting Cortex-M microcontrollers, and this repository is an effort to reduce the common pain points that I encounter by minimizing external dependencies and auto-generating tedious compenets like the vector table.
WRansohoff/STM32F723E_FMC_Examples
A few examples showing how to configure the STM32 external memory controller to communicate with the PSRAM and display on an STM32F723E Discovery Kit.
WRansohoff/nmigen_rv32i_min
Minimal work-in-progress implementation of a RISC-V CPU using nMigen. It supports the core RV32I instructions, but it is too large and still in-progress.
WRansohoff/STM32x0_timer_example
Example project demonstrating how to set up the core system clock and use it to drive a timer peripheral to blink an LED every second on an STM32F031K6 or STM32L031K6
WRansohoff/STM32_ExternalMemory
Minimal example demonstrating how to map external memories to an STM32's internal memory space using its Quad-SPI and "Flexible Memory Controller" peripherals.
WRansohoff/riscv-tests
WRansohoff/girih_tiles
CAD drawings of Girih tile shapes, with what I believe are accurate proportions
WRansohoff/heartbeat_asic
Example repository containing a simple counter, for use with the SiliconCompiler ASIC build system.
WRansohoff/ice40_blink
Simple "hello world" FPGA application to test running an nMigen design on an iCE40 chip.
WRansohoff/inkscape_purge_small_paths
Inkscape extension to remove small shapes from a vector image.
WRansohoff/Magrat_v0
Design files and test firmwares for a single-core STM32H7 board with extra RAM and a side of Flash.
WRansohoff/MAX31855_breakout
Simple OSHW breakout board for a MAX31855 thermocouple amplifier chip.
WRansohoff/nmigen
A refreshed Python toolbox for building complex digital hardware
WRansohoff/nmigen-boards
Board and connector definition files for nMigen
WRansohoff/nmigen_alu_test
nMigen implementation of the simple ALU described in MIT's free 6004.1x online edX course. It's been a few years since college, so I'm brushing up on digital logic concepts. Eventually, I'd like to implement a minimal RISC-V CPU in an FPGA without writing any Verilog or VHDL code.
WRansohoff/nmigen_cpu_test
Work-in-progress implementation of the educational "Beta CPU" from MIT's free online 6004.2x edX course, using the nMigen Python library as an HDL.
WRansohoff/OpenFPGA
An Open-source FPGA IP Generator
WRansohoff/openlane
NOTE: The master branch is frozen for OpenMPW2. Please direct any PRs to the develop branch. :: OpenLANE is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, Fault and custom methodology scripts for design exploration and optimization.
WRansohoff/OpenROAD
OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
WRansohoff/OpenROAD-flow-scripts
WRansohoff/stlink
stm32 discovery line linux programmer
WRansohoff/TwootBookGram
Simple demonstration of how to deploy a scalable web app which serves a small AI language model using cheap serverless cloud functions.