Don't worry about formatting, just type in the text and we'll take care of making sense of it. We will auto-convert links, and if you put asterisks around words we will make them bold.
Tips:
For a full reference visit the Markdown syntax.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Thought I'd give the Espruino Jobs board a go to see if someone can give me a hand with a project I'm working on :)
I'm looking for a dev to write some code to scan a 4x16 matrix of keys using the Espruino MDBT42Q and an MCP23017 port expander chip.
The code should be split into a hardware handling module (communication with the MCP chip/driving the matrix/detecting state changes), and a metadata module (keeping track of if keys were pressed or released & how long they were pressed for, determining if they key was 'tapped' or 'held') which fires events.
The hardware handling module should:
The metadata module should:
Nice-to-haves:
I'm technical with a lot of commercial experience in Javascript & a decent amount with embedded code, but I'm super busy right now and some of this code is a little above my experience level (especially the NRF52 PPI). I can work with you to get this done or leave you to do it solo, whichever you prefer, and I'm pretty flexible on the requirements & implementation - if anything sounds crazy I'm open to a different approach :)
Reference:
Primer on keyboard matrix scanning: https://summivox.wordpress.com/2016/06/03/keyboard-matrix-scanning-and-debouncing/
Espruino NRF52 Programmable Peripheral Interconnect library: https://www.espruino.com/NRF52LL
Espruino MCP23017 library: https://www.espruino.com/MCP23xxx
Untested MCP23017 library with interrupt handling: http://forum.espruino.com/comments/14047043/