This project design to mine Duino-Coin using an Esp8266 as a master and Arduino as a slave.

Overview

DuinoCoinI2C

This project design to mine Duino-Coin using an Esp8266/Esp32 as a master and Arduino as a slave.

Using the I2C communication to connect all the boards and make a scalable communication between the master and the slaves.

Version

DuinoCoinI2C Version 2.6

Arduino - Slave

All Slaves have the same code and should select the I2C Address automatically.

Library Dependency

Automatic I2C Address

The I2C Address on the Arduino is automatically updated when the board starts, if an Address already exists on the I2C bus the code finds another Address to use.

Esp8266/Esp32 - Master

The master requests the job on the DuinoCoin server and sends the work to the slave (Arduino).

After the job is done, the slave sends back the response to the master (Esp8266/Esp32) and then sends back to the DuinoCoin server.

Library Dependency

Max Client/Slave

The code supports 10 clients and can be changed on the define:

#define CLIENTS 10

Connection Pinouts

Connect the pins of the Esp8266 or Esp32 on the Arduino like the table/images below, use a Logic Level Converter to connect between the ESP and Arduino.

ESP8266 ESP32 Logic Level Converter Arduino
3.3V 3.3V <---> 5V
GND GND <---> GND
SCL D1 (GPIO5) GPIO22 <---> A5
SDA D2 (GPIO4) GPIO21 <---> A4

DuinoCoinI2C

Custom PCB

ericddm shared this amazing pcb!

DuinoCoinI2C


Do you like this project? Please star this project on GitHub!

