Thanks to visit codestin.com
Credit goes to github.com

Skip to content
View cnlohr's full-sized avatar

Sponsoring

@iakat
@dooly123
@bitbank2
@frillweeman
@mitxela

Organizations

@magfest @Unit-e @cntools

Block or report cnlohr

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
cnlohr/README.md

These are some of the projects I've started, with an eye on minimizing complexity of the whole tech stack, many of which are maintained by a community of like-minded individuals, DM me at cnlohr for an invite to our discord server:

Single-file header libraries:

  • rawdraw - graphics (Opengl/Raw) and input for Android, WASM, Windows, Linux without the bloat
  • mini-rv32ima - RISC-V emulator in about 1,000 lines of code. Able to boot Linux
  • sfhip - Extremely memory tight immediate mode IP library for IPv4, TCP/IP, UDP, ARP, and DHCP
  • fix32_fft - modern C fixed-point FFT library geared for 32-bit systems, like ARM and RISC-V
  • vpxcoding - VPX arithmatic coding library for bit compression with a tiny code/memory footprint
  • cnrbtree - Basically a c++ <map> or Dictionary in C, as a single file header
  • heatshrink-sfh - Extremely simple implemenation of heatshrink for decompressing data in <600 bytes
  • rtgz-tinf-util - Very small port of tinfl, a gzip decompressor in a header only library
  • miniosc - Minimal OSC (Open Sound Control) library for C with support for platform-independent sockets
  • tsopenxr - Everything needed to build OpenXR VR apps for PC or Quest in one header file
  • csgp4 - single-precision, SGP4 orbital mechanis for shaders or microcontrollers

Other libraries and tools:

  • ch32fun - ch32v microcontroller build system, targeting compactness, development speed and openness
  • rawdrawandroid - build android apps in c, without any java, with 1 second development cycles
  • h264fun - Raw PCM H.264 video encoding streams with support for RTMP and RTSP
  • lamenet - bad network simulator, to simulate a bad network connection
  • coefficient decompose calculator - Compute constant multiplies decomposed to optimal/minimal bit shifts
  • microclockoptimizer - clock tree calculator / solver for computing microcontroller clock trees
  • cnping - monitor live network conditions, gain insights about poor network performance in realtime
  • colorchord - realtime chromatic sound-to-color conversion
  • minimdnsd - small, ultra low overhead Linux MDNS server
  • nosdk8266 - Extremely lightweight ESP8266 SDK
  • pi_tpi - AVR TPI programming interface for Raspberry Pi GPIO
  • x32-ws2812-usbhs-breakout - 32-simultaneous-output WS2812B driver using USB HS
  • cilbox - C# CIL emulator/scripting sandbox for unity, focused on speed and simplicity

Various demos:

  • channel3 - NTSC/PAL VHF video transmission from the ESP8266 via IO pins
  • espusb - use the esp8266 as a USB device, by bit-banging GPIOs to enumerate as a low-speed USB device
  • rv003usb - Bit bang USB low-speed on the ch32v003 (fully featured)
  • ch32v003_3digit_lcd_usb - bit banged 3-digit LCD driver for the ch32v003
  • oledscope - using OLED displays as 15kPPS vector scope
  • ch32v00x_ntsc - NTSC composite output on ch32v003/006, may not work on digital TVs
  • lolra - Broadcast 900MHz LoRA messages on microcontrollers without using radios over a kilometer
  • airspydump - Dumping raw IQ samples from AirSpy SDRs for narrow time analysis
  • Badder Apple (TODO)
  • rtl8153_userspace - RTL8153, GbE to USB via userspace from Linux or Android for raw packet access
  • cnixxi - use a ch32v003 as a high-voltage flyback and control a nixie tube, with PWM digitally
  • esp32s2-cookbook - esp32-s2 experiments + tools and non-IDF sdk
  • ethertiny - bit bang ethernet Base 10-T on an attiny85
  • ch32v00x_ntsc - software bit bang NTSC video with the ch32v003 or 006
  • starcounter - example using olive, ffmpeg and github APIs to animate user's stargazers over time

Documentation:

  • cnlohr_tricks - tricks&tricks I've learned over the years about electronics, programming and engineering
  • cntools - my incomplete library for various header-only and other libraries. (Mostly uncategorized)
  • cnhardware - kicad footprints and all my random hardware projects
  • halnoslides - my talk on how to write a embedded development environment from scratch
  • shadertrixx - lots of discussion on writing shaders for unity
  • Radios are just Microcontrollers in disguise - Hackaday talk on TX and RX RF signals without radios
  • CNLohr's Assembly Notes - My assembly notes (also from my 2022 Hackaday talk)

VR/Graphics

  • voxeltastic - render 3D volumes with path tracing in-browser, or in vr!
  • cnovr - an OpenVR playground with hot-compile-and-reload code
  • vrc-rv32ima - a HLSL implementation of mini-rv32ima, to emulate processors in shaders on VRChat
  • openvr_overlay_model - openvr stereo overlay example
  • openvr-screengrab - minimal example to create DirectX contexts in pure C and grab SteamVR screengrabs
  • slapsplat - VRChat-friendly Gaussian Splat renderer for VR, using ordinal sorting

How to support

While I cannot accept donations, favors or work at the moment, your money may go well with the following individuals:

  • MonteMonte for their continued work on ch32fun and supporting projects Kofi Link
  • iakat for their work on adsb.lol, and open ADSB platform. Github Sponsorship
  • Dooly123 for their continued work on Basis, an open source VR social framework

Sandbox testing:

Popular repositories Loading

  1. rawdrawandroid rawdrawandroid Public

    Build android apps without any java, entirely in C and Make

    C 4.2k 256

  2. mini-rv32ima mini-rv32ima Public

    A tiny C header-only risc-v emulator.

    C 2k 158

  3. channel3 channel3 Public

    ESP8266 Analog Broadcast Television Interface

    C 1.6k 166

  4. espusb espusb Public

    Software-only ESP8266 USB Device

    C 1.5k 231

  5. ch32fun ch32fun Public

    Open source minimal stack for the ch32 line of WCH processors, including the ch32v003, a 10¢ 48 MHz RISC-V Microcontroller - as well as many other chips within the ch32v/x line.

    C 1.3k 224

  6. lolra lolra Public

    Transmit LoRa Frames Without a Radio

    C 872 60