Bitcoin wallet QR code Generator

StandbyOver the past few months, I’ve been working on a Bitcoin POS Terminal and I think it has come to a stage where it is worth sharing.

Skip to the end of the post for a gallery of photos and a demo video.

What?

The terminal will allow any merchant to easily accept bitcoins in a store. Just hook it up to your cash register and you are ready to go. There is no need to install any additional software, not even a bitcoin client is required locally.

Why?

Other solutions out there are not as convenient to use. You have to turn your screen to the customer to let him scan a QR code or mess with printed tickets. Also integration into your existing hard and software can be tricky.

The caseHow?

Let’s get technical! The terminal communicates with your cash register using a protocol called ‘Open Payment Initiative’ (O.P.I.). It is TCP based, so you only need an Ethernet cable to connect the terminal to the computer running your POS software.

When a new transaction is requested, the terminal creates a QR code to tell the customers wallet where to send the bitcoins.

To watch the bitcoin network for incoming transactions, Obelisk backend servers are used. The protocol is famous for being developed and used by the Electrum bitcoin client.

PaymentThe terminal also has built in NFC capabilities to allow even faster precessing. In the future it may even be possible to transmit the transaction data from the phone to the terminal via NFC. That way even offline devices can pay with bitcoins.

Hardware

The terminal is completely developed from scratch. The main processor is a LPC2387 (ARM7 core, 512kB Flash, 98kB RAM). Also included are drivers for NFC and Ethernet. The Ethernet driver is capable of 100MBit transmission, although that speed is far from being needed by the terminal.

The payment screenThe display has a resolution of 240 by 160 pixels, enabling any device to easily read the QR codes. The prototype case is 3d printed and designed using FreeCAD, an open source CAD software.

Software

The software running on the terminal is written in C and compiled with arm-elf-gcc. Everything is open source, and so will be the terminal software. The sources will be released as soon as they move from ‘a hack’ to a proper alpha version.

The software uses some libraries:

  • The famous uIP, which handles TCP/UDP connections. uIP is probably the TCP/IP stack for embedded devices and even used in many commercial applications.
  • A ported version of qrduino is used for QR code generation.
  • trezor-crypto is used for all bitcoin related crypto stuff. It is developed by the inventors of trezor, a hardware bitcoin wallet.

Demo

TL;DR The Bitcoin POS Terminal enables any merchant to easily acccept bitcoins using existing hard and software. Watch the video above for a quick demo.

The connectors The display board Main processing board

Bitcoin wallet generator

Bitcoin wallet QR Generator

Litecoin wallet address Generator

Litecoin Wallet Generator

Bitcoin wallet address Generator