Leave a comment  →

The Allwinner A10 is a family of single-core SoC devices designed by Allwinner Technology from Zhuhai, China. Currently the family consists of the A10, A13, A10s and A12. The SoCs incorporate the ARM Cortex-A8 as their main processor and the Mali 400 as the GPU.

The Allwinner A10 is known for its ability to boot Linux distributions such as Debian, Ubuntu, Fedora, and other ARM architecture-capable distributions from an SD card, in addition to the Android OS usually installed on the flash memory of the device.

Here I am sharing the footprint for Allwinner A10 Soc chip taken from Olimex design.

Capture

 


7 Comments  →
   by Dost Muhammad Shah    7 Comments  →
' . get_the_title() . '

In this post I am writing how to send a GET request using GSM Module with AT commands. It should work with any module and has been tested to work with Sim800 series  (SIM800C-DS , SIM800ASIM800H, SIM800L, SIM800C, SIM800 etc) and Sim900 series (SIM900, SIM900A, SIM900D, SIM900B) of modules from simcom.

You have to bring up GPRS connection before this obviously , which is not covered here in this post.

 

HERE ARE THE STEPS TO MAKE GET REQUEST

Initiate the HTTP service

AT+HTTPINIT
> OK

Set the HTTP session.

AT+HTTPPARA=”CID”,1
> OK

Set the HTPP URL

at+httppara=”URL”,”google.com”

Start the session<

AT+HTTPACTION=0
> OK

> +HTTPACTION:0,601,0

The above AT response code (601) for HTTP session start indicates that there is a network error. Then make sure that the PDP context is setup properly.

IF the HTTP session is successful, it should return code of ’200′,

AT+HTTPACTION=0
> OK
> +HTTPACTION:0,200,4

Above HTTP GET request is sucessful and it returned 4 bytes.
To read the data of the HTTP server,

AT+HTTPREAD
> +HTTPREAD:4
> test
> OK

To terminate the HTTP service,

AT+HTTPTERM
> OK

UPDATE:

Sometimes a 601 Error code is received in response. @Bruno Lewin shared a link to a StackOverFlow Answer about the issue and I feel that I should include it here as well

 

Here are the minimum setup commands that have worked for me (based on trial/error and searching around on the internet).

AT+SAPBR=3,1,"APN","wap.cingular"
AT+SAPBR=1,1

The correct value for the APN may be different for you, depending on your network and service provider.

Status codes above 600 (and some in the 500 range) are unassigned in the HTTP standard. In the AT command manual for the SIM908, status meanings are given in the notes on the HTTPACTIONcommand:

600 Not HTTP PDU
601 Network Error
602 No memory
603 DNS Error
604 Stack Busy

You can query the bearer connection status of CID 1 with AT+SAPBR=2,1 and the related parameters with AT+SAPBR=4,1. You can also check that you’re attached to the GPRS network with AT+CGATT?. If everything indicates that you are connected and you are still getting a 601 status code, then check that your service plan has data and that it hasn’t run out. I have found that even when my account has a few hundred k of data showing on the balance that I start to get a 601 status until I add more data to my prepaid phone plan. If the SIM module has been on the whole time and you add more data, you’ll need to close and re-open your connection (AT+SAPBR=0,1 followed by AT+SAPBR=1,1) and then your HTTP* commands will start working again without having to set the HTTPPARA settings again and without having to restart with HTTPINIT.


Leave a comment  →
' . get_the_title() . '

This is awesome. The only thing I miss is the LAN interface but at $5 its still amazing. It has Broadcom BCM2835 processor and that also 40% faster than the pi 1 with 512 MB of Ram.

Today, I’m pleased to be able to announce the immediate availability of Raspberry Pi Zero, made in Wales and priced at just $5. Zero is a full-fledged member of the Raspberry Pi family, featuring:

  • A Broadcom BCM2835 application processor
    • 1GHz ARM11 core (40% faster than Raspberry Pi 1)
  • 512MB of LPDDR2 SDRAM
  • A micro-SD card slot
  • A mini-HDMI socket for 1080p60 video output
  • Micro-USB sockets for data and power
  • An unpopulated 40-pin GPIO header
    • Identical pinout to Model A+/B+/2B
  • An unpopulated composite video header
  • Our smallest ever form factor, at 65mm x 30mm x 5mm

Raspberry Pi Zero runs Raspbian and all your favourite applications, including Scratch, Minecraft and Sonic Pi.

RaspberryPi BLOG

DIY Bluetooth Speaker!


Leave a comment  →

After weeks of waiting, the parts I needed for a homemade Bluetooth speaker arrived. Pictured above are the PAM8403 amplifier board, Bluetooth module (USB powered with a 3.5mm audio jack), and a couple of 3-watt speakers. The power supply is a 5V 2A power supply I had laying around. All of the project materials amounts […]

https://mwhprojects.wordpress.com/2015/10/17/diy-bluetooth-speaker/


Leave a comment  →

There are some android devices that have an ethernet (LAN) port for example Android STB, Android powered door-phone monitors, etc. The regular way of getting MAC address is as follows

WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress();

Not to forget adding the following permission in the AndroidManifest.xml 

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

The above method will give us the MAC address of WiFi. Assuming your Ethernet interface is eth0, to get the MAC address of Ethernet port we have to try opening and reading the file /sys/class/net/eth0/address. This can be Implemented as below.

public static String loadFileAsString(String filePath) throws java.io.IOException{
    StringBuffer data = new StringBuffer(1000);
    BufferedReader reader = new BufferedReader(new FileReader(filePath));
    char[] buf = new char[1024];
    int numRead=0;
    while((numRead=reader.read(buf)) != -1){
        String readData = String.valueOf(buf, 0, numRead);
        data.append(readData);
    }
    reader.close();
    return data.toString();
}

public String getMacAddress(){
    try {
        return loadFileAsString("/sys/class/net/eth0/address")
                .toUpperCase().substring(0, 17);
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}