Close
0%
0%

Generative kAiboard

Beyond Typing: An Adaptive Hardware Prompter for the Age of Generative-AI. Internet-connected. Built-in ChatGPT.

Public Chat
Similar projects worth following
Even today, I'm still blown away by ChatGPT (& generative AI in general). But let's be real, ChatGPT isn't perfect. It doesn't remember things (under the hood), inherently lacks the personal touch, and often times dishes out generic replies. We find ourselves having to provide the same information repeatedly. It's like pulling teeth to get the right info and style from it sometimes. And guess what? Your keyboard might just hold the solution!

Enter the Generative kAiboard, the keyboard "I hope" to be the superhero in this AI game. It gets you. It studies your writing style, your word vibes, and even keeps tabs on what floats your boat. Then, like magic, it helps you PROMPT all the right questions without breaking a sweat. This bad boy's got internet smarts, its own screen, virtual assistant and ChatGPT right under the hood. Oh, and did I mention? It's one heck of a cool keyboard too, packing more tricks up its sleeve than you can shake

Shortcuts: Too much texts, No Time

In case you've got no time, the following two diagrams I hope should answers all your "geeky" questions in mind.

Overall HW Architecture:

High-Level Operational Features (October 2023):

Project Logs Shortcuts:

The Rationale

ChatGPT and the whole generative AI scene? Now that's some seriously mind-boggling stuff, isn't it? The buzz around these things is off the charts, and it's no wonder why. I mean, think about it – we're talking about AI that can spin out text and creations like pure magic. It's like having a digital wizard by our side, whipping up ideas and content that we never thought possible.

I'm far from the expert in this field, but ChatGPT, despite its marvels, comes with a handful of limitations. It's like the forgetful friend who can't hold onto a variety of past conversations, lacking that personal touch that comes from remembering details. Contextual awareness is hit-and-miss, leaving us with moments of confusion akin to talking to someone who wasn't quite paying attention. And let's not forget the awkwardness of reading text that doesn't quite capture our unique style – it's like wearing a suit that's one size too big or too small. So, while it's impressive, it's got a way to go before it truly becomes our digital twin.

That's where prompt engineering kicks in – it's our way of telling the AI exactly what we want in a language it gets. We're basically giving it a nudge in the right direction, so it doesn't go off on some wild tangent. It's like we're talking to a friend who's super smart but occasionally gets things hilariously wrong. 

"The use of generative AI can altogether succeed or fail based on the prompt that you enter" - Source

So, having said that, my project's main "Research questions" are more like:

  1. How can we whip up an open-source hardware wizard to help us "prompt through" the imperfection of Generative AI?
  2. What's the coolest hardware to slot in without messing up our groove?
  3. Can we make the variable prompts adapt like chameleons to match our intended context?

The Hypothesis

Introducing Generative kAiboard

Wait, hold-on-a-minute, a keyboard? Yes, let me explain.

When you think about it, there is actually a lot of similarity between generative (text) AI such as ChatGPT and a keyboard. they both generate text! while chatgpt relies on pretrained large language model, our keyboard relies on our brain to convert our thought in the analog domain into the digital realm. In fact you are probably holding one as you read this. But of course, mostly keyboard as we use today is just an extension of us, a tool, nothing more. What if we can make it more intelligent, make it a complement, make it a part of us as we surf through the age of generative AI.

Just think about it for a sec: if I threw this question at you – who's the real expert when it comes to your writing style, the handpicked words you dig, when you usually kick off your day, and how long you grind on stuff? It's gotta be your trusty keyboard, right? I mean, let's pretend it's all "smart enough" just to play around with the idea. In my book, I'm all in on the notion that our keyboards have some untapped superpowers. And you know what cranks up the excitement? The cool new trend of prompt engineering has cranked this whole concept up a notch.

And here's the kicker: we're talking about a keyboard here, so it won't mess with your groove, if you catch my drift. This ain't an extra gadget you gotta drag around, or some software headache that needs installing and babysitting – it's just a good ol'...

Read more »

Gen_Ai_Kbd_Electronics_BOM.xlsx

Electronics BOM of the GKV1.

sheet - 21.61 kB - 08/29/2023 at 20:57

Download

Gen_Ai_Kbd_FULL.zip

Mechanical STEP Files of the complete assembly, including the housing.

