u/Delicious_Syrup_6766

▲ 197 r/esp32

[ESP32][AWS IoT][OpenSource] A robotic hand that copies my gestures over the internet, so technically I can flip someone off from another continent lol :p

I built a 5-finger bionic hand that mirrors my real hand in (almost) real time. The catch: my hand and the robot hand never actually talk to each other. Everything goes through the cloud.

The pipeline is :

  • Webcam + MediaPipe tracks 21 landmarks on my hand at 30+ FPS and figures out how bent each finger is.
  • That gets turned into a finger-by-finger "power %" and published to AWS IoT Core over MQTT.
  • An ESP32 on the other end is subscribed to the same topic, parses the JSON, and drives 5 servos through a PCA9685 PWM controller over I2C.
  • Firmware is ESP-IDF + FreeRTOS (Dual-core Operation). One core handles WiFi/MQTT, the other handles the servos, and they talk to each other over a queue.
  • End-to-end latency is ~150ms (AWS US East <--> Michigan). No port forwarding, no VPN, the ESP32 dials out to AWS and waits.

Things I learned the fun way:

  • Servos draw way more current than an ESP32 can drive. Power them separately or there will be random reboots.
  • The thumb needed inverted control logic because thumbs are, anatomically, little contrarians.

It's all open source, hardware, firmware, the Python vision client, wiring diagrams, full setup guide.

Genuinely usable as a capstone project or a base for prosthetics/telepresence research, but mostly I just like playing Stone-Paper-Scissors with it now.

Git Repo: https://github.com/itsashishupadhyay/VisionControlledBionicHand

Bonus: if you've wanted,a working reference for the AWS IoT Device SDK for Embedded C or a hand-rolled PCA9685 driver library, this repo doubles as a decent starting point for both.

u/Delicious_Syrup_6766 — 3 days ago
▲ 129 r/nycrail+2 crossposts

If you use mac, you can get subway data on your terminal

Lived in NYC for years before moving away. Never got over the specific brand of platform rage, close laptop, walk over, tap in, doors close in your face, next one's in 14 minutes, Always 14.

So I built a tiny tool for Mac users who already live in the terminal. You type in the station, and it shows the next trains in both directions, for every line, color-coded by how panicked you should be. Can also plan an end-to-end route with transfers like the MTA Trip Planner, but on the terminal.

How to Install:

brew tap itsashishupadhyay/mta
brew install mta

Some Commands to try:

mta -s "Times Sq"         # next trains at every line, both directions
mta -s "bedfrod avr"      # fuzzy match, misspell, similar stations
mta -s "bay prkwy"        # 3 stations called Bay Pkwy. picker tells you which is which
mta -s "Penn Station" -d "DeKalb Av"           # end-to-end route plan with         transfers
mta -s "Times Sq" -d "Bedford Av" -v           # same but verbose. per-stop diagram, the prettiest output
mta -s "Bay Ridge-95" -d "Forest Hills" -t 10  # only show trains leaving 10+ min from now
mta -s "14 St-Union Sq" -l L                   # filter to one line. less scrolling
mta --help                                     # everything else

Repo + screenshots: https://github.com/itsashishupadhyay/NYC_MTA_Timetable

Please try it on your home/work/regular station, and please reply with what's wrong, missing, or weird.

u/Delicious_Syrup_6766 — 3 days ago

A NYC subway arrivals board for the terminal because reaching for my phone felt little too much (C++, single binary, no API key)

MTA subway rail Demo

Hi r/commandline 👋 long-time lurker, first-time poster :)

Quick story: I once lived in NYC, I work in Terminal, and the workflow of "leave desk → walk to station → realize I don't know when the next train is → unlock phone → wait for MTA app → squint → miss train" got old around year two. So I wrote a thing.

So I wrote mta, a single C++ binary that hits the MTA's GTFS-realtime feeds and prints next-train times the way the actual station signs render them: official line bullets, color-coded ETAs (bold red = now, green = catchable, yellow = soon, dim = far), grouped by direction so a busy hub like Times Square fits on one screen.

How to Install:

brew tap itsashishupadhyay/mta
brew install mta
mta -s "Times Sq"

Some Commands to try:

