Table of contents
The EEPROM stores the individual configuration for the RFzero programs. You can use the EEPROM just as you like and you may overwrite the RFzero default EEPROM addresses, but, the RFzero programs may have to be reconfigured before they become usable again or stall completely. You can also replace the default EEPROM with a new one for your own programs. Again it is all up to you.
Default EEPROM sizes
RFzero versions 1.x come with a 1 kB EEPROM in a DIP8 socket, Microchip 24LC08B.
RFzero versions 2.x come with a 16 kB EEPROM SOIC-8 mounted on the PCB, STMicroelectronics M24128. Holes are provided for an optional EEPROM in a DIP8 socket, that uses the same I2C address as the SOIC-8. Thus the factory mounted EEPROM has to be removed to use the optional EEPROM.
EEPROM map for the programs
The RFzero programs have one common EEPROM map, even if not all of the values are used in every program. The RFzero libraries expect to have exclusive rights to EEPROM addresses 0 to 63. Below is the RFzero default EEPROM map. But please note that it is subject to changes.
Section | Addr | Bytes | Description | Mnemonic |
---|---|---|---|---|
Hardware | 0 | 1 | EEPROM ID | - |
0-15 | 1 | 1 | H/W version | - |
16-31 | 16 | 4 | Reference start frequency | HW_RefStartFreq |
20 | 1 | Has the ref. start frequency ever been written to the EEPROM | HW_RefStartFreqWritten | |
21 | 1 | T1 configuration | HW_T1 |
|
22 | 1 | Display mode | HW_DisplayMode | |
23 | 1 | Attenuator mode | HW_AttenuatorMode |
|
24 | 1 | Warm up before RF | HW_WarmUp |
|
25 | 1 | SX1509 I2C address | HW_SX1509addr | |
26 | 1 | MCP23017 I2C address | HW_MCP23017addr | |
27 | 1 | Rotary encoder type | HW_RotEncType | |
28 | 1 | PCF8574, all variants, I2C address | HW_PCF8574addr | |
29 | 1 | Si5351A current levels | HW_CurLevels | |
GPS | 32 | 1 | Leap seconds | GPS_LeapSeconds |
32-47 | 33 | 1 | Wait for GPS to be valid | GPS_Wait |
34 | 1 | Echo the GPS data to USB | GPS_Echo | |
35 | 1 | Local time hours relative to UTC | GPS_LocalHoursOffset | |
36 | 1 | Local time minutes relative to UTC | GPS_LocalMinutesOffset | |
37 | 1 | Daylight saving time | GPS_LocalDST | |
38 | 1 | Local AM/PM time | GPS_LocalAMPM | |
Filters | 48 | 1 | Filter, 125 kHz | Filter0 |
48-63 | 49 | 1 | Filter, 250 kHz | |
50 | 1 | Filter, 500 kHz | ||
51 | 1 | Filter, 1 MHz | ||
52 | 1 | Filter, 2 MHz | ||
53 | 1 | Filter, 3 MHz | ||
54 | 1 | Filter, 5 MHz | ||
55 | 1 | Filter, 8 MHz | ||
56 | 1 | Filter, 13 MHz | ||
57 | 1 | Filter, 21 MHz | ||
58 | 1 | Filter, 35 MHz | ||
59 | 1 | Filter, 58 MHz | ||
60 | 1 | Filter, 90 MHz | ||
61 | 1 | Filter, 160 MHz | ||
62 | 1 | Filter, 268 MHz | ||
63 | 1 | Filter, above 268 MHz | ||
Common | 64 | 21 | Name | COMMON_Name |
64-127 | 85 | 16 | Call sign | COMMON_Call |
101 | 9 | Locator | COMMON_Locator | |
Beacon | 128 | 8 | Nominal beacon frequency | BEACON_Frequency |
128-255 | 136 | 1 | Multiplier | BEACON_Multiplier |
137 | 1 | Calibration interval | BEACON_CalibInterval | |
138 | 1 | Keying style | BEACON_KeyingStyle | |
139 | 1 | CW speed, dot duration | BEACON_CWSpeed | |
140 | 16 | Call sign | BEACON_Call | |
156 | 16 | MGM message | BEACON_MGMMsg | |
172 | 1 | MGM extra message | BEACON_MGMMsgExtra | |
173 | 1 | MGM message type | BEACON_MGMMsgType | |
192 | 1 | IBP start minute | BEACON_IBPMinute | |
193 | 1 | IBP start second | BEACON_IBPSecond | |
194 | 1 | Power level | BEACON_PowerLevel | |
195 | 1 | SBP mixed mode | BEACON_SBPMode | |
196 | 1 | SBP transmission bit mask | BEACON_SBPMask | |
197 | 8 | SBP frequency | BEACON_SBPFrequency | |
205 | 16 | SBP call sign | BEACON_SBPCall | |
221 | 16 | SBP MGM message | BEACON_SBPMGMMsg | |
237 | 1 | FST4W mode | BEACON_FST4Wmode | |
238 | 1 | FST4 mode | BEACON_FST4mode | |
239 | 1 | JT9 mode | BEACON_JT9mode | |
240 | 1 | Chirp mode | BEACON_ChirpMode | |
241 | 1 | JT65 mode | BEACON_JT65mode | |
242 | 1 | JT4 mode | BEACON_JT4mode | |
243 | 1 | Q65 mode | BEACON_Q65mode | |
WSPRTX | 256 | 1 | Transmission mode | WSPRTX_TXMode |
FST4WTX | 257 | 1 | Filter mode | WSPRTX_FilterBits |
256-383 | 258 | 1 | Automatically update the locator | WSPRTX_AutoLocator |
259 | 1 | Send type 3 message | WSPRTX_Type3Message | |
260 | 1 | Number of timeslots used | WSPRTX_Timeslots | |
261 | 1 | Time slot 0 (MSN sequence 1, LSN sequence 0) | WSPRTX_Sequence0 | |
262 | 1 | Time slot 1 (MSN sequence 1, LSN sequence 0) | ||
263 | 1 | Time slot 2 (MSN sequence 1, LSN sequence 0) | ||
264 | 1 | Time slot 3 (MSN sequence 1, LSN sequence 0) | ||
265 | 1 | Time slot 4 (MSN sequence 1, LSN sequence 0) | ||
266 | 1 | Time slot 5 (MSN sequence 1, LSN sequence 0) | ||
267 | 1 | Time slot 6 (MSN sequence 1, LSN sequence 0) | ||
268 | 1 | Time slot 7 (MSN sequence 1, LSN sequence 0) | ||
269 | 1 | Time slot 8 (MSN sequence 1, LSN sequence 0) | ||
270 | 1 | Time slot 9 (MSN sequence 1, LSN sequence 0) | ||
271 | 1 | Time slot 10 (MSN sequence 1, LSN sequence 0) | ||
272 | 1 | Time slot 11 (MSN sequence 1, LSN sequence 0) | ||
273 | 1 | Time slot 12 (MSN sequence 1, LSN sequence 0) | ||
274 | 1 | Time slot 13 (MSN sequence 1, LSN sequence 0) | ||
275 | 1 | Time slot 14 (MSN sequence 1, LSN sequence 0) | ||
276 | 4 | Frequency for index 0 | WSPRTX_Freq0 | |
280 | 4 | Frequency for index 1 | ||
284 | 4 | Frequency for index 2 | ||
288 | 4 | Frequency for index 3 | ||
292 | 4 | Frequency for index 4 | ||
296 | 4 | Frequency for index 5 | ||
300 | 4 | Frequency for index 6 | ||
304 | 4 | Frequency for index 7 | ||
308 | 4 | Frequency for index 8 | ||
312 | 4 | Frequency for index 9 | ||
316 | 4 | Frequency for index 10 | ||
320 | 4 | Frequency for index 11 | ||
324 | 4 | Frequency for index 12 | ||
328 | 4 | Frequency for index 13 | ||
332 | 4 | Frequency for index 14 | ||
336 | 1 | Control bits for index 0 | WSPRTX_Control0 | |
337 | 1 | Control bits for index 1 | ||
338 | 1 | Control bits for index 2 | ||
339 | 1 | Control bits for index 3 | ||
340 | 1 | Control bits for index 4 | ||
341 | 1 | Control bits for index 5 | ||
342 | 1 | Control bits for index 6 | ||
343 | 1 | Control bits for index 7 | ||
344 | 1 | Control bits for index 8 | ||
345 | 1 | Control bits for index 9 | ||
346 | 1 | Control bits for index 10 | ||
347 | 1 | Control bits for index 11 | ||
348 | 1 | Control bits for index 12 | ||
349 | 1 | Control bits for index 13 | ||
350 | 1 | Control bits for index 14 | ||
351 | 1 | Power for index 0 | WSPRTX_Power0 | |
352 | 1 | Power for index 1 | ||
353 | 1 | Power for index 2 | ||
354 | 1 | Power for index 3 | ||
355 | 1 | Power for index 4 | ||
356 | 1 | Power for index 5 | ||
357 | 1 | Power for index 6 | ||
358 | 1 | Power for index 7 | ||
359 | 1 | Power for index 8 | ||
360 | 1 | Power for index 9 | ||
361 | 1 | Power for index 10 | ||
362 | 1 | Power for index 11 | ||
363 | 1 | Power for index 12 | ||
364 | 1 | Power for index 13 | ||
365 | 1 | Power for index 14 | ||
QO100 | 384 | 8 | The fixed f0 frequency | QO100_F0 |
384-432 | 392 | 1 | The f0 multiplication factor | QO100_F0Multi |
393 | 8 | The f1 receiver frequency | QO100_F1RX | |
401 | 1 | The f1 receiver multiplication factor | QO100_F1RXMulti | |
402 | 8 | The f1 transmitter frequency | QO100_F1TX | |
410 | 1 | The f1 transmitter multiplication factor | QO100_F1TXMulti | |
GPSDO | 432 | 8 | The frequency | GPSDO_Freq |
Counter | 464 | 1 | The number of averages | COUNTER_Averages |
464-479 | 465 | 1 | The gate time | COUNTER_GateTime |
Multi LO | 480 | 8 | The freq0 frequency | MULTILO_Freq0 |
488-543 | 488 | 8 | The freq1 frequency | |
496 | 8 | The freq2 frequency | ||
504 | 8 | The freq3 frequency | ||
512 | 8 | The freq4 frequency | ||
520 | 1 | The freq0 multiplier | MULTILO_Multi0 | |
521 | 1 | The freq1 multiplier | ||
522 | 1 | The freq2 multiplier | ||
523 | 1 | The freq3 multiplier | ||
524 | 1 | The freq4 multiplier | ||
Signal generator | 544 | 1 | Power, 100 kHz | SIGGEN_Power0 |
544-697 | 545 | 1 | Power, 300 kHz | |
546 | 1 | Power, 1 MHz | ||
547 | 1 | Power, 3 MHz | ||
548 | 1 | Power, 10 MHz | ||
549 | 1 | Power, 30 MHz | ||
550 | 1 | Power, 100 MHz | ||
551 | 1 | Power, 200 MHz | ||
552 | 1 | Power, 280 MHz | ||
553 | 1 | Power, 290 MHz | ||
554 | 1 | Reserved | ||
555 | 1 | Reserved | ||
556 | 12 | Memory 0 | SIGGEN_Memory0 | |
568 | 12 | Memory 1 | ||
580 | 12 | Memory 2 | ||
592 | 12 | Memory 3 | ||
604 | 12 | Memory 4 | ||
616 | 12 | Memory 5 | ||
628 | 12 | Memory 6 | ||
640 | 12 | Memory 7 | ||
652 | 12 | Memory 8 | ||
664 | 12 | Memory 9 | ||
VFO | 698 | 1 | Filter mode | VFO_FilterMode |
698-899 | 699 | 1 | Output mode | VFO_OutputMode |
700 | 1 | Band in use | VFO_Band | |
701 | 1 | Frequency steps mask | VFO_Steps | |
702 | 1 | CW pitch | VFO_CWpitch | |
703 | 1 | Reserved | ||
704 | 12 | Band data for index 0 | VFO_BandData0 | |
716 | 12 | Band data for index 1 | ||
728 | 12 | Band data for index 2 | ||
740 | 12 | Band data for index 3 | ||
752 | 12 | Band data for index 4 | ||
764 | 12 | Band 0 settings | VFO_Band0 | |
776 | 12 | Band 1 settings | ||
788 | 12 | Band 2 settings | ||
788 | 12 | Band 3 settings | ||
812 | 12 | Band 4 settings | ||
824 | 12 | Memory 0 | VFO_Memory0 | |
836 | 12 | Memory 1 | ||
848 | 12 | Memory 2 | ||
860 | 12 | Memory 3 | ||
872 | 12 | Memory 4 |
All the address mnemonics must have the EEPROM_ prefix added, e.g. EEPROM_HW_RefStartFreq.
RFzero uses little endianness.
Qualified EEPROMs
All RFzero versions have been tested with the below EEPROMs.
Device | RFzero type name | ID | Size [kB] | I2C address | Page size [Bytes] | Pages |
---|---|---|---|---|---|---|
24AA08, 24LC08B or 24AA128, 24FC128, M24128 | EEPROM_TYPE_AUTO | 1 6 | 1 16 | 0x50 | 16 64 | 64 265 |
24AA08 | EEPROM_TYPE_24AA08 | 1 | 1 | 0x50 | 16 | 64 |
24AA128 | EEPROM_TYPE_24AA128 | 6 | 16 | 0x50 | 64 | 256 |
24FC128 | EEPROM_TYPE_24FC128 | 6 | 16 | 0x50 | 64 | 256 |
24LC08B (default v.1.#) | EEPROM_TYPE_24LC08B | 1 | 1 | 0x50 | 16 | 64 |
24LC64 | EEPROM_TYPE_24LC64 | 4 | 8 | 0x50 | 32 | 256 |
24LC1025 | EEPROM_TYPE_24LC1025 | 5 | 128 | 0x50 | 128 | 1024 |
AT24C16 | EEPROM_TYPE_AT24C16 | 3 | 2 | 0x50 | 16 | 128 |
AT24C256 | EEPROM_TYPE_AT24C256 | 2 | 32 | 0x50 | 64 | 512 |
M24128 (default v.2.#) | EEPROM_TYPE_M24128 | 6 | 16 | 0x50 | 64 | 256 |
M24C32 | EEPROM_TYPE_M24C32 | 7 | 4 | 0x50 | 32 | 128 |
The EEPROM_TYPE_AUTO is a special RFzero type name used instead of all EEPROMs with an ID equal to 1, e.g. EEPROM_TYPE_24LC08B, or all EEPROMs with an ID equal to 6, e.g. EEPROM_TYPE_M24128. When calling the eeprom.setType(EEPROM_TYPE_AUTO) function, the library tries to detect if the EEPROM is ID type 1 or 6. This makes the default RFzero programs more portable across the two different EEPROMs especially in the RFzero Manager where it is not possible to edit the source code. However, it is always best to use a specific RFzero type name in the source code if possible.
If everything fails you should upload either the standard RFzero program EEPROM_HW_Ver1, if the EEPROM in your RFzero is a 24LC08B, or the EEPROM_HW_Ver2, if the EEPROM in your RFzero is an M24128.
Changing to a new EEPROM
If you want to change to a new EEPROM it is highly recommended to
- Load the Chip Manager program
- Power down the RFzero
- Change the EEPROM
- Power up the RFzero
- In the Chip Manager do a reset of all the parameters
This way the EEPROM has been formatted so the values are in line with the RFzero programs. After performing the above steps you may proceed with the other programs and tailor the parameters in more details.