Layout: Screen FPC Extender

LCD Screen

The chosen LCD screen for the FunKey console is awesome:

Hinge

The FunKey console uses a foldable design in order to reduce the device size when not in use, and maximize both the screen and keypad size when playing. The screen flat cable must then go into the hinge, and in order to avoid too much stress that would eventually lead to broken cables, it must be “rolled” into it like a flypaper in order to divide the stress over the longest possible length.

Unfortunately, the stock LCD screen ribbon cable is not long enough. This is of course something that the manufacturer can customize, but this costs a fixed tooling fee of $800… We plan to go this way for mass production, but this sounds like a lot of money for the prototyping phase only.

FPC Extender

So, we decided to use cheaper alternatives for our prototypes:

  • for the Revision A, we used individually soldered thin enameled copper wires and an ultra small PCB placed into the hinge: definitely not something to use for more than 2 boards!
  • for the Revision B, we decided to invest some money into a customized FPC (Flat Printed Cable) as we can get 5x FPC prototypes for ~$100 at PCBWay

The problem is: I never designed FPCs before 😉

I got some basic hints from one of my colleague:

  • the copper density must be as constant as possible
  • the traces must use smooth curves instead of sharp angles to avoid tearing during flexion

However, a few questions remained unanswered:

  1. what material and thickness to use for the stiffeners?
  2. what material and thickness for the flex itself?
  3. which stack-up?

I decided to crawl the Web for more information, and here is what I found, I hope this may help some other PCB designers: Read More

Layout: Screen FPC Extender Update

The previous log detailed the screen FPC extender, used to adapt the stock LCD screen to the FunKey main PCB.

Before launching the FPC fabrication which is quite expensive (~ $100 / 5 pieces), we decided to have a dry run using a paper mock-up. Here is the result:

We covered the old Rev. A PCB with a paper print of the new Rev. B one, and created a paper version of the flex, gluing the connectors on them at the right positions. As you can see, the result is not too bad.

This was until we tried to open the lid flat:

Well, the FPC is a little bit too long, causing a “wave” that totally defeats the original purpose of the “flypaper design”: the small bend radius would certainly cause a failure sooner or later.

Moreover, the FPC is a little bit too wide, too, so it interferes with the internal ribs somehow.

So, back to the drawing board, we decreased the length by 2 mm, and the width to 4 mm, here is the result:

Much better! And the behavior when opening / closing the lid is also improved:

Here are the corresponding layouts:

FunKey Revision B is out!

Here it is: the FunKey Revision B is eventually out!

You can find the corresponding design file ZIP and schematics in PDF in the “File” section.

FunKey Revision A Board

We consider FunKey Revision A board as an “alpha test” board. We built 2 units using manual pick & place and a small T962 reflow oven.

Except for a few bad solder joints, the only real problem we encountered is a wrong value for the R11 DDR RAM equalization resistor (was 240k instead of 240R). Another minor problem was a wrong footprint for transistor Q1 (was SOT323 instead of SOT23)

We can consider it as a success, as the boards worked (almost) out of the box and we were able to mount them into a 3D-printed case and make some nice videos out of them.

However, assembling this board manually doesn’t scale up very nicely: as these are dual-sided PCBs, the boards needs to go twice in the oven, using solder paste with different reflow temperatures, and just placing the 175 components on each board takes hours and a lot of patience…

We thus decided to move to…

FunKey Revision B Board

The goals for this revision were:

  • correct the Revision A bugs
  • make some mechanical adjustments required to ease the FunKey assembly into the case
  • replace some components to reduce the BOM cost
  • add test pads for a better testability
  • outsource the PCB Assembly (PCBA)
  • avoid over-engineering a working board!

Bug Corrections

As discussed above, the only physical changes were to replace the value for the R11 DDR RAM equalization resistor (was 240k instead of 240R) in the BOM and to change the footprint for transistor Q1 (was SOT323 instead of SOT23).

A few quirks in the schematics were corrected:

  • the “START” and “SELECT” signal labels were swapped (now also renamed to “START” and “FUN”)
  • the comment for R8 was referencing the wrong chip (U2, now U3)
  • some signal labels around U5 were not the same size as all other labels

Mechanical Adjustments