mta -s "Times Sq"         # next trains at every line, both directions
mta -s "bedfrod avr"      # fuzzy match, misspell, similar stations
mta -s "bay prkwy"        # 3 stations called Bay Pkwy. picker tells you which is which
mta -s "Penn Station" -d "DeKalb Av"           # end-to-end route plan with         transfers
mta -s "Times Sq" -d "Bedford Av" -v           # same but verbose. per-stop diagram, the prettiest output
mta -s "Bay Ridge-95" -d "Forest Hills" -t 10  # only show trains leaving 10+ min from now
mta -s "14 St-Union Sq" -l L                   # filter to one line. less scrolling
mta --help                                     # everything else

A few things I'm weirdly proud of:

- No API key MTA dropped the auth requirement in 2020, and apparently nobody told anyone.

- No daemon, no TUI loop It prints and exits, so it composes with tmux panes, shell pipes, Hammerspoon menubar scripts, whatever.

- Connected-complex resolution Searching `Times Sq` automatically pulls in the A/C/E platforms over at 42 St-Port Authority and labels them so you know where to walk.

- Routing too mta -s "Times Sq" -d "Bedford Av" runs Dijkstra over the live transfer graph and gives you 5 ranked options.

It's MIT, written in C++17, builds in ~30 seconds from source (on my Mac M3) if you don't want to brew it, or cross compile

Repo + screenshots: https://github.com/itsashishupadhyay/NYC_MTA_Timetable

Would genuinely love feedback, especially on the rendering at narrow terminal widths, and from anyone who knows GTFS-realtime well enough to tell me what I got wrong. Critique welcome; this is my first real OSS release, and I'd rather hear it now.

If you're in NYC: Please try it on your home/work/regular station, and please reply with what's wrong, missing, or weird.

Station data for Times Square

reddit.com
u/Delicious_Syrup_6766 — 11 days ago
▲ 24 r/cpp

A NYC subway arrivals board for the terminal because reaching for my phone felt little too much (C++, single binary, no API key)

Hi r/cpp 👋 long-time lurker, first-time poster :)

Quick story: I once lived in NYC, I work in Terminal, and the workflow of "leave desk → walk to station → realize I don't know when the next train is → unlock phone → wait for MTA app → squint → miss train" got old around year two. So I wrote a thing.

So I wrote mta, a single C++ binary that hits the MTA's GTFS-realtime feeds and prints next-train times the way the actual station signs render them: official line bullets, color-coded ETAs (bold red = now, green = catchable, yellow = soon, dim = far), grouped by direction so a busy hub like Times Square fits on one screen.

How to Install:

brew tap itsashishupadhyay/mta
brew install mta

Some Commands to try:

mta -s "Times Sq"         # next trains at every line, both directions
mta -s "bedfrod avr"      # fuzzy match, misspell, similar stations
mta -s "bay prkwy"        # 3 stations called Bay Pkwy. picker tells you which is which
mta -s "Penn Station" -d "DeKalb Av"           # end-to-end route plan with         transfers
mta -s "Times Sq" -d "Bedford Av" -v           # same but verbose. per-stop diagram, the prettiest output
mta -s "Bay Ridge-95" -d "Forest Hills" -t 10  # only show trains leaving 10+ min from now
mta -s "14 St-Union Sq" -l L                   # filter to one line. less scrolling
mta --help                                     # everything else

A few things I'm weirdly proud of:

- No API key MTA dropped the auth requirement in 2020, and apparently nobody told anyone.

- No daemon, no TUI loop It prints and exits, so it composes with tmux panes, shell pipes, Hammerspoon menubar scripts, whatever.

- Connected-complex resolution Searching `Times Sq` automatically pulls in the A/C/E platforms over at 42 St-Port Authority and labels them so you know where to walk.

- Routing too `mta -s "Times Sq" -d "Bedford Av"` runs Dijkstra over the live transfer graph and gives you 5 ranked options.

It's MIT, written in C++17, builds in ~30 seconds from source (on my Mac M3) if you don't want to `brew` it, or cross compile

Repo + screenshots: https://github.com/itsashishupadhyay/NYC_MTA_Timetable

I would appreciate feedback, especially on the rendering at narrow terminal widths, and from anyone who knows GTFS-realtime well enough to tell me what I got wrong. Critique welcome; this is my first real OSS release, and I'd rather hear it now.

If you're in NYC: Please try it on your home/work/regular station, and please reply with what's wrong, missing, or weird.

u/Delicious_Syrup_6766 — 12 days ago