I am a web software developer who is very interested in getting into prototyping small machines, specifically supporting my interest in peer 2 peer payments, ie bitcoin. I have experience with linux but not with small machines.
I am looking to try to prototype a small payment processing unit (think square’s basic model), but with a screen for basic functionality including qr code display and some text responses.
So could you please advise me on how to get started with both:
- functional design (this is easier for me)
- physical design (hardware, and casing)
Welcome to the forum! That’s fantastic, so the first question I’d have if I was designing this is what information is required in order to facilitate a transfer? i.e. does it need to read credit cards within a certain frequency band, does it need to be able to read magnetic strips, the chips on cards etc.
I quite enjoy using the traditional Engineering-V when I’m thinking about designing a system like this, I’d recommend starting with a simple problem statement describing exactly what you want the system to do for your own reference throughout the project.
(Retrieved from Systems Engineering and ITS Project Development | Organizing and Planning for Operations - FHWA Office of Operations)
Or maybe the system your describing is this entirely different to a traditional card reading system, and you just need to transfer account information from device to device in order to request a transfer through some broker with some form of key or authentication, then the question would become, which broker to use, how to securely store the keys and make the requests, and how would you securely transfer that information from device to device (sounds like you’ve considered QR codes).
A Pi Zero 2W ought to work fairly nicely for most of these applications with various breakouts for performing any required functions, Pi OS is basically just a Debian release specialised for the Pi’s hardware, although there should be plenty of ARM-supporting OS distros that you can use instead.
Thanks @Bryce , that’s really useful info. So I am hoping to be using a smart phone to be doing most of the computational and communication work. For example,
Customer wants to buy something from a merchant.
Merchant uses POS custom app on phone to initiate invoice. Invoice is sent as text string to custom device, and is displayed as QR Code. Customer can use this QR code to scan and generate invoice on their lightning/bitcoin compatible wallet. They pay invoice. Lightning network usually takes between 0.5 and 1 second to finalise transaction.
Merchant’s phone app recieves confirmation of receipt. Confirmation is sent to custom device, and custom device changes from QR CODE display to a tick symbol.
So the requirement of the custom device is really either bluetooth or wireless, and processing is relatively simple. Device does not need to access internet, just connect to smart phone.