Challenges: Difference between revisions

From IoT with AME
Jump to navigation Jump to search
mNo edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
=Challenges - How to Overcome Hardware and Software Limitations=
=Challenges - How to Overcome Hardware and Software Limitations=


The Arduino hardware is pretty limited - you get 32kB of unmodifiable (at run-time) flash memory for the program, and 2kB of modifiable SRAM memory for variables. That's it.
The Arduino hardware is very powerful in the sense of provided functionality and bang for the buck. But, resources are pretty limited.


This is a challenge to your software you have to address at compile time. During operations you may want to change the configuration of the device. If you want do to that with re-programming the chip, you need to use an interface of some kind (wireless, SPI/ I2C, or SD card).
You get


* Updating device configuration (ie, MQTT/ WLAN)
* 32kB of unmodifiable (at run-time) flash memory for the program
* Updating device code
* 2kB of volatile SRAM memory for variables, and
* 1kB runtime-programmable, non-volatile EEPROM memory for data
 
That's it. Pretty much any icon on your Linux, Apple, or Windows desktop is bigger then the Arduino flash memory. This is a challenge already at compile time. It gets potentially worse at run time: Processing network data requires buffers, and buffer sizes may be variable.
 
==Configuration==
 
Another thing is modifiable configuration (in example, WLAN credentials). If you want do to that without re-programming the chip, you need to use an interface of some kind (wireless, SPI/ I2C, or an SD card).
 
==Updating the Firmware (OTA or Over the Air)==
 
The Arduino itself does not provide a means to update its flash memory without some external help. But the ESP8266 or another Arduino (€2.50 from China) could do that.


[[IoT with AME|Home]]
[[IoT with AME|Home]]

Latest revision as of 17:15, 15 June 2018

Home

Challenges - How to Overcome Hardware and Software Limitations

The Arduino hardware is very powerful in the sense of provided functionality and bang for the buck. But, resources are pretty limited.

You get

  • 32kB of unmodifiable (at run-time) flash memory for the program
  • 2kB of volatile SRAM memory for variables, and
  • 1kB runtime-programmable, non-volatile EEPROM memory for data

That's it. Pretty much any icon on your Linux, Apple, or Windows desktop is bigger then the Arduino flash memory. This is a challenge already at compile time. It gets potentially worse at run time: Processing network data requires buffers, and buffer sizes may be variable.

Configuration

Another thing is modifiable configuration (in example, WLAN credentials). If you want do to that without re-programming the chip, you need to use an interface of some kind (wireless, SPI/ I2C, or an SD card).

Updating the Firmware (OTA or Over the Air)

The Arduino itself does not provide a means to update its flash memory without some external help. But the ESP8266 or another Arduino (€2.50 from China) could do that.

Home