Close
0%
0%

Generative kAiboard

Beyond Typing: An Adaptive Hardware Prompter in 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

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' keyboard. You know, that thing you kinda take for granted, sitting on your work desk at the office or your home setup. The real gem is making this a sidekick instead of just another needy gadget shouting for your precious attention.

The Goal

Before we start getting all nerdy with the technical nitty-gritty, let me say few things about the goals. And I'm not just talking about the project goals from a tech perspective – I mean, those are important too. But what really takes the spotlight is the personal aim, the push, the reason why I jumped into this project in the first place – to me that's what holds the greatest significance....

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

  • New Features and Adaptive Prompting

    Pamungkas Sumasta09/12/2023 at 14:16 0 comments

    Since the time I've posted my initial video on Youtube, there are few new features I've added:

    1. Open-AI Stream feature. This allow the reply from chatGPT to be shown real-time instead of at once.
    2. NTP Clock. Enable real time clock pulling from NTP server. 
    3. New Clock UI.
    4. Finalize keyboard layout and functionalities.
    5. Improve Logic and animation features.
    6. Improve network interface and buffer robustness. 
    7. More importantly, I have started implementing the adaptive real-time hardware prompting.

    Adaptive Hardware Prompting

    Well if you still hasn't grasp the concept of what I meant by adaptive hardware prompting, I can give you an example below. Perhaps first, if you have chatGPT open, try asking, what time is it right now. Or where do I live or where do I work etc. I guarantee they cannot provide you with an answer, that is because the LLM simply does not have provide real-time information inherently. 

    In the example below, however, as you can see If I ask the prompt how long have I work in my current employment, it can provide me directly with a clear answer. So essentially what's happening under the hood are:

    1. User ask the prompt/query.
    2. The Generative kAiboard checks and validate the prompt. In this case it "understood" context about the time and work.
    3. The Generative kAiboard capture relevant information from it's local knowledge server about current time and info about my current occupation. 
    4. The generative kAiboard combine the original user prompt as in steps one together with information collected in step 3. 
    5. At last, the user prompt is transmitted to openAI and the appropriate reply is returned. 

    And like you've perhaps seen in the video, your answers can then transmitted directly to your computer as though you are typing yourself.

    Will keep you posted on more updates, I'm almost everyday making a commit update to my Github repo. So stay tuned. 

View project log

  • 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 8 instructions

Enjoy this project?

Share

Discussions

nguyenthuongzl633 wrote 3 days ago 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