Jolla and SailfishOS
The Other Half EEPROM programming using an Arduino Uno as In-System-Programmer
Jolla The Other Half EEPROM
When connecting The Other Half (TOH) to the Jolla A phone the toh-demon looks for an I2C EEPROM on 0x50 (7bit address).
If an EEPROM is found on this address the toh-demon reads the data and presents them as files in the
/sys/devices/platform/toh-core.0/directory:
The Other Half" Wiki on merproject.org has more information on the data structure, how to use it and how that is helpful.
The Project
After having already "mastered" accessing an EEPROM in the TinkerTOH(1,2) project, today's task should be simple:
I want to write a little sketch for the Arduino that programs some content to an I2C EEPROM, that is than read by the Jolla.
Surprisingly it took quite a while to get it right.
This article exists to spare you the (beginner) mistakes I made.
Hardware
- Setup you Arduino right
Don't forget the Pull-Up resistors.
Fig. 1 Proteus Simulation Setup - Understand the datasheet for your EEPROM
This one for ST's M24C16 for example clearly states that one can only write up to 16bytes in a single write cycle and than have to wait for 10ms or you 'roll-over' and override the first bytes (Of course I never made that mistake ...).
- Organize the data correctly
That one was a little trickier to figure out and took most of the time.
I found no documentation on why:
- The M24C16 "Current Address" for Random Read can only be set to the beginning of a 16bytes page
- The Jolla A only accepts EEPROM addresses >= 0x30 as
config_data
addresses
but up to now I was unable to get the Jolla reading the
config_data
data otherwise.
Next: Software