x-zip-compressed - 9.53 MB - 08/29/2023 at 20:56

Download

Gen_Ai_Kbd_Altium.zip

Altium Design Files

x-zip-compressed - 799.44 kB - 08/29/2023 at 20:56

Download

Gen_Ai_Kbd_Schematic.pdf

Schematic PDF of the GKV1. Known errors are listed in the first page, to be updated for GKV2.

Adobe Portable Document Format - 6.10 MB - 08/29/2023 at 20:55

Preview
Download

  • 1 × STM32F429 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 1 × ESP32-WROOM-DA Co-Microcontroller, Bluetooth HID Gateway.
  • 1 × Nextion NX8048P050-011C 5 Inch LCD Screen with Capacitive Touch Sensor
  • 1 × Wiznet W5300 Network Controller, 10/100-base-T, TOE-SHIELD
  • 70 × Cherry MX MX1A-G1NA Brown Cherry MX Key Switches

View all 18 components

  • Deeper Dive: Hardware Feature Sets

    Pamungkas Sumasta10/10/2023 at 13:45 0 comments

    In this log I'm going to do deeper dive on the HW feature sets, components selection, interface and why it is there in the first place. You'll see that some of the HW design selection are either nice-to-have or must have. So in case you want to do some customization from the master design files, you can certainly do so with better background understanding. I'll start the explanation from the left hand side of the keyboard interface.

    So the left hand side as depicted on the picture above, there are essentially four note-worthy features. Starting on the top left corner, you can see a rocket-switch which you'll often see in fighter jet. I specifically selected that particular one with two steps actuation primarily to signify the importance of us as a human/user to provide a confirmation and agreement on the contents that is generated by a Generative AI model. If you can read on the PCB silkscreen there, I labelled it "Generative Interlock", so as the name implies, it is essentially acting as a physical HW switch/barrier between providing access to the Bluetooth HID controller (ESP32) or not. In the diagram as you've seen, the main processor in the case of Generative kAiboard is an STM32F429, it manages interface directly to the Wiznet W5300 network interface, and it relies on co-processor ESP32 to manage Bluetooth HID command to the user end devices. In summary, in this case when the generative interlock is open, there will be no signal transmitted between the main processor to the co-processor thus preventing unwanted automation to your end-device. Alternatively, when the contents generated by the AI as it is buffered on the 5.5" screen is acceptable for you, the generative interlock can be closed thus enabling the streaming of the generated contents to your end-device. 

    Furthermore, on the right hand side of the generative interlock, there is a small circular disk which is essentially the left vibration motor. On this version of Generative kAiboard, there are 2 vibration motors placed on each end of the keyboard as you shall see later. The vibration motors are controlled directly by the main co-processor by PWM / GPIO Signals. 

    Below both of the aforementioned parts, you can see the type counter, to be precise, the first 5 digits of the type counter out of the 10 digits. The first five are located on the right hand side as you shall see. Having 10 digits it then allows you to log how many types the user has click and use the generative kAiboard up to 9.99 Billions. So let see how far that'll go. To me the main reason is simply to keep track and see how many clicks I have registered with the keyboard before something goes wrong. The cherry MX key switches claims guarantee of up to 100 million actuation, so we'll see about that. Also the type counter interfaces via SPI, there is a dedicated shift register underneath each of the 7-segment display. So no need to manage fast refresh rate on the 7-segment display from the main controller, it is latched individually. 

    At last below the type counter, I placed a 2-axis joystick, with a clickable button built-in. This is essentially an analog joystick you can find in game console controller, either Playstation or Xbox. It requires 2 analog input pins and 1 GPIO to make use of all the features. In the current configuration the joystick is connected directly to the co-processor (ESP32) instead of the main controller. Main reason is that because I expect the usage of this to be mainly for HID related functions, e.g. mouse or play/pause. Of course, via the co-processor you can provide commands / info to the main controller as well. 

    Moving on it's the left-hand-side of the split keyboard. There are 35 keys on each side, with symmetrical design in mind that adds up to 70 keys total. I opted for cherry MX for this for obvious reasons. However this time around I do a hybrid between Cherry MX brown and Blue. The printable characters I mainly prescribe using the Cherry MX brown which...

    Read more »

  • Generative Mode: Educative

    Pamungkas Sumasta10/10/2023 at 12:16 0 comments

    One of the very nice feature of ChatGPT that I discovered recently is their ability to challenge you and ask you some questions. Turns out it is really cool! Of course, the factual information in the GPT LLM model is never 100% accurate, but certainly it gives you some fun and knowledge on certain topics you are interested in. Hence, I named it Educative mode. 

    In this mode, what you'll need to input is only the topic of the quiz you are interested in, and the Generative kAiboard will ask you 10 multiple choice questions consecutively. At the end of the the 10th question it will provide you with the grade. It's simple and really fun, at least for me personally, in particular when you are bored and want to test your knowledge on some topics you are familiar with or not. 

    Example of the screenshot below I asked the Generative kAiboard to generate quiz about Hackaday.

    Well well well, according to my / Wikipedia knowledge the founder of Hackaday in 2004 is Phillip Thoron, but somehow he is not listed as an option and ChatGPT thinks Dan Maloney is the correct answer :D

    And the response for a correct answer:

  • Generative Mode: Illustrative

    Pamungkas Sumasta10/10/2023 at 12:06 0 comments

    The fourth mode which has recently become my favorite is the illustrative mode. As you might have probably guess, it generates an image instead of texts, and of course it is using image-to-text model (DALL-E) under the hood and not the GPT. 

    Quite similar to the informative and creative mode, together with your original prompt, the Generative kAiboard may embeds information about you, real-time information and user statistic to better fine-tune the image generation outcome. My ultimate intention is to of course show it in real time on the 5.5" inch screen, but for now the generated image is displayed automatically on your laptop browser. From that point then you can easily save, edit etc. 

    An example as shown in the picture above, I asked Generative kAiboard to make an illustration of a white cat on top of a Hackaday Logo. Well can you guess how it ended up? See below.

    I don't know exactly what is written below the white cat there, looks like a "D6CK HACKAK" :) close enough to my standard. And below is the original image files if you want to safe it

  • Generative Mode: Suggestive

    Pamungkas Sumasta10/10/2023 at 11:59 0 comments

    The third mode I have prescribed on the other hand, it is called suggestive mode. As the name implies, it provides suggestion with the sentences as you type along. In essence it is becoming your companion as you type on your laptop and on the onboard 5.5" screen it directly provides you with some suggestions sentence in close to real time. 

    You can surely call it hybrid real-time option. So instead of making a complete paragraph first then ask ChatGPT to correct your words, this mode work hand-in-hand which I personally think can be very handy as I can minimize the mount of copy pasting of words etc. Think about it as having a collaborative friends which never runs out of ideas and suggestions.

    Here an example below where everything that I type on the PC, gets duplicated on the input text box on the lower part of the screen there. As soon as the sentence is complete, (detected a . and space), a suggestion is then provided automatically on the output text box as shown.

  • Generative Mode: Creative

    Pamungkas Sumasta10/10/2023 at 11:53 0 comments

    In complement to the informative mode, I specifically prescribe creative mode to be different. This is more of a creation mood where you expect the Generative kAiboard to generate some textual contents as much as possible tuned with your style. So this mode is not so much useful for asking simple real-time information, location etc. The contextual information that has been gathered and collected in passive / keyboard mode is tremendously valuable for this creative mode. As it essentially prompting/directing/commanding/nudging the ChatGPT to be creative but at the same time trying to imitate you.

    In connection with your original prompt/queries, the Generative kAiboard will embed several contextual wording directives and styling. The most obvious example of that is for instance the word selection, what are the most common words you typically use etc when you typing. Furthermore, that can also be some sort of directives e.g. do not use emojis, or do not use laughing words/sentences etc. The options are limitless here and I have not done exploring.

    Here's a comparison between asking ChatGPT directly via a web UI, or asking the Generative kAiboard to make a paragraph about Hackaday. 

    Answers from ChatGPT UI:

    Answers from the Generative kAiboard:

    Now, tell me which one you personally prefer? :)

  • Generative Mode: Informative

    Pamungkas Sumasta10/10/2023 at 11:45 0 comments

    Alternatively to the passive mode, the Generative mode is where the Generative kAiboard really shines. In this log, I'll detail the first part of it, which is the informative mode. 

    In this informative mode is essentially the mode where you can ask specific information. For example you want to know specific information about certain engineering definition, or a place or a person, this is the recommended mode to use. 

    You might then wonder, what is the different between asking some questions from ChatGPT portal directly and via the Generative kAiboard? The primary difference is the real-time and personalized information that is provided seamlessly.

    When you ask ChatGPT related to time, distance from your location, your occupations and other personal information for instance, they will not be able to answer. You have to explicitely provide those relevant information before it can provide you with a clear answer. 

    With the Generative kAiboard on the other hand, the query / prompt that you are sending to the ChatGPT server, is filtered locally and appended with relevant contextual information. For example if you ask question such as "when can I go home from work today?", the generative keyboard will provide additional relevant information to the ChatGPT client. In this particular question, the appended prompt will contain the information about the current time and date, your work details (how many hours you work per week), and what is the statistic of your week so far based on your usage of the keyboard daily. 

    Test Case Example Question: "When can I go home from work today?"

    Tested with ChatGPT Web UI:

    Asked via the Generative kAiboard:

    Cool huh?

  • Passive Mode: a Keyboard

    Pamungkas Sumasta10/10/2023 at 11:37 0 comments

    The primary and the foremost important feature being a Generative kAiboard is surely to be a keyboard, a standard input device. Generative kAiboard is no different. Upon powering up it is defaulted to be a keyboard with a split keyboard layout and connected via Bluetooth. Yep Bluetooth, so you can connect it easily not only to your PC but also to your phone or table wirelessly.

    Being in this passive mode, there is nothing particular that you have to do or enable, it works out of the box. Just take care about the key mapping whether it fits your taste or not. Under the hood however, if enabled, while you're typing it records some statistics with regards to the usage of your keyboard, both contextually or not contextually. Contextually means, it records and buffers your words temporarily and report some statistics on the most common words you typically used. When the word buffer is full, the raw message is then send to ChatGPT to request the summary of your words selections and key findings.

    This contextual information is then what is provided automatically "behind the screen" when you are asking ChatGPT to generate some contents, primarily in the creative mode. 

    In parallel to that, some non-contextual information is also reported/logged. Such as your typing speed, keycounts, how often you press backspace, your time usage of when you start and stop during the day etc. This ultimately aimed to provide adaptive information about you via your behaviour in using the keyboard while asking to ChatGPT, in particular in the informative mode. 

    For example with the information about when you start and stop using the keyboard in the office daily, you can ask chatGPT how many hours left for you to work for this week and under-the-hood the Generative kAiboard will then provide the relevant information. This is just one example, you can surely add your own customization and flavour on top of it of what information you'd like to share or not. 

    In essence, when you are in passive / keyboard mode, the Generative kAiboard seamlessly collect information about you as a user and it will automatically enhance your prompt when querying to ChatGPT in the generative mode.  

  • High Level Architecture Design

    Pamungkas Sumasta10/09/2023 at 21:40 0 comments

    Alright, talking about the high-level architectural design the Generative kAiboard's whole vibe is all about keeping things neat and comfy. It's got this cool split keyboard layout that makes the 5-inch screen in the middle the star of the show. The left and right-hand sections are angled just right, at like 15 degrees, so you can type for hours without hurting your wrists.

    Oh, and it's cleverly tucked all those extra peripherals around the edges, so you can reach them without messing up the keyboard's sleek look. Plus, they put the PoE (Power-over-Ethernet) thingy right placed in the middle at the bottom. It's genius because it makes all the cables go neatly under your desk, keeping your workspace tidy.

    So in essence, the Generative kAiboard is all about that perfect balance of style and function. 

    At the hardware level, this system rocks a trio of built-in processors, and each of them plays a role in making the keyboard a jack-of-all-trades. The main star of the show is the STM32F429, which acts as the keyboard's brain, running the whole operation. Then, there's the ESP32 co-processor, working alongside it to make sure you can connect wirelessly through Bluetooth to all sorts of gadgets.

    The third processor is all about handling the graphics, making sure everything looks smooth and sharp. And don't forget about the Ethernet controller W5300, it's the networking champ, making sure you stay connected fast and reliably.

    In a bit more detail, diagram below depicts the overall building blocks used inside the generative kAiboard. 

  • Enclosure Design

    Pamungkas Sumasta10/09/2023 at 19:50 0 comments

    Since the start, I've envisioned to have a translucent 3D printed back-housing in a single piece. Mainly for simplicity and the sturdiness of the whole built by providing all the support of the PCB on the top. The translucent requirement on the other hand is for aesthetics, I always like to be able to see, or peek the PCBs inside while also at the same time providing some sort of through-illumination. I've got a help of a colleague to design a straightforward housing and Siemens NX was used. You can find the master file as well as the exported STEP/STL in my GitHub under mechanical folder.  

    To hold the whole unit together, an SMT spacer was threaded hole from Wurth was used. I placed those SMT spacer around the corner and edges of the board and have the whole of the housing aligned. This way no nuts is required to clamp the housing and PCB together. 

    The length of the enclosure is slightly more than half a meter, so it was not that easy to print at home or find an affordable printing house. I had to turn to china, in particular JLPCB for their 3D printing service. It was quite affordable and fast, but the shipping cost is almost the same as the part itself. I opted to use SLA resin printing this time in particular the 8001 translucent material. There was a risk of warping due to the size so we had to increase the wall thickness by almost 2 mm, making it also a bit more expensive afterwards. 

    Overall, in the end I'm very happy with the outcome of the 3D printed enclosure. It works great, feels very sturdy and diffuse the light pretty well as well as you can see in the picture below!

  • The GUI, thanks to Nextion

    Pamungkas Sumasta10/09/2023 at 09:56 0 comments

    Another thing you might've notices right away is likely the large 5.5 inch LCD screen with capacitive touch screen in the center of the split keyboard section. This display is placed right at the center of the split keyboard is for nothing but to attract the users attention. The GUI therefore should be made as cool as possible without being too distractive. This time around I'm using the Nextion display, their best version the intelligent series. 

    Going with this option might cost a bit more, but let me tell you, it's been one of the smartest design choices I've ever made. First off, the software that comes with it, Nextion Editor, is seriously well done. It gives clear instructions and has a user-friendly interface that's pretty awesome. I used it a few years back, and I've got to say, the improvements they've made since then blew me away.

    Functionally, it's a game-changer. It takes a load off your resources, so you don't have to worry about separately powering an external display with your main processor. When it comes to putting together the graphical user interface (GUI) and getting everything up and running, it only took me 1-2 days. That's some serious efficiency right there. Below here's the screenshot of the powerful Nextion editor which I really do enjoy. The main important elements only require drag-and-drop, of course a bit of optional coding if you want to do some automation etc. You can embed not only pictures, but also audio, gif and even a video. The programming process is also extremely easy and works flawlessly through standard serial port. 

    So in connection with my previous log, once you possess the AI generated video, the subsequent steps become more straightforward. You only need to convert it with their video tool, import it and positioned it. That's it. Well of course, you can set the video behavior as well such as auto-play, volume etc. 

    What really gets me excited about this is the built-in debugger, which some folks call an emulator. It's a cool feature that lets you do debugging and testing stuff, even if you're working with your external MCU, and you don't even need a physical screen for it. You can simulate screen touch with a mouse click, simulate command all everything within this debugger. How awesome is that?

    You can use my .HMI files as a starting point as I uploaded here in Github. Surely first you'll need to download the Nextion editor from their website.


