Sign in

James Smith

@loopj.com
386 followers 56 following 101 posts

British guy in the San Francisco Bay Area. Having fun with hardware, software and reverse engineering. Former co-founder of Bugsnag.

PostsRepliesMedia
James Smith @loopj.com · 11/09/2026
wtf natalie, insane! what else is on your bench waiting to stealth drop
011
Reposted by James Smith
Natalie @nataliethenerd.com · 10/09/2026
So I finally tested these boards I had sitting around my workshop for over a year
4596
James Smith @loopj.com · 08/09/2026
If you're building a portable or a custom controller, give it a try. Feedback welcome!
020
James Smith @loopj.com · 08/09/2026
Calibration and shaping get combined into a small precomputed transform at boot (or whenever they change). The poll loop just calls "apply", a handful of integer operations with no FPU required. Plain C99, no dependencies, no allocation.
120
James Smith @loopj.com · 08/09/2026
Shaping comes second, and is where the feel comes from. Inner and outer deadzones in axial or radial shapes, gamma response curves, and circular, square, or octagonal virtual gates, all in one struct you can change at runtime without recalibrating.
120
James Smith @loopj.com · 08/09/2026
Calibration comes first. Pickaxes runs a calibration session on the firmware that captures rest position, min and max travel, and orientation. Release the stick, push it in each direction, rotate it around the rim. Drive it from a homebrew app or a button combo on the device.
120
James Smith @loopj.com · 08/09/2026
Portablizers cobble together sticks and triggers from whatever fits the design: Joycon sticks, 3DS sliders, random ALPS sticks from Digikey. Pickaxes lets you tune the raw ADC values from these to match OEM feel, or to your own preference.
120
James Smith @loopj.com · 08/09/2026
I'm open sourcing Pickaxes, a C library for calibrating and shaping analog sticks and triggers on 32-bit microcontrollers, designed for people building portables and custom controllers. github.com/loopj/pickaxes
github.com
GitHub - loopj/pickaxes: Input calibration and shaping for sticks and triggers on 32-bit microcontrollers
Input calibration and shaping for sticks and triggers on 32-bit microcontrollers - loopj/pickaxes
182
James Smith @loopj.com · 08/09/2026
Hey, at least the deku tree isn't voiced by Jack Black
020
James Smith @loopj.com · 15/07/2026
Here's my open source implementation of a USB GameCube Controller Adapter, compatible with Wii-U, Switch, Switch 2, and Dolphin, powered by libjoybus - github.com/loopj/usb-ga...
github.com
GitHub - loopj/usb-gamecube-controller-adapter: Open-source 4-port USB GameCube Controller Adapter, a drop-in replacement for Nintendo's official adapter
Open-source 4-port USB GameCube Controller Adapter, a drop-in replacement for Nintendo's official adapter - loopj/usb-gamecube-controller-adapter
0215
James Smith @loopj.com · 01/07/2026
I like to call this "the project pile"
100
James Smith @loopj.com · 26/06/2026
When doing custom firmware update logic, you often need to parse a binary on a host before sending it to the device being updated. I wrote a portable C parser for Pi Pico binary_info, check it out here: github.com/loopj/pico-b...
github.com
GitHub - loopj/pico-binary-info: Portable Pi Pico binary_info parser
Portable Pi Pico binary_info parser. Contribute to loopj/pico-binary-info development by creating an account on GitHub.
030
James Smith @loopj.com · 30/05/2026
Designed a little 1U 10" bench power supply based around the RK6012 for my Rack Nook desk shelf (github.com/loopj/rack-n...)
040
Reposted by James Smith
YveltalGriffin @mks.bsky.social · 29/05/2026
GOWIN GW1NR-LV9 digital video development board
181
James Smith @loopj.com · 14/05/2026
The whole thing is really simple, honestly it's just a shelf on some 3D-printed legs, but having the rack rails allows for a lot of flexibility in how you set it up, and what you put on it. Let me know if you build your own!
020
James Smith @loopj.com · 14/05/2026
For the center rack module I installed a DeskPi 6.91-inch touch screen, and wrote a quick Flutter application for media control.
120
James Smith @loopj.com · 14/05/2026
For my desk, I went with a 5ft wide butcher block shelf, using 10" rack components in a 2U:1U:1U:1U:2U configuration. This allows for a wide cubby in the middle for tucking away my keyboard and mouse.
120
James Smith @loopj.com · 14/05/2026
I wanted a truly modular/customizable desk shelf, so I built one. Rack Nook is a desk shelf system, based around 10" or 19" rack components. It's open source, you can find everything you need to build your own here: github.com/loopj/rack-n...
182
James Smith @loopj.com · 05/05/2026
Working on a DIY monitor riser system based around 10-inch "half rack" modules. It uses cheap Penn Elcom (or compatible) steel rack rails, hardware store lumber, and 3d-printed legs. I'm building this form factor for my desk - 5ft wide with a cubby for keyboard/laptop in the middle.
240
James Smith @loopj.com · 04/03/2026
This guy built a semiconductor lab in a shed, absolutely insane, instant susbscribe www.youtube.com/watch?v=HfSO...
youtube.com
There’s a Class 100 semiconductor cleanroom inside this backyard shed.
YouTube video by Dr.Semiconductor
020
Reposted by James Smith
Bucket Mouse @mousebitelabs.bsky.social · 02/02/2026
As part of a collaboration with the incredibly talented @redherring32.com of Opentendo fame, we are happy to announce the OpenTendo-AGB (OpenGBA)! This is a fully open source recreation of the AGB-CPU-01 circuit board. (Repository is attached in the next post)
710931
James Smith @loopj.com · 30/01/2026
🚀 what did you choose as a replacement, are you self-hosting or using something like proton?
010
James Smith @loopj.com · 30/01/2026
For the protocol nerds out there, I managed to get the target response time (time between message being received from a console, and us sending the reply) down to ~3us on the Pi Pico backend. This is *very* close to the ASIC's response time in OEM controllers.
040
James Smith @loopj.com · 30/01/2026
Looking forward to seeing what people build with this! If you make something, let me know!
130
James Smith @loopj.com · 30/01/2026
This allowed me to do cool things like getting carried away and writing a full protocol-identical reimplementation of the official GameCube controller USB adapter on a Pi Pico: github.com/loopj/libjoy...
github.com
libjoybus/examples/pico-sdk/gcc-adapter at main · loopj/libjoybus
An implementation of the Joybus protocol used by N64 and GameCube controllers, for 32-bit microcontrollers - loopj/libjoybus
140
James Smith @loopj.com · 30/01/2026
The Pi Pico implementation is written from scratch using PIO and fits in a single state machine, so theoretically can support 8 simultaneous buses on a Pi Pico, or 12 (!) on a Pi Pico 2.
140
James Smith @loopj.com · 30/01/2026
This was initially extracted from the WavePhoenix project with the goal of being more broadly usable. This library supports "host mode", aka acting as an N64 or GameCube console and communicating with a controller, as well as "target mode" aka emulating a controller on the joybus.
130
James Smith @loopj.com · 30/01/2026
👋 just released the first public version of libjoybus, an open implementation of the Nintendo Joybus protocol used by N64 and GameCube controllers, with initial support for Pi Pico (1 and 2) and SiLabs Gecko microcontrollers: github.com/loopj/libjoy...
github.com
GitHub - loopj/libjoybus: An implementation of the Joybus protocol used by N64 and GameCube controllers, for 32-bit microcontrollers
An implementation of the Joybus protocol used by N64 and GameCube controllers, for 32-bit microcontrollers - loopj/libjoybus
12910
Reposted by James Smith
Weskmods @weskmods.bsky.social · 25/01/2026
I've finalised and released my Asrock BC-250 case, with multiple designs to hopefully tickle your fancy. Files can be found here: www.printables.com/model/157024...
06311
James Smith @loopj.com · 10/01/2026
www.youtube.com/watch?v=q0sU...
youtube.com
How I made the World's smallest PlayStation - PS1 Redesign Series Chapter 1
YouTube video by Secret Hobbyist
061
James Smith @loopj.com · 06/01/2026
Thanks for all your efforts on this project dude!
020
James Smith @loopj.com · 19/12/2025
010
Reposted by James Smith
BlueShell3D @blueshell3d.com · 09/12/2025
And they tried to tell me it shouldn’t be done! But behold! The #Cuboid! It’s rocking both the GCLoader and the Dual. And also, it’s shorter! SD card smartly tucks in the back above the optional handle.
6417
Reposted by James Smith
Sam Ettinger @settinger.net · 08/09/2025
A silly idea that turned out well! Most flex PCBs are cut by laser, not milled, so you can make perforations by adding incomplete edge cuts. These disks are for cleanly joining LED strips at different angles and different radii, and they break apart with just my fingers, no other tools.
A flex PCB with concentric copper rings and perforations so it can be torn into smaller arcs and wedges.The same flex PCB with one quarter of it torn out and turned into three curved connector pieces of different radii. The remaining board has a silkscreen that says "Do it [...] coward" in Jokerman font.
1297
James Smith @loopj.com · 12/11/2025
Everybody knows all the best cube shaped consoles have a handle
A steam machine console with a GameCube style handle
2395
Reposted by James Smith
YveltalGriffin @mks.bsky.social · 07/11/2025
Here's a quick hands-on overview of the Raspberry Pi CM0, a 39x33mm RP3A0 castellated compute module @raspberrypi.com and EDATEC have released exclusively for the Chinese market!
2222
Reposted by James Smith
Macho Nacho Productions @machonachomedia.bsky.social · 30/10/2025
Hey everyone! Today at 11am EST I will be Premiering a video that's been nearly one year in the making. I worked with some amazing modders and @pcbwayofficial.bsky.social to make this Project a reality and I really hope you all enjoy it! WATCH HERE 👉 youtu.be/0OMP8JvGWNY
youtu.be
I Built Microsoft’s $36,000 XBOX Prototype . . . And Made It Better!
YouTube video by Macho Nacho Productions
411726
Reposted by James Smith
Weskmods @weskmods.bsky.social · 25/10/2025
I've created a 3D model for the Sony A14/D14 BVM Bezel. If printed it should fit 1:1 with the stock unit. Files can be found here: bitbuilt.net/forums/threa...
29610
Reposted by James Smith
Kinell @sinistercinemastudios.art · 28/08/2025
This is some of the hardest shit I've seen in my life
7741881155
Reposted by James Smith
Technology Connections @techconnectify.bsky.social · 02/09/2025
*cracks knuckles* okay so you know how the media has a problem with taking snippets of scientific studies out of context and writing articles which mislead the public? now imagine a computer program is doing that when you ask it questions about scientific literature but also it makes stuff up.
804087735
Reposted by James Smith
Tube🍂Time @tubetime.bsky.social · 24/08/2025
i reverse-engineered the Raspberry Pi Compute Module 5! check it out at github.com/schlae/cm5-r...
board layout in KiCad with lots of layers and colors
934363
Reposted by James Smith
Natalie @nataliethenerd.com · 25/07/2025
Allison has made a Game Boy cart based around the RP2040. The RP2040 acts as a MBC! The documentation is freaking fantastic and Allison has released the files under the CC BY-NC-SA license abc.decontextualize.com
abc.decontextualize.com
Allison’s Bootleg Cart
18217
James Smith @loopj.com · 23/07/2025
This is straight fire
080
James Smith @loopj.com · 23/07/2025
you have to fill it completely with transparent resin once you are done or else
000
James Smith @loopj.com · 22/07/2025
If we can lobby GitHub to allow the KiCanvas embed on READMEs that would be my dream.
020
James Smith @loopj.com · 21/07/2025
KiCanvas is such a dope project (kicanvas.org), shout out to @thea.codes.
kicanvas.org
Interactive KiCAD file viewer
1192
James Smith @loopj.com · 10/07/2025
OpenOCD such a great tool but the development really is a hot mess. It is relied upon by so many projects, but still hosted on SOURCEFORGE. Every vendor is maintaining their own fork and nothing seems to get upstreamed. I don't know who the core maintainers are, but something has to change.
060
Reposted by James Smith
YveltalGriffin @mks.bsky.social · 10/07/2025
I'm stoked to have finally finished the Kawaii, a fully functional metal Wii keychain. It's way smaller than it looks— only as big as a Game Boy cartridge! ✨🟦✨ Huge thanks to @weskmods.bsky.social and @dingding-cnc.bsky.social for being awesome project partners!
7515199
Reposted by James Smith
Weskmods @weskmods.bsky.social · 09/07/2025
The Nintendo Kawaii, a collaboration project between myself, @mks.bsky.social and @dingding-cnc.bsky.social has finally been released fully open source! If you're brave enough to build one you'll have one of the most unique pieces of gaming jewellery ever. Info here: bitbuilt.net/forums/index...
426268
Reposted by James Smith
James Montagna @jpop.bsky.social · 15/06/2025
“As every game developer understands, the three basic food groups are Fritos, Cheetos, and Doritos.” — Satoru Iwata
744202783