My Config

As a student and hobbyist, I use a lot of hardware and software to get stuff done. I collectively refer to these things as "my config." As a student, I find it fascinating to learn about other people's setups, so I hope this is interesting to others. Note this is my current setup as of the date of this blog post, but as I learn new tools and work on different projects, my config will most likely change.

Desk Work

  • Two Screens: Dell 24 Inch Ultrasharp U2415
    • I acquired one of these screens for free while someone was moving and getting rid of theirs. I loved it so much that I bought another. The size is big enough, and the tiny bezels make it good for a dual monitor setup.
  • Keyboard: Unicomp Model M Replica
    • I am unsure if Unicomp still makes my specific model, but it has been my desk keyboard for at least four years. I am thinking of switching to a more compact and modern mechanical keyboard soon for portability and customizability for things like keycaps.
  • Webcam
    • Purchased for remote teaching and college during COVID 2020 summer; it has served me well.
  • Desk Microphone: FIFINE Studio Condenser USB Microphone + Desk Boom Arm
    • Purchase also motivated for remote teaching during COVID 2020 summer. Good experience so far, no issues, and good sound quality for remote teaching.
  • USB Hubs
    • Anker USB C Hub, PowerExpand 8-in-1
      • Used for main peripherals like screens and keyboard
    • Sabrent 7-Port USB 3.0 Hub
      • For any non-essential peripherals, handy for working with embedded hardware stuff and need to quickly plug and unplug devices

Compute Hardware

  • Laptop: Dell Vostro Notebook 7500
    • After my old HP laptop battery failed in the middle of a school semester and I had a terrible experience with HP customer support, I bought a decent enough spec'd out dell laptop with an Nvidia GPU since I knew I would be running some machine learning and hardware-accelerated work from time to time.
  • Samusng T7 500GB Portbale SSD
    • Use exclusively for music production stuff, where I keep all my samples and kits and racks
    • Had issues with Abelton crashing when prevising samples; definitely was an issue with Ableton trying to read on index sample files from the drive; this since has automagically resolved itself after messing with a bunch of stuff

Music
I like to produce music as one of my hobbies in my free time. I don't have much physical hardware since I do most of my production in software, but that may change as I do more DIY music synthesis stuff projects.

  • Abelton Live
    • Many opinions about which digital audio workstation (DAW) is the best software for producing music. I heavily depend on samples and want to easily manipulate, stretch, slice, and transpose samples in a way that is so simple it can be used as a creative tool. Abelton, in my opinion, has the best tools for sample manipulation, so naturally, I settled on it as my DAW of choice. I also find the timeline mode and effects+insutmetns workflow simple to use and lots of flexibility for automation, macros, and grouping of effects.
  • CableCreation USB Audio Adapter External Sound Card
    • This is some random small USB to 3.5 mm. mic and speaker adaptor so I can record external sounds into my laptop easily. I'm not really chasing sound quality here, so I don't really care that it's a super cheap audio interface.
  • Akai Professional MPK Mini MKII – 25 Key USB MIDI Keyboard Controller
    • The perfect form factor for my use with the small keyboard and pads for sample playback. I like that I can easily fit it on my desk and store away when I don't need it.
  • Werkstatt-01 + CV Expander
    • Funny story, I acquired this for free from participating in the Georgia Tech Moog hackathon in 2020. Anyone who entered to participate (and actually went to pick it up), I think, received one as well. I had a fun week tinkering with it and managed to get a USB MIDI-to-CV converter working on an Arduino so I could send note CV and other midi channel CV to the Werkstatt and make fun sounds. I ended up submitting that to the hackathon so they thought I actually did something useful with the synth.

Home Automation

  • RasberryPi + Home Assistant
  • Smart lights and plugs

Web Dev
For quick prototypes and demos of interactive web apps, I usually go with my own hand-rolled stack of tools I know well.

  • HTML / CSS
    • I typically copy some HTML boilerplate I have for simple projects
    • I also have some one-off CSS files I copy in and @import() that provide me some handy styling if needed. I know this is the whole point of other frameworks like Boostrap or Tailwind, but I want something that works and is quick and familiar in most cases.
      • A file with all the tailwind colors as CSS variables
      • A file with simple markdown styling
      • A file with basic HTML table styling
  • Javascript
    • For most web prototypes and demos, I have some JS frameworks I like to use
      • JQuery for straightforward dynamic content (although these days, I can effectively replace a lot of stuff in JQuerry with modern JS)
      • Leaflet.js for custom mapping and geospatial data
      • Chart.js for simple plotting
      • D3.js for complex plotting or data-oriented visuals
    • For complete Javascript web app frameworks, I'm only familiar with Vue.js (I've tried learning React, and it didn't click as well as Vue) (also, I know I should try Svelt at some point, I have heard good things)
    • I also use Firebase for any prototypes and demos that require user authentication and a simple database
  • This Blog
    • I used the 11ty static site generator to build this website. Compared to other popular solutions like Jekyll and Hugo, I found 11ty the most intuitive and customizable static site generator.

Machine Learning + Data Science + Scientific Computing

FPGA Boards

  • Arty A7-35 Board
    • Xilinx Artix-7 FPGA (XC7A35T)
      • 5,200 Luts
      • 400 Kb Distributed RAM
      • 1800 Kb Block RAM
    • Board Features
      • USB / UART
      • Ethernet Phy
      • 4 PMOD
      • Header I/O Pins
      • 256MB DDR3L SDRAM
      • Quad-SPI 16MB Flash
      • Some LEDs, Switches, and buttons
    • I keep around this handy Xilinx "fabric-only" board to prototype designs in fabric and not have to worry about an embedded processor and all that complexity. The extra bells and whistles that the board comes with also make it simple to prototype. One could also consider this a "small" FPGA relative to other FPGA products typically sold by Xilinx. Hence, it's an excellent way to place a "low-resource" constraint on myself when designing hardware algorithms.
  • iCEBreaker Board
    • Lattice iCE40UP5k FPGA
      • 5280 logic cells (4-LUT + Carry + FF)
      • 120 Kbit dual-port block RAM
      • 1 Mbit (128 KByte) single-port RAM
    • Board Features
      • 16 MB quad SPI DDR Flash (aka QSPI-DDR flash)
      • USB / UART
      • 3 PMOD ports
      • Some LEDs and Buttons
    • I bought this board to get into open-source FPGA tools and workflow (yosys, nextpnr, icestorm, ...). I very recently got this board, but my experience so far has been great, and I am excited to use it going forward with my side projects. I also like the integration of tooling into nmigen. This lets you run the entire tool flow for your nmigen design targeting this board all inside Python. I plan to use this board to work on a side project focusing on building ML accelerator designs directly from software models, all using nmigen and Python machine learning libraries.