Reference Designer in Media and more Calculators

May 8th, 2019

We wanted to place all the references to the Reference Designer at one place and hence this post. Our tutorials have been referenced in many educational websites.

One of our products ( ArduinoPixed) has been mentioned in Raspberry Pi Magazine.

We are also taking this post to update new calculators available at Reference Designer.

1. ArduinoPixed on MagPi Magazine

MagPi - the official Raspberry Pi Magazine reviewed ArduinoPixed and their verdict has endorsed the Reference designer's Arduinopixed. Giving 9 out of 10 it says - "A quick build, even quicker software setup, and you’re away with a fantastic marriage of Arduino and Raspberry Pi." Check the MagPi post - here

2.  Sant Louis Area Microwave Society 

Has mentioned the dBm to Watt Calculator in its list of Calculators - Check the Society Page here

3. Calculators

We realized that some of the calculators are un noticed - we we wanted to put them on one place.

  1. Angle between Vectors - Here is a tutorial that calculates the Angle between two vectors in 3 Dimension - check it out.
  2. pH Calculator - Here is it


Sending Hex Text on Serial Port on Windows

March 21st, 2019

Many small hardware communicate on UART Serial port, often using a USB to UART chip. You sometimes need to communicate with these devices from your Windows machine - and this is the topic of this blog.

Using Python

Python comes to your rescue. With increasing use of Python it has become a de facto standard not only for many front and back end web software and services but also for controlling hardware. Sending data to Serial Port using Python is easy.

Install PySerial

Once you have installed Pythnon ( the latest version at the time of writing is 3.7) and and the pip, you need to install the pyserial library

pip install pyserial

The Serial Port code

You need to write the following code to send the Hex Data to Serial Port and read it back.

import serial

ser = serial.Serial("COM5", 9600) command = b'\x41\x42\x43\x44\x48\x65\x6c\x6c\x6f'


s =


You could also use a software called Realterm - It does work, though we are not sure if it could be harmful.


Arduinopixed Schematics

December 20th, 2018

Here is some more details and cleaner schematics of Arduinopixed. Most part of the Schematics is self explanatory but I have included some minimal explanation.

Page 1

ArduinoPixed Page 1

1. U1 is the 4 Port USB Hub.
2. J2, J3, J4 are USB Connectors.
3. U4 is a 5V to 3.3V Regulator.
4. R2 is fuse at 5V Entry point

Page 2

Arduinopixed Schematics - Sheet 2

Some explanations

1. U2 is USB to UART chip
2. U3 is ATMEGA chip
3. J8 and J9 form the header for any Add on Board
4. J5 Header is used for programming ATMEGA, if required.
5. SW3 is on board Switch
6. D1 is LED
7. R6 is thermistor that can be used for temperature monitoring.


Programming ArduinoPixed

November 15th, 2018

The Arduinopixed comes pre programmed with bootloader. If however, you need to re program the bootloader, this blog should help you. Here are the list of the steps you need to follow.

1. Please purchase an Arduino Nano v3.0 board. These are available for under $2 - for example
Make sure you buy the one that has bootloader preloaded. In the Arduino Nano with preloaded bootloader, it will blink with LED when powered ON.

2. Make a 6 Pin Cable - One end will connect to Arduino Nano board and the other end will connect to ArduinoPixed Board ( J5 Connector) . The connection will be as follows

Figure 1 : Pinout Connection between Arduino Nano and ArduinoPixed

3. Install Arduino IDE on a Windows Computer and start the Arduino Program

4. Connect the Arduino Nano with the Computer using a USB Cable. Make sure you are able to download a LED Blinking example program on it.

5. Add a 10uF Cap on the Arduino Nano board between its RESET PIN and GND ( Notice that you will have to remove this capacitor if you wish to do the step 4 above again).

6. In the Tools -> Board menu select the item that corresponds to the Arduino in which you are going to burn the bootloader(in this case, Arduino Nano w/Atmega 328 again). Then go to the Tools->Programmer menu, and select “Arduino as ISP” instead of the default “AVRISP mkII”:

7. Finally, click in the Tools -> Burn Bootloader menu item


Example programs for ArduinoPixed

October 8th, 2018

ArduinoPixed adds 3 USB ports and an onboard Arduino. Setting up Arduinopixed is easy. Just use the 4 provided screws to attach it to Raspberry Pi Zero W ( Add a USB Wifi Board if you are using Raspberry Pi Zero). The Extra USB ports on the Arduinopixed allows you to work directly on the Raspberry Pi - No SSH or Serial Port required ( but you can do that if you want to). Hook the Pi Zero to HDTV using HDMI to HDMI Mini Cable. Hook a Keyboard and Mouse to the USB Ports of the Arduinopixed.

After powering it on - set up your wifi.

Install the Arduino using

#sudo apt-get install arduino

Now you should be able to run the Arduino from the menu. Here are some example programs to get you started.

Example : LED Blinking

This example will blink and LED for 1 sec and off for 0.2 second on the Arduinopixed. Note that the LED is connected on Pin 6 in place of 13 in Arduino or Arduino Nano.

void setup() {
pinMode(6, OUTPUT);

void loop() {
digitalWrite(6, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(6, LOW); // turn the LED off by making the voltage LOW
delay(200); // wait for a second

Example : LED ON off on Push button

The example will turn on or off the LED on Arduoinopixed depending upon if the the Push Button is pressed or not. The push button is connected on Pin 7 and is normally high. When the Push Button is pressed, it turns low.

const int buttonPin = 7; // the number of the pushbutton pin
const int ledPin = 6; // the number of the LED pin

// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);

// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);

Example : A/D Converter that throws Sensed value at Serial Port every 500 ms

const int analogInPin = A7; // Analog input pin that the potentiometer is attached to
const int analogOutPin = 6; // Analog output pin that the LED is attached to

int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)

void setup() {
// initialize serial communications at 9600 bps:

void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin);
// map it to the range of the analog out:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// change the analog out value:
analogWrite(analogOutPin, outputValue);

// print the results to the Serial Monitor:
Serial.print("sensor = ");
Serial.print("\t output = ");

//500 ms wait


USB Wifi on Freescale i.MX6

April 12th, 2018

This post is about how to get the USB wifi working. The TP-Link TL-WN721N wifi Module has been used as an example but it should be possible to extend similar thing on other Wifi Modules as well.

1. In the kernel Select the Athroes HTC as module and build the kernel module.
2. Copy the generated four files - ath.ko, ath9k_hw.ko, ath9k_common.ko and ath9k_htc.ko in directory /system/lib/modules/
3. Copy the firmware file in the directory /etc/firmware/ath9k_htc/
4. Install the modules using ath.ko, ath9k_hw.ko, ath9k_common.ko
5. ifconfig wlan0 up
6. iw dev wlano scan
7. To connect to a network that does not need password use
iw wlan0 connect yourssid
8. use wpa_supplicant to connect to network that needs authentication