My pleasure. Thank you for giving it a try.
The code looks good.
By the way, the decimal values of those event codes are as follows. I'm not sure why evtest is skipping through the values. I haven't inspected the code of tsowell/btpt enough to make a call. but it looks like your and my installations are very similar, and I haven't had any issues.
Code:
BTN_EAST: 307
BTN_WEST: 308
BTN_GAMEPAD: 304
BTN_NORTH: 305
Please try after mapping functions to these values. If it doesn't work, I can have a look at your device.lua file.
Let me know how it goes.