In the previous blog in this series, using Flash for non-volatile program data was covered. One aspect of this was the F( ) macro that enables Serial.print/println strings to be accessed from Flash where the program is stored. That is, they do not consume RAM space allowing for more volatile programming space. This blog compares using and not using the F( ) macro. In the Telemetry sketch this allows for nearly double the number of name-value pairs
Read the rest of entry »
In the quest to reduce RAM usage with a RAM challenged Arduino device, this blog covers using permanent storage (Flash and EEPROM).
In part-1 of this Compact 2013 getting started series, let's go over the development environment, required software and connectivity between the development workstation and the target device.
In Part 9 of this series, it was shown how to create a Version 1 table such that the id field is an auto-incremented integer which saves storage space on a small device. Version 1 tables don't automatically save a creation and modification date. This blog covers how to do it with a Script.
The default id field for a Azure Mobile Services Table, that the table is indexed on, is a string. By default the string that is auto-generated is a 36 character GUID string. This can be 3 or more times rest of the data sent as a HTTP Response to a default HTTP GET for each record from the Telemetry table . This blog discusses this issue and canvasses some options to resolve this overkill.
This blog covers the major revision of the Telemetry to remove old, now unnecessary code, fix some bugs, further improve error responses, and a stored data structure that makes the parsed JSon data available after the HTTP Response processing is complete.
One of the areas left incomplete in the Texas Instruments AM335x BSP when they ended Windows Embedded support was the whole power management and low power operation. TI turned over support to a third party, which will remain nameless, and from what I can gather not much work has been done since. This is a shame as the AM335x processor, as used on the Beaglebone, has some fantastic low power features. In general, ARM processors have always had superior low power characteristics over the x86 family. This is do, in part, to the fine granularity ARM gives you over clock and power domain control as distributed within the chip itself. You have the ability to shut down different sections of the chip, or even run them at a reduced voltage. You also have the ability to slow down or cut off clocks to different internal peripherals within the part. All these can have a cumulative effect on lowering the current draw and thus the power consumed by the chip. These things become very important if you are doing a battery op ...
Following on from Part 3b in this series, a few query options are exemplified.
This blog covers the Stream Parser - State Machine code in detail...
This blog presents a more complete JSon parser in the Arduino context that extracts the data entities from each record. in the JSon string. It is implemented as a Stream Parser - State Machine.