dwrr daniel rehman's website

welcome to the personal website of Daniel Rehman! here you can find many of my projects and creations, including my music, art, code projects, poetry, and much more! feel free to explore around, and i hope you enjoy and/or find it useful or interesting to you!

this website was written on 1202602253.152908 by dwrr. everything (that is created by me) on this site is licensed using Creative Commons Attribution 4.0 International (CC-BY).

dwrr about me!

Daniel Rehman, aka me!

Hi I'm Daniel, nice to meet you! I'm studying computer science at Washington State University, and have a strong background in low-level programming and firmware/hardware. I've used C for around 13 years, and also enjoy writing in assembly languages like RISC-V and ARM64.

In my free time, I love to play classical/jazz piano, and improvise and compose my own music as well. Feel free to give some of my works a listen if you're curious. I also love to write poetry, and make drawings, and these are also available for reading/viewing here too.

(This site was written in pure HTML/CSS and deployed using Surge and Cloudflare.)

dwrr projects!

here are some of the more general projects which i've been working on, or have completed. some of them are also partly software projects, but usually with some other focus as well. some of them are bigger than others here.

dwrr my universe algorithm project!

this page will contain all the information on the universe algorithm project, including the youtube playlist, as well as all notebooks and written documents, articles, or papers on it.

dwrr my binary language project!

this is a project which aims to create a spoken human language which uses bits (0's and 1's) for maximally efficient precise communication between humans, and/or computers. the language is designed in a way that allows very dense communication while still being relatively simple to learn/understand, and parse for humans.

a full document specifying the grammar and current possible lexicon of the language is given in the above "spec" link.

dwrr my led display project!

this is a stub for the led display project, which i have been working on constructing for about a year or so. the project is a 1,620-LED (36 by 45 active matrix) low-power wall-sized (30inch by 40inch) display constructed from breadboards, plywood, and aluminum. it uses two of the MSP430FR5994 microcontrollers, and also has 18MB of external FRAM and SRAM, as well as a cluster of Pico 2 RISC-V boards for additional compute power.

dwrr my 36-key keyboard project!

this is a keyboard project i made on 2103313.130405, which is a 36-key ortholinear keyboard using the Pico RP2040 microcontroller. it has a custom PCB design, and custom arduino firmware to allow for multiple user key-layers, allowing for ergonomic typing with a few number of keys compared with traditional keyboards. the keyboard hardware is hotswappable for the key switches (which uses brown cherry MX switches currently) as well as for the MCU, which connects to the board using 0.1inch female headers. theres optionally also a spot for 4 small OLED displays, which could be used to display helpful information, if i ever get around to writing the firmware to drive those displays.

for now, i've just been using the keyboard primarily for gaming, and occassionally typing journal documents. no case for it yet, hopefully that will come later lol.

dwrr my solar supercapacitor charger project!

this is a custom PCB project which aims to store the energy gathered from a 100W solar panel i have, into 300 farads of 2.7v rated supercapacitors, and then step up this voltage to 5v so that it could in theory be useful powering USB-C devices. on the custom PCB, there is a wide-input-range buck converter (LMR51450), as well as two TPS61022 ultra-low-input boost converters, which step up the voltage to 5v for two USB-C ports.

in this version of the hardware, i kinda forgot to populate the CC termination resistors for the USB-C ports, so it wont actually initiate charging to some devices, however for powering things like raspberry pi pico boards, or other microcontrollers, like the ones found in my led display (which is primarily what i've used it for) it works very well for this.

The benefit of using solar panels and supercapacitors is that, unlike batteries which degrade over time, solar panels and supercapacitors can last for decades if handled well, and thus assuming the energy storage is enough to last through nighttime, the board effectively provides a limitless supply of 5v power! quite useful.

dwrr code!

these are a list of the software/coding projects which i've created over the years. some of them are bigger than others.

dwrr some other miscellaneous creations and useful files

this just contains a couple of useful files that are used in my projects every now and then, but which didnt exactly fit into their own projects.

dwrr my cross assembler software project!

this is a coding project which aims to create a cross-architecture assembler for the RISC-V (RV32 and RV64), ARM64, ARM32, MSP430 instruction set architectures. this assembler is rather unique in that it only provides the encoding formats of these ISA's, and the construction of actual instructions is done through user defined constants in the standard library and a powerful compiletime computational system, which also allows for effectively macros at compiletime.

the language uses only little-endian binary literals for all constants, and supports multiple embedded formats/targets as well, including the MSP430 txt format, and UF2 format for programming the raspberry pi pico microcontroller boards. it also is able to generate a mach-o executable and object file directly without using the linker or lib-c, and outputting an ELF executable and object file is also planned.

the compiletime system is also nice enough to use, that the language can be used as an interpretted language just by itself, without generating an output file at all. also the entire cross-assembler is written in much less than 2000 lines of code.

dwrr my optimizing compiler software project!

this is a coding project which aims to create an optimizing compiler for the RISC-V instruction set architecture, made primarily as an earlier precursor to the cross-assembler project, and then later adapted to be used as a final project for my master's. the project employs a somewhat unconventional frontend design, which is highly specalized based on the syntax of the language, which is c-like in some ways, but also quite different from c. feel free to see the language specification for more information!

dwrr my text editor software project!

this is a coding project that is a simple command-line/terminal/TUI text editor, similar to vi or nano, which is the editor that i use for programming. the entire source code is much less than 1000 lines, and the feature set has been fine-tuned to minimize the amount of lines of code, while still maximizing the usability. the editor features a full undo-tree system, execution of shell commands, system-clipboard functionality, line wrapping, an ergonomic input system, and several more features.

it was made with the Workman keyboard layout in mind (as thats what i use all the time), however it can also be adjusted for use with QWERTY layouts instead, and its also trivial enough to adapt it to other layouts. the layout matters, as the most frequently used keys/commands are mapped in a particular physical location on the keyboard always- however this is easily changeable in the code if you wish to use a different mapping.

dwrr my shell software project!

note to myself: this page is a stub! fill me with information soon plz!!!

dwrr my music utility project!

note to myself: this page is a stub! fill me with information soon plz!!!

dwrr my text adventure game project!

note to myself: this page is a stub! fill me with information soon plz!!!

dwrr writing!

here you can find my english poetry, blog posts, and random writing and thoughts on various topics.

dwrr poetry!

here is a list of many of the poems which i have written over the years.

dwrr music!

here you can find my piano and organ improvisation recordings, as well as my compositions and other things i've made in music.

dwrr piano recordings!

here are some of my piano improvisation recordings, of which there are many. all of these are public links to my google drive which contains the musical pieces, so i dont have to upload the actual files to the website itself.

dwrr blog!

these are just stubs for actual blog posts i might want to write at some point! work in progress lol.