You are here


Use EEPROM and other memory on Arduino with wear leveling

Here is an Arduino library allowing you to write to all flash or EEPROM space with wear leveling. The library already supports multiple memory types (internal EEPROM, I2C and SPI) and can be extended very easily to support others. The memory space can be used as a space to store configuration data with wear leveling, or to read and write (at the same time) sensor data filling the whole memory space efficiently.


Add another hardware serial port to Arduino (MAX3100 library)

A complete Arduino library for the MAX3100 serial UART/USART chip can be downloaded below. There have been many requests for an Arduino library for the MAX3100 external serial USART (UART) chip from Maxim Integrated. As an example of the minor changes needed to use the MAX3100's serial port instead of (or in addition to) the built in serial port, here is some sample code (note the lower case 's' is the only change needed to use the new serial port).


SN74HC595 shift register simulation directly in Arduino

There exists little practical information assisting with the experimentation of '595 shift registers.  This article and below Arduino sketch aim to address this vacuum.  The sketch simulates one or more (chained) 595 shift registers on the serial monitor while simultaneously driving the IC or ICs via the Arduino's pins.  This allows concurrent theoretical and practical experimentation with the 74HC595 first-in-first-out (FIFO) shift register family.


Migrate/Upgrade Ubuntu 14.04 LTS (Trusty Tahr) GNU/Linux from 32 bit to 64 bit HowTo

This brief HOWTO shows how to take a working 32 bit 14.04 installation and convert it into a 64 bit system. You will be able to keep all your programs, settings and data. You start with a 32 bit system that can run 64 bit programs, then convert it to a 64 bit system that can run 32 bit programs.

With the release of Ubuntu LTS 14.04 (Trusty Tahr), the ability to use the multiarch facility to upgrade to 64 bit is easier than ever. Much simpler than upgrading 12.04 and an evolution of upgrading Debian 7 or 8.


Presenting Ordnance Survey Meridian 2 data in QGIS

Chelmsford, Essex 1:25,000 Meridian 2 QGIS
Romford, London 1:55,000 Meridian 2 QGIS
Purfleet, Essex 1:90,000 Meridian 2 QGIS

Below are QGIS QML stylesheets for OS OpenData Meridian 2 layers.  Ordnance Survey data has been available for a while for download as OS OpenData.  Also provided are SLDs for ESRI.  However these SLDs do not import correctly into QGIS.


Large file synchronisation

Efficiently synchronise copies of a large sparse file locally. I deal with a large amount of large sparse files because of virtualisation and other technologies. Because of their size, often a small number of blocks have data and, of these, a small number of blocks are changed and need to be backed up. Using a log-based (snapshotting) file system on USB 2 as a backup device, I only want to write blocks if absolutely necessary.

So what's the solution?  Some simple custom code that

  1. checks that both file sizes are identical;
  2. verifies that some metadata has changed (i.e time stamp, permissions or owner/group);
  3. reads both files block-by-block;
  4. writes only changed blocks to the destination file, and
  5. updates any changed metadata.


Subscribe to Technology