WRIS-RSKS Series General-Purpose Thick-Film Resistors
General-purpose thick-film, anti-sulfur resistors designed for long-term performance and reliability
General-purpose thick-film, anti-sulfur resistors designed for long-term performance and reliability
InnoSwitch3-EP family of off-line CV/CC QR flyback switcher ICs now feature 900 V PowiGaN switches.
96 MHz Arm® Cortex®-M33 core + multiprotocol radio subsystem supporting Matter, Thread, Zigbee & BLE
E-waste or electronic waste, is one of the fastest-growing waste type globally, driven by rapid technological advancements and the increasing rate of electronics consumption. As smartphones, laptops, televisions and other electronic devices become obsolete at a faster pace, managing this growing e-waste has become a critical issue for both environmental sustainability and public health. This challenge, however, presents a significant business opportunity, particularly for startups. With the right technology and business models, startups can transform e-waste from a growing environmental hazard into a profitable venture while contributing to a circular economy.
E-waste encompasses waste electronic devices that are either outdated, broken or no longer useful. It includes items such as mobile phones, computers, televisions, refrigerators and other household or industrial electronics. The components of e-waste are often hazardous due to the presence of toxic chemicals like lead, mercury, cadmium and more. However, e-waste also contains valuable materials like gold, silver and copper, making it a significant source of recyclable materials.
The primary sources of e-waste are:
Households: Consumers frequently replace gadgets such as phones and laptops, generating a substantial volume of e-waste.
Corporations: Businesses regularly update their technology infrastructure, which includes computers, servers and other hardware, which leads to huge e-waste output.
Industries: Manufacturing and industrial sectors dispose of specialized equipment and machinery over time, which also leads to growth of e-waste.
Public Sector: Disposal of outdated public infrastructure and office equipment contributes to the growing e-waste problem.
Globally, more than 60 million metric tons of e-waste is generated annually, with this figure expected to increase as developing countries increase their consumption of electronic devices. Without proper disposal and recycling practices, much of this e-waste ends up in landfills, creating significant environmental and health risks.
Managing e-waste effectively requires a multi-step approach, which can be broken down into five key processes:
Step 1: Collection
E-waste is collected through a variety of channels, such as specialized recycling centers, retail take-back programs, door-to-door collection services by private companies and initiatives led by environmental organizations. This initial collection ensures that waste electronic devices are gathered for recycling, preventing them from being dumped irresponsibly.
Step 2: Segregation
Once collected, e-waste is sorted based on both device type and material composition. Devices are grouped by their function like computing (laptops, desktops), communication (smartphones, tablets) and household appliances (refrigerators, microwaves). Afterward, they are further categorized based on their material, with metal components (circuit boards, wires) separated from plastics and glass. This detailed segregation ensures that materials are prepared for efficient recycling.
Step 3: Dismantling
After segregation, e-waste is dismantled into individual parts. Recyclable materials such as metals (copper, aluminum), plastics and glass are separated for further treatment. Metals are melted down for reuse, plastics may be recycled or converted into energy and glass from screens is processed for specific uses. Toxic components, such as batteries or chemicals, are carefully isolated for safe handling.
Step 4: Recycling and Recovery
Precious metals like gold, silver, copper and palladium, often found in small amounts within circuit boards and connectors, are recovered using advanced recycling techniques like chemical extraction and smelting. These methods help to recover valuable materials, reducing the need for mining raw resources and protecting the environment.
Step 5: Safe Disposal
Any non-recyclable hazardous materials must be disposed of safely to prevent environmental contamination. Harmful chemicals such as mercury and lead are handled through controlled methods like precise burning or secure burial in specialized landfills, which have protective barriers to prevent leakage. These measures ensure that toxic elements do not harm the environment.
Effective e-waste management ensures valuable materials are recovered, reducing the need for raw resource extraction and contributing to environmental protection.
Setting up an e-waste management business requires significant technological and infrastructure investment. To efficiently recycle e-waste, the following technical and infrastructure components are essential:
Technology: Advanced recycling facilities are equipped with cutting-edge technology to dismantle and separate e-waste efficiently. Automated systems for sorting and extracting valuable materials have become essentials of modern recycling plants. Technologies such as shredders, magnetic separators and electrostatic systems play a key role in breaking down e-waste into reusable materials. Emerging technologies like robotics and artificial intelligence (AI) are being explored to make the recycling process more efficient.
Infrastructure: Beyond the technology, physical infrastructure like collection centers and processing plants are crucial. Depending on the scale of the business, startups need warehouses, transportation networks and dedicated recycling units. Adequate storage facilities are also necessary to handle and store toxic materials until they can be safely treated or disposed.
Skills and Workforce: A technically skilled workforce is vital in the e-waste management sector. Workers need training in dismantling electronic devices, operating recycling machinery and handling hazardous materials safely. Additionally, knowledge of environmental regulations and best practices for recycling is essential for maintaining industry standards.
The e-waste management sector holds immense business potential for startups, driven by global sustainability initiatives and the rising demand for recycled materials. There are several business models that have proven successful in the e-waste industry:
Recycling and Reselling: Startups can collect e-waste, extract valuable materials and resell these to manufacturers for use in new products. This model is profitable due to the high value of materials such as gold, copper and rare earth elements found in electronics.
Refurbishing and Reselling: Another practical business model involves refurbishing old electronics and selling them as low-cost alternatives to new devices. This not only reduces e-waste but also provides affordable electronics to consumers you cannot afford to buy costly electronical gadgets.
Subscription-Based E-Waste Collection: Startups can offer subscription services for businesses and households to regularly collect and responsibly dispose of their electronic waste. This creates a frequent revenue path for the business while ensuring consistent e-waste flow.
E-waste management is governed by a complex set of regulations that differ across countries, creating challenges for startups entering this sector. To operate successfully, businesses must navigate these laws to ensure compliance and avoid penalties. Global regulations, such as the Basel Convention, play a key role in managing the international movement of hazardous waste. This international treaty prevents developed nations from dumping toxic e-waste in developing countries, ensuring responsible global waste management.
Another significant regulation is the European Union’s WEEE (Waste Electrical and Electronic Equipment) Directive, which mandates strict rules for the collection, handling and recycling of electronic waste. It requires manufacturers to take responsibility for the end-of-life disposal of their products, promoting sustainable practices in electronics production.
Additionally, countries like Japan and South Korea have implemented Extended Producer Responsibility (EPR) policies, requiring manufacturers to manage e-waste recycling. These frameworks encourage global collaboration and innovation, driving sustainable waste management solutions across industries.
The global e-waste management sector is attracting significant attention from investors, governments and international organizations, recognizing its potential for both environmental protection and economic growth. Many governments, particularly in regions like Europe and the U.S., offer various financial incentives, such as subsidies, tax breaks and allowances, to encourage companies to engage in sustainable e-waste recycling practices. These incentives reduce operational costs for businesses and stimulate investment in green technologies.
Furthermore, international financial institutions like the World Bank and the International Finance Corporation (IFC) play a crucial role in supporting e-waste management initiatives globally. They provide donations, low-interest loans and funding to startups focusing on eco-friendly waste management. These financial aids are designed to promote sustainability, reduce environmental degradation and help developing nations to manage the growing e-waste crisis. This global support has significantly boosted the industry’s growth, allowing businesses to scale operations, invest in advanced recycling technologies and build sustainable business models.
India is experiencing rapid technological growth, which has significantly increased electronic consumption. As a result, India is now one of the largest producers of e-waste, generating over 2 million metric tons annually. This creates not only a serious environmental challenge but also a tremendous business opportunity for startups. The ever-growing amount of discarded electronics offers a unique chance for startups to develop sustainable and profitable solutions for managing and recycling e-waste. Joined with government support and the rising awareness of environmental protection, the e-waste management business in India is flourishing.
Government Regulations: The E-Waste (Management) Rules (introduced in 2016 and later updated) have provided a clear structure for handling e-waste. A major aspect of this regulation is the Extended Producer Responsibility (EPR) program, which mandates that producers, importers and manufacturers ensure their products are collected and recycled at the end of their lifecycle.
Business Opportunity: Startups can tap into this sector by offering services like e-waste collection, recycling and safe disposal. These services align with government policies, allowing startups to establish themselves with a clear regulatory framework in place.
Government Support: Various financial incentives, tax benefits and grants are provided by the Indian government to encourage the growth of the e-waste sector. Programs like the Swachh Bharat Mission and Digital India have indirectly supported e-waste management efforts, emphasizing the importance of cleanliness and digitalization.
Sustainability Focus: The growing need for sustainable solutions has driven the demand for environmentally responsible practices. With e-waste containing valuable materials like gold, silver and copper, recycling becomes not only necessary but also a profitable venture.
These key factors - government initiatives, rising environmental awareness and the increasing volume of discarded electronics makes the e-waste management business a profitable and sustainable opportunity for Indian startups.
E-Waste Recycling Company | Annual Revenue |
---|---|
Attero Recycling | $126.1 M |
Namo eWaste Management | $15.4 M |
E-Parisaraa | $73.3 M |
Cerebra Integrated Technologies Ltd | $6.2 M |
Karo Sambhav | $5 M |
Alfa Trading Co | <$5 M |
Eco Recycling Ltd (Ecoreco) | <$5 M |
Recfly Recyclers | <$5 M |
Recycling Villa | <$5 M |
Threco Recycling LLP | <$5 M |
Attero Recycling, based in Noida, is one of India's top e-waste recyclers known for its advanced technology and high recovery rates. Namo eWaste Management, located in New Delhi, offers comprehensive e-waste solutions and is a key player in sustainable waste management. E-Parisaraa, operating in Bengaluru, is a pioneer in eco-friendly e-waste recycling with government authorization. Cerebra Integrated Technologies, located in Bengaluru, is a publicly listed company that provides innovative recycling solutions with one of the largest facilities in India.
Karo Sambhav, with operations across India, collaborates with various stakeholders to design and implement circular economy solutions. Alfa Trading Co, based in Mumbai, specializes in ferrous and non-ferrous metal recycling and offers weigh-and-pay services for scrap removal.
Eco Recycling Ltd (Ecoreco), located in Mumbai, was the first Indian e-waste company listed on BSE and offers end-to-end recycling services. Recfly Recyclers, also in Mumbai, aims to simplify e-waste management with its government-authorized services. Recycling Villa, operating in India and UAE, provides comprehensive recycling services with best-in-class technology to handle WEEE waste safely. Threco Recycling LLP, based in Maharashtra, manages e-waste recycling with a focus on eco-friendly solutions, serving corporates and educational institutions across India with its state-of-the-art facilities.
Today we are looking at one of the affordable frequency generator modules, that has ICL8038 as its heart. Surprisingly it is capable of generating 3 different types of waves which are Square, Sine, and Triangle. There is a lot about this module that needs to be discussed, so without further ado, let us jump into the explanation of the ICL8083 Module.
The ICL8038 is a simple and versatile waveform generator IC that can produce sine, square, and triangle waves with just a few external components. It’s great for generating signals in various applications, with a frequency range from 0.001Hz to 300kHz. You can easily adjust the frequency using resistors and capacitors, and even control frequency modulation with an external voltage. It's built to perform reliably across different temperatures and voltage ranges, making it a practical choice for signal generation. The image below shows the clear image of the ICL8038 Module.
Low frequency drift with temperature: 250 ppm/°C
Low distortion (sine wave output): 1%
High linearity (triangle wave output): 0.1%
Frequency range: 0.001Hz to 300kHz
Adjustable duty cycle: 2% to 98%
Supports high-level outputs from TTL to 28V
Outputs sine, square, and triangle waves simultaneously
Below, you can see the general specifications of the ICL8038 module.
Parameter | Symbol | Limits | Unit | ||
Min | Typical | Max | |||
Module Supply Voltage | Vss | 10 | 12 | 30 | V |
Module Current | Is | - | 12 | 20 | mA |
Output Frequency | Fo | 0.001 | 10 - 300K | 480K | Hz |
Duty Cycle | - | 3 | - | 90 | % |
Operating Temperature | To | -50 | - | 150 | °C |
Storing Temperature | Ts | -65 | - | 150 | °C |
The table above is for beginners. If you are looking for more advanced details, refer to the official ICL8038 Datasheet.
The most important factor here is the input voltage. I recommend using a constant input voltage if you expect a consistent waveform, as the output waveform changes its properties such as frequency and amplitude, whenever the input voltage fluctuates.
To be precise, the data sheet itself states the maximum frequency of 300 kHz but this module can pump up to 480 kHz which under testing produces unstable frequency with lower amplitude than regular.
Let's take a deeper look at the hardware itself. Given its complexity, we will break down the details into multiple subtopics.
We'll begin with the pinouts.
In the ICL8038 module, the pinouts are straightforward. You need to power it, and the desired waveform of your chosen configuration can be obtained from the output. Below, you can see the pinout image and the table that describes the pinouts of the ICL8038 module.
Pin No | Pin Name | Type | Description |
1 | VCC | Power | Module Supply Voltage |
2 | GND | Power | Ground Connection Pin |
3 | AG | Analog Output | The output pin that's best suited for receiving the sine and triangle waves. |
4 | G | Power | Ground Connection Pin |
5 | DC | Digital Output | The output pin that's best suited for receiving the Square waves. |
The supported input voltage range is approximately 10 to 30V maximum. However, 30V is not recommended as it will eventually increase the operating temperature. An optimum of 12V is suggested for better operation.
The output can be drawn in two forms: one as a pure analog wave and the other as a DC-biased voltage. Each has its unique advantage. Analog output is best suited for sine wave output, while DC output is best suited for triangle and square wave outputs.
Next, we will continue with the configurations.
Typically, there are two configurations available in the ICL8038 module: frequency range selection and waveform type selection. The image below shows the exact shunt jumper positions that need to be adjusted to select the correct configuration, along with a small table describing the available configurations.
Part No | Part Name | Description |
1 | 5 way - Shunt Jumper | For Configuring Frequency Range |
2 | 3 way - Shunt Jumper | Configuring Output Wave Type |
One thing to remember is that selecting the correct frequency range is important to achieve the desired output. Ideally, try to position the desired frequency in the middle of the range to allow smooth adjustments and ensure a stable output. For example, if you need 100Hz, a range of 10Hz to 450 Hz is suitable. If you need 100kHz, a range of 6kHz to 120kHz is recommended.
Finally let's look at the controls available to tune the wave form.
This module has all the major tuning options, allowing us to easily modify the signal’s waveform. Below, you can see the part-marking image of all the components that assist in tuning the signal, along with a table representing each control option and its scope of operation.
Part No | Part Type | Controllable Waveform | Description |
1 | Trimmer Potentiometer | All | Duty Cycle Adjustment |
2 | All | Frequency Adjustment | |
3 | Square Wave | Linear Regulation | |
4 | All | Output Amplitude Adjustment | |
5 | Sine Wave | Linear Adjustment |
Here is some information I would like to add,
Duty cycle adjustment, frequency adjustment, and amplitude adjustment are common for all types of waveforms. However, linear regulation or adjustment is an additional feature for square and sine waves.
Except for amplitude adjustment, every other control has some influence on the signal's frequency. So, be cautious when setting the correct frequency for your application.
Finally, here is the schematic, which is essential for understanding, recreating, or modifying the ICL8038 module. Below is the complete schematic diagram of the module.
Starting with the Power Section, the input voltage is passed directly to the circuit without any regulation. Before reaching the circuit, the voltage goes through two filter capacitors to prevent surges. Additionally, there's a power indicator LED near the input.
You can also adjust the frequency of the output waveform by altering the input voltage at the FM Sweep Pin of the ICL8038. This changes the charge and discharge timing of the capacitor, affecting the output frequency.
There are two separate circuits to adjust the waveform: one for sine wave linearity and another for duty cycle adjustment. Specifically, you use the R13 potentiometer to fine-tune the linearity of the sine wave and the R12 potentiometer to adjust the duty cycle of all waveforms.
Finally, we have the Output Section. The module generates three waveforms simultaneously (sine, square, and triangle). You can select the desired waveform using a shunt jumper(P2). The selected waveform is amplified by a general-purpose NPN transistor (Q1). The amplitude can also be adjusted using the R14 potentiometer. Additionally, the R15 potentiometer, connected to the base, is used to adjust the linearity of the square wave that doesn't affect other waveforms..
For the outputs, the module provides two options—AC and DC. Typically, DC output is preferred for square and triangle waveforms, while AC output is more suitable for sine waveforms. You can choose the appropriate output based on the selected waveform and your specific needs.
Next Let's see about the Controlling and its Relative Output.
Here, I will show all the configuration and tuning options along with the output recorded from the oscilloscope. As we know, there are three different waveforms, and among these, there are four different controls, except for the triangle waveform, which has three controls. Starting with the sine waveform.
Remember: Every GIF has two signals, one in yellow and another in blue. The yellow signal is the DC output, while the blue signal is the analog output. All footage is taken while providing 12V to the ICL8083 module. The GIFs are recorded while rotating the respective potentiometer.
Below is the waveform captured while adjusting the amplitude trimmer potentiometer. As you can see, we get an approximate output range of 320 mV to 5.12 V with an input voltage of 12 V. Although the DC output (yellow wave) appears similar to the AC wave, the key difference is that the analog output has a proper offset over the signal period, while the DC output is most likely a true DC output.
Therefore, it is recommended to use the analog output for the sine wave.
It is generally observed that adjusting the potentiometer changes the frequency within the selected range. However, if you turn the potentiometer to either end, the output will be null. It is better to keep the potentiometer in the middle position. Additionally, the frequency is not stable at the ends of the potentiometer's range.
There is generally no need for duty cycle adjustment in a sine wave. However, here is what happens when you adjust the duty cycle while in sine wave configuration.
Ensure that the duty cycle is set to approximately 50% to maintain a proper sine wave.
In the sine wave configuration, adjusting the linearity allows you to modify the timing between the positive and negative cycles.
In most cases, it should be kept close to 50%. Only under special conditions would you need to adjust the linearity to either end.
Now we switched to the triangle wave form output. Here Amplitude adjustment is as usual. And similar ranges of voltage like sine wave has observed.
In the GIF above, you can clearly see that the DC output (yellow wave) provides the best triangle waveform. Therefore, it is best to use the digital bias output for the triangle wave.
As with the sine wave, adjusting the frequency of the triangle wave produces similar results.
Also, remember to avoid tweaking the ends of the potentiometer, as the output will be null at those extremes.
An interesting observation is that while adjusting the duty cycle in the triangle wave configuration, you can obtain two additional waveforms: the positive ramp and negative ramp.
In the GIF above, you can see three types of waveforms, the sawtooth negative ramp, the triangle wave, and the sawtooth positive ramp.
In the square wave configuration, the DC output (yellow wave) provides a more appropriate square waveform. Therefore, it is suitable to choose the DC output for the square wave.
Regarding the output voltage range, we successfully achieved 320 mV to 7.6 V, which is slightly higher than the sine wave. As usual, a 12V input voltage is given to the module.
Similar to the other waveforms, the result is the same when adjusting the frequency of the signal.
Here, I have a slight disappointment because, as shown Below GIF video, the output signal does not cover the duty cycle range specified in the datasheet of the ICL8038 IC. which is 2% to 98%.
So, some fine-tuning of the circuit might be necessary.
While adjusting the linearity of the square wave signal, we observe that it only affects the amplitude of the signal. The purpose of this adjustment is unclear, as we already have a separate potentiometer for adjusting the amplitude.
Due to its ability to generate multiple types of waveforms, there are a variety of applications. Let's explore a few,
Signal Generation
Used as a function generator to create sine, square, triangle, sawtooth, and pulse waveforms for testing and troubleshooting circuits.
Modulation System
Helps generate carrier signals for Amplitude Modulation (AM) and Frequency Modulation (FM) systems. It is also useful for testing communication circuits.
Audio Testing
Useful for generating audio signals to test speakers, amplifiers, and audio processing circuits.
Oscillator Circuits
Acts as a tunable oscillator in electronic circuits that require a variable frequency source.
Waveform Analysis
Assists in simulating and analyzing different types of waveforms in research, teaching, and laboratory setups.
Pulse Width Modulation (PWM)
With adjustable duty cycles, it can be used in applications requiring PWM control, such as motor control or dimming LEDs.
Overview of India's Semiconductor Industry: India is on a transformative path to become a important player in the global semiconductor market. As the world’s fifth-largest economy, India is pushing towards self-reliance in manufacturing, especially in the semiconductor sector. With an ambitious vision set by Prime Minister Narendra Modi, the country aims to grow its electronics sector from a current valuation of $155 billion to a stunning $500 billion by 2030. This vision underscores the importance of establishing semiconductor plants in India to produce semiconductor devices and meet domestic and global demand.
Importance of Semiconductor Plants: Semiconductor plants are essential for producing the chips that power everything from laptops and smartphones to advanced machinery and electric vehicles. Given the increasing demand for technology in daily life and various industries, establishing plants for semiconductor manufacturing in India is vital. These plants not only strengthen domestic production, but they also reduce reliance on imports and contribute to economic growth and job creation.
Background of Semiconductor Manufacturing in India: The semiconductor manufacturing journey in India has been relatively emerging. The country has primarily relied on imports for its semiconductor needs, with a significant percentage of chips sourced from established players like China and Taiwan. Despite this, India's landscape is changing and the government is focused on developing a strong semiconductor ecosystem to meet both domestic and international demands.
Current Market Size and Growth: As of 2023, the Indian semiconductor market value is approximately $34.3 billion which is projected to grow to $100.2 billion by 2032 as per the expert analysis. This growth reflects a compound annual growth rate (CAGR) of around 20.1%. Such expansion indicates an increasing reliance on semiconductors across various sectors, particularly with the rise of electric vehicles, IoT devices and advanced communication technologies.
Government Policies: The Indian government has recognized the strategic importance of semiconductors and has rolled out various initiatives to boost domestic manufacturing. Policies such as the "Development of Semiconductors and Display Manufacturing Ecosystems in India" aim to provide the necessary structure and incentives for semiconductor plants to thrive. The manufacturing experts have highlighted the benefits of the India's new schemes and policies for the electronics industry in a recent interview with industry specialists. This initiative aims to make India as a universal electronics hub, with an allocation of Rs. 2,30,000 crore (approximately USD 30 billion). It supports semiconductor plants in India including display fabs, silicon fabs and semiconductor packaging, highlighting trusted sources for national security. Additionally, the program includes a design-linked incentive scheme to encourage startups, creating skilled job opportunities and enhancing India's integration into the global value chain.
Investment Strategies and Funding Initiatives: The Indian government is heavily investing in the semiconductor industry to strengthen domestic manufacturing. As part of its strategy, financial incentives have been introduced, covering up to 50% of plan costs for companies that are setting up semiconductor plants in India. This initiative is designed to attract global tech companies and encourage local manufacturing. The Union Cabinet has approved the establishment of three new semiconductor plants, which are expected to create 20,000 job opportunities directly. Additionally, these projects could generate indirect employment opportunities for up to 60,000 people, benefiting a broad range of related industries.
Collaborative Efforts with Other Countries: India is also building partnerships with various countries to boost its semiconductor manufacturing skills. Working together with nations like the Taiwan and U.S. is essential to learn how to create advanced semiconductor plants and for gaining the new technology. For instance, the Micron Technology, American chipmaker is planning to introduce its first semiconductor chip plant in India by 2025. This highlights how important it is to have international teamwork in this field.
Moreover, India is keen on learning from established semiconductor hubs. Collaborations may involve sharing knowledge, training programs and joint research initiatives that can lead to innovation. The Indian government is actively seeking to attract global players to invest in these projects, which will not only enhance technical capabilities but also create job opportunities for the nation’s workforce. Overall, these efforts are crucial for India to position itself as a competitive player in the global semiconductor landscape.
With government-approved status, the following are the top listed semiconductor manufacturing companies in India and overseas that are currently developing new plants to expand their production capabilities, with several plants under construction expected to begin production by the end of 2024 and the beginning of 2025.
Tata Electronics and Powerchip Semiconductor Manufacturing Corp (PSMC) - Dholera, Gujarat
Tata Electronics is partnering with Taiwan’s Powerchip Semiconductor to build India’s first large-scale semiconductor fab in Dholera. With an investment of ₹9,100 billion (around US$109 billion), the plant will focus on producing high-performance computing and power management chips. The facility aims to produce 50,000 wafers monthly to meet the demand in sectors like electric vehicles and telecommunications.
Tata Semiconductor Assembly and Test Pvt Ltd (TSAT) - Morigaon, Assam
In Morigaon, Tata Semiconductor Assembly and Test Pvt Ltd (TSAT) is establishing an advanced packaging facility. With an investment of ₹2,700 million (around US$326 million), this ATMP unit will cater to industries such as automotive, consumer electronics and telecommunications, helping to reduce India’s reliance on imported semiconductor components.
CG Power and Renesas Electronics Corporation - Sanand, Gujarat
In Sanand, Gujarat, CG Power is collaborating with Japan’s Renesas Electronics and Thailand’s Stars Microelectronics to set up another ATMP unit. This ₹760 million (about US$91 million) project will focus on producing specialized chips for sectors like consumer electronics and automotive, with a daily capacity of 15 million chips, strengthening India's semiconductor capabilities.
Micron Technology - Sanand, Gujarat
Micron Technology is building a semiconductor unit in Sanand, Gujarat, which is advancing quickly. The facility is set to produce memory and storage chips starting in 2025. This project, costing $2.75 billion, is backed by $825 million from Micron and additional funding from the government. The focus will be on creating products mainly for export, helping to strengthen India’s position in the global semiconductor market.
Kaynes Semicon - Sanand, Gujarat
Kaynes Semicon is developing an OSAT (Outsourced Semiconductor Assembly and Test) unit with a ₹3,307 crore (US$400 million) investment. Partnering with global firms like LightSpeed Photonics and AOI Electronics, this facility aims to produce 1 billion chips annually within five years, with a strong focus on power electronics and industrial applications.
Suchi Semicon - Surat, Gujarat
Suchi Semicon is set to commence production at its advanced OSAT facility in Surat by November 2024. With an investment of ₹3,000 crore, this hi-tech plant features Class 10k and 100k cleanrooms and aims to create 1,200 jobs while focusing on cutting-edge semiconductor assembly and testing technologies to support various industries. In a recent interview with Suchi Semicon's Managing Director, Mr. Ashok Mehta, he shared his vision for boosting India’s semiconductor design capabilities and highlighted the important role the company aims to play in this process.
Foxconn-HCL Joint Venture (Pending Approval)
This proposed OSAT unit by Foxconn and HCL Group is currently awaiting final approval. The facility aims to utilize Foxconn's expertise in electronics manufacturing.
ASIP and Korea’s APACT (Pending Approval)
A joint venture between ASIP Technologies and Korea’s APACT is also pending approval for an OSAT facility in Sanand. The focus of this plant will be on system-in-package (SiP) technologies.
Tarq Semiconductors (Pending Approval)
Tarq Semiconductors, a company owned by the Hiranandani Group, is seeking approval for an ATMP facility and a compound semiconductor unit. This project is intended to enhance India's capabilities in advanced packaging and compound semiconductor production.
India's goal to become a leader in semiconductor manufacturing comes among strong competition from global giants like Taiwan, China, South Korea, the U.S. and Japan. Taiwan dominates the market with around 44% of the global share, followed by China at 28%. These countries have well-established semiconductor industries with decades of experience. To compete effectively, India must rapidly develop its manufacturing capabilities while learning from the successful strategies and technologies of these major players. Collaborations, technological advancements and government support will be key for India to find a significant role in the global semiconductor industry.
International Collaborations: India's strategy includes building international collaborations to enhance its semiconductor manufacturing capabilities. The ongoing partnership with Taiwanese companies like PSMC and collaborations with U.S. firms reflect the need for India to leverage global expertise and technology.
U.S. and India Partnerships: The U.S. has expressed strong interest in partnering with India to expand its semiconductor sources and reduce dependence on Taiwan and China. Recently, the U.S. Department of State announced a partnership with the India Semiconductor Mission to improve the global semiconductor value chain. This collaboration is expected to strengthen both countries positions in the semiconductor landscape, especially in ongoing geopolitical risks.
Job Opportunities: The establishment of semiconductor plants in India is expected to create a large number of jobs across various sectors. By 2026, it's estimated that over 300,000 job opportunities will be available, covering roles such as engineers, testers, software developers and operational staff. These jobs will not only support semiconductor production but also open up employment in connected fields, helping local talent grow in technical and managerial positions. This flow in job creation is vital to utilizing India’s young workforce, driving both economic growth and skill development.
Positive Effects on Related Industries: The growth of the semiconductor industry will positively impact other sectors like automotive, electronics and telecommunications. As semiconductor manufacturing expands, these industries will see increased demand for components and new technologies, leading to innovations in their products and services. Additionally, companies working in research and development (R&D) will be able to explore advanced technologies, creating more opportunities for investment and collaboration. The overall result will be a boost to multiple industries as they adopt cutting-edge technologies, enhancing India’s technological part.
Economic Growth: Constructing of semiconductor manufacturing plants in India will also contribute to strengthening the country's economy. By increasing its manufacturing capacity, India can focus on producing components for export, which will integrate the nation more deeply into global supply chains. This effort is part of India’s broader plan to increase its share in the global technology market. As semiconductor manufacturing grows, it will lead to more investment, higher productivity and economic growth, helping India become a hub for advanced manufacturing on the global phase.
Market Forecasting: India's semiconductor industry is projected to grow rapidly over the next decade. From $34.3 billion in 2023, it is expected to reach $100.2 billion by 2032, driven by demand from sectors such as electronics, automotive and telecommunications. Experts of India highlight the importance of a resilient supply chain to support this growth, particularly in strengthening the electronics industry for global competitiveness. Initiatives like “Make in India” and “Digital India” are boosting this growth by encouraging domestic production and innovation. As India's digital economy expands, the demand for semiconductor products will increase, particularly in advanced technologies like AI, IoT and 5G, positioning the country for substantial market potential in the global semiconductor landscape.
Challenges: Despite the promising outlook, India faces several challenges in its semiconductor journey. Building the necessary infrastructure, acquiring advanced technology, and attracting foreign investments are key hurdles. India’s semiconductor industry is in its early stages, and establishing a strong manufacturing base requires significant capital, expertise and time. Furthermore, global competition from countries like Taiwan and China, which dominate the semiconductor space, presents an additional challenge. To succeed, India must continue to invest in its semiconductor ecosystem, improve its technological capabilities and create a favorable business environment for both local and foreign players.
For India to successfully position itself as a global semiconductor hub, attracting more foreign investments will be essential to finance the capital-heavy semiconductor fabs. The country also needs to enhance its technological capabilities to keep pace with established global leaders. Improving the business environment is another crucial step, including simplifying regulations, offering incentives and promoting innovation. These initiatives will not only assist growth but also ensure that India becomes a competitive player in the global semiconductor landscape, driving innovation and economic development in the coming years.
Key Findings: India is making significant strides toward becoming a leading player in the semiconductor industry, driven by government initiatives, international collaborations and the establishment of key semiconductor plants. With ambitious goals for growth and development, the country's semiconductor landscape is set for a transformation.
Final Thoughts: The increase in chip manufacturing companies in India presents a unique opportunity for the nation to enhance its technological capabilities, create job opportunities and contribute to economic growth. By leveraging its strengths and addressing existing challenges, India can strengthen its position in the global semiconductor value chain and pave the way for a brighter future in technology.
In today's digital era, power is essential for operating our technological infrastructure. Whether through AC or DC electricity, it sustains vital functions across homes, businesses, hospitals, educational institutions, and industrial manufacturing, ensuring seamless operation for all. Without power, technology as we know it ceases to operate, so securing reliable power sources is imperative for sustaining our progress and fostering innovation.
While all these power uses are essential, some are more critical than others. Certain business-critical applications demand the most reliable power sources. When it comes to the need for high-performance power supplies, the XP Power HPF3K0 AC-DC Power Supplies stand out. These power supplies are integral to demanding applications like medical imaging, semiconductor manufacturing, and advanced industrial equipment, where extreme precision, reliability, safety, and efficiency are paramount.
In this week’s New Tech Tuesday, we'll explore the features and benefits of the XP Power HPF3K0 series and why it's ideal for these advanced applications.
The XP Power HPF3K0 AC-DC Power Supplies series is packed with cutting-edge features that make it a top contender in the power supply market. The HPF3K0 series is designed to meet various high-tech industries' stringent and business-critical needs. The highly flexible, digitally controlled HPF3K0 series offers up to 3kW of power density from four variants with nominal single output voltages of 24, 36, 48, and 60VDC. Moreover, for applications requiring more power, up to five power supply units wired in parallel via a single wire bus may current share, providing up to 15kW of highly flexible power (Figure 1).
Figure 1: Up to five power supply units can be paralleled simultaneously with current share accuracy ±3 percent of a single unit maximum current rating. (Source XP Power)
At the core of this versatile power solution lies a digital signal processing “engine” equipped with advanced control and monitoring capabilities. This enables dynamic adjustment of power configurations and performance, featuring constant current and constant voltage operation, variable overload characteristics, and alarm functions.
The healthcare manufacturing sector requires stringent safety certifications. XP Power’s HPF3K0 power supply solutions meet these high standards to ensure patient safety and well-being, making them the preferred choice for precise and reliable power supply in medical imaging systems.
Medical imaging equipment, such as magnetic resonance imaging (MRI) and computed tomography (CT) scanners, demands precise power delivery to function accurately. The HPF3K0's stable output voltage ensures that imaging devices operate smoothly, providing clear and accurate results. Consistent power is crucial in medical diagnostics to avoid artifacts or errors in imaging, which can lead to misdiagnosis or the need for repeat scans.
The HPF3K0 series meets IEC60601-1 Ed. 3 standards with 2×MOPP (Means of Patient Protection) and is approved to EN55011/EN55032 for EMC Class B (conducted) and Class A (radiated), and EN61000-4-x for immunity. It also holds ITE IEC62368-1 Ed. 2 approval.
Semiconductor manufacturing is another industry where the HPF3K0 series shines. Its robust design and high efficiency make it perfect for powering complex semiconductor equipment and fabrication processes.
Semiconductor manufacturing involves processes that require stable and precise power. Power variation can lead to defects in semiconductor wafers, which can be costly and time-consuming. The HPF3K0 features the programmable constant current and constant voltage needed for equipment used in delicate semiconductor manufacturing processes, ensuring high-quality production (Figure 2).
Figure 2: Semiconductor equipment manufacturers rely on stable process power to ensure precision, repeatability, and reliability in their equipment, thereby minimizing wafer defects and enhancing yield. (Source: xiaoliangge/stock.adobe.com)
The HPF3K0's user-defined digital controls and alarms help reduce downtime and improve overall productivity in semiconductor manufacturing plants. Its high efficiency contributes to lower energy costs and reduces environmental impact, aligning with the industry's goals for sustainable manufacturing.
XP Power's HPF3K0 AC-DC Power Supplies series combines digital control and configurable functionality in a compact, high-efficiency, and robust design, perfect for demanding business-critical applications. Its digital architecture, scalability, high power density, and comprehensive medical safety approvals highlight its exceptional features, making it an ideal choice for medical, semiconductor manufacturing, and advanced industrial equipment applications.
Original Source: Mouser
Rudy is a member of the Technical Content Marketing team at Mouser Electronics, bringing 35+ years of expertise in advanced electromechanical systems, robotics, pneumatics, vacuum systems, high voltage, semiconductor manufacturing, military hardware, and project management. As a technology subject matter expert, Rudy supports global marketing efforts through his extensive product knowledge and by creating and editing technical content for Mouser's website. Rudy has authored technical articles appearing in engineering websites and holds a BS in Technical Management and an MBA with a concentration in Project Management. Prior to Mouser, Rudy worked for National Semiconductor and Texas Instruments.
Smart farming is revolutionizing the farming industry by incorporating technology into standard practices. Mobitech Wireless Solutions located in Tamil Nadu is leading this transformation by offering solutions that improve productivity and sustainability. In this article will delve into how Mobitech is reshaping the landscape of smart farming with its advanced products and technologies.
Maixduino Development kit and learned how to use it with the Arduino IDE. In this article, we will learn how to use Micropython in the Maixduino development kit. First, we will learn how to flash the Micropython firmware to the Maixduino and then how to set up Sipeed’s Maixpy IDE and use AI and Machine Learning with the board.
In a previous article, we looked into theMaixPy is a port of Micropython specifically for the K210 SoC. It not only supports generic MCU functions but also integrates hardware-accelerated AI machine vision and microphone array-related algorithms. Keep in mind that the Maixduino supports the MaixPy V1, but there is another version of MaixPy called MaixPy V4 which is for the newest Sipeed product called MaixCam and doesn’t support Maixduino. The main benefit of using MicroPython is that it is much easier and faster to do development. So let’s start with the basics and learn how to prepare the Maixduino board to use with MaixPy.
As we know the Maixduino features two SoCs onboard a K210 AI SoC and an ESP32-Wroom Module. Since both of these doesn’t have any native USB support, the manufacturers used a USB to UART bridge for communication and firmware updates. Since we need two separate UARTs for the SoC, Sipeed chose a custom solution that uses a CH552 MCU with dual serial firmware. By doing this they were able to implement the communication between the computer and both of the onboard SoCs through a single USB port. Since they are using a custom solution, it is necessary to install any required drivers for it to be able to communicate with the computer.
In a Linux environment, we don’t need to install any drivers. The operating system will automatically detect the hardware and assign a generic driver that is already a part of the Linux system. All we need to do is note the port numbers. For that open the terminal window and type the following command ‘ls /dev/ttyUSB*’ and hit enter. A list of available USB devices and corresponding ports will be displayed. Note down the appropriate port number for further use. In Windows, it is necessary to install the specific driver. For that go to the USB driver download page, and download the driver file. There will be multiple files on the download page. The easier method would be to download the zip file with the setup in the name, extract it, and run the driver installer. It will automatically install the driver. Another way is to download the driver files from the download page and manually install the driver from the device manager. Once the driver is successfully installed and the MAxiduino is connected to the computer, open the device manager and expand the Ports (COM and LPT) section. You will find two comports that will be shown only when the Maxiduino is still connected to the PC. Note down the port number, by default the first port number will be for the K210 SoC and the second will be for the ESP32.
So before coding, we must install the Maixpy firmware to the Maxiduino so that it will accept the micropython code and execute it. For the first make sure you have installed the driver as per the instruction above and note down the port number. In Linux and Mac OS execute ls /dev/ to see the port numbers and in Windows use the device manager. So to start with we need to download the precompiled firmware file. For that first go to the MaixPy firmware page. In there, select the latest version folder and in it, you will find multiple firmware files with either .bin or .kfpkg extensions. Use the following table to select the appropriate firmware for your application. Once selected download the firmware binary to your computer
Once the firmware file is downloaded, the next step is to download the firmware flashing utility. For flashing or upgrading the firmware we are going to use the kflash_gui, for that download it from the kflash_gui download page. Extract the firmware and run the kflash_gui application. For Windows, it is recommended to run it using “run as administrator”.
Once the app is opened select the previously downloaded firmware. As you may observe the address range will be automatically populated and you don’t need to change it. Select the proper COM port(by default the first COM port of the two that will appear when the board is connected.) and click on download the flash utility will flash the firmware to the board and once it's done the board will reset and the MaixPy splash screen will be displayed on the LCD display.
The next step is to install the MaixPy IDE. For that go to the MaixPy IDE download page and download the appropriate binary for your operating system. For Windows run the installer as usual and follow the onscreen instructions. For Mac use the DMG file and install the application. For Linux use the following commands to give permission and to install the IDE.
chmod +x maixpy-ide-linux-x86_64-0.2.2.run
./maixpy-ide-linux-x86_64-0.2.2.run
Once installed open MaixPy IDE, and select the model of the development board in the Tool menu. And click on the connect button in the bottom left corner of the IDE window. It will automatically connect to the Maixduino board.
When opening the IDE for the first time it opens with a test code already in it. So to test the code just click on the Run button located below the Connect button as shown below. The code will be loaded into the Maixduino board and executed. The example code initializes the camera module and display and continues to display the video stream from the camera on the display. You can also see the video preview in the MaiixPy IDE.
To stop running the code click on the stop button(same as the run button). To upload the files to the board use the Send file option from the Tools menu.
After flashing the MaixPy firmware we can also use the Maixduino through any serial terminal without the need of the IDE if needed. For this, we can use any serial terminal that we are comfortable with, for example in Windows we can use Putt, mobaxterm , xshell , or mpfshell-lite and in Linux we can use the pyserial. The MaixPy IDE itself has a built-in serial terminal and we can also use that too. Sipeed recommends mpfshell-lite and more details about how to use them can be found on the mpfshell-lite page. If we want to run a micropython script, open the serial terminal, press CTRLl+E and paste the following code
import sensor, lcd sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) sensor.skip_frames() lcd.init(freq=15000000) while(True): lcd.display(sensor.snapshot())
Press Ctrl+D on the keyboard to start running the code. In the code, you can see that we imported the necessary libraries for the camera and display using the import function. Later we initialised the camera and configured it. After that, we have initialised the display. Then using the while loop we display the live video feed from the camera on the TFT display.
The Maixduino has a total of 16MB of onboard storage and an SD card slot for external storage. The file system structure of the Maixduino is illustrated in the image below.
The internal storage is divided into three parts: namely the MaixPy.bin firmware area, the xxx.kmodel model area, and the file system area. As the name suggests the MaixPy.bin area is for the MaixPy firmware storage and the xxx.kmodel area usually starts at 0x300000 and is used for the trained AI model. For the generic filesystem, the Maixduino uses SPIFFS. The SD card must be formatted with FATFS for the Maixduino to be able to access it. If the trained model is larger than the xx.kmodel area, we can also use the SD card to store it.
As we know in micropython all the scripts are stored as .py files, to modify the scripts it is necessary to have filesystem access for creating, editing or deleting those files. So with Maixduino, we have multiple ways to do these file handlings. The first method includes using the Micropython Editor (pye) editor which is built into the MaixPy firmware. We can use the serial terminal for the Pye editor. You can use os.listdir()to view the files in the current directory and pye("hello.py")to create a file and enter edit mode. After editing the file you can press Ctrl+S to save, and Ctrl+Q quit editing. You can find more details about the Micropython editor on the Micropython editor GitHub repo.
The second method is for when we are using the MaixPy IDE. In the IDE we can choose to save the opened file as boot.py from the tool menu to save the content in the IDE windows as the boot.py file.
The third method is to use uPyLoader. The uPyLoader gives you an FTP client like user interface where you can add, remove or execute very easily.
If you face any error when trying to transfer the file for the first time use the Init transfer files from the file menu.
If you want to execute a Python script in the flash memory you can do that in various ways. The first way of course is through the serial terminal. For that first goto the directory where the file is stored using the os.chdir() command, for example, os.chdir("/flash"). Then you can execute the scripts using the import command, for example, import helloworld. This method is simple and easy to use, but it should be noted that the import command can only be used once. If we use the import command for the second time, the file will not be executed again.
Another way is to use the exec() function to execute. Here is a sample code snippet that shows the use of the exec() function.
with open("hello.py") as f: exec(f.read())
Another way is to run the program from the MaixPy IDE as we have mentioned before. But with this method, the program is only temporarily running, it will not be saved on the device. You can also execute codes using the uPyLoader. After connecting, select the file and click execute the button to execute the file.
The system will create the boot.py file and main.py in the /flash or /sd (preferred) directory. When booting, it will automatically execute boot.py first, and then main.py (if the SD card is detected, the file in the SD card will be executed). Edit the contents of these two scripts to achieve self-starting. If you write an infinite loop (While True) program in boot.py, main.py will not be able to run. Conventionally, the boot.py is mainly used to configure hardware and only needs to be configured once and the main.py is used for running the main program. So edit those scripts according to your needs.
To make the programming much easier we can use the board configuration file. It is nothing but a board definition file with pin mapping for easier understanding. Even though it is not necessary it will help the programming much easier when using the GPIO and onboard peripherals. To use it all you need to do is to run the config_maix_duino.py script once. Which will create a config.json file within the flash and can be used later. Using it is much easier, just import the board_info parameter from the config file and you are good to go. Here is an example where we are turning on the red element of the onboard RGB LED, the pin connected to the red is defined as LED_R in the config file. We can directly use it without checking the schematics for the exact pin number.
from Maix import GPIO from fpioa_manager import fm from board import board_info print(board_info.LED_R) fm.register(board_info.LED_R, fm.fpioa.GPIO0, force=True) led_r = GPIO(GPIO.GPIO0, GPIO.OUT) led_r.value(0)
Similarly, all the pins are mapped in a more convenient manner and can easily be used in our code. To know the exact pin mapping you can either open the config_maix_duino.py or the config. You can also refer to the image below, where it shows the Arduino like pin map.
Covering all the basics of Maxduino MicroPython would take multiple articles and nonetheless Sipeed has detailed documentation about that. You may refer the the Sipeed’s Maixduino Specific MaixPy basics documentation for more details about it.
As we know the main selling points of the K210 AI SoC that is used in the Maixduino are its AI capabilities including Convolutional Neural Network based machine vision and machine learning. So to understand the AI capabilities of the Maixduino board we will look at some AI examples using the pre-trained AI models Sipeed provides.
As the name suggests, in this example we will look at the face detection AI model that Sipeed provided. The model will find a face in a picture and frame it and it uses YOLO V2 to detect the faces. To use it make sure to flash the normal or default MaixPy firmware to the Maixduino as instructed in the MaixPy firmware installation section. The next step is to download the pre-trained AI model. For that go to Sipeed’s AI model download page and download the face_model_at_0x300000.kfpkg model file. Once the file is downloaded, download it to the Maixduino’s flash memory using the kflash_gui utility or put it in an SD card. Since reading from the flash memory is always faster than reading from the SD card, it is recommended to load the AI model file to the flash memory, as long as the model file size is within the limit.
Once it's done we can move forward with the micropython script. You can load the AI model using task = kpu.load(0x300000). In this, the memory address is specified since the model is stored in the flash memory. If you are using the SD card to store the AI model, you can load the AI model into the script using task = kpu.load(0x300000). Then you can set the anchor points as anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025). The anchor point parameter is consistent with the model parameter. For each model, this parameter is fixed and bound to the model (determined when the model is trained). It cannot be changed to other values. Later you can initialize the kpu network object using kpu.init_yolo2(task, 0.5, 0.3, 5, anchor). Since this model is used YOLO V2, we used init_yolo2 to initialize the model. This function has a total of five parameters. Those parameters are:
kpu_netKPU.load(): kpu network object, that is, the returned value of the loaded model object
threshold: Probability threshold. The result will be output only if the probability of this object is greater than this value. The value range is: [0, 1]
nms_value: box_iou threshold, in order to prevent the same object from being framed by multiple boxes, when two boxes are framed on the same object, if the ratio of the intersection area of the two boxes to the total area occupied by the two boxes is less than this value, the box with the highest probability is selected.
anchor_num: The number of anchor points, fixed here as len(anchors)//2
anchor: As mentioned earlier this parameter is fixed and bound to the model
After the initialisation, you can input the image data and run the model as follows.
code = kpu.run_yolo2(task, img)
This will analyse the given image data and will give you the result. Here is a full example code in which the Maixduino will detect the face from the camera feed in real-time and creates a frame on the preview displayed in the LCD display.
import sensor, image, lcd, time import KPU as kpu import gc, sys def lcd_show_except(e): import uio err_str = uio.StringIO() sys.print_exception(e, err_str) err_str = err_str.getvalue() img = image.Image(size=(224,224)) img.draw_string(0, 10, err_str, scale=1, color=(0xff,0x00,0x00)) lcd.display(img) def main(model_addr=0x300000, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): try: sensor.reset() except Exception as e: raise Exception("sensor reset fail, please check hardware connection, or hardware damaged! err: {}".format(e)) sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) anchors = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) try: task = None task = kpu.load(model_addr) kpu.init_yolo2(task, 0.5, 0.3, 5, anchors) # threshold:[0,1], nms_value: [0, 1] while(True): img = sensor.snapshot() t = time.ticks_ms() objects = kpu.run_yolo2(task, img) t = time.ticks_ms() - t if objects: for obj in objects: img.draw_rectangle(obj.rect()) img.draw_string(0, 200, "t:%dms" %(t), scale=2) lcd.display(img) except Exception as e: raise e finally: if not task is None: kpu.deinit(task) if __name__ == "__main__": try: main( model_addr=0x300000, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False) # main(model_addr="/sd/m.kmodel") except Exception as e: sys.print_exception(e) lcd_show_except(e) finally: gc.collect()
After running this code you can see the result on the LCD display as shown below
You can download the python script for this example from our GitHub Repository. https://github.com/Circuit-Digest/Maixduino-AI-Projects/tree/main/Face%20Detection
For this example, we need to load the minimal firmware to Maixduino since the model itself is a little bigger in size. This model can classify up to 1000 different objects, since the bigger model. After flashing the minimal firmware, download the mobilenet_0x300000.kfpkg model from the download page. Once the file is downloaded, download it to the Maixduino’s flash memory using the kflash_gui utility. Also, download the labels.txt file and save it to the file system. Since the minimum firmware does not support IDE, you can use uPyloader to download the file to the flash. We also need to reduce GC heap size. To do so just run the following script.
from Maix import utils import machine utils.gc_heap_size(256*1024) machine.reset()
Once it's done we can move forward with the main micropython script. Use the following script.
import sensor, image, lcd, time import KPU as kpu import gc, sys def main(labels = None, model_addr="/sd/m.kmodel", lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): gc.collect() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((224, 224)) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) if not labels: raise Exception("no labels.txt") task = kpu.load(model_addr) try: while(True): img = sensor.snapshot() t = time.ticks_ms() fmap = kpu.forward(task, img) t = time.ticks_ms() - t plist=fmap[:] pmax=max(plist) max_index=plist.index(pmax) img.draw_string(0,0, "%.2f\n%s" %(pmax, labels[max_index].strip()), scale=2, color=(255, 0, 0)) img.draw_string(0, 200, "t:%dms" %(t), scale=2, color=(255, 0, 0)) lcd.display(img) except Exception as e: sys.print_exception(e) finally: kpu.deinit(task) if __name__ == "__main__": try: with open("labels.txt") as f: labels = f.readlines() main(labels=labels, model_addr=0x300000, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False) # main(labels=labels, model_addr="/sd/m.kmodel") except Exception as e: sys.print_exception(e) finally: gc.collect()
As you can see, at first we imported all the necessary modules, including sensor, image, LCD and time libraries. Along with that we have also imported the KPU neural network module, garbage collector and system modules. Later you can see the function called main is being declared. This function handles all the image processing and neural network procedures. When the script is run it will first read the labels.txt files is first read and the listed labels from the file is loaded into an identifier called labels. After that the main function is called with five arguments. The first argument points to the labels identifier while the second argument points to the model's memory location. The third argument is to set the display rotation and the fourth and fifth arguments are used to set the horizontal mirror and vertical flip of the camera image.
The main function initialises the camera, display and neural network modules using the provided arguments. After initialisation, the main function will get the image from the camera, run the object identifier model on it and if an object id detected it draws a frame around it and prints the corresponding label. The following line of code is used for object detection.
fmap = kpu.forward(task, img) plist=fmap[:] pmax=max(plist) max_index=plist.index(pmax)
Once the object is detected the result is printed using the following line of code.
img = img.draw_string(0, 0, "%.2f : %s" %(pmax, labels[max_index].strip()), color=(255, 0, 0)) lcd.display(img, oft=(0,0)) print(fps)
As you can see the draw_string function is used to add the label to the image prior to displaying it on the screen. Here is the demonstration of the above script.
You can download the python script for this example from our GitHub Repository. https://github.com/Circuit-Digest/Maixduino-AI-Projects/tree/main/1000%20Object%20Detection
Sipeed also has an online platform called Maixhub AI models and training. The Maixhub not only allows you to download pre-trained models but also gives you the option to train your own model. To use it go to the Maixhub page and register a new account, If you are already registered log in to the Maixhub platform.
If you click on the Models tab on the top of the page it will redirect you to the page where you can find a ton of pre-trained models to try out. If you want to use them you can open that particular model page and download it. Most of the models would also have the required instructions on the model page itself.
To train sour own AI model first go to the training page on MaixHub.Click on Create to create a new project. Give a project name and select the type, whether it's image classification or image detection. If you just need to identify objects, then select image classification. If you need to identify object categories and output the coordinates of the recognized objects, then choose image detection. It's recommended to train an image detection model first. Image detection training involves dataset annotation, so mastering image detection training means you also master image classification.
Once the project is created, the next step is to create a dataset. The created dataset can be reused for other projects if needed. Later select the dataset we have created and click confirm.
The next step is to collect training images. We can either upload images, import from datasets, import from device or copy from other datasets. And there is also an option for automatically generate annotated pictures from video.
Images uploaded to MaixHub can be annotated within. Select upload images or compressed packages and remember to click start upload.
Once the images are uploaded, we can move forward with annotation. Annotating in MaixHub is very easy. First, create labels, and then click on New button or press w on the keyboard to annotate. Click save or press s for saving the annotation. For annotating the next image either click on next or press d on the keyboard.
Once all the images are annotated, let’s move to the training. For that click on the Create Task from the left panel menu.
In the task creation page choose the nncase as model for k210, which is the main SoC in the Maixduino, then create a training task and wait for the task to complete.
After the model training is completed, click on deploy.In the deployment page choose manual deployment, and click on download to download the model file. The model file with the extension .kmodel will be downloaded to your computer. Use this model on your project.
Now as we gone through the process of using the Maixduino board for Ai projects with MaixPy enjoy creating new projects.
The broad world of DC motors has two basic categories: brushed and brushless. The brushed motor has been around since the 1830s (yes, that long!), and billions of them have been used successfully. However, the brushed motor also has many well-known drawbacks, including brush wear, electrical noise, and controllability issues. Despite these shortcomings, brushed motors have served us well for over 100 years and, for quite some time, were the only DC-powered motor option in many cases.
Several decades ago, the motor situation changed. This was a result of the brushless DC (BLDC) motor, which rose to prominence as electronic commutation was rising in popularity. This popularity was mainly due to two developments: high-energy permanent magnets and low-cost, efficient power-switch devices (MOSFETs and IGBTs) for their coils.
Many larger applications that previously used brushed motors transitioned to brushless designs or variable AC drives (a relative of brushless motors), while smaller motors often shifted to the stepper-motor approach (a close counterpart). Brushed motors appeared to be suitable only for low-cost, low-end, non-critical applications, such as disposable toys, window displays, and similar scenarios where high performance and reliability were not priorities.
Nevertheless, both motor types remain relevant depending on the application, and selecting the right motor size and type can be a challenge. This blog explores the nuanced decision-making process faced when choosing between brushed and brushless DC motors for various applications, considering factors like efficiency, control, and application-specific requirements.
What’s the difference between BLDC and brushed motor arrangements? As seen in the left diagram of Figure 1, the brushed DC motor relies on mechanical commutation to switch the polarity of the magnetic field between the rotor—also known as the armature—and the stator. The stator’s magnetic field is generated by either permanent magnets or electromagnetic coils.
The source current passes through coil windings on the armature. The interaction and constant reversal of the magnetic field between rotor coils and stator induces rotary motion. The commutation action, which reverses the field, is done using physical contacts that are called brushes. These brushes touch contacts on the rotor and bring power to the rotor coils.
The brushed motor can operate directly from the DC rails without any intervening driver or control electronics. This makes it suitable for basic, low-cost, non-critical applications such as simple toys or animated window displays.
In contrast, the brushless motor features an array of electromagnetic coils, called poles, that are fixed around the interior of the housing, with high-strength permanent magnets attached to the rotating shaft (the rotor), as shown in the right diagram of Figure 1. As the poles are energized in sequence by the required control electronics, a process known as electronic commutation (EC), the magnetic field surrounding the rotor rotates and attracts or repels the rotor, which is compelled to follow the field.
Figure 1: A brushed DC motor uses mechanical contacts to implement the commutation and alternating of the magnetic field (left). In contrast, the brushless DC motor design uses electronic commutation and has no wear-prone or EMI-generating moving contacts (right). (Source: Mouser Electronics)
While the current driving the poles can be a square wave, this approach is inefficient and induces vibration, so most designs use a ramping or curved waveform tailored for the desired combination of electrical efficiency and motion precision. Additionally, the controller can fine-tune the energizing waveform for quick yet smooth starts and stops without overshoot, ensuring a sharp response to mechanical load transients. There is a direct and visible relationship between the construction and operation of brushed motors. In fact, brushed motors are so straightforward that they are offered as STEM-focused kits in educational settings (Figure 2).
Figure 2: A classic brushed DC motor serves as a good teaching and demonstration fixture for electricity, magnetism, and motion basics. (Source: HENADZY/stock.adobe.com)
Today’s reality is that when a designer needs a small motor with sub-fractional horsepower for a project, the natural instinct is usually to look at the wide range of standard brushless DC (BLDC) motors first and maybe, just maybe, also consider the brushed motor.
This approach makes sense for several reasons. For one, BLDC motors are easy to drive with modern controller ICs or embedded firmware. Moreover, matching the motor with necessary MOSFET drivers between the processor and motor poles is relatively simple. Lastly, they are reliable and generate minimal EMI due to the absence of sliding-contact brushes.
Therefore, in most cases, when a new product needs a DC motor, the designer’s natural inclination is to think brushless in many cases. However, that would be short-sighted. The reality is that brushed motors are still very viable and have their place in sophisticated designs as well.
When selecting a DC motor, engineers typically prefer the BDLC motor for most new designs because it has such an attractive combination of benefits and few drawbacks compared to the brushed motor. Designers can choose among many different ratings for voltage, current, torque, and more, while they can also select the needed hardware drivers and control algorithms—in software or embedded in firmware. In addition to basic motor-selection guides, vendors offer application software packages with graphical user interfaces (GUIs), making it easy to set the desired performance attributes such as speed, acceleration/deceleration profiles, and responsiveness.
In contrast, the brushed motor is more difficult to control with precision, and algorithms can only do so much and to a more limited extent. To improve performance, some brushed motor system designs add a rotary-position feedback sensor, such as optical, Hall effect, capacitive, or magnetic. However, this approach adds to the design cost, has mechanical-mounting issues, and increases control complexity. In fairness, while many BLDC installations do not need such a feedback sensor, it is also added in some cases to allow tight closed-loop feedback and more consistent performance.
Still, brushed motors are used for various designs ranging from legacy applications to sophisticated systems, such as automotive functions with well-defined velocity and torque requirements. Many vendors offer driver ICs for BLDC motors and variants suitable for brushed motors. Some vendors even provide automotive-specific, AEC-Q100-qualified brushed motor drivers for that demanding application, which is evidence of their continued viability.
Despite conventional engineering wisdom, brushless is always better for serious applications. In contrast, brushed may be suitable for less critical ones, but the choice between the brushed and brushless DC motor is not necessarily simple. A conscientious engineer will rank project priorities and their relative weight and give a fair look at the various alternatives before deciding which is best in a specific situation.
Your email is safe with us, we don’t spam.
Be a part of our ever growing community.