Bitcoin / Multi Crypto Coin Ticker with 24 candlesticks chart
-
Hello all, thank you so much for the hard work on this project! I created a video demo flashing the M5Stack with the FW, changing the SD card configurations, and 3D printing a desk stand. I hope this helps more novice users get started https://youtu.be/3uQINs6fpio
-
Has anyone been able to port this to the Core 2? I tried but the SD Card library seemed to be incompatible.
-
I saw a crypto project on the M5Stack and had to comment!
First of all congrats to @frittna for the good execution of the concept. Didn't try it myself, but looks great on the photos!
Seven years ago I started working on a similar crypto project. Decided to go all the way from idea to market, not just because I love crypto, but because I wanted to gain the learning and experience on the way. It was worth it!
I've seen a lot of "weekend projects", but none of them had the features I wanted or was easily configurable by non-technical people. So I brought my crypto project to a full commercial product. I call it the TicrThing - your dedicated price ticker. (sorry for the obvious ad)
The previous versions had custom-made hardware, but they always lacked something... Once I discovered the M5Stack, I thought it was a perfect fit. So I completely re-wrote my code for the M5Stack, wrote also the server side, and released the new product earlier this year. Hope this helps bring the M5Stack platform to a wider audience!
P.S. It was not my intention to hijack the thread, but to share the story of a similar crypto project and how it evolved to use the M5Stack.
-
Hi, really nice to explore your project! You have really gone thought all the steps which i skipped so far on my ticker. (mobile app to config, fw updates, multiple sources, webstore) NICE and very professional.
-
For those who are interested in trying out the TicrThing for free, you can now find the firmware in the M5Burner.
-
@m5er could you please clarify how to and where to download your version of the crypto ticker to try? M5Burner does not lead anywhere
TIA -
Anyone knows how to to obtain TicrThing version of the ticker for test?
-
Hi, the M5Stack stand https://shop.m5stack.com/products/btc-standing-base?variant=16804779229274 has an DHT12 sensor for temperature and humidity integrated. I woud like to integrate this output in my BTC ticker. Any hints how to do this? Or where to start? I have not much experience with M5Stack or programming at all...
-
Hello,
Here you go! I coded some lines. Try this from there: https://github.com/frittna/Crypto_Coin_Ticker
just download the M5Burner zip packet, extract it to a path with no spaces in name (causes errors!) run M5burner.exe and select COM + BAUD + Crypto_Coin_Ticker_Sensor_Cel.ino or the Fah version for Fahrenheit and give it a try.
BTW: it is a SHT30 Senor built in my base, not a DHT12 although it is written in the description. The temperature is pretty high since the sensor is getting heat from the device itself i guess, maybe a problem of many small devices with temp sensors built in.
*** For regular users without the vertical base i recommend to use the normal version because i had to make the info panel a bit larger and loose candle chart hight. **
edit: I fixed a bug that the user settings were not saved after a restart - reflash from github if you are affected.
-
@gipsyblues I suppose you have figured it out by now (and sorry for late reply - I got no notification for this post). In any case, you can download the M5Burner software, connect your M5stack basic (not core2) and flash the TicrThing firmware. Let me know if you encounter difficulties, preferably in a PM so we don't hijack this thread.
-
@frittna You da man! Haven't had the time to have a look back here, so my late reply. Works like a dream! I see also the offset with the temp but it doesn't bother me so much. Maybe the offset could be dealed with by manually giving a correction factor at startup?
So thank you very much, I am deeply impressed like only a layman (in coding) can be :-) -
I have followed the instructions step by step in my M5Stack ESP-32 and that's what I get:
Can anyone help me with the mistakes?
Arduino: 1.8.16 (Mac OS X), Board: "M5Stack-Core-ESP32, QIO, 80MHz, Default, 921600, None"
WARNING: library Timezone claims to run on avr architecture(s) and may be incompatible with your current board which runs on esp32 architecture(s).
Traceback (most recent call last):
File "esptool.py", line 57, in <module>
File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "serial/tools/list_ports.py", line 29, in <module>
File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "serial/tools/list_ports_posix.py", line 31, in <module>
File "/Library/Python/2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 389, in load_module
File "serial/tools/list_ports_osx.py", line 32, in <module>
ValueError: dlsym(RTLD_DEFAULT, kIOMasterPortDefault): symbol not found
Failed to execute script esptool
Multiple libraries were found for "SD.h"
Used: /Users/pirix/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/SD
Not used: /Applications/Arduino.app/Contents/Java/libraries/SD
Multiple libraries were found for "WiFi.h"
Used: /Users/pirix/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/WiFi
Not used: /Applications/Arduino.app/Contents/Java/libraries/WiFi
exit status 255
/Applications/Arduino.app/Contents/Java/arduino-builder returned 255
Error compiling for board M5Stack-Core-ESP32. -
-
@frittna I tried with M5Burner in Windows and compiling it on Ubuntu with the same problem: freezes trying to connect to Wi-Fi.
Any option?
-
@PiriX
when you say you burned it with the burner than it should work. I only think of a sd config file corruption or something because of not safe ejected.. or some strange letters in wifi-pass.. i dunno.. -
@frittna said in Bitcoin / Multi Crypto Coin Ticker with 24 candlesticks chart:
n you say you burned it with the burner than it should work. I only think of a sd config file corruption or something because of not safe ejected.. or some strange letters in wifi-pass.. i dunno..
I tested with my guest wifi: "guest" pass "guest" and doesn't work
-
Now it works...
The problem was "_" in the Wi-Fi
Thank you so much for your patience.
-
Hi frittna,
Awersome work for making this for us, its a struggle to keep watch of the crypto market while also living a life away from it.
I'm a noob, but i'm sure if I know exactly where to edit, i could get away with it, so my query is how do edit one of the existing
timezones to get my local timezone option? I'm looking for GMT +8 (Singapore/Kuala Lumpur Timezone). Thanks is advance! -
Hi and thank you very much. Yea, it's really a good alternative to a pc running all day or checking your mobile all the time. You can focus on other things and have always an eye on it. It's nice to have one under your pc screen btw.
to your question, the corresponding part is the following. You would have to add for example your Zimezone as nr.8 in the code and compile it new in Arduino, then set the same number in the sd-config to load this setting at least once. If you're really new to arduino its a bit tricky with all the libraries and stuff (boardmanager!) but it is documented.
Problem right now is that i dont know where to find the correct TimeChangeRule values for your timezone (UTC+8 is SGT ...?)
Maybe you find some info. I found the lines i used in the code on the web or in Arduino code examples but i know no more zones right now.here is the part at the beginning
TimeChangeRule summer_aedt = {"AEDT", First, Sun, Oct, 2, 660}; // 0: Australia Eastern Time Zone (Sydney, Melbourne)
TimeChangeRule standard_aest = {"AEST", First, Sun, Apr, 3, 600};
TimeChangeRule summer_bst = {"BST", Last, Sun, Mar, 1, 60}; // 1: United Kingdom (London, Belfast)
TimeChangeRule standard_gmt = {"GMT", Last, Sun, Oct, 2, 0};
TimeChangeRule summer_eest = {"EEST", Last, Sun, Mar, 3, 180}; // 2: Eastern European Time (Bulgaria, Greece, Romania, Ukraine, Egypt)
TimeChangeRule standard_eet = {"EET ", Last, Sun, Oct, 4, 120};
TimeChangeRule summer_cest = {"CEST", Last, Sun, Mar, 2, 120}; // 3: Central European Time Zone (Frankfurt, Paris)
TimeChangeRule standard_cet = {"CET ", Last, Sun, Oct, 3, 60};
TimeChangeRule summer_edt = {"EDT", Second, Sun, Mar, 2, -240}; // 4: US Eastern Time Zone (New York, Detroit)
TimeChangeRule standard_est = {"EST", First, Sun, Nov, 2, -300};
TimeChangeRule summer_cdt = {"CDT", Second, dowSunday, Mar, 2, -300}; // 5: US Central Time Zone (Chicago, Houston)
TimeChangeRule standard_cst = {"CST", First, dowSunday, Nov, 2, -360};
TimeChangeRule summer_mdt = {"MDT", Second, dowSunday, Mar, 2, -360}; // 6: US Mountain Time Zone (Denver, Salt Lake City)
TimeChangeRule standard_mst = {"MST", First, dowSunday, Nov, 2, -420};
TimeChangeRule summer_pdt = {"PDT", Second, dowSunday, Mar, 2, -420}; // 7: US Pacific Time Zone (Las Vegas, Los Angeles);
TimeChangeRule standard_pst = {"PST", First, dowSunday, Nov, 2, -480};
Timezone myTZ0(summer_aedt, standard_aest); // myTZ0: 0 Australia Eastern Time Zone (Sydney, Melbourne)
Timezone myTZ1(summer_bst, standard_gmt); // myTZ1: 1 United Kingdom (London, Belfast)
Timezone myTZ2(summer_eest, standard_eet); // myTZ2: 2 Eastern European Time (Bulgaria, Greece, Romania, Ukraine, Egypt)
Timezone myTZ3(summer_cest, standard_cet); // myTZ3: 3 Central European Time Zone (Frankfurt, Paris)
Timezone myTZ4(summer_edt, standard_est); // myTZ4: 4 US Eastern Time Zone (New York, Detroit)
Timezone myTZ5(summer_cdt, standard_cst); // myTZ5: 5 US Central Time Zone (Chicago, Houston)
Timezone myTZ6(summer_mdt, standard_mst); // myTZ6: 6 US Mountain Time Zone (Denver, Salt Lake City)
Timezone myTZ7(summer_pdt, standard_pst); // myTZ7: 7 US Pacific Time Zone (Las Vegas, Los Angeles);and later in the code:
..} else if..=4..
..} else if..=5..
} else if (myTimeZone == 6) {
time_t now = myTZ6.toLocal(time(nullptr), &tcr);
M5.Lcd.printf("%s %2d.%s %02d:%02d", weekDay_MyLang[weekday(now)], day(now), monthName_MyLang[month(now)], hour(now), minute(now));
} else if (myTimeZone == 7) {
time_t now = myTZ7.toLocal(time(nullptr), &tcr);
M5.Lcd.printf("%s %2d.%s %02d:%02d", weekDay_MyLang[weekday(now)], day(now), monthName_MyLang[month(now)], hour(now), minute(now));
here the new else if for nr.8
...
...
i think that would be all -
Thanks Frittna, yes my timezone is UTC +8, and I think I have found a reference on how to set that <see below> ; my timezone dont have DST, so it should just a simple one liner (i think), still not tested though..cuz ya, i'm a newbie, so about that compiling, could you point me exactly where to look? :)
My M5stack is the FIRE version ; with the LED bars , and this is my first project using it (actually got inspired to get it after seeing your project, as I was wanting a proper tabletop ticker for some time now), will there be any version that can utilize those LEDs as indicators, that would be awesome!
""
For a time zone that does not change to daylight/summer time, pass the same rule
twice to the constructor, e.g.:
Timezone usAZ(usMST, usMST);
In fact the WorldClock example does this for Arizona://US Mountain Time Zone (Denver, Salt Lake City)
TimeChangeRule usMDT = {"MDT", Second, dowSunday, Mar, 2, -360};
TimeChangeRule usMST = {"MST", First, dowSunday, Nov, 2, -420};
Timezone usMT(usMDT, usMST);//Arizona is US Mountain Time Zone but does not use DST
Timezone usAZ(usMST, usMST);""
So mine should be >>>
//for Malaysia its MYT (UTC+8)Time Zone but does not have DST
Timezone MYT(MYT, MYT);?