Comments
  • need update to revoxhere/duino-coin v2.6

    need update to revoxhere/duino-coin v2.6

    After update from revoxhere/duino-coin to v2.6 stand alone nanos work no problems. Here is running AVR I2C v2.5.2 and it is a lot of troubles with nodes.

    Please do update and add if you can add serial monitor over network.

    opened by panayotovip 14
  • Server Behaviour

    Server Behaviour

    Hello, Let me say first that it's a really great project because it permits to use a master and several slaves without a PC and therefore it's possible to use low powering devices. However, I'm wondering if could be possible to make the behaviour of the server, (ESP8260/ESP32) to act as a PC client AVR miner. I say this because the miner (for the server) appears like it is, (an ESP8266 I2C v2.4.7) but working on a low level difficulty due that the job is being done by an arduino. I'm not 100% sure about this, because I'm just starting with Duco but, do you thin that the server could penalyze the miners working this way?

    Not related but, only to let you know that arduino pro mini, that runs on 3.3 volts, works great as slave with a Wemos D1 mini as a master, and this can avoid voltage issues when using 5 volts board.

    Great Job!

    opened by Dark-Manu 14
  •  duino-coin  Release 3.0

    duino-coin Release 3.0

    Hi, are you planning to upgrade DuinoCoinI2C ?

    upgrading to this release is required. Servers will stop accepting version 2.X miners in a few weeks.

    enhancement 
    opened by MiloPS3 9
  • Rig stop mining..

    Rig stop mining..

    my rig just stop mining last night, tried re uploading code n slave and master but still cannot mine.

    09:12:48.335 -> Duino-Coin AVR I2C v2.7 09:12:48.335 -> Address: 1 09:12:48.335 -> Address: 2 09:12:48.335 -> Address: 3 09:12:48.335 -> Address: 4 09:12:48.335 -> Connecting to: AP_WiFi6 09:12:48.849 -> ....... 09:12:52.583 -> Connected to WiFi! 09:12:52.583 -> Local IP address: 192.168.10.145 09:12:53.002 -> [ ]Update pulse-pool-4 149.91.88.18 2813 09:12:55.196 -> [0]Connecting to Duino-Coin server... 149.91.88.18 2813 09:12:55.474 -> [1]Connecting to Duino-Coin server... 149.91.88.18 2813 09:12:55.757 -> [2]Connecting to Duino-Coin server... 149.91.88.18 2813 09:12:56.037 -> [3]Connecting to Duino-Coin server... 149.91.88.18 2813 09:12:56.457 -> [0]2.7 09:12:56.551 -> [1]2.7 09:12:56.645 -> [2]2.7 09:12:56.645 -> [ ]FreeRam: 38568 I2C [ 0. 1. 2. 3. ] 09:12:56.690 -> [0]MOTD Request: Daviedz 09:12:56.690 -> [1]Job Request: Daviedz 09:12:56.690 -> [2]Job Request: Daviedz 09:12:57.344 -> [0]Happy mining on PulsePool (4)! 09:12:57.344 -> Pool worker limit: 50 09:12:57.344 -> [0]Job Request: Daviedz 09:12:57.675 -> [3]2.7 09:12:57.675 -> [ ]FreeRam: 38568 I2C [ 0. 1. 2. 3. ] 09:12:57.723 -> [3]Job Request: Daviedz 09:12:58.702 -> [ ]FreeRam: 38568 I2C [ 0. 1. 2. 3. ] 09:12:59.681 -> [ ]FreeRam: 38568 I2C [ 0. 1. 2. 3. ] 09:13:00.672 -> [ ]FreeRam: 38544 I2C [ 0. 1. 2. 3. ] 09:13:01.663 -> [ ]FreeRam: 38544 I2C [ 0. 1. 2. 3. ] 09:13:02.697 -> [ ]FreeRam: 38040 I2C [ 0. 1. 2. 3. ] 09:13:03.676 -> [ ]FreeRam: 38040 I2C [ 0. 1. 2. 3. ] 09:13:04.703 -> [ ]FreeRam: 38040 I2C [ 0. 1. 2. 3. ] 09:13:05.683 -> [ ]FreeRam: 38040 I2C [ 0. 1. 2. 3. ] 09:13:06.664 -> [ ]FreeRam: 38040 I2C [ 0. 1. 2. 3. ] 09:13:07.693 -> [ ]FreeRam: 38424 I2C [ 0. 1 2 3. ] 09:13:08.683 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:09.676 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:10.666 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:11.702 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:12.688 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:13.675 -> [ ]FreeRam: 38808 I2C [ 0 1 2 3 ] 09:13:14.666 -> [ ]FreeRam: 38840 I2C [ 0 1 2 3 ] 09:13:15.703 -> [ ]FreeRam: 38832 I2C [ 0 1 2 3 ] 09:13:16.694 -> [ ]FreeRam: 38832 I2C [ 0 1 2 3 ]

    bug 
    opened by Daviedz 9
  • ATMega328 change to difficulty @16

    ATMega328 change to difficulty @16

    ATMega328 with the optimized duino-coin library do about 215-220 H/s, however the server interpret the device as the arduino mega.

    The server interpret 190 H/s arround as a standard arduino with dificulty of @6 But with this code 220H/s server rise to dificulty of @16, affecting the reward (which it pays less) and the performance, less submits.

    In the few days the performance of the reward has been drop in about 30-40% when usually i do 80-90 DUCO per day, now i do about 40-50 DUCO per day with the same setup.

    image

    opened by PipeDeveloper 9
  • Flash Size too big on ATMega8 (can't compile/upload)

    Flash Size too big on ATMega8 (can't compile/upload)

    I have some Atmega8 chips. but i got this error when compiling.

    c:/users/felipe rojas verasay/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: C:\Users\FELIPE~1\AppData\Local\Temp\arduino_build_297722/DuinoCoin_Arduino_Slave.ino.elf section .text' will not fit in region text' c:/users/felipe rojas verasay/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: region `text' overflowed by 3684 bytes collect2.exe: error: ld returned 1 exit status exit status 1 Error compilando para la tarjeta ATmega8.

    opened by PipeDeveloper 7
  • error comiling version 2.6

    error comiling version 2.6

    I delete old version, download new. Load sketch in ArduinoIDE, then start compiling. Did i do something wrong ? Show me that output : `Arduino: 1.8.15 (Windows 10), Board: "FireBeetle-ESP32, 80MHz, 115200"

    C:\Users\IVAN\Downloads\DuinoCoinI2C-main\DuinoCoin_Esp_Async_Master\DuinoCoin_Clients.ino: In function 'bool clients_connect(byte)':

    DuinoCoin_Clients:82:37: error: no matching function for call to 'WiFiClient::connect(String&, int&)'

    if (!clients[i].connect(host, port))

                                     ^
    

    In file included from C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFi.h:37:0,

                 from C:\Users\XXXX\Downloads\DuinoCoinI2C-main\DuinoCoin_Esp_Async_Master\DuinoCoin_Esp_Async_Master.ino:27:
    

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:51:9: note: candidate: virtual int WiFiClient::connect(IPAddress, uint16_t)

     int connect(IPAddress ip, uint16_t port);
    
         ^
    

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:51:9: note: no known conversion for argument 1 from 'String' to 'IPAddress'

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:52:9: note: candidate: virtual int WiFiClient::connect(IPAddress, uint16_t, int32_t)

     int connect(IPAddress ip, uint16_t port, int32_t timeout);
    
         ^
    

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:52:9: note: candidate expects 3 arguments, 2 provided

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:53:9: note: candidate: virtual int WiFiClient::connect(const char*, uint16_t)

     int connect(const char *host, uint16_t port);
    
         ^
    

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:53:9: note: no known conversion for argument 1 from 'String' to 'const char*'

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:54:9: note: candidate: virtual int WiFiClient::connect(const char*, uint16_t, int32_t)

     int connect(const char *host, uint16_t port, int32_t timeout);
    
         ^
    

    C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi\src/WiFiClient.h:54:9: note: candidate expects 3 arguments, 2 provided

    Multiple libraries were found for "WiFi.h"

    Used: C:\Users\XXXX\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi

    Not used: C:\Users\XXXX\Downloads\arduino-1.8.15-windows\arduino-1.8.15\libraries\WiFi

    exit status 1

    no matching function for call to 'WiFiClient::connect(String&, int&)'`

    opened by panayotovip 6
  • Connection Failed

    Connection Failed

    Morning,

    I have a small 'rig' set up with 4 Arduino Nanos and an ESP8266 which has been running well, I have installed the latest Client and Server yesterday to try to solve my issue but have had no luck.

    The ESP8266 connects correctly to the Wi Fi The ESP8266 correctly identifies the 4 Nano 'slaves' [ ] FreeRam: 41448 I2C Connected [ 0 1 2 3 ] Then cannot connect with:

    Connected to WiFi!
    Local IP address xxx.xxx.xxx.xxx
    [ ]Update beyond-pool-1 50.112.145.154 6000
    [0] Connecting to Duino-Coin server... with port 6000
    [0] connection failed
    

    Any ideas?

    Thanks

    bug 
    opened by dh1201 5
  • Not connecting to server

    Not connecting to server

    .... 23:41:37.008 -> [0]Connecting to Duino-Coin server... with port 2812 23:41:37.055 -> [0]Connection failed. 23:41:37.055 -> [ ]FreeRam: 42000 I2C Connected[ 0 1 2 3 4 ] 23:41:42.052 -> [ ]FreeRam: 41976 I2C Connected[ 0 1 2 3 4 ] 23:41:47.051 -> [ ]FreeRam: 41976 I2C Connected[ 0 1 2 3 4 ] 23:41:52.051 -> [ ]FreeRam: 41976 I2C Connected[ 0 1 2 3 4 ] 23:41:57.053 -> [ ]FreeRam: 41976 I2C Connected[ 0 1 2 3 4 ] 23:42:02.062 -> [ ]FreeRam: 41976 I2C Connected[ 0 1 2 3 4 ] 23:42:07.011 -> [0]Connecting to Duino-Coin server... with port 2812 23:42:07.058 -> [0]Connection failed. ....

    bug 
    opened by oli737 4
  • Random Specified Ports (improvement)

    Random Specified Ports (improvement)

    Any possibility to implement the joggling ports like the new feature of the official miners? and maybe an option to ping the server ip+ports if it will response, otherwise will choose on list of specified ports.

    opened by modfiles 4
  • I2C

    I2C

    Hi, I have a problem . hosting 10 arduino uno r3 with Esp8266 but when it connects, it disconnects after a few minutes and no longer connects. What's the problem?

    bug 
    opened by CypherHex 3
  • The code is too big for Arduino pro mini atmega168

    The code is too big for Arduino pro mini atmega168

    I got an ESP8266-01 as master and 2 arduino uno, 1 arduino nano, 1 arduino pro mini atmega328 as slaves and everything is perfect. I love it.

    The issue comes up with 2 arduinos pro mini with atmega168 the normal code is too big for those arduinos, the lack of memory make them impossible to work fine. Someone knows how to get the code more smaller please, I would love to put them to work together.

    Thanks in advance.

    enhancement 
    opened by hiddenotebook 0
  • Low profit with several miners

    Low profit with several miners

    Im getting nearly the same profit for 1 Arduino over I2C as 11 Arduinos over I2C? Is that correct?

    With 1 ATtiny1614 running 16Mhz im getting 250H/s hashrate and a calculated profit of 3-4 Ducos/day. With 11 ATiny1614 running 16Mhz im getting total 2 730 H/s hashrate but only a calculated profit of 7 Ducos/day?

    Shouln´t it be more like 20-30 Ducos/day, or at least 12 Ducos/day? (4 miners with 100% efficiency)

    Regards

    To Reproduce Steps to reproduce the behavior:

    1. Connect 1 miner, check calculated earnings.
    2. Connect 11 miners, check calculated earnings.
    3. Calculated earnings not multilied according to the kolka system

    Expected behavior 20-30 Ducos/day, not 7 Ducos/day

    Arduino (please complete the following information):

    • Arduino IDE 1.8.13
    • DuinoCoinI2C 3.0 release

    Additional context Add any other context about the problem here. Attiny

    bug 
    opened by Sparwen 7
  • Why after a few hours the AVR Minner is not detected in duco Wallet?

    Why after a few hours the AVR Minner is not detected in duco Wallet?

    Describe the bug Hi, im Reza. I want to ask, regarding mining duco coin I2C, I used 1x esp 8266 and 4x arduino uno R3, at first everything went well ESP8266 connected to the internet And the wallet status was detected by AVR Minner, but after a few hours, suddenly AVR Minner not detected? What's the solution? Thank you.

    bug 
    opened by zaShield 0
  • ESP-01 for master and slave

    ESP-01 for master and slave

    is it possible to setup master and slave on ESP-01? I am not sure why I keep getting Job Bad incorrect difficulty. usually, ESP-01 can reach 1500 diff, but in my case only 6 diff. thank you..

    enhancement 
    opened by edenzul 0
  • does not connect to the server and does not show an error

    does not connect to the server and does not show an error

    I'm using ESP32 as master and an Arduino Mega as slave.

    after installing the current version of DuinoCoinI2C the serial monitor of the master shows the information below, looking like it has not connected to the server. There is no error return. And the message below appears in a loop.

    MONITOR SERIAL MASTER - ESP32 11:04:11.621 -> Duino-Coin AVR I²C v3.0 11:04:11.668 -> Connecting to: Pegasus-2_2G 11:04:12.278 -> ...... 11:04:14.760 -> Connected to WiFi! 11:04:14.760 -> Local IP address: 192.168.1.26 11:04:17.810 -> [ ]Update dream-pool-1 212.115.108.82 6000 11:04:17.998 -> [ ]FreeRam: 225580 I2C [ ] 11:04:19.027 -> [ ]FreeRam: 226056 I2C [ ] 11:04:20.012 -> [ ]FreeRam: 226056 I2C [ ] 11:04:20.998 -> [ ]FreeRam: 226056 I2C [ ] 11:04:22.032 -> [ ]FreeRam: 226056 I2C [ ] 11:04:23.014 -> [ ]FreeRam: 226056 I2C [ ] 11:04:24.002 -> [ ]FreeRam: 226056 I2C [ ] 11:04:25.036 -> [ ]FreeRam: 226056 I2C [ ] 11:04:26.020 -> [ ]FreeRam: 226056 I2C [ ]

    MONITOR SERIAL DO SLAVE - ARDUINO MEGA 12:40:07.203 -> UniqueID: 34 34 31 38 35 10 0D 0C 12:40:07.250 -> Wire Address: 1 12:46:59.963 -> UniqueID: 34 34 31 38 35 10 0D 0C 12:46:59.963 -> Wire Address: 1

    bug 
    opened by limaarduino 2
Releases(v3.0)
Owner
Luiz Henrique Cassettari
I graduated in electrical engineering in 2012 and since then I have been fascinated by electronics, programming and innovation.
Luiz Henrique Cassettari
Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode.

DECA_USB3_Cam Streaming video over USB 3.0 using MAX10 FPGA and CYUSB3014 synchronous slave mode. Video: Block diagram _______

Dmitry Koroteev 9 Apr 18, 2022
Arduino M-BUS Master node for Arduino MKR M-BUS Shield

Arduino M-BUS Master node for Arduino MKR M-BUS Shield This software will read out a M-BUS device connected to an Arduino MKR board equipped with our

null 6 Nov 30, 2022
I2C slave library for the Raspberry Pi Pico

I2C slave library for the Raspberry Pi Pico The Raspberry Pi Pico C/C++ SDK has all you need to write an I2C master, but is curiously lacking when it

Valentin Milea 54 Nov 15, 2022
ESP32, ESP8266 based MIDI Organ using the ML_SynthTools library (little example arduino project)

esp32_esp8266_organ ESP32, ESP8266 based MIDI Organ using the ML_SynthTools library (little example arduino project) link to the video The required li

Marcel 18 Nov 16, 2022
ESP32, ESP8266 based MIDI Organ using the ML_SynthTools library (little example arduino project)

ml_synth_organ_example MIDI Organ using the ML_SynthTools library (little example arduino project) link to the video This project is an example suppor

Marcel 18 Nov 16, 2022
C/C++ Application to solve irrigation rotation whatever two-turn rotation or three-turn rotation, longitudinal section design, hydraulic calculations, and design of hydraulic structures like weirs and tail escape.

Irrigation works C/C++ Application to solve irrigation rotation whatever two-turn rotation or three-turn rotation, longitudinal section design, hydrau

Mohamed Jamal Ghayyad 1 Jun 24, 2022
Arduino and Nodemcu(esp8266)

Iot-based-project Using Arduino and Nodemcu(esp8266) We read temperature and humidity from DHT11 sensor with the help of ardunio uno and send that dat

Naman Rajani 4 Sep 25, 2021
ESP32 and ESP8266 Arduino wifi template

ESP wifi template ESP32 and ESP8266 Arduino wifi template Features Popular WiFI AP mode WiFI STA mode ETH mode DNS server for AP mode Async DDNS clien

Tien Huy Huynh 5 Jun 20, 2022
json file config for ESP8266 arduino framework

Description Every project I have is the same architecture and appconf is one of the components I use every time. This is an attempt at making a public

Garkusnko Nick 1 Nov 9, 2021
ESP8266 core for Arduino

Arduino core for ESP8266 WiFi chip Quick links Latest release documentation Current "git version" documentation Install git version (sources) Arduino

ESP8266 Community Forum 14.6k Nov 30, 2022
Best practices, conventions, and tricks for ROS. Do you want to become a robotics master? Then consider graduating or working at the Robotics Systems Lab at ETH in Zürich!

ROS Best Practices, Conventions and Tricks Best practices for ROS2 in the making. See the Foxy branch in the meanwhile. This is a loose collection of

Robotic Systems Lab - Legged Robotics at ETH Zürich 1.2k Dec 1, 2022
grblHAL core code and master Wiki

grblHAL grblHAL has many extensions that may cause issues with some senders. As a workaround for these a compile time option has been added that disab

null 151 Nov 15, 2022
Sega Master System / Game Gear / SG-1000 emulator for iOS, macOS, Raspberry Pi, Windows, Linux, BSD and RetroArch.

Gearsystem is a very accurate, cross-platform Sega Master System / Game Gear / SG-1000 emulator written in C++ that runs on Windows, macOS, Linux, BSD, iOS, Raspberry Pi and RetroArch.

Ignacio Sanchez Gines 180 Nov 21, 2022
A Fingerprint Door Lock using a microprocessor named Arduino UNO and programming through Arduino IDE

INSTRUCTIONS - The codes for the Fingerprint Door lock are present in the Code For Fingerprint Door Lock folder The instructions of how to operate the

Akhil Sahukaru 15 Mar 3, 2022
Internet of things created using arduino IoT cloud, consisting of esp and arduino boards

Internet of things created using arduino IoT cloud, consisting of esp and arduino boards. Goal of the project is to create a 3D printed RFID protected (with PIN) lock, including surveillance.

null 2 Sep 1, 2022
I2C hardware test terminal/master mode emulator.

I2C Master Mode Emulator The I2C master mode emulator allows communication with I2C devices by sending or receiving data to/from the I2C bus. To issue

Dilshan R Jayakody 19 Nov 5, 2022
A Motorola 68K simulator based on Musashi-master 68K simulator.

cpmsim Originally referenced as http://home.earthlink.net/~schultdw/cpm68/simulator.html (now 404) This simple CP/M-68K simulator, is built around the

Neil Cherry 8 Oct 26, 2021
This is the Master Repository for all the different algorithms in the world of DSA, be it in any language C++, Java, Python etc.....

© Dragon ball GT INTRODUCTION The goal of this repository is to have in a single place all possible algorithms and data structures - in multiple langu

Shivanshu Garg 12 Oct 30, 2022
A Christmas-Themed SHMUP for the Sega Master System; made for the "Jame Gam Christmas Edition"

winter-shooter A Christmas-Themed SHMUP for the Sega Master System; made for the "Jame Gam Christmas Edition" Resources used: Main ship sprite: https:

Haroldo de Oliveira Pinheiro 2 Dec 26, 2021