Acheron Aχξρων 40-SM-O-MX-TH-WI (Codename "SharkPCB")
Table of Contents
- Project overview
- Frequently Asked Questions (FAQ)
- Board preview
- The custom case
- The PCB prototypes
- Bill of Materials
The SharkPCB is a freely available, open-source 40% keyboard Printed Circuit Board (PCB) supporting three layouts: full grid, 1x2U spacebar and 2x2U spacebar. All resources and software used to design this board are open-source and/or freely available.
Here's a list of the board's features:
ARM Cortex M4-based STM32F303 processor;
QMK firmware compatible;
USBC type connector;
RGB underglow through intelligent integrated controller WS2812B LEDs;
Three layout support: full-grid (FG), 1 centered spacebar (1S) and double spacebar (2S);
Rotary encoder support;
Hardware reset through a push button and reset network;
Overcurrent and overvoltage input protection through a fuse and schottky diode;
Electrical Static Discharge (ESD) protection through a discharge net.
Additionally, plate gerber files are also available so that the user can order them made from the same manufacturer as the PCBs and out of the same material (FR4, a fiberglass enhanced resin laminate). This makes production cheaper and faster.
There are four plate designs available: one for each supported layout and a universal one that supports all three of them.
Is this design functional and tested?
Yes. Version 3.1 was prototyped and is proven to work.
How can I obtain this PCB? Is there an IC or a GB thread?
There is an IC thread on GeekHack, where many users have contributed to the design and given their thoughts. Any help or opinion is highly appreciated. There is also a GB thread on Reddit and a GB thread on Geekhack. For updated information please always check the GeekHack IC thread or this project's page.
Additionally, you can order the PCBs from a manufacturer like JLCPCB (for instructions see this link starting at 1:02:00) and the components from LCSC (how to do that in this link) and build the board. This takes some expertise in electronics though, as the SMD parts require knowledge and specialized tools and supplies. This is why me and Steve hold Group Buys. Also manufacturers generally have a Minimum Order Quantity of 5 or 10 PCBs. Feel free to arranje a group buy with your circle of friends.
Where are you planning to distribute this board?
Steve from WoodCables is handling the GB in the US and I am handling it in Brazil. The UE is not out of the question, and I have some connections there should the european community show interest.
How much will this board cost?
We are aiming at a US$40,00 mark. The prototypes show that this is likely to be achieved.
Will you (or Steve) profit from this project?
I won't profit from it myself, although I retain a little portion of the gains to fund further projects, that is, to maintain prototyping, components and overall design costs. A famous brazilian writer, Millôr Fernandes, once said: "never trust an idealist that profits from his ideals".
Steve, on the other hand, has my permission to use the design commercially, so I'm not entitled to tell him if he should profit and how much, as he runs his own shop. Nevertheless we keep in close contact and it is, obviously, in the best interest of both us and the community that the prices are kept affordable and as low as possible.
Who is funding this project?
I and Steve are -- although mostly him as parts and equipment availability in Brazil is limited. Also anyone that obtains this board either through one of the Group Buys or throw Wood Cables (Steve's shop) will be supporting the project as all gains from the sales and GBs are reserved to be used only with the project.
Can anyone contribute to this project?
Anyone is welcome to contribute, be it through feature requests, opinions or criticisms. This can be done through the GeekHack posts, issues and questions on GitHub or even through my Discord (#Gondolindrim#9738). If you want to actively contribute to the design, feel free to contact me and we'd be glad to have you.
As I don't intend to profit from this, there is no reason to keep the design closed. I also have the opportunity to contribute to the open-source way of thinking: many heads are better than one. Following these steps I use only open-source stuff to design the keyboards: the ECAD design is made with KiCad, the renders and animations in Blender, the logo design in Inkscape. All these software are run on Arch Linux, which is a Linux distro heavily based on the OSS and KISS principles.
By adopting free OSS tools any newbie makers can take a look and learn from these designs, that is, I also have an educational reason in mind. In this regard, I also have a transparency principle, that is, anyone in the community can contact me and ask questions about the project and the design decisions or the design process. Any maker can also check my designs and points its flaws.
Second, there is also the KISS (Keep It Simple, Stupid!) principle in mind. Since this project is completely un-ambicious, I try to keep it as simple as possible, so that the design and community processes are fluid.
And why publish the design under a share-alike non-commercial license?
The reason for the license is twofold: first, while I want the design to be open-source, that is, educational and freely available, I think it's not just that someone could just take it, make little adaptations (like changing the logos) and profitting from it when the idea of the project is to have the open-source ideas in mind. It's not about myself -- although of course I have some pride in my designs and like to have credit for them -- but about the project ideals.
Second, I don't condemn the idea of commercializing my designs, I'd just like to know who is selling it so that I can have a good quality control.
What resources and software do you use?
All the footprints and symbols are available wither on the KiCad libraries or my MX library, which contains footprints and symbols for some components not available on KiCad.
The design, footprints and symbols are made through KiCad. The 3D models are obtained in sites where the content is free and widely available like 3D Content Central and GrabCad Community, and to edit them I use FreeCAD.
The logos were designed in Inkscape. The base image was taken from this page (last access: 26 feb, 2019). Although stated in the Vector Portal site that the designs are freely available to be used in commercially, I tried to contact the uploader, who goes by the name of "Yohan Plantec" with no success.
The renders and animations are made in Blender.
How can I follow your design process and learn from this project?
I try to stream the design process when I can. I generally do it at tuesdays and thursdays at 3PM PST (8PM BRT). In the streams I answer general electronics questions, and show how the board is designed. I stream at my Twitch channel. The past streams can be seen in my Youtube channel.
Board preview (version 3.1)
The custom cases
The folder ./case has the .stp and .stl files for the custom cases being designed, one being a low-profile (switches are exposed) and another a high-profile. The cases are not ready and were not prototyped; also feedback from the community is still underway so we are still setting on some matters before releasing them.
The case was designed in Fusion360, which is not open-source but is freely available. I had a hard time with 3D modelling in Blender, specially because it was not designed to interact with CAD and parts manufacturing; for example, it does not output its files in the STEP format, which is a major problem since that is the standard file extension used in the industry.
Steve and I will soon make an IC post where users can input their feedback. In any case, anyone can contact me directly through Reddit or Discord.
If you want to fork or create a case based on this one, you can check the public links for the low profile and for the high profile cases. With these links you can download the project files like F3D, STL, STEP and so on.
Changelog and version control
See the pictures below.
The prototyped version was V3.1. The plates were ptotoyped with plain square slots, and work perfectly.
Bill of Materials
In the ./bom/ folder there is an .xlsx file that can be uploaded directly into the LCSC site. The file contains all LCSC part numbers, quantities and descriptions.
If you don't want to order them from LCSC, the table below can be used.
|J1||-||TYPE-C-31-M-12 USBC Connector||1|
|C1 and C2||22pF||0805||2|
|C7, C9, CRST1, CRST2||4.7nF||0805||4|
|R5 and R6||1MOhm||1206||2|
|CSin1, CSout1, CVBus1-3, CA1, CB1||100nF||0805||7|
|DF1||RB060M-60TR Schottky Diode||SOD-123||1|
|QRST||BC846 NPN BJT||SOT-23||1|
|RD+ and RD-||22ROhm||1206||2|
|RPGate, RB1/2, RA1/2||10kOhm||1206||5|
|SWRST1||SMD Push Button||-||1|
|Y1||8MHz 4 pin SMD Crystal||5032||1|
|D1-48, DS1 and DRST||1N4148W||SOD-123||52|
|ROT1||ALPS EC11Ex (see note 1)||-||1|
(1) Any EC11Ex rotary encoder should be fine, as the models differ only on shaft shape and size but their footprints are the same. In the render I used the ALPS EC11E 15244G1.
Finish the porting to STM32 (as suggested by Walkerstop from GH)
Change the grid from 19.05mm (3/4΅) to 19mm as the Planck does (as suggested by garbo from GH)
Add RGB underglow support
Constructed photorrealistic renders of latest version. (v3.1)
Finish SMD design
Finished SMD plates (single spacebar, dual spacebar, full-grid and universal)
Prototyped SMD design
Finish THT design
Finish THT plates
Prototype THT design
Although there is only me actively working on the project design, some acknowledgements are due:
- Steve from WoodCables. Steve was the proponent of this project and funded it with his own money. He will also take care of the distribution and Group Buys in the US.
- Gustavo "UndecidedShark" Reinert. As denoted in the PCB, this board was named after him. I take special pride in this as I gave him his nickname.
- Felipe "MrKeebs" Gonçalves and Raphael "ArcticFox" Hochheim. Dear friends and always up to help with my questions.
- User garbo from GeekHack, who helped immensely in this design by giving me hints and information, always opinating and giving feedback with christian patience. Walkerstop also helped by recommendations like using the STM32 family of processors and a USBC connector.
- User u/ajp10204 from Reddit. Now this guy read the README and the documentation thoroughly and pointed inconsistencies and errors several times. He gave me good reasons to make a nice documentation and he helped me immensely by this;
- Jack Humbert, from OLKB, and ishtob from the QMK Discord Server. Jack was always very amicable and helpful; the 3D CAD files for the Planck Cases and plate came from the QMK parts Git repo. ishtob was always very accessible and helping with some design questions; in fact, some of the footprints and symbols used were based off of some of his own. In this regard many people in the Discord server helped with small hints (like yanfali, Upas and MechMerlin).
This project is licensed under the Creative Commons Non-Commercial Share-Alike 4.0 license, available in (https://creativecommons.org/licenses/by-nc-sa/4.0/).
This license allows you to copy and redistribute this project, as long as you give the author credit and have non-commercial purposes. If you have commercial purposes, please feel free to contact me through the channels I disclosed in this README file.
To know more about why I published the project under this license, please look at the FAQ section.