From 1bb5623f1b33d4561a62b080caa1ba4182f42429 Mon Sep 17 00:00:00 2001 From: Michel-FK Date: Sun, 31 Jan 2021 16:09:27 +0100 Subject: [PATCH] add external link icon Signed-off-by: Michel-FK --- docs/assets/css/custom.css | 6 +++ docs/developers/hardware_ref/architecture.md | 8 +-- docs/developers/hardware_ref/audio.md | 27 +++++----- docs/developers/hardware_ref/buttons.md | 31 ++++++----- docs/developers/hardware_ref/cpu.md | 53 +++++++++++-------- .../hardware_ref/magnetic_switch.md | 2 +- docs/developers/hardware_ref/power/dc-dc.md | 30 ++++++----- .../hardware_ref/power/decoupling.md | 3 +- docs/developers/hardware_ref/power/dram.md | 9 ++-- docs/developers/hardware_ref/power/pmic.md | 48 ++++++++++------- .../developers/hardware_ref/power/voltages.md | 2 +- docs/developers/hardware_ref/screen.md | 18 ++++--- docs/developers/hardware_ref/sd-card.md | 19 ++++--- docs/developers/hardware_ref/usb.md | 21 ++++---- docs/tutorials/hardware/change_sd_card.md | 8 +-- docs/tutorials/software/add_roms.md | 10 ++-- docs/tutorials/software/copy_opk.md | 8 +-- docs/tutorials/software/gb_palette.md | 7 +-- docs/tutorials/software/update.md | 7 +-- mkdocs.yml | 1 + 20 files changed, 184 insertions(+), 134 deletions(-) diff --git a/docs/assets/css/custom.css b/docs/assets/css/custom.css index dd98145..857f6b9 100644 --- a/docs/assets/css/custom.css +++ b/docs/assets/css/custom.css @@ -158,3 +158,9 @@ body { .funkey-menu:before { content: "\e912"; } + +.md-typeset span.twemoji { + display: inline-block; + height: 0.5em; + vertical-align: super; +} diff --git a/docs/developers/hardware_ref/architecture.md b/docs/developers/hardware_ref/architecture.md index cb112ff..af1f1b4 100644 --- a/docs/developers/hardware_ref/architecture.md +++ b/docs/developers/hardware_ref/architecture.md @@ -31,9 +31,11 @@ An interactive BOM is available in the [next section][4]. ## Schematics and Layout All the hardware design and production files required to build the -[**FunKey S** retro-gaming console][1] electronic PCBA using the -[KiCAD ECAD tools][2] are available as Open Hardware in the [FunKey S -Hardware repository][3]. +[**FunKey S** retro-gaming +console:fontawesome-solid-external-link-alt:][1] electronic PCBA using +the [KiCAD ECAD tools:fontawesome-solid-external-link-alt:][2] are +available as Open Hardware in the [FunKey S Hardware +repository:fontawesome-solid-external-link-alt:][3]. ???+ note "Topological vs. logical schematic symbols" diff --git a/docs/developers/hardware_ref/audio.md b/docs/developers/hardware_ref/audio.md index 66b2600..fb643cd 100644 --- a/docs/developers/hardware_ref/audio.md +++ b/docs/developers/hardware_ref/audio.md @@ -28,16 +28,18 @@ headphones either. ![Speaker](/assets/images/Speaker.png){: align=left } The best solution we have found consists in using a single tiny [CUI -CDM-10008][1] speaker, that is able to output 72 dB spl @ 1m from a -0.3W input power, with relatively modest dimensions: 10 mm diameter -and only a 2.9 mm thickness, out of which 1.4 mm can be inserted into -a PCB hole, thus only having a height above PCB of only 1.5 mm. +CDM-10008:fontawesome-solid-external-link-alt:][1] speaker, that is +able to output 72 dB spl @ 1m from a 0.3W input power, with relatively +modest dimensions: 10 mm diameter and only a 2.9 mm thickness, out of +which 1.4 mm can be inserted into a PCB hole, thus only having a +height above PCB of only 1.5 mm. Connections are not easy though, since this speaker is meant to have -wires soldered to its pads, but we used 2x [castellated][2] -(half-round plated holes) pads with a placement just over the speaker -pads that enables manual soldering between the speaker and the PCB -with a solder blob. +wires soldered to its pads, but we used 2x +[castellated:fontawesome-solid-external-link-alt:][2] (half-round +plated holes) pads with a placement just over the speaker pads that +enables manual soldering between the speaker and the PCB with a solder +blob. ## Schematic @@ -46,10 +48,11 @@ contains an analog stereo audio codec (coder/decoder): we only have to take one of its headphone output channel (left or right) and feed it to a mono audio amplifier. -We chose the [Diodes Inc. PAM8301][3] chip because of its cheap price, -good availability, its more than sufficient output power of 1.5W and -its filterless operation, meaning that no bulky series capacitor is -required to drive the speaker. +We chose the [Diodes +Inc. PAM8301:fontawesome-solid-external-link-alt:][3] chip because of +its cheap price, good availability, its more than sufficient output +power of 1.5W and its filterless operation, meaning that no bulky +series capacitor is required to drive the speaker. Here is the corresponding schematic: diff --git a/docs/developers/hardware_ref/buttons.md b/docs/developers/hardware_ref/buttons.md index c1cc5d1..a80b04e 100644 --- a/docs/developers/hardware_ref/buttons.md +++ b/docs/developers/hardware_ref/buttons.md @@ -11,26 +11,28 @@ As can be seen in the page on the [PMIC][1], the soft "ON/OFF" button is directly connected to the power management chip, so we are left with 4 + 4 + 2 = 12 buttons for game control. -After testing tactile domes in our [FunKey Zero][2] prototype, we -decided to go back to integrated tactile switches, as their placement -is much easier using a regular SMT pick & place machine like any other +After testing tactile domes in our [**FunKey +Zero**:fontawesome-solid-external-link-alt:][2] prototype, we decided +to go back to integrated tactile switches, as their placement is much +easier using a regular SMT pick & place machine like any other components on the PCB, whereas the separate tactile domes required an adhesive tape to be place manually with less accuracy. ![EVBPBB1AAB000](/assets/images/EVPBB1AAB000.png){: align=left } -The [Mitsumi BYS-055A1x12][3] is the same footprint (2.5mm x 1.6mm x -0.55mm) as the more expensive Panasonic EVBBBxAAB00 tactile switches, -with a 1.2N actuating force for the "**+**" and "**X**" pads, and a -1.6N actuating force for the "Start", "Fn" and "ON/OFF" buttons. We -found these actuating force the best match to provide a good feedback -to the user. +The [Mitsumi BYS-055A1x12:fontawesome-solid-external-link-alt:][3] is +the same footprint (2.5mm x 1.6mm x 0.55mm) as the more expensive +Panasonic EVBBBxAAB00 tactile switches, with a 1.2N actuating force +for the "**+**" and "**X**" pads, and a 1.6N actuating force for the +"Start", "Fn" and "ON/OFF" buttons. We found these actuating force the +best match to provide a good feedback to the user. ![EVP-AEBB2A-1](/assets/images/EVP-AEBB2A-1.jpg){: align=left } For the rear left and right shoulder buttons, we exeperimented several models between PCBA rev. C, D and E, until we eventually decided for a -[replacement for the expensive Panasonic EVP-AEBB2A-1][4]: +[replacement for the expensive Panasonic +EVP-AEBB2A-1:fontawesome-solid-external-link-alt:][4]: This one as an actuating force of 1.6N. @@ -57,10 +59,11 @@ PCB routing, at such a point that we decided to use a dedicated I2C GPIO expander chip to relieve the burden from the main V3s CPU. We use a common chip for this purpose, that is well supported in the -Linux kernel: the [NXP PCAL6416AHF.128][5]. It is marketed as a -"low-voltage translating 16-bit I2C-bus/SMBus I/O expander with -interrupt output, reset, and configuration registers" that just -matches exactly our needs. +Linux kernel: the [NXP +PCAL6416AHF.128:fontawesome-solid-external-link-alt:][5]. It is +marketed as a "low-voltage translating 16-bit I2C-bus/SMBus I/O +expander with interrupt output, reset, and configuration registers" +that just matches exactly our needs. As a bonus, this chip features software-controlable internal pull-up/pull-down resistors, so we don't need to add external ones to diff --git a/docs/developers/hardware_ref/cpu.md b/docs/developers/hardware_ref/cpu.md index 797d3a2..d6496e9 100644 --- a/docs/developers/hardware_ref/cpu.md +++ b/docs/developers/hardware_ref/cpu.md @@ -4,14 +4,16 @@ As discussed in the [Design Constraints section][1], a CPU with external DRAM chips would take too much real-estate on the PCB, so we had to find a CPU with integrated DRAM. -There are [several options][2] for integrating RAM in a SoC: +There are [several options:fontawesome-solid-external-link-alt:][2] +for integrating RAM in a SoC: - use SRAM: not possible because of the small amount of memory available (64Mbit max.) - embedded DRAM on the same chip: This is the solution used in the - [Apple M1 chip][3], but this chip is not available for retail and - no other solutions seems readily available + [Apple M1 chip:fontawesome-solid-external-link-alt:][3], but this + chip is not available for retail and no other solutions seems + readily available - Stacked Chip-on-Chip (PoP): This is the solution used on some Raspberry Pi boards, but this solution is only available for custom @@ -21,14 +23,17 @@ There are [several options][2] for integrating RAM in a SoC: - DRAM die in SiP: with capacities ranging from 64Mbit to 1Gbit We found only 2 manufacturers providing the last option: -[Microchip][4] and [Allwinner Technology][5]. Microchip solutions are -too limited in term of CPU power for our needs (ARM926EJ-S or Cortex -A5), so we did not consider them. +[Microchip:fontawesome-solid-external-link-alt:][4] and [Allwinner +Technology:fontawesome-solid-external-link-alt:][5]. Microchip +solutions are too limited in term of CPU power for our needs +(ARM926EJ-S or Cortex A5), so we did not consider them. And with the exception of the mostly similar Allwinner S3 CPU which features the same characteristics but with 128MB DDR3 DRAM in an -FBGA234 package, the [Allwinner V3s][6] is the CPU with integrated DRAM -having the highest memory capacity (512Mbit / 64MB DDR2 DRAM): +FBGA234 package, the [Allwinner +V3s:fontawesome-solid-external-link-alt:][6] is the CPU with +integrated DRAM having the highest memory capacity (512Mbit / 64MB +DDR2 DRAM): ![Allwinner V3s SoC](/assets/images/Allwinner_V3s.jpeg) @@ -148,16 +153,19 @@ glitches. The SD Card interface is almost a direct connection between the chip and the dedicated SD Card connector. Only a single series resistor **R8** is required on the high-speed clock line in order to [prevent -ringing][7]. +ringing:fontawesome-solid-external-link-alt:][7]. ## Crystals The V3s chips requires 2 crystals: - - one low-frequency [32.768 kHz crystal][8] **Y1** for the RTC clock + - one low-frequency [32.768 kHz + crystal:fontawesome-solid-external-link-alt:][8] **Y1** for the RTC + clock - - one high-frequency [24 MHz crystal][9] **Y2** for deriving the 1.2 - GHz clock + - one high-frequency [24 MHz +crystal:fontawesome-solid-external-link-alt:][9] **Y2** for deriving +the 1.2 GHz clock The 24 MHz crystal is used by an internal oscillator to lock the phase of the 1.2 GHz oscillator using a PLL (Phase-Locked Loop). @@ -175,19 +183,21 @@ The 32.768 kHz crystal features an additional high-value resistor thus reduce further the RTC timer power consumption. For more details on crystal oscillator design, please check [this -application note from STM][10]. +application note from STM:fontawesome-solid-external-link-alt:][10]. ## DRAM -The DRAM within the V3s chip is a [DDR2 one][11], meaning that its -data lines are clocked using both edges of an up to 400 MHz clock -signal. +The DRAM within the V3s chip is a [DDR2 +one:fontawesome-solid-external-link-alt:][11], meaning that its data +lines are clocked using both edges of an up to 400 MHz clock signal. At these high frequencies, even short wires have a length that is of -the same order of magnitude as the signal's [wavelength][12] and thus -each signal should be considered as a [transmission line][13], for -which impedance must be matched to avoid signal reflections, requiring -termination resistors on the data lines DQx. +the same order of magnitude as the signal's +[wavelength:fontawesome-solid-external-link-alt:][12] and thus each +signal should be considered as a [transmission +line:fontawesome-solid-external-link-alt:][13], for which impedance +must be matched to avoid signal reflections, requiring termination +resistors on the data lines DQx. DDR2 or DDR3 DRAMs feature merged drivers and dynamic on-chip termination like this ("VDDQ/2" is labeled "SVREF" in our schematic): @@ -201,7 +211,8 @@ resistor **R11** connected internally like this: ![Pull-Up Calibration](/assets/images/Pull-Up_Calibration.png){.lightbox} More information on the DDR2 DRAM ZQ Calibration subject can be found -in this [Micron Application Note][14]. +in this [Micron Application +Note:fontawesome-solid-external-link-alt:][14]. [1]: /developers/hardware/design/#design-constraints [2]: https://www.electronicsweekly.com/news/products/memory/how-to-guide-for-on-chip-memory-2012-06/ diff --git a/docs/developers/hardware_ref/magnetic_switch.md b/docs/developers/hardware_ref/magnetic_switch.md index f9c97e3..bc839d8 100644 --- a/docs/developers/hardware_ref/magnetic_switch.md +++ b/docs/developers/hardware_ref/magnetic_switch.md @@ -23,7 +23,7 @@ something quite usual for a keychain... We found only a unique plastic-molded model which almost meets our low-profile requirements of 1.5 mm (1.6 mm height!): the [Standex -Meder MK24][1]. +Meder MK24:fontawesome-solid-external-link-alt:][1]. Here is the corresponding schematics, already covered in the PMIC discussion: diff --git a/docs/developers/hardware_ref/power/dc-dc.md b/docs/developers/hardware_ref/power/dc-dc.md index ecec99b..43c45f3 100644 --- a/docs/developers/hardware_ref/power/dc-dc.md +++ b/docs/developers/hardware_ref/power/dc-dc.md @@ -18,11 +18,12 @@ output voltage. ### Shunt Regulator -The simplest voltage regulator is the [shunt regulator][1], built -around a Zener diode which most interesting characteristic is to -maintain a constant voltage across itself when the current through it -is sufficient to take it into the Zener breakdown region. A simple -shunt regulator looks like this: +The simplest voltage regulator is the [shunt +regulator:fontawesome-solid-external-link-alt:][1], built around a +Zener diode which most interesting characteristic is to maintain a +constant voltage across itself when the current through it is +sufficient to take it into the Zener breakdown region. A simple shunt +regulator looks like this: ![Zener Regulator](/assets/images/Zener_Regulator.gif) @@ -32,7 +33,8 @@ By adding a emitter-follower transistor to the simple shunt regulator, the small base current of the transistor forms a very light load on the Zener, thereby minimizing variation in Zener voltage due to variation in the load, resulting in a better regulation. Here is a -schematic for this [series regulator][2]: +schematic for this [series +regulator:fontawesome-solid-external-link-alt:][2]: ![Series Regualtor](/assets/images/Series_Regulator.gif) @@ -120,14 +122,14 @@ following: ![Buck Converter](/assets/images/Buck_Converter.gif) The way this converter works is described in details -[here][3]. Basically, when the switch is closed, the inductor will -produce an opposing voltage across its terminals in response to the -changing current, reducing the output voltage, and meanwhile the -inductor stores this energy in the form of a magnetic field. When the -switch is opened, the current will decrease and will produce a voltage -drop across the inductor, and now the inductor becomes a current -source, where the stored energy in the inductor's magnetic field is -restored and fed to the load. +[here:fontawesome-solid-external-link-alt:][3]. Basically, when the +switch is closed, the inductor will produce an opposing voltage across +its terminals in response to the changing current, reducing the output +voltage, and meanwhile the inductor stores this energy in the form of +a magnetic field. When the switch is opened, the current will decrease +and will produce a voltage drop across the inductor, and now the +inductor becomes a current source, where the stored energy in the +inductor's magnetic field is restored and fed to the load. !!! warning In this converter too, the output voltage is not isolated from the diff --git a/docs/developers/hardware_ref/power/decoupling.md b/docs/developers/hardware_ref/power/decoupling.md index 2aae6b8..8244d60 100644 --- a/docs/developers/hardware_ref/power/decoupling.md +++ b/docs/developers/hardware_ref/power/decoupling.md @@ -102,7 +102,8 @@ capacitors: One exception is the Allwinner V3s CPU HPR/HPL circuit which features an RC-to-ground circuit between the amplifier and the preamplifier input with the resistor **R27** and capacitors **C79** and **C81**, as -recommended in the [V3s hardware design guide][5]. +recommended in the [V3s hardware design +guide:fontawesome-solid-external-link-alt:][5]. The only other remarkable point left in this schematic is the resistor divider **R25**/**R28** which provides a reference voltage at half the diff --git a/docs/developers/hardware_ref/power/dram.md b/docs/developers/hardware_ref/power/dram.md index 43a9a8e..6d207bf 100644 --- a/docs/developers/hardware_ref/power/dram.md +++ b/docs/developers/hardware_ref/power/dram.md @@ -1,5 +1,5 @@ -A separate [Sylergy SY8088][1] Buck DC/DC SMPS chip is used to provide -the DDR2 +1V8 DDR2 DRAM power. +A separate [Sylergy SY8088:fontawesome-solid-external-link-alt:][1] +Buck DC/DC SMPS chip is used to provide the DDR2 +1V8 DDR2 DRAM power. This is because the AXP20x is originally the PMU (Power Management Unit) used by most Allwinner SoCs (A10, A13 and A20), which do not @@ -15,7 +15,7 @@ We thus have to design a separate SMPS (DC-DC) power supply for providing the +1.8V 1A required for the DDR2 DRAM power supply. For this purpose, we followed closely the [Allwinner Reference -Design][2]. +Design:fontawesome-solid-external-link-alt:][2]. Here is the corresponding DRAM Power schematics: @@ -40,9 +40,6 @@ to its lowest possible value. [1]: https://github.com/FunKey-Project/FunKey-S-Hardware/blob/master/Datasheets/C79313_SY8088AAC_2017-03-29.PDF [2]: https://github.com/Squonk42/V3s_Documentation/blob/master/V3S_CDR_STD_V1_0_20150514.pdf -[3]: https://datasheet.lcsc.com/szlcsc/Silergy-Corp-SY8088AAC_C79313.pdf -[4]: https://datasheet.lcsc.com/szlcsc/1901241230_LOWPOWER-LP3220S-AB5F_C324565.pdf -[5]: https://www.diodes.com/assets/Datasheets/AP3418.pdf --8<-- includes/glossary.md diff --git a/docs/developers/hardware_ref/power/pmic.md b/docs/developers/hardware_ref/power/pmic.md index 5a130e1..2e558f1 100644 --- a/docs/developers/hardware_ref/power/pmic.md +++ b/docs/developers/hardware_ref/power/pmic.md @@ -7,14 +7,16 @@ requirements to: - SMPS for +1.8V / 1A for the DDR2 DRAM power supply - SMPS for +1.25V / 1.6 A for the core power supply -On the [LicheePi Zero board][1] used in our **[FunKey Zero][2]** -prototype, a triple SMPS [EA3036][3] is used for generating these -+3.3V, +1.8V and +1.2V voltages, with an additional [XC6206][4] LDO -for the +3.0V (the +3.3V Always On is connected directly to -+3.3V). Although compact (the EA3036 is a tiny 3 mm x 3 mm QFN20 -package), this solution is not ideal as it does not provide a battery -charger and monitoring capability, which is a requirement for the -**FunKey S** device. +On the [LicheePi Zero board:fontawesome-solid-external-link-alt:][1] +used in our **[FunKey Zero:fontawesome-solid-external-link-alt:][2]** +prototype, a triple SMPS +[EA3036:fontawesome-solid-external-link-alt:][3] is used for +generating these +3.3V, +1.8V and +1.2V voltages, with an additional +[XC6206:fontawesome-solid-external-link-alt:][4] LDO for the +3.0V +(the +3.3V Always On is connected directly to +3.3V). Although compact +(the EA3036 is a tiny 3 mm x 3 mm QFN20 package), this solution is not +ideal as it does not provide a battery charger and monitoring +capability, which is a requirement for the **FunKey S** device. ## PMICs @@ -22,7 +24,8 @@ As it is generally the case with such a complex SoC requiring multiple voltages, high current and proper voltage sequencing, all major manufacturers provide dedicated companion chips called PMICs (Power Management Integrated Circuits), in charge of these tasks. Allwinner -is not an exception through its sister company [X-Powers][5]. +is not an exception through its sister company +[X-Powers:fontawesome-solid-external-link-alt:][5]. Their AXP20x products are highly-integrated PMICs that are optimized for applications requiring single-cell Li-battery (Li-Ion/Polymer), @@ -71,7 +74,9 @@ The AXP20x features: output to GPIO0) Looking at their datasheets, it is difficult to tell the difference -between the [AXP202][6], [AXP203][7] and [AXP209][8] (any hint +between the [AXP202:fontawesome-solid-external-link-alt:][6], +[AXP203:fontawesome-solid-external-link-alt:][7] and +[AXP209:fontawesome-solid-external-link-alt:][8] (any hint welcome!). In the **FunKey S** design, we use an AXP209 because it is the one that comes along with the V3s when you buy it on AliExpress. @@ -83,7 +88,8 @@ the manufacturer, as the internals of the chips are seldom fully disclosed, so you need to take their word on some of the external component values to use. -The [Allwinner V3s Reference Design][9] contains on page 6 the +The [Allwinner V3s Reference +Design:fontawesome-solid-external-link-alt:][9] contains on page 6 the schematics for using an AXP203 to supply the power to a V3s-based dashboard camera design. It follows closely the application diagram provided in the AXP20x datasheets: @@ -91,7 +97,7 @@ provided in the AXP20x datasheets: ![AXP20x Application Diagram](/assets/images/AXP20x_Application_Diagram.png){.lightbox} More hints are provided in our self-translated [V3s Hardware Design -Guide][10] (page 7) too. +Guide:fontawesome-solid-external-link-alt:][10] (page 7) too. ## PMIC Schematics @@ -167,10 +173,11 @@ operation: ### DC-DC1 PWM Battery Charger (North East side) The battery is connected to J5 (a [2-pin JST 1.0 mm pitch -receptacle][11]) and uses **R21** as a precision current sense -resistor, with **C53**/**C56**/**C60** filter capacitors and **L5** (a -low-profile ferrite-core power inductor rated with a saturation -current of 1.2A and low < 0.1 Ω resistance). +receptacle:fontawesome-solid-external-link-alt:][11]) and uses **R21** +as a precision current sense resistor, with **C53**/**C56**/**C60** +filter capacitors and **L5** (a low-profile ferrite-core power +inductor rated with a saturation current of 1.2A and low < 0.1 Ω +resistance). !!! Warning The battery is not protected on the board against reversing @@ -181,10 +188,11 @@ current of 1.2A and low < 0.1 Ω resistance). temperature, as the chosen LiPo battery does not feature this temperature sensor. -A user-programmable (through the I2C interface) charge [LED][12] -**D30** is provided, with its current-limiting resistor **R26**, as -well as a TVS diode **d31** to prevent ESD, as the LED body will be -indirectly accessible to user. +A user-programmable (through the I2C interface) charge +[LED:fontawesome-solid-external-link-alt:][12] **D30** is provided, +with its current-limiting resistor **R26**, as well as a TVS diode +**d31** to prevent ESD, as the LED body will be indirectly accessible +to user. ### DC-DC2 +1.25V / 1.6A (West side) diff --git a/docs/developers/hardware_ref/power/voltages.md b/docs/developers/hardware_ref/power/voltages.md index 10be3c7..3695272 100644 --- a/docs/developers/hardware_ref/power/voltages.md +++ b/docs/developers/hardware_ref/power/voltages.md @@ -2,7 +2,7 @@ Looking back at the section on the [CPU schematics][1], the **FunKey S** device clearly needs a sophisticated power supply in order to fulfill the CPU power requirements. They are recalled below, along with the maximum current requirements found in the [Allwinner V3s -reference design][2] (page 3): +reference design:fontawesome-solid-external-link-alt:][2] (page 3): - +3.3V / 1.2A for the I/O power supply - +3.3V_AO / 30 mA for the Always-On power supply (RTC timer) diff --git a/docs/developers/hardware_ref/screen.md b/docs/developers/hardware_ref/screen.md index 47bd2c7..8c3edea 100644 --- a/docs/developers/hardware_ref/screen.md +++ b/docs/developers/hardware_ref/screen.md @@ -52,8 +52,9 @@ RGB565 (2 bytes / pixel), this requires a ~44 MHz SPI clock rate, which is rather high. Once again, we were fortunate as both the V3s CPU and the screen -built-in controller (a Sitronix [ST7789V][1]) both support this high -clock speed (after checking with the manufacturer and despite the +built-in controller (a Sitronix +[ST7789V:fontawesome-solid-external-link-alt:][1]) both support this +high clock speed (after checking with the manufacturer and despite the controller datasheet that specifies only a serial clock cycle (Write) of 66 ns or 15 MHz!). @@ -65,18 +66,19 @@ current directly from a CPU GPIO and the backlight will require an additional transistor to interface to the LCD backlight. Its flex cable requires a mating Hirose 0.4 mm pitch -[DF37NB-24DS-0.4V][2] dual row SMT connector, out of which only one -single row is actually used. +[DF37NB-24DS-0.4V:fontawesome-solid-external-link-alt:][2] dual row +SMT connector, out of which only one single row is actually used. ## Customization Unfortunately, the flex cable for the stock LCD screen we found does not match our particular **FunKey S** mechanical design. -For the prototypes, we designed custom flex extension cables for a -~ $100 cost, but we had to design [our own custom flex][3] and have -this standard screen assembly attached to it for mass production, with -a one-time tooling fee of ~ $800. +For the prototypes, we designed custom flex extension cables for a ~ +$100 cost, but we had to design [our own custom +flex:fontawesome-solid-external-link-alt:][3] and have this standard +screen assembly attached to it for mass production, with a one-time +tooling fee of ~ $800. ## Schematic diff --git a/docs/developers/hardware_ref/sd-card.md b/docs/developers/hardware_ref/sd-card.md index bfe306d..fcdfff1 100644 --- a/docs/developers/hardware_ref/sd-card.md +++ b/docs/developers/hardware_ref/sd-card.md @@ -14,16 +14,19 @@ the specifications. ## Specifications -The SD Card physical interface is provided in the "SD specifications, -part 1, Physical Layer Specification version 2.00, May 9, 2006", for -which a simplified version is available [here][1]. +The SD Card physical interface is provided in the "SD +specifications, part 1, Physical Layer Specification version 2.00, May +9, 2006", for which a simplified version is available +[here:fontawesome-solid-external-link-alt:][1]. The MMC phyiscal interface can be found in the "Multi Media Card System Specification version 4.3, JESD84-A43, November 2007", -available [here][2] (registration required). +available [here:fontawesome-solid-external-link-alt:][2] (registration +required). But a good summary of the requirements is given in the "[AN10911 -SD(HC)-memory card and MMC Interface conditioning][3]" application +SD(HC)-memory card and MMC Interface +conditioning:fontawesome-solid-external-link-alt:][3]" application note from NXP, from which this schematic is taken: ![SD MMC Interface](/assets/images/SD_MMC_Interface.png){.lightbox} @@ -85,9 +88,9 @@ The FunKey SD Card interface schematic is the following: ![TF-110](/assets/images/TF-110.png){: align=left } As can be expected, the main component is the [Micro SD (TF Card) -Push/Pull connector][5] **J4**, which has been selected for its -low-profile (1.3 mm height) characteristic and overall minimal -dimensions. +Push/Pull connector:fontawesome-solid-external-link-alt:][5] **J4**, +which has been selected for its low-profile (1.3 mm height) +characteristic and overall minimal dimensions. !!! Tip diff --git a/docs/developers/hardware_ref/usb.md b/docs/developers/hardware_ref/usb.md index 5f29ceb..71376bf 100644 --- a/docs/developers/hardware_ref/usb.md +++ b/docs/developers/hardware_ref/usb.md @@ -14,11 +14,12 @@ the cable wiring which role we must take. ![U02-BFD3111B0-009](/assets/images/U02-BFD3111B0-009.png){: align=left } -The main part is of course the [Micro USB edge-mounted connector][1] -**J2**, which we chose in order to "mask out" its already low-profile -height into the PCB thickness. And with its "harpoon-like" -through-hole legs, it should avoid tearing it off the board if the -user don't pull the chord straight. +The main part is of course the [Micro USB edge-mounted +connector:fontawesome-solid-external-link-alt:][1] **J2**, which we +chose in order to "mask out" its already low-profile height into the +PCB thickness. And with its "harpoon-like" through-hole legs, it +should avoid tearing it off the board if the user don't pull the chord +straight. The USB schematic is the following: @@ -42,10 +43,12 @@ maximum bulk capacitance value to 10 µF in order to avoid power supply excessive droops when plugin in a device with a discharged large bulk capacitor. -**D15** is a [NXP PRTR5V0U2X,215][2] combined TVS protection diode for -the VBUS pin and a set of clamping diodes that will limit the voltage -on D+ and D- pins to stay between GND and VBUS levels to in order to -protect the V3s USB driver from under / over-voltages. +**D15** is a [NXP +PRTR5V0U2X,215:fontawesome-solid-external-link-alt:][2] combined TVS +protection diode for the VBUS pin and a set of clamping diodes that +will limit the voltage on D+ and D- pins to stay between GND and VBUS +levels to in order to protect the V3s USB driver from under / +over-voltages. [1]: https://github.com/FunKey-Project/FunKey-S-Hardware/blob/master/Datasheets/C40958_MICRO5P%E6%B2%89%E6%9D%BF%E5%BC%8F0.8%E5%9B%9B%E8%84%9A%E5%85%A8%E6%8F%92%E6%97%A0%E5%AF%BC%E4%BD%8D%E6%9C%89%E5%AD%94%E8%80%90%E9%AB%98%E6%B8%A9_2016-05-20.PDF [2]: https://github.com/FunKey-Project/FunKey-S-Hardware/blob/master/Datasheets/C12333_PRTR5V0U2X%2C215_2017-10-31.PDF diff --git a/docs/tutorials/hardware/change_sd_card.md b/docs/tutorials/hardware/change_sd_card.md index 0be271b..b3b2ed6 100644 --- a/docs/tutorials/hardware/change_sd_card.md +++ b/docs/tutorials/hardware/change_sd_card.md @@ -10,17 +10,17 @@ your data. ## Download the latest FunKey-OS image file Get the latest "***FunKey-rootfs-x.y.z.img***" SD card image file -directly from [here][1] or from the bottom of the latest release page -in the "assets" section: +directly from [here:fontawesome-solid-external-link-alt:][1] or from +the bottom of the latest release page in the "assets" section: -[https://github.com/FunKey-Project/FunKey-OS/releases/latest][2]{target=_blank} +[https://github.com/FunKey-Project/FunKey-OS/releases/latest:fontawesome-solid-external-link-alt:][2]{target=_blank} ![Github Release](/assets/images/github_sd_card_image.png){.lightbox} ## Flash the micro-SD card with balenaEtcher - Download and install balenaEtcher for Windows/Mac OS/Linux from - [balena.io][3]{:target="blank"} + [balena.io:fontawesome-solid-external-link-alt:][3]{:target="blank"} - Run balenaEtcher and click on "Flash from file" to select the FunKey-OS image file diff --git a/docs/tutorials/software/add_roms.md b/docs/tutorials/software/add_roms.md index e30bcf6..1a46413 100644 --- a/docs/tutorials/software/add_roms.md +++ b/docs/tutorials/software/add_roms.md @@ -4,9 +4,13 @@ Yes legally! Despite the general opinion, it is perfectly possible to purchase and play famous ROMs legally such as Sonic, Castlevania, Megaman and more, read the note below for more details. -**The FunKey Wiki** maintains [lists][1]{target=_blank} of legal -sources for ROMs, including [freeware ROMs][2]{target=_blank}, -[commercial ROMs][3]{target=_blank}, and [utilities][4]{target=_blank}. +**The FunKey Wiki** maintains +[lists:fontawesome-solid-external-link-alt:][1]{target=_blank} of +legal sources for ROMs, including [freeware +ROMs:fontawesome-solid-external-link-alt:][2]{target=_blank}, +[commercial +ROMs:fontawesome-solid-external-link-alt:][3]{target=_blank}, and +[utilities:fontawesome-solid-external-link-alt:][4]{target=_blank}. !!! note "Note about ROM emulation" diff --git a/docs/tutorials/software/copy_opk.md b/docs/tutorials/software/copy_opk.md index 759b385..47745af 100644 --- a/docs/tutorials/software/copy_opk.md +++ b/docs/tutorials/software/copy_opk.md @@ -8,9 +8,11 @@ does not require installation to be able to run them. In the current (2.0.0) release of the FunKey-OS, the **OPK** files are only available for the gmenu2x launcher, and not in RetroFE. -[7-Zip][1] can be used to extract **OPK** files, and [Open Package -Creator (v1.1.2)][2] is a useful tool if you want to re-package an -**OPK** or customize icons, add additional games and much more. +[7-Zip:fontawesome-solid-external-link-alt:][1] can be used to extract +**OPK** files, and [Open Package Creator +(v1.1.2):fontawesome-solid-external-link-alt:][2] is a useful tool if +you want to re-package an **OPK** or customize icons, add additional +games and much more. Connect your **FunKey S** console to your computer and add **OPK** files as simply as you would do it with a simple USB memory stick: diff --git a/docs/tutorials/software/gb_palette.md b/docs/tutorials/software/gb_palette.md index 0a3b97b..768f05f 100644 --- a/docs/tutorials/software/gb_palette.md +++ b/docs/tutorials/software/gb_palette.md @@ -1,8 +1,9 @@ # Palette description -The default **FunKey S** Game Boy emulator: _[gnuboy][1]_ allows to -set the palette used for grayscale when running DMG (original mono -Gameboy) ROMs. +The default **FunKey S** Game Boy emulator: +_[gnuboy:fontawesome-solid-external-link-alt:][1]_ allows to set the +palette used for grayscale when running DMG (original mono Gameboy) +ROMs. There are four variables for this purpose, allowing the background, window, and both sprite palettes to be colored differently. Each one diff --git a/docs/tutorials/software/update.md b/docs/tutorials/software/update.md index bb767b7..d8e997a 100644 --- a/docs/tutorials/software/update.md +++ b/docs/tutorials/software/update.md @@ -2,10 +2,10 @@ A firmware upgrade can be performed simply over USB without opening the **FunKey S** console. Get the latest "**_FunKey-rootfs-x.y.z.fwu_**" firmware update file -directly from [here][1] or from the bottom of the latest release page -in the "assets" section: +directly from [here:fontawesome-solid-external-link-alt:][1] or from +the bottom of the latest release page in the "assets" section: -https://github.com/FunKey-Project/FunKey-OS/releases/latest +[https://github.com/FunKey-Project/FunKey-OS/releases/latest:fontawesome-solid-external-link-alt:][2]{target=_blank} ![Github Release](/assets/images/Github_Release.png){.lightbox} @@ -23,6 +23,7 @@ https://github.com/FunKey-Project/FunKey-OS/releases/latest | ![Updating](/assets/images/Updating.png){.lightbox} | The **FunKey S** will then reboot and perform the upgrade | [1]: https://github.com/FunKey-Project/FunKey-OS/releases/download/FunKey-OS-2.0.0/FunKey-rootfs-2.0.0.fwu +[2]: https://github.com/FunKey-Project/FunKey-OS/releases/latest --8<-- includes/glossary.md diff --git a/mkdocs.yml b/mkdocs.yml index 4172c19..b0bb233 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -83,6 +83,7 @@ markdown_extensions: - abbr - attr_list - def_list + - fontawesome_markdown - footnotes - meta - toc: