Skip to content

market-viewer/market-viewer-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crypto Price Viewer

show show

DIY cryptocurrency price dispaly.

Description

This project is diy simple cryptocurrency price viewer. It fetches real-time data from a cryptocurrency API and displays it on a screen. The device is housed in a 3D-printed case with colored screen.

This is a standalone device that is not dependent on your computer.

Features

  • Price Tracking: Fetches and displays up-to-date cryptocurrency prices.
  • Display: Shows data on 240x320px screen.
  • Button Controls: Navigate through different cryptocurrencies.
  • Buzzer: Provides audible alerts.
  • 3D-Printed Case: A custom-designed case to house all the components.
  • Configurable from phone: Connect to AP and configure the device from your phone.
  • Wi-Fi Connectivity: Connects to your local network to access the internet.

Hardware

This project uses the following hardware components:

  • Microcontroller: XIAO ESP32C6
  • Display: 2inch 240x320px TFT Display:
  • Buttons: 2x - 12x12mm tactile switch (B3F-4055)
  • Buzzer (optional): buzzer without generator
  • Antenna (optional, for better signal): mini antenna with uFL connector
  • Perfboard: prefboard 30x70 mm
  • Cables and wires
  • 3D printed case: 3d printed parts, in the model folder
  • Screws: 2x 2.5x20mm screw (for case assembly)

Hardware links

Usage guide

Setup

  • After first connection you will se this screen
PXL_20251124_210215098
  • Connect to that wifi from your phone, and this setup screen will popup
Screenshot_20251124-220306
  • Select configue wifi
  • Select your wifi ssid and fill in the password
  • Below you can set up to 3 cryptocurrencies to be displayed on your display
  • Hit save

Usage

  • Price refreshes once in 10 minutes for the currently displayed coin

    • you can chagne the interval in the code
    • don't make the interval too short, because you might hit the rate limit of the api
  • Left button press - go to next coin

  • Left button hold - fetches new price, for the currently displayed coin

  • Right button press - reset the device

  • Right button hold - enter config mode

Software

The firmware is written in C++ using the Arduino framework.

Libraries

  • TFT_eSPI - by Bodmer
  • ArduinoHttpClient
  • ArduinoJson
  • WiFiManager
  • Preferences - by Volodymyr Shymanskyy

Assembly Guide

Step 1: Setup arduino ide

  • add xiao esp32c6 support for the arduino ide
  • downlaod listed libraries
  • find this path on you computer: Arduino/libraries/TFT_eSPI/User_Setup.h
    • paste this to the user setup file:
    #define USER_SETUP_INFO "User_Setup"
    #define ST7789_2_DRIVER
    #define TFT_SDA_READ   
    #define TFT_RGB_ORDER TFT_RGB  // Colour order Red-Green-Blue
    
    #define TFT_WIDTH  240 
    #define TFT_HEIGHT 320
    
    #define TFT_MOSI 18  
    #define TFT_SCLK 19  
    #define TFT_CS   22  
    #define TFT_DC   21  
    #define TFT_RST  23  
    
    #define LOAD_GLCD   // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
    #define LOAD_FONT2  // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
    #define LOAD_FONT4  // Font 4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
    #define LOAD_FONT6  // Font 6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters 1234567890:-.apm
    #define LOAD_FONT7  // Font 7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters 1234567890:-.
    #define LOAD_FONT8  // Font 8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
    #define LOAD_GFXFF  // FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and custom fonts
    #define SMOOTH_FONT
    
    #define SPI_FREQUENCY  27000000
    #define SPI_READ_FREQUENCY  20000000
    #define SPI_TOUCH_FREQUENCY  2500000

Step 2: Soldering components

  • Solder controller on the prefboard (9 pins availible left, 8 pin availible on right)

  • Solder display

  • Solder buzzer

  • Put the antenna on the controller port

  • Don't solder the buttons just yet

  • solder the components according to the wiring diagram and tables

Wiring

diagram diagram2

Display

From (Display) To (ESP32C6)
GND GND
VCC 3V3
SCL D8 (GPIO19)
SDA D10 (GPIO18)
RST D5 (GPIO23)
DC D3 (GPIO21)
CS D4 (GPIO22)

Buttons

  • leg orientation doesnt matter (but make sure to solder the opposite legs)
From (Button) To (ESP32C6)
left btn - 1. leg D1 (GPIO1)
left btn - 2. leg GND
right btn - 1. leg D2 (GPIO2)
right btn - 2. leg GND

Buzzer

From (Buzzer) To (ESP32C6)
red cable D0 (GPIO0)
black cable GND

Step 3: 3D Printing

  • Print the case and button caps
  • You can choose the version with holes (much cooler) or the normal one without holes

Step 4: Final Assembly

  • Put the buttons with caps into the holes on top of the case
  • Now solder the buttons according to the prefboard according to the diagram
  • Slide the prefboard into the case and put in the antenna and buzzer
  • Put in the 2 screws to hold the two parts of the case together

Step 5: Software flashing

  • Connect the board to your pc
  • Clone this repository
  • In Arduino IDE open the code.ino file
  • Make sure you have installed all the libraries and edited the User_Setup.h file
  • Click the upload button in the arduino ide to compile and flash the firmware
    • The ide might tell you that you have run out of memeory on the board
      • go to: Tools->Partition Scheme and select Huge APP

Contributing

  • Contributions are welcome! Please feel free to submit a pull request.
  • Adding new features is very welcome.

About

DIY display for showing current crypto prices

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors