Datics AI - Ideeza

IdeezaWeb App

Industry: Electronics
Region: USA

TECHNOLOGIES

DjangoPython

SERCVICE USED

  • Web Development
  • UX/UI Design

Technology Stack

Introduction

12 years ago, we came up with the idea of building a great team with the goal of creating amazing digital products for startups and companies. Like every other company out there, we started as a small business but we have dedicated ourselves to create products and also care for each individual’s happiness at the same time. What made us Atolye15 is that we always try to keep the chemistry of the team alive, and eventually we grow.

More than twelve years and 200 projects later; we proudly say that we have made a significant impact on some of the best products on the market and in the startup ecosystem.

Challenge

The challenge was to design an AI engine that is capable of generating electronic PCB, software code, and mechanical design out of a speech or textual query.

Approach

The approach saw us divide this project into eight major modules each of which is further divided into processing units.

The NLP module takes speech/text query as input, applies normalization and passes it through the entity extraction portion of the module where it extracts all electronic components. The next step is to find useful parameters in queries, such as 3deg, 5min, 2sec etc. After getting all the required information, this module structures the input in code blocks. A core component of this module performs dialogue generation against user query. It is divided into two phases, phase one, RASA-NLP component and phase two, RASA-core component. 

In phase 1, with Data Augmentation, for chatbot building the first step is training data or labelling training data for that specific domain. Data related to electronics was needed and so data from NLTK, “Brown Corpus”, “Spacy”, “Gemsim” and “Google 300million” dataset was tried. The results were not according to our expectations and so another approach was taken, that is Data Augmentation, to point out the underlying problem. The problem was that queries for different electronic components were not given by any website. So new tools for generating examples were chosen and named as chatito. 

Data needs to be cleaned, normalized and structured in a suitable form. The prepared dataset, such as Spacy, NLTK etc were already normalized but chatito required 2 filters. In the first pass, all nosy examples were removed. After this filter it needed to set the ‘values’ and ‘entity’ tags.

Several techniques were used for detecting a list of electronics in the given query like “fasttext”, “LDA” etc. The results were not satisfactory, so “RASA” was selected as the optimal solution. RASA-NLP component was used to extract entities which were electronic components in our case. For example:

Input – “I would like to create a wireless video doorbell”
Output – “[(‘communication’, ‘Wifi’, 0), (‘function’, ‘video_capture’, 0), (‘sensor’, ‘push button’, 0)]

For Phase 2, we used the RASA-Core component for dialogue generation. This component uses the results provided by the NLP component and decides the answer for the particular question. For example:

Input – “Hi”
Output – “Hi! How are you?”

Outcome

Our tech solution helped entrepreneurs rapidly increase sales and establish a strong brand identity based on a structurally optimized and appealing product design with minimal time to market for newer products.

The next step after extracting all electronic components is combining all of them to form a cheap and stable circuit. In order to check the stability of a combination, we had to make sure that all the requirements, such as voltage/current needs, of each component were being fulfilled. After making sure that the required components were available in our database, we then prioritized the needs and checked if these were being met in their prioritized order. Additional components were added to meet further needs if required, fulfilling the higher priority needs first and established the stable combination with the least cost. 


The next step is placement. For this, Artificial Intelligence based techniques are used. The Learning Classifier System with Reinforcement Learning is utilized to place parts. LCS has various rules which help the agents learn in a multiagent environment. Various rules are implemented to meet all the constraints and then parts are placed at optimal positions on PCB.

 

After placement, we need to connect these components according to the given nets, called routing of PCB. We developed an automated routing methodology using path finding algorithms of Artificial Intelligence. Our approach gives the fully optimized routing for the given PCB in a few minutes depending on the dimensions of the PCB, such as size and resolution of the grid for any number of layers of the PCB. It takes a PCB layout and provides a complete and optimized routing.

 

At times, the complete circuit requires multiple PCBs or external batteries. These need to be placed inside the cover being generated. For this purpose, Bin Packing Algorithm is used which places multiple PCBs and batteries within the cover.

 

3D Routing module is responsible for connecting parts with wires in 3D space while catering to electronics, time and space constraints. Search algorithm with some additional modifications and constraints is employed to obtain short, natural looking routes which are ready to be deployed in real world scenarios. 

 

Designing the cover is an important part of circuit design. The manual cover’s design is only suitable for one specific case and cannot fit other PCB’s/circuits. To adjust that, we needed a strategy that could generate the cover on runtime based on user selection. We are currently halfway through research needed to achieve this after which we will be able to design the dimensions and data of the cover.

 

The Gerber/FirmWare module takes in optimal placements, routing and drilling information and churns out Gerber files for these. These files can then be sent out to PCB manufacturers to make PCBs. These files contain machine commands, translated from Python arrays, and may contain layers of data as per the user’s needs. All these files are stored in separate directories marked by timestamps and are then ready to be shipped out for manufacturing. 

 

At the end of the process, an apk is generated automatically which will control the user required product. For example, in the case of a drone, an apk will be generated that will control the drone. In case of a wireless video doorbell, the app will provide the video feed. In order to achieve this, different blocks are created. Each block controls sensor/communication and when we create a design, different blocks are connected and so consequently, the app is controlled from the smartphone. 

 

In order to address this problem, Kotlin programming language is being used to create modularized code snippets

 

Why Kotlin not Java?

 

Both languages are JVM based but Kotlin allows the creation of DSL (Domain Specific Language) easily with less of a boilerplate code. Code snippets are created with pure abstraction so that they can decouple easily with one another, much like puzzle pieces. A Python based APK generator script combines these snippets and builds an APK. 

Launch your product with us

Are you looking to start your own project?

Get Started

Explore More View All

DjangoPython

Ideeza

Generating electronic PCB, software code, mechanical design out of speech/textual query using AI Engine. 

Industry: Electronics
Region: USA
DjangoReact JSRedux

FTRV Central Point

Automate and manage social media updates across multiple social media accounts.

Industry: Digital Marketing
Region: USA
M1 Data and AnalyticsNode JSPostgresReact JS

Dealership Toolkit

Provide solutions in order to make data-driven decisions.

Industry: Recreational Vehicles
Region: USA

Testimonials

Braden Ericson |

Founder & CEO Sparrow marketing

Datics team was great to work with. They were very proactive and helped me define the requirements for the project and were able to navigate the pivots I threw at them during our development period. They built a database, APIs, and an ML model beyond expectations. The team is actively fixing bugs that are popping up as we test and are a fun team to have weekly syncs with.

Call Us:

Schedule a call with an expert

Email Us:

Let’s start discussing

Get in Touch