IAN CANADA FIFOPIMA V1.5 Reclocker Master Clock Mode User Guide
- June 4, 2024
- IAN CANADA
Table of Contents
- IAN CANADA FIFOPIMA V1.5 Reclocker Master Clock Mode
- Introduction
- Features and Specifications
- Layout and Dimensions (in mm)
- FifoPiMa picture
- Connectors
- 40PIN GPIO connectors
- Jumper settings
- LED indicators
- Application examples
- Some measurement results of FifoPiMa
- Troubleshooting
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
IAN CANADA FIFOPIMA V1.5 Reclocker Master Clock Mode
Introduction
FifoPi Ma is an audiophile grade Raspberry Pi I2S/DSD/DoP re-clocker that works in master clock mode. It is functionally equivalent to a FifoPiQ3 plus a ReclockPi. FifoPiMa successfully achieves an ultra-low jitter and ultra-low noise performance by using IanCanada’s well reputed 1-bit multistage discrete re-clock technology. The output signal quality of the FifoPiMa is almost the perfect. It works great for Paspberry Pi streamer transports, SYNC mode DACs, external DACs and many other digital audio applications to improve the sound quality. As a lower cost alternative solution, FifoPi Ma is compatible with FifoPi Q3 in both physical dimensions and electronic connections.
Features and Specifications
- Master clock mode
- Support I2S up to 384KHz
- Support DSD output from DSD64 to DSD 128
- On-board DoP decoder enables Raspberry Pi native DSD playback over GPIO
- Two user-replaceable socket-mounted clocks (XOs or OCXOs, with/without OE pin) support frequencies 22.5792/24.5760 and 45.1584/49.1520 MHz for both 44.1KHz and 48KHz family digital music. FifoPiMa also works with SinePi to use external high quality sine clocks.
- Includes two re-clock stages to achieve lowest possible jitter performance.
- 1-bit discrete re-clock technology to ensure so far the best ultra-low noise performance as the same as a ReClockPi. The final I2S/DSD signal quality is almost perfect in terms of the signal integrity.
- Zero delay time
- Two separate DC inputs to provide both clean power to the FiFoPiMa and the optional Raspberry Pi power via GPIO.
- 3.3V ultracapacitor and LifePO4 battery power supplies can be used directly for the FifoPiMa
- Optimized decoupling networks to improve power supply performance more.
- AUX GPIO connector is designed to install DAC controllers, MonitorPi or other RPi accessories without affecting the output signal quality.
- Has three output groups: U.FL connectors, GPIO and the AUX GPIO. They are all independent from each other.
- To achieve the best possible low jitter performance, high quality U.FL coaxial cable connectors are designed for MCLK and other I2S/DSD outputs in order to runs DACs, digital interface transports in a more professional way.
- Also provides Mute and DSD EN control signals for the following DACs and transport streamers.
- MCLK jitter = square (XO jitter^2 + 18fs^2) @(12kHz-20MHz)
- I2S/DSD signals jitter = square (XO jitter^2 + 18fs^2 + flip-flop additive jitter^2) @(12kHz-20MHz)
- With DoP pass through function
- With both continuous and stop clock mode for mute state.
- Bit-perfect
- Need a standard Linux driver to operate
- Can work with an IsolatorPi to have a galvanic isolation between Raspberry Pi
- As a lower cost high performance re-clock solution.
Layout and Dimensions (in mm)
Quick-Start Guide
- Install the FifoPiMa on top of a Raspberry Pi.
- Connect a TransportPi, a HdmiPi, or a SYNC mode ESS DAC, or other audio HAT on top of FifoPiMa (or connect to an external DAC through the U.FL connectors). Connect the MCLK in between through the U.FL coaxial cable if it is required.
- Install a micro-SD card loaded with your player image into your Raspberry Pi.
- Connect a good 3.3V DC power supply (LifePO4 battery or Ultracapacitor supply are preferred) to J5. (or you can short J4 1-2 and 3-4 to share Paspberry Pi power supply while keep J5 unconnected)
- Power the Raspberry Pi with 5V DC power supply either at J3 of FifoPiMa (via GPIO) or by a PurePi from bottom side of Raspberry Pi GPIO, or directly by a USBC power adapter.
- Turn on the power supplies. The Input and output status LEDs will be quickly flashed and then the power LED become solid red.
- In the player software setups, select the standard PCM5122 I2S device, such as Hifiberry DAC+ pro, as the
- Linux driver. Make other configurations as needed to enable your Raspberry Pi player to operate.
- Enjoy the music.
Note : PurePi is highly recommended as a power supply for FifoPiMa. It can provide two high quality outputs: A 5V ultracapacitor voltage rail and an isolated 3.3V pure LifePO4 battery voltage rail.
FifoPiMa picture
Connectors
J5: Clean FiFoPiMa DC power input
Connect a 3.3V DC / 200mA (minimum) power supply to J5 to power the FiFoPi,
MAINTAINING CORRECT POLARITY!!! The FiFoPiMa consumes about 100mA average
current with typical 45.1584/49.1520 MHz XO clocks, a little higher with
higher frequency clocks. If you use OCXOs or other high current-consuming
clocks, you MUST account for the additional current required in your clocks in
your choice of a power supply. We prefer to use a 3.3V ultracapacitor /
LifePO4 battery direct power supply to achieve best possible sound quality.
PurePi is recommend as a decent power supply solution to start. LifePO4Mini
3.3V with a UcConditioner 3.3V would be an even better option to get more
improvement. To use this direct 3.3V DC input, a fast start-up power will be
required. Be very careful with some linear power supply, they may not meet the
timing of FifoPiMa’s initialization timing if they have a soft start
performance.
J3: RaspberryPi power input (optional)
You can power your RaspberryPi via GPIO through J3, bypassing the Micro-USB
connection. To do so, connect a 5V 2A DC power supply to J3, MAINTAINING
CORRECT POLARITY!!! We highly recommend you power your RaspberryPI via GPIO to
lower power supply noise on your Raspberry Pi. DO NOT connect power to J3 if
you already power your Raspberry Pi by a PurePi to the GPIO at the bottom
side, or via another method, such as the Micro-USB port.
J6, J11: MCLK outputs (U.FL coaxial cable socket)
MCLK (master clock) output for DAC HAT or external DAC. To operate a DAC (HAT
or external) in synchronized clock mode you must connect this to your DAC.
J11, a second MCLK output socket, is located at the bottom side of PCB.
J8: SCK outputs (U.FL coaxial cable socket)
SCK (bit clock) output for external DAC. This output is the same for both PCM
and DSD format.
J9: LRCK/D1 output (U.FL coaxial cable socket)
LRCK/D1 (PCM left/right clock or DSD data 1) output for external DAC. This
Serial Audio Data line is formatted as LRCK when the signal is PCM I2S or D1
when the signal is DSD.
J10: SD/D2 output (U.FL coaxial cable socket)
SD/D2 (PCM data or DSD data 2) output for external DAC. This Serial Audio Data
line is formatted as SD when the signal is PCM I2S or D2 when the signal is
DSD
40PIN GPIO connectors
J1 | J2 | J7 | |
---|---|---|---|
PIN# | GPIO connecting Raspberry Pi |
to FiFoPiMa
| AUX GPIO for a controller or
other digital devices
| Prime GPIO for a DAC
HAT or other audio devices
1,17| Raspberry Pi 3.3V output| Raspberry Pi 3.3V output| Only 1 for FifoPiMa clean
3.3V
2,4| Raspberry Pi 5V input/output| RaspberryPi 5V input/output| FiFoPiMa clean 3.3V
internally connected to J5+
6,9,14,20,
25,30,34,
39
| ****
GND
| ****
GND
| ****
GND
3| I2C DA of RPi| I2C DA of FifoPiMa| I2C DA of FifoPiMa
5| I2C CL of RPi| I2C CL of FifoPiMa| I2C CL of FifoPiMa
12| SCK Input| AUX SCK output| Prime SCK output
35| LRCK Input| AUX LRCK/D1 output| Prime LRCK/D1 output
40| SD/D2 Input| AUX SD/D2 output| Prime SD/D2 output
All other pins| Connected to the GPIO
pins of the Raspberry Pi
| Duplicating the same # GPIO
pins of the Raspberry Pi
| Not connected
- Pin 1: DSD_EN signal. A logic high output indicates native DSD format is playing. This signal is optional. Can be used for external or internal DAC that need this signal to switch between PCM and DSD.
- Pin 2: MUTE signal. A logic high output indicates DAC should be muted. This signal is optional. Most DACs or DAC HATs do not need this signal.
- Pin 3,4: GND
J12/J13: Optional External oscillator inputs in U.FL
J12/J13 can be used to connect to external oscillators via U.FL coaxial
cables. Uninstalled by default. XO sockets U7 and U13 have to be removed
before soldering U.FL sockets to J12 and J13 position. No XO selection logic
is required for external oscillators.
J4: Jumper to share RPi power supply with FifoPiMa
1-2 open, 3-4 open (default): To power FifoPiMa by a good 3.3V power supply
via J5. 1-2 short, 3-4 short: To share PRi power supply with FifoPiMa. In this
case, only one 5V power supply is needed for both RaspberryPi and FifoPiMa. J5
must be kept unconnected.
Jumper settings
- S1: (located at bottom side of the PCB)
- 1-ON, 2-OFF (default) Install 45.1584 MHz in XO1 socket (U13) and 49.1520MHz in XO2 socket (U7).
- 1-OFF, 2-ON Install 22.5792 MHz in XO1 socket (U13) and 24.5760MHz in XO2 socket (U7).
- S2 : (located at top side of the PCB)
Jumper Switch
S1
|
OFF (default)
|
ON
---|---|---
1| DoP decoding enabled| DoP decoding disabled
2| Continuously output I2D/DSD when
music is stopped
| Stop output I2D/DSD when music is
stopped
Switch 1
Note: Some DAC chips (such as ES9038Q2M) have a built-in DoP decoder. If you
want to use the internal DoP decoder, you need to disable FifoPi’s DoP
decoding function. Otherwise, any DoP stream will be converted into DSD format
using FifoPiMa’s internal DoP decoder. When DoP decoder is disabled, DoP
stream will be treated as PCM format and passed through un-converted.
Switch 2
Note: Continuous clock mode would be a good option for most of the audio
devices to avoid click sound at the moment when music started or stopped.
However, if really required by the device, you can set FifoPiMa to stop clock
mode to stop I2S/DSD clock at mute time
LED indicators
Group | LED | Description | On Indicates… |
---|
Input
status
| D3| I2S| I2S format input
D4| DoP| DoP format input and converted into DSD format
Output
status
| D8| I2S| I2S format output
D7| DSD| DSD format output
FIFO
status
| D1| PLAY| Lit to indicate FifoPiMa is playing music
Off when music is stopped or mute
Clock
Selection
| D6| XO1| XO1 is selected for MCLK
D5| XO2| XO2 is selected for MCLK
Application examples
Simplest Raspberry Pi re-clocker project
Components:
- Raspberry Pi
- FifoPiMa
Power supply:
Regular Raspberry Pi power supply
Configurations:
Short 1-2 and 3-4 of the FifoPiMa to make it sharing the power supply form
Raspberry Pi.
Connections:
- Connect to an external DACs via the U.FL cables
- Install a suitable audio HAT on top of FifoPiMa with proper power supply arrangement.
- Don’t forget to connect the MCLK cable if required.
Compact size high performance Raspberry Pi streamer transport
Components:
- Raspberry Pi
- FifoPiMa
- TransportPi MKII (or HdmiPi, or the coming TransportAES and the HdmiPiPro)
- MonitorPi as OLED display (optional)
Power supply:
PurePi (5V ultracapacitor, 3.3V LifePO4 battery power supply combo) with USBC
input (2.5A)
Configurations:
Keep everything no change as default
Connections:
- Connect the MCLK signal from J6 of FifoPiMa J6 to J4 of TransportPi MKII.
- Connect the 3.3V battery power supply from J2 of PurePi to J5 of FifoPiMa with two high quality wires.
Install the MonitorPi onto the AUX GPIO of the FifoPiMa (optional)
Note:
The spike feet kit can be found at Amazon.
Audiophile-grade ultra-low jitter Raspberry Pi streamer transport or DAC
Components:
- Raspberry Pi
- FifoPiMa
- TransportPi MKII (or HdmiPi, or the coming TransportAES and the HdmiPiPro)
- StationPi
- MonitorPi as OLED display (optional)
Power supply:
- LinearPi 5V with 6V or 9V AC input
- LifePO4Mini 3.3V with a 6V AV input
- UcConditioner 5V (optional but highly recommended)
- UcConditioner 3.3V (optional but highly recommended)
Configurations:
- Keep J5 of the stationPi unconnected
- Short 1-2 and 3-4 of J4 of the FifoPiMa if a MonitorPi or an ESS controller is installed to its AUX GPIO.
Connections:
- If UcConditioners are used, connect them properly with the LinearPi 5V and the LifePO4 Mini 3.3V.
- Connect the 3.3V power supply to the J5 of FifoPiMa with two high quality wires.
- Connect the 5V power supply to the J3 of the StationPi with two high quality wires.
- Connect the MCLK signal from J6 of FifoPiMa J6 to J4 of TransportPi MKII
- If a MonitorPi is used, install it onto the AUX GPIO of the FifoPiMa, or via a GPIO extender KIT to the front panel.
Notes:
- You can use a DAC HAT to replace the TransportPi
- If a DAC HAT is used, it will need extra power supplies as required.
How to produce the best sound quality using your FiFoPiMa
Install great clocks
The primary mechanism the FifoPiMa uses to lower jitter and improve the sound is by recreating the audio stream referenced to low-jitter clocks. The better clock you use, the more improvement you can get from your FiFoPiMa. The two XO oscillators supplied with the board are carefully selected low jitter XOs and batter then the most low-cost generic clocks. They are great for you to get started to experience the improvement of low jitter clocks. We have tested the CCHD-957 series XO oscillators from Crystek and found to be a good choice at a reasonable price. Another good choice are the SDA series from NDK, but you will need SMT XO adapter to install. You may also use OCXOs with better phase noise performance for even better results as long as you factor in the higher current requirements of these devices. Ultra-low phase noise sine wave clocks can also be used for FifoPiMa through the SinePi adapter. Trying different clocks for better sound is an interesting experience similar to capacitor, tube or opamp rolling.
Power your FiFoPiMa from a directly-connected 3.3V ultra capacitor or LiFePO4 battery supply
The quality of your FiFoPi power supply directly impacts both FiFoPi and clock performance. As an alternative to very good quality linear power supplies, we have used a directly-connected 3.3V LiFePO4 battery or UcConditioner 3.3V ultracapacitor power supplies. Our experience is that these types of supplies do a very good job of improving the resulting sound quality AND are very hard to better with a traditional active power supply. You can connect this type of supply directly to the isolated DC input terminal J5. If you are building a compact system, PurePi power supply will be highly recommended to provide both ultracapacitor 5V and pure isolated LifePO4 3.3V for both RaspberryPi and the FifoPiMa at a more reasonable Otherwise, A LinearPi 5V and a LinearPi 3.3V, with a ConditionerPi 5V and a ConditionerPi 3.3V combination would be a great option. If your system needs more voltage rails, the LifePO4 power supply could be a good option to provide up to six 3.3V battery outputs and one 5V linear output. UcMateConditioer and UcHybrid and UcAdapter are also available to upgrade this solution with ultracapacitors.
Install an IsolatorPi between FifoPiMa and RaspberryPi
To achieve a best possible sound quality, you can also install an IsolatorPi II between FifoPiMa and the RaspberryPi to provide a galvanic isolation by cutting the ground loop and the common mode EMI noise. In this case, IsolatoPi must be configured in master mode (J13 short by two jumpers and J12 open). 1-2 and 3-4 of J4 of the FifoPiMa must be shorted by the two jumpers to provide power supply to the IsolatorPi clean side. Under this configuration, the IsolatorPi doesn’t need any extra power supply. Because of the isolation delay, the maximal Fs will be 192KHz if the isolatorPi is installed.
Some application notes
- Can FifoPiMa work with TransportPi or HdmiPi?
- Yes, FifoPiMa works with all SYNC mode audio HATs such as a TransportPi or HdmiPi to improve sound quality.
- What kinds of DACs can a FifoPiMa work with?
- Any kinds of SYNC mode DACs, such as the dual mono ESS9038Q2M DAC, the ES9028Q2M DAC, external
- DACs and so on, should work greatly with FifoPiMa. However, by principle, any master clock mode DACs, such as a Hifiberry DAC+, have no way work with any re-clockers including the FifoPiMa, FifoPiQ3 and FifoPi Q7.
- Can FifoPiMa work with ReceiverPi or a RaspberryPi free application?
- No, The master clock mode principle decides that FifoPiMa doesn’t work for the ReceiverPi nor any Raspberry free application.
- XO warm-up time
- All XO and OCXO oscillators take time to warm-up and stabilize before producing their lowest jitter, best sounding clock signal. This will take anywhere from a couple of minutes to a half hour or even longer. Please allow for your clocks to warm up and stabilize before performing any critical evaluations.
- How to remove/replace SMT XO sockets
- XO sockets may get loose if being used for many times. In this case, we need to replace the sockets.
- Cut the four pins by a side cutter at bottom of a SMT XO socket.
- Clean the pads by de-soldering wick
- Solder a new SMT XO socket at the same position.
- The size of standoffs
- 11mm M2.5 standoffs are suggested to be installed between RaspberryPi and the FifoPiMa.
- 13mm M2.5 standoffs can be used between FifoPiMa and other HATs on top.
Power supply selection guide for FifoPiMa
Power supply is very significant to FifoPiMa to achieve its low noise and low jitter performance at the highest possible level. Here are some power supply options:
Share the Raspberry Pi power supply
FifoPiMa is designed can share the Raspberry Pi power supply by short J4 1-2
and 3-4 with jumpers. But Raspberry Pi processor can generate a lot of noise
over the voltage rails. So unless you really want to save on power supply or
just do some function tests, I don’t recommend powering the FifoPiMa in this
way.
SMPS
A 3.3V SMPS is OK for FifoPiMa for a function test. However a SMPS itself can
generate a lot of EMI noise and it is almost impossible to filter out that
noise. So I don’t suggest using SMPS for FifoPi at a real listening
experience.
3.3V linear regulator or LDO
Linear regulator has much less noise than a SMPS. It will be one of the good
options to power a FifoPiMa. However, some linear regulators have very slow
start-up time which may not meet the FifoPiMa’s initialization timing. So have
to carefully select a fast start-up linear power supply for the FifoPiMa. On
the other hand, the active components in the linear regulators can result in
higher 1/f noise and flicker noise level, so they may not perform as good as
an ultracapacitor power supply or battery power supply for the FifoPiMa.
PurePi
I highly recommend the PurePi for compact size FifoPiMa applications because
it integrates both 5V ultracapacitor power supply and 3.3V isolated pure
LifePO4 battery power supply together for RaspberryPi and FifoPiMa.
Furthermore, there are still rooms to improve if you install an UcConditioner
3.3V to work with the PurePi battery voltage rail down the road. PurePi is
also not expensive compared with the performance.
LifePO4 Mini 3.3V
LifePO4 Mini 3.3V would be highly recommended for bigger scale FifoPiMa
applications (with StationPi for example). It has bigger battery cells than
the PurePi, so the ESR will be lower and the pure time will be longer.
LifePO4Mini 3.3V can also be upgraded by an UcConditioner 3.3V to achieve a
higher performance level.
UcPure pure ultracapacitor power supply in 3.3V configuration
UcPure could be the best performance ultra-low noise high dynamic power supply
so far in the world. Performance wise, it’s the best of the best. However the
3000F ultracapacitors could be too big and too expensive. That is the only
drawback I can see.
Some measurement results of FifoPiMa
FifoPiMa I2S/DSD signals
Under a 1GHz bandwidth 8Gs sampling digital oscilloscope, the quality of the FifoPiMs output signals is almost perfect. The noise levels are very low. No overshoot and no ring. There is also no ripple over the logic levels. The eye diagram of the DATA signal looks great. Both LRCK and DATA signals are precisely aligned to the falling edges of the SCK. FifoPiMa’s output signal quality could be so far the best.
FifoPiMa MCLK time jitter measurement
FifoPiMa MCLK (45.1544MHz) jitter is measured 3.14ps RMS (noise floor excluded)
FifoPiMa SCK time jitter measurement
FifoPiMa SCK (5.6448MHz) jitter is measured 4.49ps RMS (noise floor excluded)
FifoPiMa LRCK time jitter measurement
FifoPiMa LRCK (192KHz) jitter is measured 6.18ps RMS (noise floor excluded)
FifoPiMa, FifoPiQ3 and FifoPiQ7 cross reference
Comparison | FifoPiMa | FifoPi Q3 | FifoPi Q7 |
---|---|---|---|
Mode | Master | SYNC | SYNC |
Low jiter
MCLK output
| Yes| Yes| Yes
FIFO Memory| None| 64Mbit| 64Mbit
I2S/DSD
Re- clocker
| 2 stages low noise discrete one-bit
re-clockers
| ****
1 stage multi-bits re-clocker
| 3 stages low noise discrete one-bit re-clockers
Built-in Isolator
| ****
None
| ****
Yes, with integrated isolator
| Yes, with low noise discrete isolators for
the best possible isolation
performance
Ouput signal quality
| ****
ultra low noise, almost perfect signal quality
| Signal quality is great but still has chance
to improve by installing a
ReClockPi
| ultra low noise with isolation, almost perfect
signal quality
PCM
input/output
| 384KHz| 768KHz| 768KHz
DSD
input/output
| DSD 128 output only| DSD1024| DSD1024
DoP
input/output
| DoP Decode/pass
through
| DoP Decode/pass through| DoP Decode/pass through
Architecture| N/A| 16bit| 32bit
Linux driver| Need| No Need| No Need
XO sockets| Yes, upgradable| Yes, upgradable/swappable| Yes,
upgradable/swappable
Work with RPi| Yes| Yes| Yes
Work USB| No| Yes| Yes
Work with S/PDIF or I2S
over HDMI
| ****
No
| ****
Yes
| ****
Yes
StationPi Pro External
Controller
| ****
No support
| ****
Yes
| ****
Yes
Support MonitorPi as
Controller
| ****
No support
| ****
NO
| ****
Yes
GPIO OLED
controller
| Works with MonitorPi but no control function| External controller of Works
with MonitorPi but no| Yes, Works with MonitorPi for both
| | control function| control and monitoring functions,
Also works with external
controller
---|---|---|---
Continuous
clock mode
| Yes| No| Yes
Clean Side
power supply
| 3.3V
/Ultracapacitor/battery
| Isolated 3.3V
/Ultracapacitor/battery
| Isolated 3.3V
/Ultracapacitor/battery
XO
frequencies support (MHz)
| ****
22/24, 45/49
| 5.6/6.1,11/12,22/24,45/49,9
0/98
| 5.6/6.x,11/12,22/24,45/49,90/9
9
Delay Time| No delay| fixed 0.2s delay time for all
Fs
| Programmable delay time
between 0.1s – 1s
Work with
SinePi
| Yes| Yes| Yes
Bit- perfect| Bit-perfect| Bit-perfect| Bit-perfect
Size and
dimension
| Same and compatible| Same and compatible| Same and compatible
Price| Lower| Higher| Even higher
Troubleshooting
I use a LinearPi 3.3V together with a UcConditioner 3.3V as the FifoiMa power supply for J5. But the FifoPiMa doesn’t work. All input and output LEDs are lit but not solid bright. No sound. No output. What’s the problem?
The reason of the issue:
As an ultra-low noise linear power supply, the LinearPi has a soft starting
feature. But the start-up time could be too long for the FifoPiMa to meet the
correct initialization timing.
The solution:
Replace the LinearPi 3.3V with a LifePO4 Mini 3.3V (even higher quality), then
connect to the UcConditioner as the same as before. The Issue gets fixed.
Note : LifePOe Mini 3.3V can use exactly the same AC power input as the LinearPi used before.
© 2022 Ian Jin.
The firmware code embedded in the FiFoMa is the property of Ian Jin. You are
granted a non-exclusive, non-transferable, non-sublicense-able, royalty-free
right to use the FiFoMa board solely for your own, non-commercial purposes.
You may not distribute, sell, lease, transfer, modify, adapt, translate,
reverse engineer, prepare derivative works of, decompile, or disassemble the
software provided. All rights reserved.
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>