Firmware upgrade for SIM900 GSM/GPRS modem

In this post we will learn how to update the firmware.

Requirements

You can use AT Command “AT+GSV” to check the current version of the Firmware.

.Cautions

How to

Application note AN_SIM900_Update Tool_UGD_V1.01 from simcom explains the process.

Step1

Download Simcom – sim900 Customer flash loader V1.01; Unzip the Simcom – sim900 Customer flash loader V1.01.

Step2

Connect your SIM900 board to your PC;

Step3

Open the executable file “Simcom – sim900 Customer flash loader V1.01″, it will show  window like the one below

Up2.jpg

Step 3

Step4

Select the right COM port(in my case is COM12), and the default value of Speed is 460800(baudrate), and 460800 is OK from my experience.

Step5

Click the Browse to select the downloaded firmware(in my case is 1137B03SIM900M64_ST_MMS ). You can see  window like the one below

Up3.jpg

Step 5

Step6

Click the START button to download, you will see  window like the one below

Up4.jpg

Step 6

Step7

Now Switch Off and then Switch ON GPRS Board .

Up5.jpg

Step 7

Step8

When the tool is erasing the flash, you will see the window like the one below:(Step9 may last a few minutes)

If fail, you can try another Speed(baudrate),and do it all again.

Up6.jpg

Step 8

Step9

The whole download process needs about 4 minutes; After the download, you will see window like this

Up7.jpg

Step 9

When you see Download done, congratulations that you have upgrade the firmware successfully.

 

AVRWIZ automatic code generator for AVR microcontrollers

AVRWIZ is a code generator for the popular Atmel AVR microcontrollers, optimized for the AVR Studio IDE. Its a very nice automatic code generator for AVR microcontrollers developed by tcg in avrfreaks, which can generate code for most common tasks. It  support baud calculator, timer calculator, multitasking generator, interrupts, ports and more. But there are several thing to be done like TWI, USI. As Author states there is lots of testing to be done. Project is open for new ideas and suggestions.

Nice thing I like about it that program is capable to generate code instantly. It can be saved as single file or whole Avr Studio project with makefile which is ready to compile instantly.
avrwizavrwiz_code

I Like the older version although it has less features still its clean and fast, get it and give it a try. The latest online version has moved from http://greschenz.dyndns.org/indeh.php?title=AvrWiz and now can be found here.

AvrWiz V 22 (latest) 

OLDER VERSIONS:

AvrWiz_0_009

AvrWiz_0_008

AvrWiz_0_007

AvrWiz_0_005

AvrWiz_0_004

AvrWiz_0_003

AvrWiz_0_002

AvrWiz_0_001

 

SMASH / UNSMASH all parts or a grouped parts in Cadsoft EAGLE

At times you require to SMASH or UNSMASH a number of components at a time either for rearranging the names or re size their text. Sometime you might need to UNSMASH them. This is important for making the sikscreens legible and look nice.

Although this is possible through the use of ULPs , here is how it can be implemented by command line of eagle.

For smashing  all parts/components , use the following command

GROUP ALL; SMASH (>0 0);

For unsmashing  all parts/components , use the following command

GROUP ALL; SMASH (S> 0 0);

For smashing  already grouped parts/components , use the following command

SMASH (>0 0);

For unsmashing  already grouped parts/components , use the following command

SMASH (S> 0 0);

Cheers 🙂

 

Pic based temperature sensor with 7 segment display and ds18b20

This circuit is a Digital Temerature Sensor using a Dallas ‘1-wire’ DS18B20 Digital Thermometer

Firstly I would like to thank Pommie and Mike, K8LH from the Electro Tech Online Forum for their genourous help. This has been the most challenging project to date and they have helped immensely. They have tought me many valuable lessons about programming in Assembly language and it has really assitsted me in getting this project up and running.

Note: I would like to make a point that some snippets of their own code is used in this program. I have used it with their permission and please observe any copyrights or name recognition placed in the code. If you wish to use their snippets of code, please contact them via the Electro-Tech-Online forum.

How It Works

The DS18B20 is a direct-to-digital temperature sensor using Maxim’s exclusive 1-Wire bus protocol that implements bus communication using one control signal. In regards to hardware, this particular sensor is particularly easy to interface to. It only requires 1 external pull-up resistor to operate as opposed to an analogue sensor which possibly needs multiple external components such as resistors and op-amps.

In regards to software, opposed to analogue sensors, the Dallas 1-wire digital sensors are arguably as easy to interface to. While an analogue sensor will need an Analogue to Digital conversion using a voltage reference and possibly using an op-amp, the Dallas 1-wire direct to digital sensors require precise timing when it comes to communication. This program is fairly basic in principle as all it does is obtain temperature data from the DS18B20 sensor and display the temperature in Degrees Celsius on a 4 digit, 7 segment display. But when it comes to actually doing this, as you will see from the .ASM file, it is more complicated than it sounds. In words; the program first initialises the PIC16F628A Microcontroller. It assigns the Inputs and Outputs, zero’s all bank 0 RAM, initialises the display column select bit and configures TIMER 2. TIMER 2 is used to interrupt the normal loop of the program to update the 7 segment LED display.

After the Microcontroller has been setup, it begins communication with the DS18B20 Temperature Sensor. Communication routines take up just under half of the program memory. After the temperature has been gathered and stored in RAM, the Microcontroller takes the 12-bit signed/fraction integer and converts it into a decimal number then stores it in four general purpose registers in RAM.

For example, take the number D’95.8′. It is stored like this:

HUNS register = 0
TENS register = 9
ONES register = 5
TENTHS register = 8