Although we were able to mount the Revision A PCB into the 3D-case, we found some minor assembly problems:

  • the 1.5 mm headroom over the PCB button side was too low over some components (the power inductor L6 and the transistor Q1): L6 has been moved to the other PCB side with all components for the DRAM Power, and the Q1 transistor was moved away from the buttons
  • the screen connector has been moved to be in front of the hinge flex opening and turned 180° to expose all the active pins to on the PCB edge side
  • consequently, the UART and battery connectors have been shuffled around, and the battery connector moved away from the screw well to provide more room to bend the battery wires
  • the 2x Omron B3U-3000P(M) rear buttons have been replaced because they were too fragile and did not provide a good feedback when pressed. We now use 2x Panasonic EVP-AVAA1A, which are the right-angle equivalent of the EVP-BB2A9B000 we have for the top buttons. These buttons are backed by the PCB edge so they have no chance to break if pushed too hard, and their haptic feedback is really good
  • the speaker mounting was tedious: we tried to avoid having to solder wires, but the PCB thickness of 0.8 mm was too important to provide a way to bridge the gap between the trace and the speaker pad with a solder blob, we had to use some TH resistor wire to do the connection:

    We changed the design to use castellated pads (“half-moon” plated holes on the PCB edge) positioned farther just over the speaker pads, so the distance between the PCB copper pad and the speaker pad is now zero and allows soldering the speaker with just a small solder bridge

Component Sourcing

The FunKey Revision A board used mostly components available from major online distributors, ( we ordered them from Mouser, as they are today significantly cheaper than Radiospares, Farnell or even Digi-Key). OTOH, some exotic components (the Allwinner V3s CPU, the AXP209 PMIC and the microUSB connector) had to be sourced from AliExpress, as they were not available anywhere else at a cheaper price.

But mostly, the FunKey Revision A board should be considered as a “western” board, whose components are not optimized to be produced in China, which will be our final production country for obvious cost reasons.

We took the opportunity to roll out the FunKey Revision B to switch to mostly Chinese suppliers whenever possible. We found most of the components at www.lcsc.com and its Chinese sister website www.szlcsc.com.

The price difference there is significant, as passive components are 10x cheaper, connectors are 5x to 6x cheaper, and you can find some equivalent DC/DC or PMIC chips at a fraction of their western price. Another way of saving money is to avoid crossing borders: in this case, you’d better buy the components to mount on the PCB in China from China, if possible.

However, there are some components we still had to provision from global online distributors:

  • the L3/L4/L5 power inductors
  • the 0603 current measurement resistor R21
  • all the EVP-BB2A9B000 and EVP-AVAA1A (R/A) tactile switches as the required quantity was not in stock from LCSC
  • the S14 MEDER MK24 Reed switch (more on this later in this article!)
  • the SP1 CUI CDM-10008 speaker
  • the PCAL6416AHF,128 I2C GPIO expander U1
  • the PAM8301AAF audio amplifier U3

All other passive components were replaced by some available at LCSC, but not necessarily the cheapest ones: we chose the “cheapest available in quantity” ones instead, to make sure we don’t have to switch to another reference later.

We found equivalent parts for the MicroUSB and MicroSD card connectors and for the DRAM DC/DC U4, as well as for the crystals Y1/Y2. the AXP209 PMIC U5 was directly available there, too.

Only the Allwinner V3s CPU U3 had still to be sourced from Alibaba.

With these component changes, we are now confident that we can reach our target electronic BOM cost for MP (Mass Production).

PCBA Tests

Another very important point to consider in order to get a product that is RFM (Ready For Manufacturing) is to make sure to have a good test plan for the PCB/PCBA: you cannot count on everything working as expected without a glitch on thousands of pieces!

Of course you may ask the PCB manufacturer to perform 100% electrical test on the naked PCB using “flying probes”, but another important issue is to make sure the final PCBA (PCB Assembly) is good too.

The technique most suitable given our expected production quantities and board characteristics (small size and dual-sided) is to use test jigs with some retractable interfaces featuring either mating connectors and/or spring-loaded “Po-Go” pins that will make contacts with corresponding test pads on the PCB.

On the FunKey Revision A PCB, we already had some test pads, but they prove too small to be useful. For Revision B, we increased their size to 1 mm diameter, and we made sure to have all important signals available on the least populated PCB side (the button side).

We started to define a progressive test plan to check that all the parts on the assembled PCB perform as desired, using as little as possible steps and test vectors to make the test procedure as fast as possible: time is money on a production line!

Having a good test plan defined early in the design phase is a key point to reduce defects during MP.

Outsourced PCBA

As said earlier, the FunKey Revision A boards were assembled by us using a small reflow oven.

One major goal of the FunKey Revision B is to make sure that the board assembly can be outsourced, meaning that we are able to provide all the required information for this task, yet another key step towards a successful MP.

We took the opportunity of the limited-time (now over since July 31st) offer from SeeedStudio for free assembly for 5 pieces.

Conforming to SeedStudio requirements for gerbers files, pick and place files, assembly drawing and BOM file took us some considerable amount of time, but eventually, this will certainly help us to formalize the PCBA procedure for MP too.

We are still waiting to receive the boards that were approved for manufacturing, we cross our fingers and toes, hoping everything will go as expected!

New Features!

We tried very hard to avoid adding more features to the existing FunKey Revision A design that is working, but hey, we are engineers, after all!

