Skip navigation

I was just about to hook up an AdaFruit 8x8 LED matrix to the little round board from 4Troniks when they sent me something even better.


The version 0.2 board came with straight headers and an interesting daughter board full of WS2812B compatible LEDs. These are dead easy to code as they all take a common data line and work with the FastLED LED animation library for Arduino.

2016-07-22 16.22.05.jpg 2016-07-22 12.43.36.jpg

The new board is fractionally larger and can be quite tall when stacked up. However I was also given a protoshield which can be soldered in-between the two. I've still to design a badge to host the board so have been playing about with designs in OpenSCAD. I did mange to knock up a quick demo to see the LEDs in action. Perhaps this could be wired to a sound sensor so that the mouth moves when you speak?



#include "FastLED.h" //From FastLED LED animation library for Arduino (formerly FastSPI_LED) 

#define NUM_LEDS 14
#define DATA_PIN 4


void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

void loop() {

void face() {

void eyes() {
  leds[0] = CRGB::Blue;
  leds[2] = CRGB::Blue;

void smile()
  leds[7] = CRGB::Red;
  leds[10] = CRGB::Red;
  leds[11] = CRGB::Red;
  leds[12] = CRGB::Red;
  leds[13] = CRGB::Red;
  leds[8] = CRGB::Black;
  leds[9] = CRGB::Black;

void talk()
  leds[7] = CRGB::Black;
  leds[10] = CRGB::Black;
  leds[8] = CRGB::Red;
  leds[9] = CRGB::Red;
  leds[11] = CRGB::Black;
  leds[12] = CRGB::Red;
  leds[13] = CRGB::Black;

I am a relative newcomer to arduino, but I need to make a display in the house which will tell me how much water is stored in my water tanks (max 15,000 litres) 30 meters from the house, I think the best method would be to use differential pressure and transmit the reading by wi-fi to an LCD screen in the house. Has anyone done this before? Can anyone help?

Andy Clark (Workshopshed)

Sleepy Blink

Posted by Andy Clark (Workshopshed) Top Member Jul 10, 2016

I've been given a new board from 4tronix to RoadTest, which is compatible with an Arduino UNO but with a significantly different form factor. The board is still in beta so has yet to gain a proper name.


The board is 27mm in diameter about the same size as a£2 coin it has a ATMega328P-AU microcontroller and a CH340G USB interface A blue LED is attached to pin 13 4 digital and 4 analogue pins are broken out along each size with the power connectors top and bottom


On the back of the board is a rechargeable Lithium ION coin cell which 4tronix thought should have a run time of about 1 hour. There is a small power switch so you can turn it off to save the battery or to speed up charging.


My first thought was to see if we could increase that with some power management. So I created the following "sleepyblink" code which flashes the LED for just 100ms before sleeping for 1s. The board uploads quickly, although I did see that the board changed COM port number when I powered it off an on which might cause irritation when programming it.



//Library from
#include "LowPower.h"
int ledPin = 13;                 // LED connected to pin 13
void setup()
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
  delay(5000);                 // Nice long delay to help with reprogramming    
void loop()
  digitalWrite(ledPin, HIGH);    // sets the LED off
  digitalWrite(ledPin, LOW);   // sets the LED on
  LowPower.powerDown(SLEEP_1S, ADC_OFF, BOD_OFF);


The battery lasted over 33hrs, it stopped over night whilst I was asleep so I know it was less than 41hrs.


Next up is to make a simple badge.

We all may have used the calculators, and if you are being involved in the scientific field then the scientific one too. What about building your own scientific calculator and showing it to your friends. You can do it by evive, it is an arduino powered embedded product. For more information you can watch this video. We have built a Scientific calculator having lots of functions like basic algebraic functions (addition, subtraction, multiplication and division), trigonometric functions, logarithmic function, square root and inverse trigonometric function.


An arduino sketch is made to implement this. It calculates accurately upto six decimal places and display upto four decimal place and it can be increased too.





For making this scientific calculator, you need to have this stuffs evive, keypad , breadboard and pushbuttons. After you get this stuffs, you are ready to make your own calculator. At first you should build a simple calculator, which can apply simple algebraic functions.

components calculator evive

So for this we have take help from this link. It has built this simple calculator very effectively for crystal LCD but we have tweeked it for run on ST7735 which evive uses as its screen, you can read about more components of evive from this link. Run this code snippet and see your simple code running.


Now, as your simple calculator is working perfectly, if not then type in comment section or email us about your problem.


Now we will go step by step about journey of this simple calculator to scientific calculator.


Firstly we made it run for the decimal numbers also as it was for whole numbers only. We added the decimal button and we did this simple stuff.

For both our input numbers the algorithm is basically the same.

Let the first number be a double named 'first'. We initialize it to be zero.

We make a Boolean 'isDecimal' and initialize it as false. This means that unless the decimal point is given as an input, the number is not a decimal.

Last, declare a float 'decimals' and set it as 10.0. We will use it for keeping a counter of our place after the decimal point.

Now if isDecimal is false, it means the number is not yet a decimal. Suppose you are storing your input number from the keypad as key.

You just need to update first=first*10+key.

But if isDecimal is true, the number is a decimal. You need to now update as

first=first+key/decimals, and decimals=decimals*10.

We keep repeating the above steps until the input for some operation is detected. Then we similarly detect the second number. Using the knowledge of the operation called, we operate the numbers and print the result when '=' is detected.

Remember to restate the values of decimals=10.0 and isDecimal=false after detection for a number is complete.You can see this code snippet too.


code snippet for decimal implementation


For other functions you need to prepare the breadboard having different pushbuttons and if you have pushbuttons of different type then use, of course it will make your calculator look more beautiful.

scientific calculator breadboard

Now, we have more buttons for the scientific functionality. We have used some colorful buttons as shown in figure. Now assign them accordingly. Take care to assign similar buttons to similar functions.

Since evive uses Arduino Mega, we have used following pins:

  • sine=Pin25
  • cosine=Pin27
  • tangent=Pin23
  • log=Pin22
  • arcsin=Pin24
  • arccos=Pin26
  • arctan=Pin14
  • root=Pin15


First try making the code for any one function (for example, sine function) using the inbuilt function 'sin(val)' of the arduino ide. Arduino ide also has pre-installed functions of cos, tan, inverse sin, inverse cos, inverse tan, log, square root.

You can view the following image for reference for making different functions.


All the codes can be downloaded from GitHub. The code is well documented and self explanatory.


The calculator works well!! We have also used evive's inbuilt buzzer to provide audio feedback in form of a beep while someone presses any button or switch. You can design the calculator which prints the results on the tft screen of the evive. Use different colors and sizes of text to decorate it. We can align the operants and the functions to make the appearance better.

working evive calculator

Add more functions and dig harder to make it more complex

You can check more features and techSpecs of evive to make it more advanced calculator.

evive pinout diagram techspecs
Watch the video of evive here.

To see more evive projects click here.

Filter Blog

By date: By tag: