I know I said I was done designing but I had a realization.
First, why am I obsessed with getting this damned ATMega32U4 to do what I want when I got the keyboard to work on an RP2040? Also, the 2040 has a ton of features that could be cool. Also also the RP2350 was just released this year and it has even more features than the 2040.
What I realized is that I could use the B version of the 2350 which has 48 GPIO pins exposed to drive my keyboard/trackpad combo. The pins leftover from connecting the Q20 keyboard will be routed to a 20 pin connector on the side of the Outlander for module connection. While it makes using the pins a bit more complex, the RP2350 also has three Programmable IO (PIO) blocks that each contain four state machines. These PIOs basically act as limited FGPAs that are specialized for communication protocols. I've seen demonstrations of people, say, programming VGA output using PIO, which is cool. Hypothetically you could program one of the 2350 cores to drive the keyboard and use the other to emulate some ancient decrepit protocol through a port last used widely 20 years before you were born. That, my friends, is cyberpunk as fuck.
As I was starting to get prototypes built I realized that the Raspberry Pi CM4 only has one USB port?! That upends my plans, as I wanted one device-wide port, one port for the cellular/GPS module, and one port for the keyboard/trackpad module. Fortunately, I found a solution on AliExpress: Waveshare makes a SIMCOM 7600G-H board that has the same form factor as the Pi Zero that also doubles as a USB hub. So, I'll connect the single USB port to the Waveshare modem, then the exterior port and the keyboard module to the waveshare.
Finally, I called uncle on directly using DSI to drive an LCD. Writing drivers is hard and is going to take longer than I thought to learn, so in the meantime I decided to order an HDMI to LCD board that's compatible with the 720x720 board I already have. This will preclude fucking about with DSI drivers and just give me something to work on while I slowly learn C.
Weirdly I'm doing better learning CAD than how to do the electronics, and I already have a prototype "case and screen" design. The LCD and keyboard are both taped into their slots, so it's far from functional. However, I'm very pleased that what I'm making will look very close to the idea I have in my head. Exciting!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.