View all 13 project logs

  • 1
    Make up your mind

    The Choice is Yours

    Before delving into the process of constructing your Generative Kaiboard, it's essential to consider the approach that best aligns with your preferences and objectives. You have three distinct options to choose from in my opinion: 

    1. Full duplication.
    2. Custom modification.
    3. Full transformation.

    As the name suggests, the first option, full duplication, involves using all the design files provided, ordering the necessary components, and assembling the Generative Kaiboard. This approach is likely to demand the least effort upfront. However, it's essential to be aware of the associated factors, including costs and the possibility of minor adjustments needed in the design.

    The second option allows for custom modifications to the existing design, both in terms of PCB design files and the mechanical housing. For PCB design, you'll require an Altium Designer license and some familiarity with the tools, which, unfortunately, isn't entirely cost-free. However, reaching out to Altium might grant you a limited-time trial license. Their customer support is helpful in this regard. Similarly, for housing parts, you can make alterations to the current design, although it's presently created in Siemens NX, which isn't freely available. Nonetheless, you might be able to work with exported files such as STEP and STL. This option is preferable when you wish to refine the design, rectify minor errors, or add personalized elements like your name or logo.

    The third and final option is for those with the time, dedication, and willingness to thoroughly study the design, make substantial modifications, and execute them. One advantage here is that you don't necessarily need an Altium license or Siemens NX. You can recreate the schematic drawing in free CAD software like Kicad. It's possible that conversion tools are available to transition from Altium Designer files to Siemens NX. If you're proficient in Kicad, I'd love to hear from you. Opting for a full transformation not only allows for fine-tuning details but also opens the door to incorporating additional unique features that weren't part of the original GKV1 design.

    Ultimately, the choice is yours. In this guide, I'll primarily focus on providing build instructions for the duplication method. I'll highlight essential considerations, cost-saving tips, and other factors to be mindful of during this journey. Please keep in mind that duplication does come with its own set of implications, which we'll revisit in the next section below. 

    Best of luck!

  • 2
    Acknowledge the BOMs, Tools and Skills required

    The Bill-of-Materials

    I will say it straight away: duplicating this project is not cheap. It is unfortunately not for the penny-pincher who'd like to save some money by building it's own cool keyboard. You can probably get away with very decent keyboard by spending just a tenth of this project cost. However having said that, that does not mean you have to follow my guide 100%, there are certainly cost optimization strategy you can do. In any case you have to be aware of that. 

    As a baseline, I started quite from a scratch, I ordered most of the parts for this. Fortunately I had some generous free samples from Wurth Elektronik too which counts for 40% of Electronics BOM. Even with that it still costed me an upwards of 800 Euro as you can see from the preview below:

    As you might have guessed, certainly that cost does not 100% reflect the cost of 1 unit. Some components I purchased in a quantity e.g. the PCBs but some like the cherry mx key switches and the 3D printed housing I only purchased enough to built 1 unit. The list above is just a ballpark estimation. On the next step I'll go a bit deeper what you can do to optimize the cost by choosing alternatives etc.

    The Tools

    I don't really consider this project mandates special tools that you need to have. Apart from typical stuff you'll find on a electronics workbench e.g. Soldering iron with it's companions parts and hot air reflow gun. The need of microscope it is also dependent on your ability, but I've prescribed the board to mostly use 0603 parts and perhaps just a few 0402 so handling it with a naked bare eye should be doable for many people. 

    As the board prescribe the use of Nucleo board as well as W5300 TOE shield, you don;t necessarily need to worry about soldering fine pitch component yourself. Perhaps apart from Time-of-flight sensor where you'd need to use a hot air gun as the footprint is an LGA. 

    However, having said that, as majority of the SMT parts are mounted on the top, it is highly recommended that you use a bit more automatic reflow oven. Which means you need to order the stencil and have some affinity with manual screening of a PCB. Honestly myself I did a hybrid, I did both stencil screening and manual hand soldering, I'll detail that on the next step. 

    The Skills

    This project is not for complete beginners I must say upfront. You need to have some affinity with soldering or access to someone that can help you at least. Sure, I tried my best not to use component that is really difficult to manage e.g. BGA, but still soldering an SMT parts is often not as easy as it seems. Not only proper tools is needed but also some experience and some experience with debugging in case some things don't work. Alternatively to the extreme, you can perhaps also ask a fabrication house to do a turn-key assembly for you, such that you don't have to touch a soldering iron at all. This is likely gonna cost you some effort and cost upfront, perhaps some experience in dealing with PCB Assembly, but I guess that'd worth the investment. I'm aware PCBWAY and JLPCB already have that service for a while now, so something to consider.

  • 3
    Parts Selection and Ordering

    Parts Selection

    I would say in general there are four categories of parts that you need to manage where some are customizable ordering-wise while others are fixed. 

    1. The PCBs
    2. The Electronics BOM
    3. The Miscellaneous BOM
    4. The Housing

    The PCBs

    Honestly the PCB is the single part that likely gonna cost you the most. Mainly because the current board dimensions is a bit more than half-a-meter and it is a 4 layer board. The PCB were design without any specific requirements that is going to increase your PCB cost significantly, the hole size, minimum pitch etc should be easy enough for more PCB manufacturer to produce your board hence not increasing the total cost. In my case I ordered from JLPCB as it appeared to be the cheapest with reasonable lead-time. As you can see in the preview below, for 5 pcs it costed me about 86 Euro, all in including shipping etc, double that. 

    Furthermore, in my case I ordered the PCB in black which is surely not the cheapest option, you can safe some bucks by selecting a green solder mask for instance. Feel free also to benchmark another alternative supplier such as PCBWAY they might have a better deal too. On top of that the bulk of the cost was entirely for shipping and taxes which perhaps you can safe/avoid by choosing different delivery methods. 

    Another crucial thing that you should not forget is the stencil ordering, assuming that you are planning to assemble it semi-automatic with a reflow oven. In that case you need to include the stencil as well in the order as you can see above it only costed me 6 euro. HOWEVER, you have to take care that the stencil I ordered is a cropped version and only cover the top side, in particular the middle one. The main reason for me is simply the cost, especially the shipping cost too. 

    You know the PCB dimensions is a bit more than half a meter in length, that means if you want to order the stencil for that size, the stencil dimension and frame must be larger than that, which is acceptable. however from what I see if you want to ship the stencil with that dimensions it is going to cost you a lot of money especially with DHL. That's why as a plan B, I decided to crop the middle part of the PCB where majority of the SMT parts are located, ordered that small cut section, screen and reflow it afterwards the rest of the parts I solder it manually myself. 

    The Electronics BOM

    The next thing to manage is the ordering of the Electronics BOM, a.k.a the components that you'll need to solder on the PCB. Surely for some parts you can opt for an alternative e.g. the passive component, but others such as IC and sensor you might not be able to identify the alternative. I publish the complete EBOM both in this Hackaday page as well as in my Github BOM folder. By using the part number you can decide for yourself where to source the parts, and supplier benchmarking tools e.g. findchips or octopart will definitely help you there. In my .xlsx bom sheet you can also see there where I sourced the parts from at the time of building my GKV1. 

    As I said earlier, majority of EBOM parts are from Wurth Elektronik, they have an amazing web ordering and sampling system where you can easily order and or request sample. For example if you want to get a sample of the PoE Magjack that I use, you can add to cart for a sample here, explain the project, fill the form etc and if all good in a matter of days it should come to you. Apart from the world-leading quality of their components and their free sampling generosity, they also manage a component library for all their parts. In my case their Altium library really did help me a lot. Imagine if I have to build the component footprint etc all by myself in a matter of 1-2 weeks. 

    The Miscellaneous Parts

    On top of the Electronics BOM, there are also some parts that is not necessarily listed in the EBOM files but you will definitely need it. The parts I'm referring too are like the keycaps, the rocket-switch, thumb-cap for the joystick and also including the Nucleo board and LCD. You can leverage your free-will here on some parts e.g. the type of key-caps for your keyboard or the color of the thumb-cover on the joystick but some parts e.g. the Nucleo board and the LCD I suggest you better stick with what I've prescribed. Well unless you prefer to go to the more advance route. 

    Likewise, the list of the miscellaneous parts you should be able to find in this Hackaday page or on my Github. 

    The Housing

    Last but not least I reckon you'd also need a back-housing for your built. This is also the part where you can put out some customization if you will. In my case, I wanted to have it in one solid housing supporting the whole PCB on the top. Furthermore, I wanted it print it in a translucent color such that it can diffuse the light also from the side. Certainly there are plenty of 3D printing service you can use nowadays, in my case instead pf opting to print it locally, I decided to try out JLPCB 3D printing service. Not only it appears to be the cheaper option, but they also deliver it quite fast, within 2-3 days. More importantly in their specification they can print parts larger than 500mm and have it in a translucent. 

    For me it was a no brainer as I also ordered the PCB from them this time. Below is a snapshoot of my order details. It is certainly a personal preference a well whether you prefer to have it printed in other color, split the housing in 2 parts etc, the choice is yours. If you decided to make modification to the design just make sure you take into account the overall STEP file of the exported PCB design as well, because there are some critical clearance underneath and inside you have to watch-out. 

    Furthermore, in my case I had to increase the wall thickness by 1.8mm or so to minimize the risk of warp as my design is relatively large. Upon receiving the parts, i do still notice indeed minor warp, but it is not catastrophic so I was quite happy. 

View all 10 instructions

Enjoy this project?

Share

Discussions

nguyenthuongzl633 wrote 09/19/2023 at 12:19 point

This kind of adaptive hardware prompting can greatly enhance the usefulness and interactivity of AI-powered applications. https://www.myaarpmedicares.us/

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates