What is Papyr?
With the exploding number of connected devices being deployed, power consumption is a major concern. Technologies like BLE (Bluetooth Low Energy) are built from the ground up with low power consumption in mind. Another technology which is extremely low power is the e-paper display, which was made famous by its adoption by Amazon for the Kindle devices. Papyr from Electronut labs combines these two core ideas - a low power wireless technology combined with a low power display system. By choosing the Nordic nRF52840 SoC, Papyr is able to support not only BLE but mesh networking protocols like Thread, BLE Mesh, and Zigbee. Papyr has many extras too - like build in NFC antenna for BLE pairing or Thread commisioning, CR2477 battery holder, micro USB port, extra GPIOs, RGB LED, etc. There are a lot of applications possible with Papyr - dynamic price tags, for example, or sensor data display in a mesh network. Papyr can be used anywhere you need a low power, connected display.
Getting Started
Thank you for purchasing Papyr, the compact Nordic nRF52840 based epaper display developed by Electronut Labs.
Here's how you can get started with Papyr.
Hardware Setup
Insert a CR2477 coin cell into the holder, or connect power via the micro USB connector. Make sure S2 is set to the correct position - USB or BATT.
!!!WARNING!!!
Ensure correct coin cell polarity before inserting it. Papyr does not have reverse polarity protection, and will get damaged if battery is inserted reversed.
On start, the LED will blink GREEN twice and turn off. At this point, Papyr is advertising as a BLE peripheral and you can connect to it from the Electronut Labs mobile app.
Using Web Bluetooth
You can talk directly to Papyr using Web Bluetooth. For this to work, your browser must support Web Bluetooth. To check list of available browsers, visit this link. On Google Chrome, you should have enabled experimental web features by visiting the url :
chrome://flags/#enable-experimental-web-platform-features
Please watch this video use web-bluetooth on your Papyr device.
Connect Send Try it here !
Using the Mobile App
Download the Electronut Labs mobile app :
Here is a demo video of the Electronut Labs mobile app (iOS) interacting with Papyr.
Click on Papyr, and you will should find your Papyr device in the list of scanned BLE peripherals. Click on the Papyr entry and you will see the following dialog.
There are three options on application - Draw, Select image, Trasnfer data over MQTT.
Draw on Phone
As shown above, draw something on the screen, and hit "Send Image" when done. The LED on Papyr will blink BLE as the image is transferred, and in less than 30 seconds, your image will appear on Papyr.
Select Image from Device
Second way to connect to papyr using application is by selecting a file already present on your phone. After selecting the option, you will get a screen that asks to select an image from your gallery. After selecting, change the threshold depending on the closeness of color to red and black. After that, just hit the "Send" button to transfer the processed image to papyr display.
Transfer Image Data over MQTT
Third mode of image transfer to papyr involves transfer of image over MQTT. You need internet connection on your mobile device to connect to a broker.
- Select "Send Data over MQTT" on clicking the papyr device from the scanned list.
- Click MQTT Config to connect app to MQTT over Websockets. Default to app are linked to hivemq's mqtt-dashboard with "hostname : broker.mqttdashboard.com" and "port : 8000". Tap "Connect" button to connect app to mqtt broker.
- Once connected, you will get the topics to connect to. You can use either a MQTT web client, like http://www.hivemq.com/demos/websocket-client/ , and connect to MQTT broker mentioned above.
- On the HiveMQ web client, connect to same host. Set topic name to one mentioned on the app. You can send two types of data:
- SVG - create a svg using online tools
- Base64 - Use online tool to convert image to base64.
- Example :
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" version="1.1">
<g>
<rect width="200" height="100" stroke="black" stroke-width="0" fill="red" />
<text x="10" y="80" font-size="30" stroke="white" stroke-width="0" fill="white">Electronut</text>
<circle cx="170" cy="50" r="10" fill="white" />
<circle cx="170" cy="20" r="10" fill="black" />
</g>
<g>
<rect y="100" width="200" height="100" stroke="black" stroke-width="0" fill="black" />
<text x="10" y="120" stroke="white" stroke-width="0" font-size="20" fill="white">Labs</text>
<circle cx="170" cy="150" r="10" fill="white" />
<circle cx="170" cy="180" r="10" fill="red" />
</g>
</svg>
- After publishing content from hive's web client, check the threshold on app for both red and black color and hit "Send" to display the image on papyr display.
Factory Reset
When running the default firmware, once you transfer an image to Papyr, it will remain there across power resets. This is by design. If you want to go back to the original image (papyr + Electronut Labs logo), there's a little trick - connect GPIO P0.08 to VDD and press S1 (reset), and boom - the original image is restored.
Programming Papyr
!!!WARNING!!!
There is a small error in the labels of the Papyr v0.3 PCB SWD header. Hence they have been blacked out. See image below for correct labels.
Papyr can be reprogrammed using SWD header. You can use our inexpensive Bumpy SWD debugger and PogoProg Model B adapter for that purpose.
Information regarding programming Papyr can be found here.
You can find several interesting applications of Papyr in the code directory.
If you need to revert to the default firmware, you can find the hex files under the top level firmware folder in this repository.
Hardware Specifications
- Raytac MDBT50 module with Nordic nRF52840 BLE/802.15.4 SoC
- 1.54 inch 200x200 pixel red/black/white epaper display - GDEW0154Z04
- CR2477 coin cell holder
- Micro USB (device)
- RGB LED
- NFC (PCB) antenna
- Push button
- USB/Battery power switch
- Extra GPIOs
- SWD Programming header
- Mounting holes
Datasheet and Schematic
You can find the schematic and data sheet in the links below.
Connections and IOs
The available pin headers on the papyr can be used by the users are described below. Please refer to our documentation on zephyr project's documentation to know more.
LED
LED1 (green) = P0.13
LED2 (blue) = P0.15
LED3 (red) = P0.14
Push buttons
Reset = SW0 = P0.18 (can be used as GPIO also)
UART
TX = P0.8
RX = P0.7
I2C
I2C pins connected to onboard sensors (I2C_0):
SDA = P0.5
SCL = P0.6
SPI
The e-paper display is connected to the chip via SPI on the following pins (SPI_1):
SCK = P0.31
MOSI = P0.29
MISO = P1.1 (not used by the display)
NOTE: P1.1 is pin 33 in absolute enumeration.
Other pins used by the e-paper display are:
E-ink enable = P0.11 (cuts off power to the display with MOSFET)
CS = P0.30
BUSY = P0.3
D/C = P0.28
RES = P0.2
Papyr Dimensions
Dimensions for Papyr v0.3 board can be downloaded here.
Current Consumption
Papyr is designed for very low power applications. For the default fimrware that ships with Papyr, when the device is advertising (not connected), the current draw is about 22 uA.
Code Repository
You can find all code and design files related to Papyr at the link below:
https://gitlab.com/electronutlabs-public/papyr/
Buy Papyr
Papyr is available for purchase from our Tindie store. Please email us at info@electronut.in if you have any questions.
About Electronut Labs
Electronut Labs is an Embedded Systems company based in Bangalore, India. More information at our website.