But in order to avoid adding bugs by over-engineering the board, we limited them to 2 low-risk changes:

  • we added a separate LCD_RESET line for the LCD (just a single wire with a pull-up resistor R29, so we can reset the LCD without having to reset the whole board in case something goes bad with the display
  • we added a magnetic Reed switch S14 to the AXP209 PMIC’s N_OE (Negative Output Enable) input, in order to suspend the FunKey console after a delay when the lid is closed, and resume it back to where it stopped when the lid is opened again:

Conclusion

Given its limited design changes and large improvements in terms of electrical BOM cost optimization, testability and assembly outsourcing capabilities, the FunKey Revision B board must be considered as a “beta test” board, which is an important milestone towards our goal to produce the FunKey retro gaming console in large quantities in China.

Schematics: Power

Capacitor Usage

So far, we already encountered capacitors for many different usages:

Load Capacitors

We have seen load capacitors used with the 2 crystals in the discussion about CPU.

A quartz crystal always provides both series and parallel resonance, the series resonance being a few kilohertz lower than the parallel one.

Crystals below 30 MHz like ours are generally operated between series and parallel resonance, which means that the crystal appears as an inductive reactance in operation, this inductance forming a parallel resonant circuit with externally connected parallel “load” capacitance. Any small additional capacitance added in parallel with the crystal pulls the frequency lower in the range between the series and parallel resonance frequencies, insuring crystal startup and stable operation.

For modern circuits, these load capacitors have a typical small value < 20 pF.

Bulk Capacitors

Bulk capacitors are used to prevent a power supply from dropping too far during the periods when current is not available. At the same time, they help to reduce the power supply voltage ripples by smoothing their output voltage.

Many such capacitors are used at both the input and output of the numerous linear and switched mode power supplies in the PMIC discussion

The main bulk capacitor value is generally high (some µF), but there may be smaller parallel capacitors added for stability.

Coupling Capacitors

As you probably know, capacitors are made of 2 parallel conductive electrodes separated by a (thin) isolating dielectric material (even if these electrodes are rolled or layered to reduce the component size). Thus by construction, no DC (Direct Current) can flow from one electrode to the other, but by influence using the electric field, AC (Alternative Current) still can go through. This is how coupling capacitors are used to link 2 circuits while removing any DC bias voltage on one side or the other of the capacitor.

We use such a coupling capacitor in the Audio schematic description for feeding the audio power amplifier from the CPU audio output.

Filter Capacitors

We have seen many examples where capacitors are used within passive filter circuits along with resistors or inductors, mainly to remove unwanted frequencies from a power supply or a signal.

Decoupling (Bypass) Capacitors

We have already seen some decoupling capacitors when looking at the buttons circuit.

Active components such as transistors and chips are connected to their power supplies through conductors featuring a (small) common impedance made up of complex (resistive, capacitive and inductive) value. Because of these parasitic components, a device that suddenly draws some current in spikes will generate a drop in its voltage power supply. If many devices are sharing the same power supply and impedance, the state of one device will be coupled to the other ones through the common impedance of the power supply conductors and may affect thir operation.

In order to decouple the devices, capacitors placed as close as possible to the device power supply input pins are used, which act as local energy storage. These capacitors are also named “bypass capacitors” as they shunt transient energy from the power supplies past the device to be decoupled, right to the GND return path.

There may be different capacitors values placed on the same power supply pins in order to filter transients at different frequencies: the bigger the capacitor value, the lower the frequency. A typical value is 100 nF, and values from 1 µF to 10 µF are used for lower frequencies and / or higher current draws, while lower values of a few nF are used for filtering higher frequencies.

In essence, decoupling capacitors are not very different in their function from bulk capacitors: the only difference is one of scale, both of current and of transient duration. Bulk capacitors deal with large currents and periods of 10s of ms, whereas decoupling capacitors are used for much lower currents and much briefer periods (typically 10s of ns for TTL or CMOS devices) .

Schematics

The last part of the FunKey schematics merely contains only decoupling 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.

The only other remarkable point left in this schematic is the resistor divider R25 / R28 which provides a reference voltage at half the DRAM power supply voltage level, which is used for the integrated DDR2 DRAM merged drivers and dynamic on-chip termination already discussed at the end of the previous CPU schematic description.

Conclusion

This concludes the description of the FunKey gaming console electronic schematics. The full schematics is available in the design Zip file and in PDF format too.

As we have seen, the design is not overwhelmingly complex, but it contains many details that are all important to make sure the device works as expected.

Schematics: SD Card

The FunKey game console uses the SD Card both as its boot device and its only storage device, so a good operation of this interface is absolutely mandatory.

The Allwinner V3s provides 2x 4-bit MMC / SD Card / SDIO interfaces. In the FunKey, only interface #0 is used.

If you look on the Web, you will find many contradictory SD Card interface designs, with a combination of pull-up / pull-down resistors, ESD devices and power supply filtering, with all pins wired or not, such that it is very difficult to know what is really required. To better understand the situation, we need to go back to 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.

The MMC phyiscal interface can be found in the “Multi Media Card System Specification version 4.3, JESD84-A43, November 2007”, available here (registration required).

But a good summary of the requirements is given in the “AN10911 SD(HC)-memory card and MMC  Interface conditioning” application note from NXP, from which this schematic is taken:

Note: This schematic does not include details concerning card-supply and typical power-supply decoupling capacitors.

Write Protect (WP)

A write protect mechanical switch is provided in the full-size SD Card, but not in the mini or micro SD Card form factor. As we plan to use a micro SD Card only, it is not used for the FunKey, along with its pull-up resistor and ESD protection.

Card Detection (CD)

As the SD Card is required to boot the FunKey, is always inserted and opening the device is requried for its removal, we don’t need the optional card detect mechanical switch feature (even if the chosen connector provides it) and its related pull-up resistor and ESD protection.

The SD Card specification provides another mean to detect the card using a card built-in pull-up resistor on its DAT3 signal, that can be later disconnected during normal operation using he SET_CLR_CARD_DETECT (ACMD42) command. In order to correctly detect if the card is inserted, a high value external pull-down resistor (> 270 kohms) is required to drive the detect signal low when no card is inserted, while the card built-in 10-50 kohms resistor will drive this signal high when inserted.

However, this feature is not compatible with MMC cards, so its usage should be avoided and the mechanical detection is preferred.

Pull-Up Resistors

Both the SD Card and MMC specifications require not to leave the interface signals floating, except for the CLK signal, where a pull resistor would cause significant signal distortion because of the required high speed and short rise/fall times. OTOH, it is recommended to add a series resistor on this CLK signal as close as possible to the clock source (the CPU) to avoid ringing, as we already discussed it in the log about the CPU.

Hopefully, the Allwinner V3s CPU provides internal pull-up resistors for all these signals, so we don’t have to add external pull-up resistors. These resistors are given with a typical value of 100 kohms (50 min, 150 max). Unfortunately, the CMD signal for MMC card features an open-drain output mode, and its value should be undercut (down to 4.7 kohms) to guarantee a sufficiently short rise time in this mode.

Schematics

The FunKey SD Card interface schematic is the following:

Even if in the FunKey device the SD Card and its connector are not accessible without opening the enclosure, there may be some situations where the user may decide to do so. We thus attach an ESD protection TVS diode (D16, D17, D18, D25, D26, D27, D28) on each signal to avoid any ESD hazard.

As discussed above, a single pull-up resistor R10 is used on the CMD signal for MMC compatibility.

The micro SD Card connector built-in card detection switch is not used, since the card must always be inserted for the FunKey to boot, and the corresponding pins are thus connected to GND.

The SD Card power supply is done through an RC low-pass filter to provide a soft-start operation, as the card built-in large bulk capacitor on its power rail may collapse the supply voltage when initially powered up.

3D Printed prototypes before injection molding

Introduction

FunKey’s design has been completely rethought. It is now sturdier, slimmer, with an active hinge that puts no stress on the cables and most importantly thought for production. We have designed every component while thinking about the injection molding process, this means clearance angles, drawers for the mold and other things that will be explained in a dedicated log about the design.

Here instead we would like to take an unconventional path and start talking about the in-between process that is after the design and before the injection. Let’s say your design for injection molding parts is done, how do you test it to assert its validity before investing thousands of dollars in a mold and go into production?

Nowadays, we are lucky to live in a world where 3D printing not only exists but has been vastly democratized to the masses. Just between our three group members we own about five different 3D printers (not all in the best of shapes but they still help making the point). In order to validate our design, then 3D printing is the right solution, but FunKey being what it is – that is to say very tiny – not all 3D printing technologies are adapted to our needs.

The question is, then, which type of 3D printing technology is the most adapted to our needs? We have tested the three principal ones: FDM, SLA and SLS and wanted to report our results in this log so that other makers can use this knowledge.

Brief description of the different 3D printing technologies we used

  • FDM (Fused deposition modeling) which consists in building parts layer-by-layer from the bottom up by heating and extruding plastic filaments. It is by far the most common technology among hobbyists since great quality printers are now available for a few hundred dollards and the filament is relatively cheap (). 
  • SLS (Selective laser sintering) which sinters a powder by using a laser. Thiese printers are still way too expensive to be accessible to the mass market but it is possible to contract 3D printing companies to get prints for an affordable price.
  • SLA (Stereolithography) and/or DLP (Direct Light Processing) which solidifies a liquid resin layer-by-layer by photopolymerisation. Formlabs has democratized this technology which was previously reserved to professionals (even if the printers are still relatively expensive compared to FDM ones as well as the material). 

Comparison of the print results

The mechanical properties to consider for our prototype are the following:

  • resistance
  • precision
  • surface finish

For the FunKey, we need a great precision for all the small details, a good surface finish and a sturdy case to resist the efforts on the hinge.

FDM

For this technology we have tried two prototypes, one printed with a common simple extrusion printer and the other with a double extrusion printer with a water-soluble material. The water-soluble material is used as support material and life-changing during the post processing of prints. You can see below the prints realised with an Ultimaker 2+, nozzle 0.6mm, layer height 0.15mm and PLA filament.

Below are the prints from an Ultimaker 3, nozzle 0.4mm, layer height 0.10 and double extrusion with standard PLA and water-soluble material.

Here are the results after a one hour bath in cold water and some toothbrushing to remove the residues:

This technology (and the PLA used) is sturdy enough for our needs but, even if the printing params might not have been optimal, the surface finish and level of details are far from ideal. It is especially noticeable when we start putting together the different parts. The outer parts are ok but, even with soluble material, the inner parts needing supports material lack precision and surface finish. 

SLS

With this technology we have chosen to go with PP (Polypropylene) among the variety of available materials such as PA12, PA+GF (Glass Filled), PP (Polypropylene), Alumide (Mix between PA powder & aluminum powder), TPU92 (Thermoplastic Polyurethane)…

Here is how the prints turned out with Polypropylene:

This time the inner parts of the casing were the same quality as the outer parts. As you can see this material is too elastic though. But if materials can be swiched for sturdier ones, precision still falls behind our needs. Besides, surface finish is not smooth and the porous material quickly tends to absorb dirt.

SLA

Different types of resin were tested with this technology:

  • Somos® EvoLVe 128 ( white)
  • Accura Xtreme (gray)
  • R11 from Envisiontech (red transparent)
  • ANYCUBIC resin (green transparent).

The biggest drawback with SLA printing would be that it is still very far from being as user friendly as FDM printers. Not only does the resin needs to be handled carefully in the first place but the post-processing treatments require one to not be afraid of a little chemistry. The prints must be cleaned with isopropanol alcohol, and after removal of the supports, they need to be strengthened with UVs. Also, the smell of all these products is not the greatest.

The results however are definitely worth it!

A great exemple of the kind of precision that can be achieved without a sweat by SLA technology would be the tiny plastic rib depicted in the image below.

It needs to be precisely 0.7mm wide and printed over a part that would need support with FDM technology.

As can be seen in the picture below, only SLA achieves this level of precision (gray casing) with a very neat rib while even SLS  (white casing) clearly falls behind. 

Here is another example of the kind of precision achieved with SLA: the FunKey logo is only extruded 0.1mm in the casing. As you can see it is not only clearly visible but also very neet on the SLA print. This is not the case with other technologies that printed the same STL file.

We noticed our SLA prints were quite fragile however, this material is a bit more breakable and one needs to be careful when assembling the parts, espacially with the screws. They need to be put gently not to break the shanks.

Precision: theory vs reality

Theoritically here is the precision that each technology can achive in average:

  • FDM: ± 0,15 % (lower limit with standard nozzle at ± 0,2 mm), layer height: 0.05 to 0.3mm
  • SLS: ± 0,3 % (lower limit ± 0,3 mm) / layer height: 0.12mm
  • SLA: ± 0,2 % (lower limit ± 0,2 mm) / layer height: 0,05 to 0,2 mm

Below can be seen different measurements of the casing’s width (theoritically 44,3mm)

FDM :

SLS :

SLA :

Globally all three technologies are decent, it is the level of details that lacks for SLS and especially FDM compared to SLA.

Conclusion

This log does not pretend to be an extended research on 3D printing technologies but merely an attempt at finding the one best suited for trying out our prototype before production. Keeping this in mind we might not have set the very best parameters for FDM prints and they might be greatly improved, but our conclusion would be that in order to achieve the level of details FunKey needs, SLA technology is simply one step further regarding accuracy and surface finish.

We encourage anyone however to print Funkey with their own setups and tell us about the results. All the files are available here or on thingiverse and grabcad.

Thanks to the SLA prints we were able to validate our design choices regarding the integration of the electronic components, the new screen with its flex and the strength required to open/close the hinge. It also allowed us to see where our design could be improved, for example by decreasing the led brightness, reducing the logo’s size, adding some matter to block the light from the display backlight, … and some other things that we will detail in a dedicated log.

We are now working on fixing these small issues and printing new SLA versions to validate them and then be ready for injection molding (probably in ABS). We intend to show in a future log the design rules that were applied to conceive FunKey’s plastic parts for injection molding (Draft angle, injector pin, injection gate, cavity, core…). 

Electronic Parts

The main part in the FunKey device is of course the CPU: an AllWinner V3s SoC with integrated 64MB DDR2 DRAM. Not much compared to a Raspberry Pi for example, but it turns out it has just the right capacity for our purpose, and a minimum size because of its integrated DDR2 RAM, without the length and impedance-controlled constraints on PCB trace requirements.

The V3s also features a low power consumption and all the required peripheral that we need.

The V3s CPU is generally used with a companion AXP209 PMIC chip in charge of supplying all the required voltages for the CPU: +3V3, +3V3 (RTC), +3V0, +1V25, most of these using integrated DC/DC buck converters or simpler LDOs for the ones requiring the less power. The AXP209 also features an integrated Coulomb counter for monitoring the available battery power, as well as a soft-power switch controller that acts just like the one in your smartphone!

A separate AP3418KTR-G1 DC/DC converter is sued for providing the DDR2 DRAM +1V8 power.

The second most important part in our design is probably our small 1.5″ LCD screen. It has an amazing 240 x 240 pixel resolution, while using a simple SPI-based interface and not a complex DSi interface based on the differential high-speed MIPI specification, which requires a dedicated controller that is only available in higher-end SoC:

For audio playback, we wanted to have an internal speaker. But given the reduced dimensions, we tried to find the smallest available one, which has a very small 10 mm diameter, with a total height of 2.9 mm, out of which 1.4 mm can be inserted into a PCB hole, thus only having a height above PCB of 1.5 mm:

We use a simple mono audio playback through a PAM8301AAF amplifier. This amp has all the required characteristics, with a filterless (no capacitor) design.

After testing tactile domes in our FunKey Zero prototype, we decided to go back to standard tactile switches, as their placement can be done by a regular SMT pick&place machine with a very good accuracy, just like all the other components on the PCB, unlike the tactile domes which require an adhesive tape to place them, making them less accurate in their absolute positioning.

We also need some right-angled tactile switches for the rear left and right buttons:

We took the smallest we could get, but we may experiment with softer (no-click) ones for the rear buttons to bring a better play experience.

For the microUSB connector we choose a common mid-mount model with through-hole pins in order to avoid tearing it off the board if you don’t pull the chord straight. 

The only remaining mechanical part is the small DF37NB-24DS-0.4V(51) connector, matching the LCD screen connector.

For debug, we features a 3-pin  1.27 mm pitch header, with console UART RX, TX and GND pins.

The only remaining active part is a P-MOSFET used to drive the screen backlight from a V3s GPIO pin.

We use TVS diodes on all user-accessible parts to prevent ESD (these are small 0402 TVS), and a dedicated USB ESD protection a close as possible to the USB connector.

All other parts are passive resistors, capacitors or ferrite beads in 0402 form factor whenever possible, as we don’t have a lot of available real estate on this board.

As you can see, none of the components was chosen randomly, and finding the right part took us a significant amount of time!

Schematics: CPU

Schematics: CPU

At the heart of the FunKey electronic design is the CPU block, built around the Allwinner V3s chip:

We selected this particular chip because it features a built-in 64MB DDR2 DRAM, which is very good as it saves some precious real-estate on the PCB and also because its layout is much easier: usually because of the mandatory high-speed signals, DDR DRAM requires both length and impedance-matching on all critical signals, leading to the weird “snake”-style layout to balance traces. As here the DDR DRAM is bonded to the CPU into the same package, there is no such requirement here.

OTOH, 64 MB DRAM may not seem much, but we determined that it is sufficient for our modest retro-gaming needs.

One bonus with the V3s is that it comes into a non-BGA (Ball Grid Array) LQFP128 package with actual leads, which is much more user-friendly for prototyping!

Here is the part of the schematics corresponding to the CPU core:

SoC Blocks

As one can see, there is not much besides the CPU chip U3 itself… But it can also bee seen that the CPU is in fact a SoC (System on Chip) containing a collection of built-in peripheral and memory blocks along with the CPU itself:

  • the LCD / CSI display peripheral
  • the GPIO port G / SDC1 (SD Card #1) interface
  • the AUDIO codec
  • the LRADC0 (Low-Resolution Analog to Digital Converter)
  • the USB OTG controller
  • the GPIO port F / SDC0 (SD Card #0) / UART0 interface
  • the RTC (Real Time Clock) timer
  • the EPHY (Ethernet PHYsical) interface
  • the MIPI camera interface
  • the built-in 64 MB DDR2 DRAM
  • the GPIO port C / SPI interface
  • the GPIO port B / UART2 / PWM0 / PWM1 / TWI0 (I2C #0)  / TWI1 (I2C #1)

Among these, the FunKey device only uses a few blocks: the AUDIO, USB (as device only), SDC0 (for SD Card), RTC, DRAM, SPI (for the LCD screen), PWM0 (for backlight), TWI0 (for I2C bus to control the GPIO expander and power management chips) and a couple of GPIOs to power the audio power amplifier and get feedback interrupt signals from the the GPIO expander and power management chips.

CPU Power Supplies

What is remarkable though is that the V3s requires a lot of different voltages for its power supply:

  • +3V3 for the I/O power supply
  • +3V3_AO for the Always-On power supply (RTC timer)
  • +3V0 for analog power supply
  • +1V8 for the DDR2 DRAM power supply
  • +1V25 for the core power supply

This profusion of different power supplies as well as the high power drawn by some of them (1.2A for +3V3, 1.6A for +1.25V) requires a sophisticated power management that will be detailed in a future log.

LRADC0

The LRADC0 (Low-Resolution Analog to Digital Converter #0) is designed to measure the voltage of a resistor ladder switched by keyboard keys: this single input is thus in theory able to manage a keyboard of up to 10 keys @ 250 Hz.

Unfortunately, the FunKey has 12 keys (U/D/L/R, A/B/X/Y, RR/RL, START and SELECT), and the resulting key detection accuracy is not compatible with a gaming usage because of long term stability problems. This is the reason why it is not used in the FunKey and just terminated by a proper low-pass filter R6/C9 to avoid picking up noise glitches.

SD Card

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 clock line in order to prevent ringing.

Crystals

The V3s chips requires 2 crystals: one low-frequency 32.768 kHz crystal Y1 for the RTC clock and one high-frequency 24 MHz crystal 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).

The 32.768 kHz crystal is used by another internal oscillator to tick the RTC (Real-Time Clock) at a standard watch frequency.

These crystals require 2 load capacitors (C12/C13 and C14/C15) each in order to guarantee that the oscillators still start and work with a comfortable operation margin taking into account voltage, temperature and aging.

The 32.768 kHz crystal features an additional high-value resistor R12 in order to limit the internal oscillator’s output current and thus reduce further the RTC timer power consumption.

For more details on crystal oscillator design, please check this application note from STM.

DRAM

The DRAM within the V3s chip is a DDR2 one, meaning that its data lines are clocked using both edges of a 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 and thus each signal should be considered as a transmission line, 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):

The V3s DDR2 DRAM has an active termination calibration circuitry and procedure called “ZQ Calibration” requiring an accurate 1% 240R resistor R11 (and NOT 240K like shown in the schematic, my mistake!) connected internally like this:

More on the DDR2 DRAM ZQ Calibration subject can be found in this Micron Application Note.

This concludes the study of the FunKey CPU core schematic block.

Regulated DC Power Supply Topologies

Simple DC electronic circuits can be powered by directly connecting a battery.

However, circuits usually require a constant input voltage for proper operation.

This log is a small parenthesis to explain the different regulated DC power supply topologies, before looking at the FunKey power supply schematics in details.

If you are already comfortable with this subject, you can skip this log entirely!

Linear Regulators

The easiest method to achieve this constant load voltage despite a varying source voltage is to linearly control the resistance of the regulator in accordance with the load, resulting in a constant output voltage.

Shunt Regulator

The simplest voltage regulator is the shunt regulator, 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:

Series Regulator

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:

Integrated Linear Regulator

In integrated voltage regulators, the discrete Zener diode is replaced by a more sophisticated (but easier to integrate) circuit built around a resistor divider feeding an operational amplifier, a voltage reference, and a transistor driving the emitter-follower pass transistor:

Usually, the pass transistor and its driving transistor are combined into a single Darlington transistor plus a controllable current source like this:

LDO (Low Drop-Out) Regulator

The above circuit works well, but its drop-out voltage (the difference between the input and output voltage) is rather high because of this transistor cascade, around 1.5V to 2.5V.

By replacing the emitter-follower Darlington transistor by a PNP transistor in an open collector or open drain topology, the drop-out voltage is reduced to 0.7V or lower:

SMPS (Switched-Mode Power Supply) or DC/DC Converters

A linear regulator provides the desired output voltage by dissipating excess power as heat in the Zener diode or in the pass transistor. Hence its maximum power efficiency is VOUT/ VIN since the volt difference is wasted to heat the birds.

In contrast, a Switched-Mode Power Supply changes output voltage and current by switching non-linear storage elements, such as inductors, transformers and capacitors between different electrical configurations.

These elements are non-linear because the inductor and transformer respond to changes in current by inducing its own voltage to counter the change in current, whereas a capacitor responds to changes in voltage by inducing its own current to counter the change in voltage.

Thus, depending on the way the components are arranged, it is possible to obtain SMPS circuits that either have an output voltage higher than the input voltage (“Boost Converters”), or lower than the input voltage (“Buck Converters”, as is it subtracts or “Bucks” the supply voltage).

Because of technology, power inductors are easier to manufacture, take less space and are more stable over time than their counterpart capacitors. This is why most power DC/DC converters are built using inductors. Capacitor-based SMPS are generally used for lower power applications, such as for generating the +12V and -12V voltages required by true RS232 from a +3.3V or +5V power supply in the ubiquitous MAX232 drivers.

Boost Converter

The most basic circuit for the Boost converter is the following:

If the switch is driven by a square wave, the peak-to-peak voltage of the waveform measured across the switch can exceed the input voltage from the DC source. This is because the non-linear characteristic of the inductor, and this voltage adds to the source voltage while the switch is open.

Please note that in this converter, the output voltage is not isolated from the input voltage.

Buck Converter

The corresponding basic circuit for the Buck converter is the following:

The way this converter works is described in details here. 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.

Please note that in this converter too, the output voltage is not isolated from the input voltage.

Isolated SMPS

Isolated Switched-Mode Power Supplies use a transformer to isolate the input voltage from the output voltage, and thus can produce an output of higher or lower voltage than the input by adjusting the turns ratio.

Advantages and Disadvantages

Linear regulators are simpler than SMPS, and their linear behavior produce a very clean output voltage, but their efficiency is directly proportional to the difference between the input and output voltage, which is dissipated as heat.

However, for light loads and/or when the voltage drop-out is low, LDOs are very useful.

OTOH, SMPS are more complex and require more components, but their efficiency is much better (typically 80-90%), resulting in less heat, with the drawback of a switching electrical noise pollution of both the input voltage (that may couple electrical switching noise back onto the mains power line) and the output voltage (with electromagnetic interference (EMI) and a ripple voltage at the switching frequency and all its harmonic frequencies).

SMPS are thus almost exclusively used when heavy loads are used and/or when the voltage drop-out is important.

Why so many different Power Supply Voltages?

Looking back at the previous log on the CPU schematics, the FunKey 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 (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)
  • +3.0V / 200 mA for the analog power supply
  • +1.8V / 1A for the DDR2 DRAM power supply
  • +1.25V / 1.6 A for the core power supply

But why in the first place are so many different power supply voltages required?

Power Efficiency

A first answer is: for better power efficiency.

As P = U x I (Electrical power is the product of voltage level by current intensity), you can reduce power by decreasing the required current or reducing the operating voltage. Assuming you already do your best to reduce the required current, you can still reduce power by reducing voltage.

Reducing Power Supply Voltage

Voltage Drop

But how far can you go? Over long distance, you have the voltage drop from the conductor linear resistance, but this effect can be neglected for small boards. 

Noise Margin

You have inductive and capacitive coupling between conductive wires and planes too, but within a PCB, these coupling only have a limited direct effect on voltage. However, these coupling play a role in that they will pick up external electromagnetic noise from the surroundings and inject it into the circuit.

And with digital circuits, a critical limit when lowering the operating voltage is the “noise margin” or difference in absolute voltage levels between a logical ‘0’  and logical ‘1’, which determines the maximum amplitude of spurious voltage spikes that a conductor can pick up that will trigger an erroneous logic level change.

This phenomenon mostly depends on the circuit scale: a long-distance circuit between boards will require higher voltages (typically +12V or +24V) to limit this effect, whereas a circuit between boards a few meters apart or using through-hole chips on the same board wile require a lower voltage (typically +5V like the old Arduinos). Using SMT chips will allow even smaller boards and lower voltages (+3.3V is today typical), and with wires running on the same silicon die, it is possible to go down to +1.2V, given the current technological limits.

Voltage Swing

There are other reasons why you should try to minimize voltages: the core CPU for example needs to run as fast as possible, and lowering its operating voltage will shorten the signal rise and fall duration as the voltage swing is reduced.

Other Power Supply Considerations

Besides reducing the operating voltage, there are other considerations that may push to multiply the number of power supplies in a design:

Quiescent Current

As for power supply used for standby operation providing small currents,  a very-low leakage current (“quiescent current”) is required as it can no longer be neglected compared to the current required by the light load and even more importantly because this current consumption is permanent.

Ripple Voltage

For sensitive circuits such as ADCs (Analog to Digital Converters) or PLLs (Phase-Locked Loops) which rely on comparing very small voltage differences, a “clean” power supply featuring very low ripple voltage amplitude is required to achieve a good resolution and/or accuracy. This characteristic is only possible to obtain using LDOs and not SMPS, and the figure to pay attention to is then the PSRR (Power Supply Rejection Ratio) or how much a variation in the input voltage will affect the output voltage: the higher, the better! A value > 50 dB is a good starting point.

Application to the FunKey Design

Based on these considerations, it is now clear that each V3s power supply voltage has a good reason to exist:

  • +3.3V / 1.2A is used for powering the I/Os to connect between chips on the board. Given the required current, a SMPS is required for reaching a good efficiency
  • +3.3V_AO / 30 mA for the Always-On power supply (RTC timer) requires a low quiescent-current, so an LDO is used
  • +3.0V / 200 mA for the analog power supply also requires an LDO, this time to minimize the ripple voltage
  • +1.8V / 1A for the DDR2 DRAM power supply: this strange voltage level is typical for DDR2 DRAM memory chips, and is the result of driving the large memory array inside the chip
  • +1.25V / 1.6 A for powering the CPU core to minimize the voltage swing and increase the possible CPU frequency. Given the required current, a SMPS is required for reaching a good efficiency, too

1 2