These registers are then used within the Interrupt Service Routine to call a table to obtain display data.
The program runs continuously, updating the temperature on the display just over once per 1 second.

Features Summary:

  • Temperature data gathered more than once per second.
  • TIMER 2 interrupt driven display.
  • Program expandable to include multiple sensors on the same 1-Wire bus.
  • Temperature range of -55.0 – 127.9 Degrees Celsius.

Please see the DS18B20 Datasheet for detailed information on the device.

schematicbreadboard

 

 

digitaltemperaturesensorbasic.zip

Here is the complete project   (with explanation , code, schematic and video)

 

[Cadsoft Eagle tips] hiding/unhiding Airwires

You can hide airwires only on a per signal basis.  If you turn off the  airwires for ground and power suplies you should have a much cleaner screen. Instead of using ratsnest ! signal_name, you can use the info command on a signal (airwire or trace) in the board window and you will see a check box “Airwires hidden” for that signal in the popup “Properties” window. Click on it and all airwires for that signal will be gone.

Hiding selected airwires
Sometimes it may be useful to hide the airwires of selected signals, for instance if these will later be connected through a polygon. Typically this could be supply signals, which have a lot of airwires that will never be routed explicitly and just obscure the other signals’ airwires.
To hide airwires the RATSNEST command can be given the exclamation mark (‘!’), followed by a list of signals, as in

RATSNEST ! GND VCC

which would hide the airwires of the signals GND and VCC.
To have the airwires displayed again just enter the RATSNEST command without the ‘!’ character, and the list of signals:

RATSNEST GND VCC

This will activate the display of the airwires of the signals GND and VCC and also recalculates them. You can also recalculate the airwires (and polygons) of particular signals this way.
The signal names may contain wildcards, and the two variants may be combined, as in

RATSNEST D* ! ?GND VCC

which would recalculate and display the airwires of all signals with names beginning with ‘D’, and hide the airwires of all the various GND signals (like AGND, DGND etc.) and the VCC signal. Note that the command is processed from left to right, so in case there is a DGND signal the example would first process it for display, but then hide its airwires.
To make sure all airwires are displayed enter

RATSNEST *

Use ‘RATS *’ at the command prompt to show all airwires.”

 

PCB Design Tutorial [Altium]

This tutorial covers schematic entry and PCB design. Most of this material could be applied to any design tool; however, this tutorial focuses on Altium Designer/DXP/Protel.The first part of the tutorial consists of a set of slides which contain instructions for PCB design, and an overview of each step in the PCB design process.

The second part of this tutorial consists of a series of videos which go through each part of the PCB design process step-by-step using Altium Designer/DXP/Protel (Altium Designer 6.9 was used). Watching all videos will take you through a PCB design from start to finish; however, the videos are divided into the separate design steps so that you don’t need to watch all of them to learn a specific skill.

Tutorial Videos
Drawing Schematics
Creating a new PCB project, creating a new schematic sheet, and drawing schematics for PCB design.(This is a 3 part video)

Viewed best in fullscreen in 1080p

Viewed best in fullscreen in 1080p

… 

 

Atmel STK500 Manual Firmware Upgrade

Atmel Studio will automatically detect any old Atmel STK500 firmware version and request the user to upgrade the firmware. If for some reason the upgrade fails (the serial cable is detached during upgrade, the power goes out, …) the next time the Atmel Studio tries to connect to the STK500, the board will not be detected and the automatic upgrade procedure will not start.

Following is a procedure on how to manually upgrade an STK500 board. This procedure should work in all cases. The procedure is slightly different for AVR Studio 4 and AVR Studio 5

AVR Studio 4

  1. Power off the Atmel STK500
  2. On the STK500, push the PROGRAM button while turning on the power.
  3. Make sure there is a serial connection between the PC and the STK500 DSUB9 marked RS232 CTRL
  4. Start AVR Studio 4, and from the Tools menu start the program ‘Avr Prog’
  5. Locate the firmware upgrade hex-file stk500.ebn by pushing the Browse button in the Avr Prog Hex File window. The path for the stk500.ebn for a normal AVR Studio 4 installation is C:Program FilesAtmelAVR ToolsSTK500STK500.ebn.
  6. Push the Program button in the Avr Prog Flash window. A progress bar will now appear while showing additional information messages. Wait until the verify operation is finished.
  7. Close the Avr Prog program
  8. Power off and on the STK500 PCB. The STK500 is now ready to be used with the new firmware.

Atmel Studio and AVR Studio 5

The AVR Prog program is not distributed with the Atmel Studio installer. There is a separate installer for a set of command line tools which also includes AVR Prog.

  1. Make sure the command line tools are installed
  2. Power off the Atmel STK500
  3. On the STK500, push the PROGRAM button while turning on the power.
  4. Make sure there is a serial connection between the PC and the STK500 DSUB9 marked RS232 CTRL
  5. Start ‘AvrProg.exe’. The default installation location is C:Program FilesAtmelAVR ToolsAvrProgAvrProg.exe or C:Program Files (x86)AtmelAVR ToolsAvrProgAvrProg.exe on 64-bit OS.
  6. Locate the firmware upgrade hex-file stk500.ebn by pushing the Browse button in the Avr Prog Hex File window. The path for the stk500.ebn for a normal Atmel Studio installation is C:Program Files (x86)AtmelAVR Studio 6.0toolsSTK500STK500.ebn.
  7. Push the Program button in the Avr Prog Flash window. A progress bar will now appear while showing additional information messages. Wait until the verify operation is finished.
  8. Close the Avr Prog program
  9. Power off and on the STK500 PCB. The STK500 is now ready to be used with the new firmware.