This document compares different programming platforms for ESP boards, including C++, Lua, and MicroPython. C++ is the most popular option as it uses familiar Arduino functions and libraries. Lua uses an event-driven style and the NodeMCU firmware, while MicroPython is based on the Python language and allows interactive use of the REPL. Each platform has advantages and limitations for memory usage, speed, and ease of use. The document aims to help users choose the best platform based on their skills and project goals.
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
The interest of coding aptitudes is soaring and not just only for designers, writing computer programs is assuming a greater job in each profession way. The main importance of 'Code Up' is to learn to code interactively. In this project we are providing interface with different levels of question to enhance their programming skills based on the level of the questions solved. We are using Servlet, JSP and oracle database with Model 2 architecture so that request and response can be handled easily. We are using reflection Application Program interface API and runtime API for the execution and compilation of the code at runtime. An online based program compiler to enhance platform independent services for multiple languages support. Regardless of dynamic working nature of compiling the program, it is also capable of handling multiple request of code execution. Even though it is specially designed for student programmers who want to learn and improve their knowledge about the multiple languages and understand the various complexities of code to be improved before implementing it into real world software as a part or a component. This platform provides a web portal where one makes their account for daily improvement as well as to gather information about their coding knowledge growth and other important guide. It will help indivisible, mainly student to increase their knowledge in the field of coding .The present working code compiler is available but it has a slate limitation it won't execute all the programming languages. Moreover it might sometime throw an error. Some of the language like java IDE Integrated Development Environment Eclipse, Net Beans takes up a lot of space in the personal computer but the portable code compiler is completely mobile and can be accessed from anywhere in the world. Rimmy Kumari | Ganeshan M "Portable Code Compiler" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-4 | Issue-4 , June 2020, URL: https://www.ijtsrd.com/papers/ijtsrd30911.pdf Paper Url :https://www.ijtsrd.com/computer-science/programming-language/30911/portable-code-compiler/rimmy-kumari
Java Is A Programming Dialect And Registering Stage EssayLiz Sims
Java is a programming language and runtime environment that is widely used. It allows applications to be written once and run on any device, from laptops to servers to mobile phones. Java code is compiled to bytecode that can run on any Java Virtual Machine, regardless of computer architecture. Java is commonly used for web applications and has millions of developers. Integrated Development Environments are software applications that help programmers develop code. They provide features like code editing, debugging, and project management tailored for specific programming languages. Android is an open source platform that makes developing mobile applications easy. This document discusses advantages and disadvantages of using the Android platform for developing a mobile application to automate business processes for a fitness center.
Analysis Of The Original Version Of JavaAmanda Brady
The document discusses the original version of Java. It began as a project by Sun Microsystems in 1991 to develop a program for interactive televisions. They named it Oak but later changed it to Java due to a naming conflict. Java was designed to be hardware independent and portable. It became popular for web applications. The original version was Java Development Kit 1.0 and the current version is 1.1. Java was designed to be simple, efficient, durable, portable, powerful, secure and easy to understand. It is an object-oriented language.
The document discusses an interpreter and its components. An interpreter translates source code written in one computer language into another target language, often machine code. It performs operations like lexical analysis, parsing, semantic analysis, and code generation. The front end analyzes the source code to build an internal representation and symbol table, while the back end translates the intermediate code into the target language. The document then provides details about the purpose, scope, definition and objectives of a C interpreter project, which will analyze and execute source code line by line to translate it into object code for different computer types. It lists the software and tools used, including the NetBeans IDE.
The article describes how to port the GNU toolchain (GCC and binutils) to a new target system using the example of porting it to the Atari ST (called the "MiNT target"). It discusses the key steps in building an executable, the executable file formats, and how configuration names called "triplets" identify different systems in a cross-compilation environment. The author ported GCC to the Atari ST years ago and still maintains the patches, allowing developers to build Atari ST executables on modern systems through cross-compilation.
J-ISIS is a new open source software project by UNESCO to replace its CDS/ISIS database software. It will use Java and open source libraries to create a multiplatform and modular database application. The project aims to keep the functionality of CDS/ISIS while removing restrictions and allowing further development as an open source project. Developers are invited to contribute through roles like programming, testing, documentation and translation.
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
The interest of coding aptitudes is soaring and not just only for designers, writing computer programs is assuming a greater job in each profession way. The main importance of 'Code Up' is to learn to code interactively. In this project we are providing interface with different levels of question to enhance their programming skills based on the level of the questions solved. We are using Servlet, JSP and oracle database with Model 2 architecture so that request and response can be handled easily. We are using reflection Application Program interface API and runtime API for the execution and compilation of the code at runtime. An online based program compiler to enhance platform independent services for multiple languages support. Regardless of dynamic working nature of compiling the program, it is also capable of handling multiple request of code execution. Even though it is specially designed for student programmers who want to learn and improve their knowledge about the multiple languages and understand the various complexities of code to be improved before implementing it into real world software as a part or a component. This platform provides a web portal where one makes their account for daily improvement as well as to gather information about their coding knowledge growth and other important guide. It will help indivisible, mainly student to increase their knowledge in the field of coding .The present working code compiler is available but it has a slate limitation it won't execute all the programming languages. Moreover it might sometime throw an error. Some of the language like java IDE Integrated Development Environment Eclipse, Net Beans takes up a lot of space in the personal computer but the portable code compiler is completely mobile and can be accessed from anywhere in the world. Rimmy Kumari | Ganeshan M "Portable Code Compiler" Published in International Journal of Trend in Scientific Research and Development (ijtsrd), ISSN: 2456-6470, Volume-4 | Issue-4 , June 2020, URL: https://www.ijtsrd.com/papers/ijtsrd30911.pdf Paper Url :https://www.ijtsrd.com/computer-science/programming-language/30911/portable-code-compiler/rimmy-kumari
Java Is A Programming Dialect And Registering Stage EssayLiz Sims
Java is a programming language and runtime environment that is widely used. It allows applications to be written once and run on any device, from laptops to servers to mobile phones. Java code is compiled to bytecode that can run on any Java Virtual Machine, regardless of computer architecture. Java is commonly used for web applications and has millions of developers. Integrated Development Environments are software applications that help programmers develop code. They provide features like code editing, debugging, and project management tailored for specific programming languages. Android is an open source platform that makes developing mobile applications easy. This document discusses advantages and disadvantages of using the Android platform for developing a mobile application to automate business processes for a fitness center.
Analysis Of The Original Version Of JavaAmanda Brady
The document discusses the original version of Java. It began as a project by Sun Microsystems in 1991 to develop a program for interactive televisions. They named it Oak but later changed it to Java due to a naming conflict. Java was designed to be hardware independent and portable. It became popular for web applications. The original version was Java Development Kit 1.0 and the current version is 1.1. Java was designed to be simple, efficient, durable, portable, powerful, secure and easy to understand. It is an object-oriented language.
The document discusses an interpreter and its components. An interpreter translates source code written in one computer language into another target language, often machine code. It performs operations like lexical analysis, parsing, semantic analysis, and code generation. The front end analyzes the source code to build an internal representation and symbol table, while the back end translates the intermediate code into the target language. The document then provides details about the purpose, scope, definition and objectives of a C interpreter project, which will analyze and execute source code line by line to translate it into object code for different computer types. It lists the software and tools used, including the NetBeans IDE.
The article describes how to port the GNU toolchain (GCC and binutils) to a new target system using the example of porting it to the Atari ST (called the "MiNT target"). It discusses the key steps in building an executable, the executable file formats, and how configuration names called "triplets" identify different systems in a cross-compilation environment. The author ported GCC to the Atari ST years ago and still maintains the patches, allowing developers to build Atari ST executables on modern systems through cross-compilation.
J-ISIS is a new open source software project by UNESCO to replace its CDS/ISIS database software. It will use Java and open source libraries to create a multiplatform and modular database application. The project aims to keep the functionality of CDS/ISIS while removing restrictions and allowing further development as an open source project. Developers are invited to contribute through roles like programming, testing, documentation and translation.
The document discusses an Android training session where the author created an Android phonebook application project. It provides details on the phonebook app's features like creating, deleting, viewing and searching contacts. The app allows storing important contact details separately like birthday, email, and phone numbers. Screenshots of the app's home screen, add contact, search, view and delete contact windows are also included to showcase the project.
The document discusses the introduction and history of .NET technology and Visual Basic .NET (VB.NET). It provides details on:
- The .NET framework which provides a development framework for building applications and web services.
- VB.NET which is a programming language that targets the .NET framework and is a successor to Visual Basic 6. It discusses the various versions of VB.NET released.
- Features of .NET such as interoperability, common language runtime, language independence, security and portability.
- The evolution of software development approaches from procedure-oriented to structure-oriented to object-oriented.
This document provides a summary of qualifications for Serhiy Medvedyev, an iOS software engineer with 14 years of experience. It outlines his skills and experience developing mobile and enterprise software and games using technologies like Swift, Objective-C, C/C++, iOS frameworks, Git, Xcode and more. Notable projects include a mobile security solution, learning audio app, 2D game, and location-based apps. He has extensive experience as a sole developer and on project teams of up to 7 members.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns,
Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns, Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed
polling in the cloud computing environment. GreatFree is a distributed programming environment through
which diverse distributed systems can be established through programming rather than configuring or
scripting. GreatFree emphasizes the importance of programming since it offers developers the
opportunities to leverage their distributed knowledge and programming skills. Additionally, programming
is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed
computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns,
Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable,
rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable
operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to
construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program
requests/responses in the novel programming environment.
This document outlines the schedule and goals for a class on Microsoft .NET fundamentals. The class will meet on November 6, 13, 20 and possibly other dates in November and December. It will cover introductions, an overview of .NET and C#, exercises, assignments, and a final exam. The goals are to provide an overview of major .NET components and understand .NET as an object-oriented environment while working with CLR, FCL, assemblies and C#. Grades will be based on assignments and a final exam. Prerequisites include a fundamentals of programming course.
MOTODEV Studio, Motorola’s powerful IDE based on the popular Eclipse framework, offers developers a fast and easy way to create applications across Motorola's Android products. This presentation provides an overview of MOTODEV Studio for Android along with practical tips for getting started with Android development.
Siva Borra has over 9 years of experience in embedded software development using C/C++. He has expertise in areas such as Android, Linux kernel, real-time operating systems, device drivers, and software debugging tools. His professional experience includes projects involving platform porting, maintenance work, and software engineering roles at companies such as Spanidea Systems, STEricsson, and SonyMobile. He has a Master's degree in Computer Science and Engineering from IIT Madras.
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel Corporation
Atmel® Studio 6 is the integrated development platform (IDP) for developing and debugging Atmel ARM® Cortex™-M and Atmel AVR® microcontroller- (MCU-) based applications. The Atmel Studio 6 IDP gives you a seamless and easy-to-use environment to write, build and debug your applications written in C/C++ or assembly code.
Atmel Studio 6 is free of charge and is integrated with the Atmel Software Framework (ASF)—a large library of free source code with 1,600 ARM and AVR project examples. ASF strengthens the IDP by providing, in the same environment, access to ready-to-use code that minimizes much of the low-level design required for projects. Use the IDP for our wide variety of AVR and ARM Cortex-M processor-based MCUs, including our broadened portfolio of Atmel SAM3 ARM Cortex-M3 and M4 Flash devices.
With the introduction of Atmel Gallery and Atmel Spaces, Atmel Studio 6 further simplifies embedded MCU designs to reduce development time and cost. Atmel Gallery is an online apps store for development tools and embedded software. Atmel Spaces is a cloud-based collaborative development workspace allowing you to host software and hardware projects targeting Atmel MCUs.
For more information, please visit http://www.atmel.com/Microsite/atmel_studio6.
Follow along on Twitter at http://www.twitter.com/Atmel and 'Like' Atmel on Facebook at http://www.facebook.com/atmelcorporation.
RECENT TRENDS or ADVANCES IN EMBEDDED SYSTEMS.pptxBinu Dennison
This document discusses recent trends and advances in embedded systems. It outlines seven key areas: 1) Increased processor power from various vendors, 2) Declining memory costs, 3) Variety of available operating systems like Linux and real-time OSs, 4) Low-cost networking capabilities through interfaces like Ethernet, 5) Use of high-level languages like C and C++ for development, 6) Robust development tools like MATLAB and cross-compilers, and 7) Programmable hardware like FPGAs that integrate processors and peripherals into a single chip. These trends have made embedded software development faster and easier.
Dot net-interview-questions-and-answers part iRakesh Joshi
.NET Framework is a complete environment that allows developers to develop, run, and deploy the following applications: Console applications,Windows Forms applications,Windows Presentation Foundation (WPF) applications,Web applications (ASP.NET applications),Web services,Windows services,Service-oriented applications using Windows Communication Foundation (WCF),Workflow-enabled applications using Windows Workflow Foundation (WF).
.NET Framework also enables a developer to create sharable components to be used in distributed computing architecture. NET Framework supports the object-oriented programming model for multiple languages, such as Visual Basic, Visual C#, and Visual C++. .NET Framework supports multiple programming languages in a manner that allows language interoperability. This implies that each language can use the code written in some other language.
Dot net-interview-questions-and-answers part iRakesh Joshi
.NET is a general-purpose software development platform, similar to Java. At its core is a virtual machine that turns intermediate language (IL) into machine code. High-level language compilers for C#, VB.NET and C++ are provided to turn source code into IL. C# is a new programming language, very similar to Java. An extensive class library is included, featuring all the functionality one might expect from a contempory development platform - windows GUI development (Windows Form s), database access (ADO.NET), web development (ASP.NET), web services, XML etc.
This document provides an overview of the .NET platform and C# programming language. It discusses key topics such as the .NET initiative introduced by Microsoft, components of the .NET framework including the common language runtime and framework class library, differences between C# and C++, and examples of console and windows applications in C#. It also references books and online resources for further information.
This document contains the resume of Satyam Singh. It summarizes his work experience as a Senior Software Engineer at Ericsson Global India Pvt Ltd from 2013 to present, where he has worked on projects involving Diameter and SS7 protocols. It also outlines his previous experience as a Software Engineer at Telesys Software from 2010 to 2013, where he worked on Diameter and SS7 protocol stacks. The resume lists his technical skills and qualifications.
The most experienced and learned developers always suggest hiring an electron application development company when it comes to building applications for desktops. Why do they prefer Electron.js? What’s so special about it? This topic will attempt to shed some light on the answers to these questions.
In web development and app development, choosing the right technology stack can make or break your project. Node.js and .Net Core are two of the most popular open-source technologies in this domain, attracting both novice and experienced developers alike. But how do you decide which one is the best fit for your needs? This article aims to provide you with a comprehensive comparison of these two powerful technologies, helping you make an informed decision based on various factors such as performance, scalability, security, and ecosystem. Let’s delve into the world of Node.js and .NET Core!
Hybrid model for detection of brain tumor using convolution neural networksCSITiaesprime
The development of aberrant brain cells, some of which may turn cancerous, is known as a brain tumor. Magnetic resonance imaging (MRI) scans are the most common technique for finding brain tumors. Information about the aberrant tissue growth in the brain is discernible from the MRI scans. In numerous research papers, machine learning, and deep learning algorithms are used to detect brain tumors. It takes extremely little time to forecast a brain tumor when these algorithms are applied to MRI pictures, and better accuracy makes it easier to treat patients. The radiologist can make speedy decisions because of this forecast. The proposed work creates a hybrid convolution neural networks (CNN) model using CNN for feature extraction and logistic regression (LR). The pre-trained model visual geometry group 16 (VGG16) is used for the extraction of features. To reduce the complexity and parameters to train we eliminated the last eight layers of VGG16. From this transformed model the features are extracted in the form of a vector array. These features fed into different machine learning classifiers like support vector machine (SVM), naïve bayes (NB), LR, extreme gradient boosting (XGBoost), AdaBoost, and random forest for training and testing. The performance of different classifiers is compared. The CNN-LR hybrid combination outperformed the remaining classifiers. The evaluation measures such as recall, precision, F1-score, and accuracy of the proposed CNN-LR model are 94%, 94%, 94%, and 91% respectively.
Implementing lee's model to apply fuzzy time series in forecasting bitcoin priceCSITiaesprime
Over time, cryptocurrencies like Bitcoin have attracted investor's and speculators' interest. Bitcoin's dramatic rise in value in recent years has caught the attention of many who see it as a promising investment asset. After all, Bitcoin investment is inseparable from Bitcoin price volatility that investors must mitigate. This research aims to use Lee's Fuzzy Time Series approach to forecast the price of Bitcoin. A time series analysis method called Lee's Fuzzy Time Series to get around ambiguity and uncertainty in time series data. Ching-Cheng Lee first introduced this approach in his research on time series prediction. This method is a development of several previous fuzzy time series (FTS) models, namely Song and Chissom and Cheng and Chen. According to most previous studies, Lee's model was stated to be able to convey more precise forecasting results than the classic model from the FTS. This study used first and second orders, where researchers obtained error values from the first order of 5.419% and the second order of 4.042%, which means that the forecasting results are excellent. But of both orders, only the first order can be used to predict the next period's Bitcoin price. In the second order, the resulting relations in the next period do not have groups in their fuzzy logical relationship group (FLRG), so they can not predict the price in the next period. This study contributes to considering investors and the general public as a factor in keeping, selling, or purchasing cryptocurrencies.
More Related Content
Similar to Comparison of ESP programming platforms
The document discusses an Android training session where the author created an Android phonebook application project. It provides details on the phonebook app's features like creating, deleting, viewing and searching contacts. The app allows storing important contact details separately like birthday, email, and phone numbers. Screenshots of the app's home screen, add contact, search, view and delete contact windows are also included to showcase the project.
The document discusses the introduction and history of .NET technology and Visual Basic .NET (VB.NET). It provides details on:
- The .NET framework which provides a development framework for building applications and web services.
- VB.NET which is a programming language that targets the .NET framework and is a successor to Visual Basic 6. It discusses the various versions of VB.NET released.
- Features of .NET such as interoperability, common language runtime, language independence, security and portability.
- The evolution of software development approaches from procedure-oriented to structure-oriented to object-oriented.
This document provides a summary of qualifications for Serhiy Medvedyev, an iOS software engineer with 14 years of experience. It outlines his skills and experience developing mobile and enterprise software and games using technologies like Swift, Objective-C, C/C++, iOS frameworks, Git, Xcode and more. Notable projects include a mobile security solution, learning audio app, 2D game, and location-based apps. He has extensive experience as a sole developer and on project teams of up to 7 members.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns,
Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed polling in the cloud computing environment. GreatFree is a distributed programming environment through which diverse distributed systems can be established through programming rather than configuring or scripting. GreatFree emphasizes the importance of programming since it offers developers the opportunities to leverage their distributed knowledge and programming skills. Additionally, programming is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns, Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable, rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program requests/responses in the novel programming environment.
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENTijdpsjournal
Programming request with GreatFree is an efficient programming technique to implement distributed
polling in the cloud computing environment. GreatFree is a distributed programming environment through
which diverse distributed systems can be established through programming rather than configuring or
scripting. GreatFree emphasizes the importance of programming since it offers developers the
opportunities to leverage their distributed knowledge and programming skills. Additionally, programming
is the unique way to construct creative, adaptive and flexible systems to accommodate various distributed
computing environments. With the support of GreatFree code-level Distributed Infrastructure Patterns,
Distributed Operation Patterns and APIs, the difficult procedure is accomplished in a programmable,
rapid and highly-patterned manner, i.e., the programming behaviors are simplified as the repeatable
operation of Copy-Paste-Replace. Since distributed polling is one of the fundamental techniques to
construct distributed systems, GreatFree provides developers with relevant APIs and patterns to program
requests/responses in the novel programming environment.
This document outlines the schedule and goals for a class on Microsoft .NET fundamentals. The class will meet on November 6, 13, 20 and possibly other dates in November and December. It will cover introductions, an overview of .NET and C#, exercises, assignments, and a final exam. The goals are to provide an overview of major .NET components and understand .NET as an object-oriented environment while working with CLR, FCL, assemblies and C#. Grades will be based on assignments and a final exam. Prerequisites include a fundamentals of programming course.
MOTODEV Studio, Motorola’s powerful IDE based on the popular Eclipse framework, offers developers a fast and easy way to create applications across Motorola's Android products. This presentation provides an overview of MOTODEV Studio for Android along with practical tips for getting started with Android development.
Siva Borra has over 9 years of experience in embedded software development using C/C++. He has expertise in areas such as Android, Linux kernel, real-time operating systems, device drivers, and software debugging tools. His professional experience includes projects involving platform porting, maintenance work, and software engineering roles at companies such as Spanidea Systems, STEricsson, and SonyMobile. He has a Master's degree in Computer Science and Engineering from IIT Madras.
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel Corporation
Atmel® Studio 6 is the integrated development platform (IDP) for developing and debugging Atmel ARM® Cortex™-M and Atmel AVR® microcontroller- (MCU-) based applications. The Atmel Studio 6 IDP gives you a seamless and easy-to-use environment to write, build and debug your applications written in C/C++ or assembly code.
Atmel Studio 6 is free of charge and is integrated with the Atmel Software Framework (ASF)—a large library of free source code with 1,600 ARM and AVR project examples. ASF strengthens the IDP by providing, in the same environment, access to ready-to-use code that minimizes much of the low-level design required for projects. Use the IDP for our wide variety of AVR and ARM Cortex-M processor-based MCUs, including our broadened portfolio of Atmel SAM3 ARM Cortex-M3 and M4 Flash devices.
With the introduction of Atmel Gallery and Atmel Spaces, Atmel Studio 6 further simplifies embedded MCU designs to reduce development time and cost. Atmel Gallery is an online apps store for development tools and embedded software. Atmel Spaces is a cloud-based collaborative development workspace allowing you to host software and hardware projects targeting Atmel MCUs.
For more information, please visit http://www.atmel.com/Microsite/atmel_studio6.
Follow along on Twitter at http://www.twitter.com/Atmel and 'Like' Atmel on Facebook at http://www.facebook.com/atmelcorporation.
RECENT TRENDS or ADVANCES IN EMBEDDED SYSTEMS.pptxBinu Dennison
This document discusses recent trends and advances in embedded systems. It outlines seven key areas: 1) Increased processor power from various vendors, 2) Declining memory costs, 3) Variety of available operating systems like Linux and real-time OSs, 4) Low-cost networking capabilities through interfaces like Ethernet, 5) Use of high-level languages like C and C++ for development, 6) Robust development tools like MATLAB and cross-compilers, and 7) Programmable hardware like FPGAs that integrate processors and peripherals into a single chip. These trends have made embedded software development faster and easier.
Dot net-interview-questions-and-answers part iRakesh Joshi
.NET Framework is a complete environment that allows developers to develop, run, and deploy the following applications: Console applications,Windows Forms applications,Windows Presentation Foundation (WPF) applications,Web applications (ASP.NET applications),Web services,Windows services,Service-oriented applications using Windows Communication Foundation (WCF),Workflow-enabled applications using Windows Workflow Foundation (WF).
.NET Framework also enables a developer to create sharable components to be used in distributed computing architecture. NET Framework supports the object-oriented programming model for multiple languages, such as Visual Basic, Visual C#, and Visual C++. .NET Framework supports multiple programming languages in a manner that allows language interoperability. This implies that each language can use the code written in some other language.
Dot net-interview-questions-and-answers part iRakesh Joshi
.NET is a general-purpose software development platform, similar to Java. At its core is a virtual machine that turns intermediate language (IL) into machine code. High-level language compilers for C#, VB.NET and C++ are provided to turn source code into IL. C# is a new programming language, very similar to Java. An extensive class library is included, featuring all the functionality one might expect from a contempory development platform - windows GUI development (Windows Form s), database access (ADO.NET), web development (ASP.NET), web services, XML etc.
This document provides an overview of the .NET platform and C# programming language. It discusses key topics such as the .NET initiative introduced by Microsoft, components of the .NET framework including the common language runtime and framework class library, differences between C# and C++, and examples of console and windows applications in C#. It also references books and online resources for further information.
This document contains the resume of Satyam Singh. It summarizes his work experience as a Senior Software Engineer at Ericsson Global India Pvt Ltd from 2013 to present, where he has worked on projects involving Diameter and SS7 protocols. It also outlines his previous experience as a Software Engineer at Telesys Software from 2010 to 2013, where he worked on Diameter and SS7 protocol stacks. The resume lists his technical skills and qualifications.
The most experienced and learned developers always suggest hiring an electron application development company when it comes to building applications for desktops. Why do they prefer Electron.js? What’s so special about it? This topic will attempt to shed some light on the answers to these questions.
In web development and app development, choosing the right technology stack can make or break your project. Node.js and .Net Core are two of the most popular open-source technologies in this domain, attracting both novice and experienced developers alike. But how do you decide which one is the best fit for your needs? This article aims to provide you with a comprehensive comparison of these two powerful technologies, helping you make an informed decision based on various factors such as performance, scalability, security, and ecosystem. Let’s delve into the world of Node.js and .NET Core!
Similar to Comparison of ESP programming platforms (20)
Hybrid model for detection of brain tumor using convolution neural networksCSITiaesprime
The development of aberrant brain cells, some of which may turn cancerous, is known as a brain tumor. Magnetic resonance imaging (MRI) scans are the most common technique for finding brain tumors. Information about the aberrant tissue growth in the brain is discernible from the MRI scans. In numerous research papers, machine learning, and deep learning algorithms are used to detect brain tumors. It takes extremely little time to forecast a brain tumor when these algorithms are applied to MRI pictures, and better accuracy makes it easier to treat patients. The radiologist can make speedy decisions because of this forecast. The proposed work creates a hybrid convolution neural networks (CNN) model using CNN for feature extraction and logistic regression (LR). The pre-trained model visual geometry group 16 (VGG16) is used for the extraction of features. To reduce the complexity and parameters to train we eliminated the last eight layers of VGG16. From this transformed model the features are extracted in the form of a vector array. These features fed into different machine learning classifiers like support vector machine (SVM), naïve bayes (NB), LR, extreme gradient boosting (XGBoost), AdaBoost, and random forest for training and testing. The performance of different classifiers is compared. The CNN-LR hybrid combination outperformed the remaining classifiers. The evaluation measures such as recall, precision, F1-score, and accuracy of the proposed CNN-LR model are 94%, 94%, 94%, and 91% respectively.
Implementing lee's model to apply fuzzy time series in forecasting bitcoin priceCSITiaesprime
Over time, cryptocurrencies like Bitcoin have attracted investor's and speculators' interest. Bitcoin's dramatic rise in value in recent years has caught the attention of many who see it as a promising investment asset. After all, Bitcoin investment is inseparable from Bitcoin price volatility that investors must mitigate. This research aims to use Lee's Fuzzy Time Series approach to forecast the price of Bitcoin. A time series analysis method called Lee's Fuzzy Time Series to get around ambiguity and uncertainty in time series data. Ching-Cheng Lee first introduced this approach in his research on time series prediction. This method is a development of several previous fuzzy time series (FTS) models, namely Song and Chissom and Cheng and Chen. According to most previous studies, Lee's model was stated to be able to convey more precise forecasting results than the classic model from the FTS. This study used first and second orders, where researchers obtained error values from the first order of 5.419% and the second order of 4.042%, which means that the forecasting results are excellent. But of both orders, only the first order can be used to predict the next period's Bitcoin price. In the second order, the resulting relations in the next period do not have groups in their fuzzy logical relationship group (FLRG), so they can not predict the price in the next period. This study contributes to considering investors and the general public as a factor in keeping, selling, or purchasing cryptocurrencies.
Sentiment analysis of online licensing service quality in the energy and mine...CSITiaesprime
The Ministry of Energy and Mineral Resources of the Republic of Indonesia regularly assessed public satisfaction with its online licensing services. User rated their satisfaction at 3.42 on a scale of 4, below the organization's average of 3.53. Evaluating public service performance is crucial for quality improvement. Previous research relied solely on survey data to assess public satisfaction. This study goes further by analyzing user feedback in text form from an online licensing application to identify negative aspects of the service that need enhancement. The dataset spanned September 2019 to February 2023, with 24,112 entries. The choice of classification methods on the highest accuracy values among decision tree, random forest, naive bayes, stochastic gradient descent, logistic regression (LR), and k-nearest neighbor. The text data was converted into numerical form using CountVectorizer and term frequency-inverse document frequency (TF-IDF) techniques, along with unigrams and bigrams for dividing sentences into word segments. LR bigram CountVectorizer ranked highest with 89% for average precision, F1-score, and recall, compared to the other five classification methods. The sentiment analysis polarity level was 36.2% negative. Negative sentiment revealed expectations from the public to the ministry to improve the top three aspects: system, mechanism, and procedure; infrastructure and facilities; and service specification product types.
Trends in sentiment of Twitter users towards Indonesian tourism: analysis wit...CSITiaesprime
This research analyzes the sentiment of Twitter users regarding tourism in Indonesia using the keyword "wonderful Indonesia" as the tourism promotion identity. This study aims to gain a deeper understanding of the public sentiment towards "wonderful Indonesia" through social media data analysis. The novelty obtained provides new insights into valuable information about Indonesian tourism for the government and relevant stakeholders in promoting Indonesian tourism and enhancing tourist experiences. The method used is tweet analysis and classification using the K-nearest neighbor (KNN) algorithm to determine the positive, neutral, or negative sentiment of the tweets. The classification results show that the majority of tweets (65.1% out of a total of 14,189 tweets) have a neutral sentiment, indicating that most tweets with the "wonderful Indonesia" tagline are related to advertising or promoting Indonesian tourism. However, the percentage of tweets with positive sentiment (33.8%) is higher than those with negative sentiment (1.1%). This study also achieved training results with an accuracy rate of 98.5%, precision of 97.6%, recall of 98.5%, and F1-score of 98.1%. However, reassessment is needed in the future as Twitter users' sentiments can change along with the development of Indonesian tourism itself.
The impact of usability in information technology projectsCSITiaesprime
Achieving success in information system and technology (IS/IT) projects is a complex and multifaceted endeavour that has proven difficult. The literature is replete with project failures, but identifying the critical success factors contributing to favourable outcomes remains challenging. The triad of Time-Cost-Quality is widely accepted as key to achieving project success. While time and cost can be quantified and measured, quality is a more complex construct that requires different metrics and measurement approaches. Utilizing the PRISMA Methodology, this study initiated a comprehensive search across literature databases and identified 142 relevant articles pertaining to the specified keywords. A subset of ten articles was deemed suitable for further examination through rigorous screening and eligibility assessments. Notably, a primary finding indicates that despite recognizing usability as a critical element, there is a tendency to neglect usability enhancements due to time and resource constraints. Regarding the influence of usability on project success, the active involvement of end-users emerges as a pivotal factor. Moreover, fostering the enhancement of Human Computer Interaction (HCI) knowledge within the development team is essential. Failure to provide good usability can lead to project failure, undermining user satisfaction and adoption of the technology.
Collecting and analyzing network-based evidenceCSITiaesprime
Since nearly the beginning of the Internet, malware has been a significant deterrent to productivity for end users, both personal and business related. Due to the pervasiveness of digital technologies in all aspects of human lives, it is increasingly unlikely that a digital device is involved as goal, medium or simply ‘witness’ of a criminal event. Forensic investigations include collection, recovery, analysis, and presentation of information stored on network devices and related to network crimes. These activities often involve wide range of analysis tools and application of different methods. This work presents methods that helps digital investigators to correlate and present information acquired from forensic data, with the aim to get a more valuable reconstructions of events or action to reach case conclusions. Main aim of network forensic is to gather evidence. Additionally, the evidence obtained during the investigation must be produced through a rigorous investigation procedure in a legal context.
Agile adoption challenges in insurance: a systematic literature and expert re...CSITiaesprime
The drawback of agile is struggled to function in large businesses like banks, insurance companies, and government agencies, which are frequently associated with cumbersome processes. Traditional software development techniques were cumbersome and pay more attention to standardization and industry, this leads to high costs and prolonged costs. The insurance company does not embrace change and agility may find themselves distracted and lose customers to agile competitors who are more relevant and customer-centric. Thus, to investigate the challenges and to recognize the prospect of agile adoption in insurance industry, a systematic literature review (SLR) in this study was organized and validated by expert review from professional with expertise in agile. The project performance domain from project management body of knowledge (PMBOK) was applied to align the challenges and the solution. Academicians and practitioners can acquire the perception and knowledge in having exceeded understanding about the challenge and solution of agile adoption from the results.
Exploring network security threats through text mining techniques: a comprehe...CSITiaesprime
In response to the escalating cybersecurity threats, this research focuses on leveraging text mining techniques to analyze network security data effectively. The study utilizes user-generated reports detailing attacks on server networks. Employing clustering algorithms, these reports are grouped based on threat levels. Additionally, a classification algorithm discerns whether network activities pose security risks. The research achieves a noteworthy 93% accuracy in text classification, showcasing the efficacy of these techniques. The novelty lies in classifying security threat report logs according to their threat levels. Prioritizing high-risk threats, this approach aids network management in strategic focus. By enabling swift identification and categorization of network security threats, this research equips organizations to take prompt, targeted actions, enhancing overall network security.
An LSTM-based prediction model for gradient-descending optimization in virtua...CSITiaesprime
A virtual learning environment (VLE) is an online learning platform that allows many students, even millions, to study according to their interests without being limited by space and time. Online learning environments have many benefits, but they also have some drawbacks, such as high dropout rates, low engagement, and students' self-regulated behavior. Evaluating and analyzing the students' data generated from online learning platforms can help instructors to understand and monitor students learning progress. In this study, we suggest a predictive model for assessing student success in online learning. We investigate the effect of hyperparameters on the prediction of student learning outcomes in VLEs by the long short-term memory (LSTM) model. A hyperparameter is a parameter that has an impact on prediction results. Two optimization algorithms, adaptive moment estimation (Adam) and Nesterov-accelerated adaptive moment estimation (Nadam), were used to modify the LSTM model's hyperparameters. Based on the findings of research done on the optimization of the LSTM model using the Adam and Nadam algorithm. The average accuracy of the LSTM model using Nadam optimization is 89%, with a maximum accuracy of 93%. The LSTM model with Nadam optimisation performs better than the model with Adam optimisation when predicting students in online learning.
Generalization of linear and non-linear support vector machine in multiple fi...CSITiaesprime
Support vector machines (SVMs) are a set of related supervised learning methods used for classification and regression. They belong to a family of generalized linear classifiers. In other terms, SVM is a classification and regression prediction tool that uses machine learning theory to maximize predictive accuracy. In this article, the discussion about linear and non-linear SVM classifiers with their functions and parameters is investigated. Due to the equality type of constraints in the formulation, the solution follows from solving a set of linear equations. Besides this, if the under-consideration problem is in the form of a non-linear case, then the problem must convert into linear separable form with the help of kernel trick and solve it according to the methods. Some important algorithms related to sentimental work are also presented in this paper. Generalization of the formulation of linear and non-linear SVMs is also open in this article. In the final section of this paper, the different modified sections of SVM are discussed which are modified by different research for different purposes.
Designing a framework for blockchain-based e-voting system for LibyaCSITiaesprime
A transition to democratic rule is considered the first step down a long road towards Libya’s recovery and prosperity. Thus, it strives to improve the country’s elections by introducing new technologies. A blockchain is a distributed ledger that is characterised by independence and security. Therefore, it has been widely applied in various fields ranging from credit encryption and digital currency. With the development of internet technology, electronic voting (E-voting) systems have been greatly popularised. However, they suffer from various security threats, which create a sense of distrust among existing systems. Integrating blockchain with online elections is a promising trend, which could lead to make an election transparent, immutable, reliable, and more secure. In this paper, we present a literature review and a case analysis of blockchain technology. Moreover, a framework for an E-voting system based on blockchain is proposed. The methodology is adopted on the basis of three activities, they are identification of the relevant literature about E-voting, system modelling, and the determination of suitable technological tools. The framework is secure and reliable. Thus, it could help increase the number of voters and ensure a high level of participation, as well as facilitate free and fair electoral processes.
Development reference model to build management reporter using dynamics great...CSITiaesprime
The digital technology transformation impacts changes in business patterns that require companies to innovate to act appropriately in making strategic decisions quickly, precisely, and accurately to increase efficiency, be practical company performance, and impacts changes in business patterns that require companies to innovate to act appropriately in making strategic decisions quickly to improve the performance. An enterprise resource planning (ERP) system is one step toward achieving performance. ERP system is one step to achieving performance. ERP system is essential for companies to automate the efficiency of business processes. The decisions from management in implementing the ERP system are necessary for ERP implementation to be successful. However, in practice, companies still experience complexity. For that, it needs to be considered related a business process reference model is essential to enhance efficiency in implementing the ERP used. This research discusses the business process reference model based on the ERP dynamics great plain (GP) application aggregated using management reporter (MR) to help users better understand the practical overview. The methodology utilizes a reference model based on Microsoft Dynamics GP guidelines with a business process redesign approach. This contributes to developing business processes to help users understand using the ERP dynamics GP application.
Social media and optimization of the promotion of Lake Toba tourism destinati...CSITiaesprime
Tourism is one of the largest contributors to Indonesia's foreign exchange earnings, surpassing taxation, energy, and gas. This study seeks to investigate the use of social media to optimize the promotion of Lake Toba as a tourist destination, which has been impacted by the COVID-19 pandemic. Using interview techniques and live field observations, it was discovered that social media, particularly the Instagram platform, play a significant role in promoting Lake Toba tourism. The Department of Culture and Tourism of the North Sumatra Province uses landscape photography as its primary promotion method, which has proved to be more effective and interesting than conventional methods such as the distribution of brochures or the use of manuals. The capture procedure and techniques for landscape photography were carried out by professional photographers in collaboration with the Department of Culture and Tourism of the North Sumatra Province. In addition to providing information, tourism sumut's Instagram account functions as a platform to raise public awareness about Lake Toba tourism and as a promotional medium for North Sumatra's tourist attractions on an international scale. Department of Culture and Tourism of the North Sumatra Province collaborates with travel agencies and local communities to disseminate Lake Toba tourism information.
Caring jacket: health monitoring jacket integrated with the internet of thing...CSITiaesprime
One of the policies that have been made by the World Health Organization (WHO) and the Indonesian government during this COVID-19 pandemic, is to use an oximeter for self-isolation patients. The oximeter is used to monitor the patient if happy hypoxia which is a silent killer, happens to the patient. To maintain body endurance, exercise is needed by COVID-19 patients, but doing too much exercise can also cause decreased immunity. That’s why fatigue level and exercise intensity need to be monitored. When exercising, social distancing protocol should be also reminded because can lower COVID-19 spreading up to 13.6%. To solve this issue, the Caring Jacket is proposed which is a health monitoring jacket integrated with an IoT system. This jacket is equipped with some sensors and the global positioning system (GPS) for tracking. The data from the test showed the temperature reading accuracy is up to 99.38%, the oxygen rate up to 97.31%, the beats per minute (BPM) sensor up to 97.82%, and the precision of all sensors is 97.00% compared with a calibrated device.
Net impact implementation application development life-cycle management in ba...CSITiaesprime
Digital transformation in the banking sector creates a lot of demand for application development, either new development or application enhancement. Continuous demand for reimagining, revamping, and running applications reliably needs to be supported by collaboration tools. Several big banks in Indonesia use Atlassian products, including Jira, Confluence, Bamboo, Bitbucket, and Crowd, to support strategic company projects. We need to measure the net impact of application development life-cycle management (ADLM) as a collaboration tool. Using the deLone and McLean model, process questionnaire data from banks in Indonesia that use ADLM. Processing data using structural equation modeling (SEM), multiple variables are analyzed statistically to establish, estimate, and test the causation model. The conclusions highlight that system quality strongly affected only User Satisfaction (p=0.049 and β=0.39). Information quality strongly affected use (p=0.001 and β=0.84) and strongly affected user satisfaction (p=0.169 and β=0.28). Service quality strongly affected only use (p=0.127 and β=0.31). Conclusion research verifies the information system's achievement approach described by DeLone and McLean. Importantly, it was discovered that system usability and quality were key indicators of ADLM success. To fulfill their objective, ADLM must be developed in a way that is simple to use, adaptable, and functional.
Circularly polarized metamaterial Antenna in energy harvesting wearable commu...CSITiaesprime
When battery powered sensors are spread out in places that are sometimes hard to reach, sustaining them become difficult. Therefore, to develop this technology on a large scale such as in the internet of things (IoT) scenario, it is necessary to figure out how to power them. The proffered solution in this work, is to get energy from the environment using energy harvesting Antennas. This work presents a wearable circular polarized efficient receiving and transmitting sensors for medical, IoT, and communication systems at the frequency range of WLAN, and GSM from 900 MHz up to 6 GHz. Using a cascaded system block of a circularly polarized Antenna, a rectifier and t-matching network, the design was successfully simulated. A DC charging voltage of 2.8V was achieved to power-up batteries of the wearable and IoT sensors. The major contribution of this work is the tri-band Antenna system which is able to harvest reflected Wi-Fi frequencies and also GSM frequencies combined in a miniaturized manner. This innovative configuration is a step forward in building devices with over 80% duty cycle.
An ensemble approach for the identification and classification of crime tweet...CSITiaesprime
Twitter is a famous social media platform, which supports short posts limited to 280 characters. Users tweet about many topics like movie reviews, customer service, meals they just ate, and awareness posts. Tweets carrying information about some crime scenes are crime tweets. Crime tweets are crucial and informative and separate classification is required. Identification and classification of crime tweets is a challenging task and has been the researcher’s latest interest. The researchers used different approaches to identify and classify crime tweets. This research has used an ensemble approach for the identification and classification of crime tweets. Tweepy and Twint libraries were used to collect datasets from Twitter. Both libraries use contrasting methods for extracting tweets from Twitter. This research has applied many ensemble approaches for the identification and classification of crime tweets. Logistic regression (LR), support vector machine (SVM), k-nearest neighbor (KNN), decision tree (DT), and random forest (RF) Classifier assigned with the weights of 1,2,1,1 and 1 respectively ensemble together by a soft weighted Voting classifier along with term frequency – inverse document frequency (TF-IDF) vectorizer gives the best performance with an accuracy of 96.2% on the testing dataset.
National archival platform system design using the microservice-based service...CSITiaesprime
Archives play a vital function concerning the dynamics of people and nations as an instrument to treasure information in diverse domains of politics, society, economics, culture, science, and technology. The acceleration of digital transformation triggers the implementation of a smart government that supports better public services. The smart government encourages a national archival system to facilitate archive producers and users. The four electronic-based government system (SPBE) factors in the archival sector and open archival information system (OAIS) as a data preservation standard are the benchmarks in developing this study's national archival platform system. An improved service computing system engineering (SCSE) framework adapted to the microservice architecture is used to aid the design of the national archival platform system. The proposed design met the four-factor service design validation of coupling, cohesion, complexity, and reusability. Also, the prototype suggests what resources are needed to put the design into action by passing the performance test of availability measurement.
Antispoofing in face biometrics: A comprehensive study on software-based tech...CSITiaesprime
The vulnerability of the face recognition system to spoofing attacks has piqued the biometric community's interest, motivating them to develop anti-spoofing techniques to secure it. Photo, video, or mask attacks can compromise face biometric systems (types of presentation attacks). Spoofing attacks are detected using liveness detection techniques, which determine whether the facial image presented at a biometric system is a live face or a fake version of it. We discuss the classification of face anti-spoofing techniques in this paper. Anti-spoofing techniques are divided into two categories: hardware and software methods. Hardware-based techniques are summarized briefly. A comprehensive study on software-based countermeasures for presentation attacks is discussed, which are further divided into static and dynamic methods. We cited a few publicly available presentation attack datasets and calculated a few metrics to demonstrate the value of anti-spoofing techniques.
The antecedent e-government quality for public behaviour intention, and exten...CSITiaesprime
An The main objective of the study is to identify the antecedent of leadership quality, public satisfaction and public behaviour intention of e-government service. Also, this study integrated e-government quality to expectation-confirmation model. In order to achieve these goals, observational research was then carried out to collect primary information, using the method of data dissemination and obtaining the opinion of 360 from the public using the e-government service and some of the e-government and software quality experts. The results of the study show that the positive association among the e-government services quality and public perceived usefulness, public expectation confirmation, leadership quality and public satisfaction that also play a positive role on the public behavior intention.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
1. Computer Science and Information Technologies
Vol. 2, No. 2, July 2021, pp. 77~86
ISSN: 2722-3221, DOI: 10.11591/csit.v2i2.p77-86 77
Journal homepage: http://iaesprime.com/index.php/csit
Comparison of ESP programming platforms
Filip Rak, Józef Wiora
Department of Measurements and Control Systems, Silesian University of Technology, Gliwice, Poland
Article Info ABSTRACT
Article history:
Received Oct 1, 2020
Revised Feb 17, 2021
Accepted Mar 4, 2021
The growing popularity of ESP boards has led to the development of several
programming platforms. They allow users to develop applications for ESP
modules in different programming languages, such as C++, C, Lua,
MicroPython, or using AT Commands. Each of them is very specific and has
different advantages. The programming style, efficiency, speed of execution,
level of advancement, or memory usage will differ from one language to
another. Users mostly base their choice depending on their programming skills
and goals of the planned projects. The aim of this work is to determine, which
language is the best suitable for a particular user for a particular type of project.
We have described and compared the mentioned languages. We have prepared
test tasks to indicate quantified values. There is no common rule because each
of the languages is intended for a different kind of user. While one of the
languages is slower but simpler in usage for a beginner, the other one requires
broad knowledge but offers availability to develop very complex applications.
Keywords:
C
ESP8266
FreeRTOS
Lua
MicroPython
This is an open access article under the CC BY-SA license.
Corresponding Author:
Józef Wiora
Department of Measurements and Control Systems
Silesian University of Technology
Akademicka 2A, 44-100 Gliwice, Poland
Email: jozef.wiora@polsl.pl
1. INTRODUCTION
Nowadays ESP modules are becoming more and more popular. ESP systems are low-cost Wi-Fi
microcontrollers with full TCP/IP stack [1]. They are produced by Espressif Systems, a Chinese manufacturer.
Thanks to the integrated Wi-Fi module, they can be used in many internet of things (IoT) projects [2], [3]. IoT
is a network of physical objects which are not the only network of computers. They are devices of all type and
size which communicate with each other and share information based on stipulated protocols [4], [5].
Realization of the IoT systems can be found in such areas as smart buildings, smart cities, smart measuring
systems, smart energetic systems, or environmental monitoring. Because of the integrated Wi-Fi module, ESP
can work in two modes: Access Point (AP) or Station (STA) [6]. AP mode is frequently used in remote
monitoring and robotics to control any objects and collect measurement data [7]. STA mode is used to connect
the ESP board to a Wi-Fi network established by an access point. That allows users for the creation of their
own server where they can build their website. To provide communication between server and client, users can
use such implemented protocols as HTTP, WebSocket, or MQTT. These are only several existing technologies
available for users. Wide applications of the ESP boards attract many people to develop their own projects.
Several solutions and programming platforms have been created through the years which support programming
ESP modules. Espressif System provides an official Software Development Kit (SDK) which is a bundle of
utilities and device-level application programming interfaces with optimized and precompiled libraries. Based
on that SDK, other solutions have been created. Nowadays users can choose between programming in C, C++,
Lua, MicroPython (MP), and using AT Commands.
2. ISSN: 2722-3221
Comput. Sci. Inf. Technol., Vol. 2, No. 2, July 2021: 77 – 86
78
Due to several existing solutions, users may be confused about choosing which programming
language is the most appropriate for their purposes. Nowadays, the information which can be found by the
users concerns only the particular programming language. It is difficult to find a reliable comparison of the
existing solutions and valuable information that would clarify the reasons supporting the usage of the concrete
solution. The lack of good information may lead users to apply the most popular, not necessarily the most
appropriate ones. Therefore, they even may not realize that other solutions are available. According to our best
knowledge, there is no guide that familiarizes users with existing programming platforms that they can choose
to start developing their applications on the ESP modules. We can find many tutorials and a lot of information
on the internet regarding only specific language but none of them covers all platforms in one work. Every
language is very specific and has its outstanding features.
The existing problem is that users need to know and understand every platform separately and still
might be confused about which platform is the most appropriate to their needs. The inspiration for this work
was the inaccessibility of good comparisons and language performance tests. The overload of the non-specific
information causes those new users (students, hobbyists) may get lost and discouraged to use different
programming languages. In this work, researches have been conducted orientated toward familiarizing
potential users with the existing solutions by clearly discussing available platforms. Thanks to this work users
can base their choice without wasting time searching separated knowledge. It delivers the most important
information about each platform and compares them. It allows selecting the most suitable solutions for the
individual types of users. Researches concern each one of the listed programming languages and provide clear
conclusions that answer the questions: Which programming platform is the best for a particular user? Which
one is the most suitable for the particular type of project?
2. ESP PROGRAMMING
In this research, four ways of programming the ESP boards are considered. Development in C low-
level programming language is often connected with Real-Time Operating System (RTOS). The official
supported platform by Espressif is ESP8266 RTOS SDK which uses FreeRTOS as an operating system. The
second approach to program ESP modules is the C++ language which uses Arduino libraries. It is the most
popular solution which is supported by several programming environments like Arduino IDE, Visual Studio
Code (VSC), or even Eclipse. The next are to use MP or Lua languages. They both require a dedicated firmware
that has to be deployed into the board memory. They both offer a powerful tool in the shape of a file system.
It can store more than one developed program, out of which a user can run whichever program he wishes. The
last existing solution is to use AT Commands which allow sending commands to the board via serial
communication. That way of programming an ESP board has not been considered in this work because it is
intended to use it as a Wi-Fi module [8]-[10]. It is a very fast way to check communication with the board or
test some modules but it is hard to compare it with programming languages.
2.1. C++
Usually, users do not have a choice between programming languages that they can use to program a
particular microcontroller. ESP boards are supported by several solutions. Users, who start programming, will
be influenced by a popularity indicator like also by the number of available and already implemented solutions.
In that case, the most popular way to program ESP microcontrollers is the C++ language. The internet is full
of prepared tutorials in different forms, so beginners might think that there is no other way to program that
microcontroller. This popularity may be good because it allows for fast and easy getting started with
programming ESP modules. The popularity of microcontroller programming in C++ is grounded in the success
of Arduino boards. They have become very popular thanks to the number of available projects. Based on the
existing Arduino libraries, users have to implement Arduino core for ESP8266. That core allows for writing
the code using familiar Arduino functions and libraries. Thanks to the dedicated environments, it is simple to
run implemented sketches directly on ESP8266 without an external microcontroller. The ESP8266 Arduino
core includes all necessary libraries which support: control GPIO, communication over Wi-Fi using TCP and
UDP, set up HTTP, mDNS and DNS servers, use a file system in flash memory, work with SD cards, servos,
and communication protocols: SPI, I2C, or UART [11]-[15].
Working with ESP8266 Arduino core is easier for users who already got familiar with programming
Arduino boards. Thanks to very well implemented libraries, in most cases users have only to call initialization
function and then some control functions. To compile the written code, users can use several Integrated
Development Environments (IDE). During this work, we have tested three most popular IDEs which are:
Arduino IDE, Visual Studio Code, and Eclipse. Each of those IDEs requires a couple of steps to be performed.
These allow flashing the written sketches into the board memory. Arduino IDE requires adding a package with
the ESP boards that allow installing the ESP8266 platform. That package offers also a lot of prepared sketches.
3. Comput. Sci. Inf. Technol.
Comparison of ESP programming platforms (Filip Rak)
79
One thing needed to do is choosing the correct board and set a communication port. In those few steps, Arduino
IDE is ready to flash programs. The second environment is the Visual Studio Code. It is a free code editor. It
requires installing a special dedicated package called Platform IO. That package can be also installed in Atom
IDE. Platform IO is an open-source ecosystem for IoT development with a cross-platform build system [12].
That IDE allows developing software for more than 800 embedded boards and more than 35 development
platforms such as Arduino, ESP8266, STM32, or Raspberry Pi. It is a very powerful package with a useful
handful of add-ons. The third tested environment is Eclipse. It is mostly known for users who work with boards
like STM32 or AVR. Eclipse also requires a dedicated package called Sloeber, which is free, open-source, and
designed for Arduino boards, therefore it requires adding the ESP boards in the same way as in Arduino IDE.
After these steps, Eclipse is ready to create a project and flash the program.
2.2. Lua
Another approach to program ESP boards is to use NodeMCU firmware that is an open-source Lua
based firmware for the ESP8266 [15]. Dedicated ESP8266 boards with already loaded NodeMCU firmware
are available on the market. The ESP8266 SDK can be categorized into two types: Non-OS SDK and RTOS
SDK. The Non-OS SDK does not base on an operating system, it uses timers and call-backs as the main way
to perform various functions. NodeMCU is implemented in C programming language and it is layered on the
Espressif Non-OS SDK. The software is nowadays community-supported and the firmware can be run on any
ESP board. The main Lua designed goals are speed, portability, extensibility, and small kernel size. The Lua
is an asynchronous and event-driven script language [16], [17]. Other languages are procedural that makes a
clear flow of execution [18], [19]. Lua requires the asynchronous mode and other approaches to develop and
structure their applications. Referring to event-driven programming style, tasks are associated with given
events by using SDK API which registers call-back functions to the corresponding events. All events are
queued internally in SDK. Then firmware calls the task associated with a particular event one at a time. The
SDK contains a scheduler that executes queued tasks with FIFO (first in first out) formula. An important thing
is to obey time limits because tasks that run for more than 15 ms can disrupt other tasks, for example, Wi-Fi
working. The recommendation is to keep medium priority tasks under 2 ms and low priority tasks under 15 ms
to prevent the responsive work of the system.
The running watchdog will reset the microcontroller if the task takes longer than 500ms. Another
limitation is the availability of the free Random-Access Memory (RAM) space. ESP hardware executes code
in RAM but it can be also executed from Flash-mapped address space. Developers must be careful because it
is easy to go out of free memory when they develop applications using the Lua core Run-Time System (RTS).
The Lua RTS assumes that both Lua data and code are stored in RAM. The solution is to use the Lua Flash
Store (LFS) patch which modifies the Lua RTS. It allows the Lua code and its associated constant data to be
executed directly out of flash memory, in the same way, like is NodeMCU firmware. The NodeMCU project
uses the SPI Flash File System (SPIFFS) to store files in the flash memory. The SDK invokes a start-up hook
within the firmware on boot-up mode. During boot, firmware code initializes the Lua environment, and next it
looks for init.lua file. It is a default executed after booting. In this file, the user should do any required
initializations, call timer alarms, bind call-back routines, or run other scripts. More than one script can be stored
in the SPIFFS that can be executed from init.lua file or by calling dedicated dofile command. Lua firmware
offers several commands which can be used to manage the file system, run scripts, or reset the board. That is
possible after communicate with the board using serial communication.
The default baud rate is set in firmware to 115 200 bit/s. ESP boards running Lua scripts requires
dedicated firmware. The building of firmware has to be done by users. The ready firmware is not more available
because of the increasing number of modules. There are three ways: #1 using Cloud Build Service intended for
users who need a ready-made firmware to start developing their applications. On the website, users may choose
modules: GPIO, UART, PWM, Timers, ADC, or Wi-Fi. After the task and set up their properties, the firmware
will be prepared and send to the email box as a bin file. #2 using Docker Image which is intended for users
who do not need full control over the complete toolchain. #3 setting up a Linux virtual machine. It uses the
Linux build environment and offers a powerful environment with the complete toolchain. Once the firmware
is created, the user may use esptool.py to flash the firmware into board memory. It is supported by many
operating systems such as Windows, Linux, or macOS. Windows and macOS users can also use NodeMCU
PyFlasher. The ESPlorer or NodeMCU-Tool allows for uploading a written script. ESPlorer IDE is a
multiplatform tool with a graphical interface. It supports programming in LUA like also in MP. After
connecting with the ESP board using serial communication, users can also use AT Commands that are
supported by this IDE. The NodeMCU-Tool is based on Node.js and it offers only a console terminal.
4. ISSN: 2722-3221
Comput. Sci. Inf. Technol., Vol. 2, No. 2, July 2021: 77 – 86
80
2.3. MicroPython
MicroPython (MP) is a tiny open-source, interpreted, and object-oriented scripting language that runs
on microcontrollers. It is a high-level programming language based on Python core. The MP idea is to keep
code as simple as possible, so it is friendly for beginners [20]-[23]. The structure of the code is similar to the
structure of Arduino applications. In opposition to Lua, MP is procedural. This simplicity has its disadvantages.
It comes at the expense of speed and memory usage compared to the Arduino core or NodeMCU core. One of
the biggest differences between MP and Lua is that the former is an interpreted language whereas the latter is
a natively compiled code. It reveals that MP might be slower and more memory consumed what will be
examined in this work. Moreover, applications that have tight timings, might not work with this programming
language [20]. Thanks to the extensibility of MP with low-level languages like C or C++, users can mix them
to provide faster work when it is needed. The greatest unique purpose of MP is the possibility to use the Read
Evaluate Print Loop (REPL). This tool allows for connecting with the board and executing the code without
any need of compiling or uploading the code. The applications can be just run on the board. This is a very fast
way to test developed applications and run commands. Users can access REPL either by serial communication
through the UART or by a Wi-Fi connection. USB connection requires a terminal emulator such as Putty or
Hercules. Linux users can use the picocom terminal application.
The communication works with speed 115 200 bit/s. Through the REPL, users can even write code
line by line and each of the lines will be executed up to date. Working with MP requires dedicated firmware.
In contrast to Lua firmware, users do not have to build it by themselves. It is already done and the user can
choose between three versions. A stable version is recommended for beginner users. There are two types of
daily versions that are intended for more experienced MP developers. To deploy the firmware onto the ESP
module it is highly recommended to use esptool.py which is currently supported tool. It requires an installed
Python package. Then through the system console, esptool can be installed. Once the firmware is deployed the
board is ready to use with REPL. Thanks to the internal filesystem, users can store more developed applications
onto the ESP board and run whichever they want. Moreover, it is possible to create own directories and manage
the filesystem. After boot, the firmware runs the boot.py file, and then it looks for the main.py file [20]. If the
user wants to ensure executing application after every boot, he has to name that file as main.py. REPL is a very
useful tool at the beginning of working with MP but it is not a good solution for developing more complex
applications. There are several tools to manage filesystem: REPL, ampy, rshell, or mpfshell. During this work,
we used ampy, a cross-platform command-line tool. Any editor can be used to write code, such as the Visual
Studio Code. There is also a dedicated environment called uPyCraft IDE [24]. This IDE is not further supported
for Linux users but it works under the Windows system. It offers a code editor with syntax checking. It also
includes needed tools to manage the filesystem and run applications.
2.4. C (RTOS)
The last approach is to use the C language which is the most beneficial for developing embedded
systems. In the case of ESP8266 boards, using a C is related to Real-Time Operating System (RTOS). The
official supported SDK by Espressif System is ESP8266 RTOS SDK which uses FreeRTOS as an operating
system. FreeRTOS is intended for microcontrollers and small microprocessors which is distributed freely under
the open-source license [25]. The system is multitasking which allows executing several tasks
pseudoconcurrently [26]. To allocate time for particular tasks, RTOS uses a scheduler. It is also a pre-emptive
kernel that means that the currently running task can be expropriated when an event occurs. Using RTOS SDK
to develop applications for ESP modules is not recommended for beginner developers. It requires knowledge
about programming in C like also the ability to use pointers. Furthermore, it is important to have at least a basic
knowledge of RTOS working. The basic knowledge should at least include: creating tasks, task scheduling up
to their priority, task states, queues, semaphores, and mutex. Using RTOS has several benefits which are unique
in comparison to other solutions. It allows for creating multitask applications that are scheduled by the system,
which creates the illusion of executing several tasks simultaneously. RTOS is more deterministic because
events and interrupts are handled within a defined time. Each task is allocated in a defined stack space that
allows predicting memory usage. It is much more powerful than C++ or MP for more complicated and complex
applications [25]. Working with ESP8266 RTOS SDK does not require any dedicated firmware. The user has
to start with setting a toolchain. It includes programs to compile and build applications. It also allows flashing
them into the board memory.
The toolchain requires a built-in make environment that is not included in the Windows system. Due
to this issue, the preparation of the environments depends on the operating system. Both Linux and macOS
systems require only installing xtensa tool and add its source path to the PATH environment variable. That will
allow using dedicated commands in the system terminal. The GNU-compatible environment has been prepared
for Windows users and it uses the MSYS2 platform. After unpacking it, users can work using a terminal. After
setting the toolchain, we need to get ESP8266 RTOS SDK. It includes all of the required libraries which are
5. Comput. Sci. Inf. Technol.
Comparison of ESP programming platforms (Filip Rak)
81
provided by Espressif. This repository includes also several examples that can be used to fast check the
correctness of Toolchain working. They can act as a user’s first project’s base. Not all libraries were included
in official ESP8266 RTOS SDK. The ESP OPEN RTOS SDK has been also used in research work. The SDK
is a community-developed open-source FreeRTOS. It is intended to use in both commercial and open-source
projects. This SDK contains much more practical examples and have more working libraries than official
Espressif release. Eclipse can also be used for developing an application. Every example includes makefile
which contains a set of directives used by the make build tool to generate a target. The project can be created
in Eclipse from the existing makefile. Then, after several steps of settings project properties, it will be possible
to build and compile the whole project. Compiled code can be flashed in two ways. The first is to use terminal
calling ‘make flash’ command which is included in the xtensa tool. The second is to create a target in the
Eclipse environment that allows flash code directly from the application. The more complicated situation is in
the case of OPEN RTOS SDK. It requires to add in Eclipse all library sources included in SDK. Official
ESP8266 RTOS SDK only requires adding one environment variable IDF_PATH which includes the full path
to the directory where SDK is installed.
3. RESEARCH METHOD
Out of the ESP boards, the three series of the ESP modules can be distinguished which are ESP8266,
ESP32, and ESP32-S2. All modules are systems on a chip (SoC) that use the 32-bit Xtensa microcontrollers
developed by Tensilica. The ESP8266 and ESP32 modules use the same LX6 processor whereas the newest
ESP32-S2 uses the LX7 processor. The ESP8266 module is the poorest out of the distinguished series. It runs
at 80 MHz or 160 MHz, has a 10-bit analog to digital converter (ADC), and 18 available pins. It includes
peripherals such as UART, GPIO, I2C, I2S, SDIO, PWM, ADC, and SPI. The ESP32 differs from an older
predecessor that it includes adjustable clock frequency, ranging from 80 MHz up to 240 MHz. It has 38 pins
and more peripherals such as Bluetooth, SD cards interface, HALL sensor, and better 12-bit ADC. The newest
series is ESP32-S2 which has 43 GPIO pins and includes different peripherals. In the ESP32 series, the security
has been improved, but it has been more refined in the S2 series. ESP8266 is weak in this respect, but the
newest modules provide flash encryption, secure boot, signature verification, and provide additional algorithms
such as SHA or RSA. In this work, the ESP8266 module integrated on the Wemos D1 mini board has been
tested. Figure 1 presents the electrical wiring of the board with particular peripherals. The entire electrical
system creates a development board that can be used to learn and test working with ESP8266 module. In order
to perform tests, the following benchmarks have been prepared:
− #1. Blinked LED;
− #2. Serial communication using UART;
− #3. ADC conversion with sending read values through UART;
− #4. LED brightness control using PWM controlled by potentiometer;
− #5. Servomotor control using PWM controlled by potentiometer;
− #6. Temperature and humidity measurement with DHT22 1-wire sensor;
− #7. Communication with OLED display using I2C protocol;
− #8. Simple web-server.
The prepared benchmarks have been chosen to use different popular modules and protocols which
allow us to fully test an ESP8266 module. They have been realized in the mentioned programming languages
and environments. To compare the languages, the dedicated indicators have been used that are: number of code
lines, flashed file size, flashing duration, and maximum Frames per Second (FPS) that can be obtained on
OLED display. They allow judging the differences more objectively than mentioning the advantages and
disadvantages of a particular language.
6. ISSN: 2722-3221
Comput. Sci. Inf. Technol., Vol. 2, No. 2, July 2021: 77 – 86
82
Figure 1. Electrical circuit applied in tests
4. RESULTS AND DISCUSSION
The tests performed led to quantified values presented in Tables 1-4. The first indicator, which is the
number of code lines, has been presented in Table 1. Depending on the particular language, the values are
different. The results confirm the main paradigm of MP and Lua languages to keep code as short as it is
possible. The smallest value has been reached for those two languages. Arduino core is characterized by a few
more code lines than Lua and MP. The worst results achieved a C language. It stems from a more complex
environment in the form of RTOS. Users have to add extra libraries and do initializations on their own. There
are not dedicated functions to initialize for example GPIO, but on the other hand, it has a big advantage. Users
can initialize port in a more advanced way because they can setup properties such as pullups or external
interrupts. MP and Lua keep code very short but users have to bear in mind that MP is not so powerful like
Lua. In the case of MP, the reduction of the code led to a slowdown and to cause troubles with tight timings.
Table 1. Number of lines
Test No. Test Name C++ Lua MP C
#1 Blink LED 12 12 8 37
#2 Serial 8 3 5 32
#3 ADC 10 6 8 36
#4 Brightness 9 9 6 42
#5 Servo 13 10 7 43
#6 DHT22 18 7 11 43
#7 OLED 40 24 20 140
#8 Server 47 15 15 150
Table 2 presents the second indicator which is the size of the flashed file. We only check the size of
the file which must be flashed each time the user makes a change in the code. The analysis concludes that the
less optimal solution is using the Arduino core. In this case, MP and Lua have similar results and the scripts
are very light-weight. They both owe it to the firmware which is flashed into Flash memory. In the case of Lua
language, the firmware used during this work has 495616 bytes but it includes all modules necessary to
implement benchmarks. When we take the firmware into consideration, the general size will be bigger than
Size reached using the Arduino core. The size of NodeMCU firmware depends on the number of
included modules. For a particular application, the number of modules can be reduced to a minimum that will
free more Flash space. Due to varying firmware size, it is not taken into consideration during comparison, but
it is an important aspect to keep in mind. Even C language which uses RTOS and requires additional libraries
to handle system working takes much less memory than Arduino core. In previous consideration, the RTOS
SDK has the worst value of the indicator but it does not affect used memory space. Another checked indicator
7. Comput. Sci. Inf. Technol.
Comparison of ESP programming platforms (Filip Rak)
83
is the duration of the flashing process, summarized in Table 3. The best times reached Lua and MP. It takes
about one second for the small programs. C++ and C languages have very similar results. Before flash, they
both check for changes in code from the previous build and compile them using the xtensa tool. The big
difference is between flashing duration using official ESP8266 RTOS SDK and OPEN RTOS SDK. The
official distribution is faster than the open-source version. Developing with OPEN RTOS SDK is not so
efficient in comparison to Lua or MP. Every flash, even after the small change, takes much more time.
Developing using Lua or MP allows very fast test applications and check the impact of small changes. The
internal file system, which allows store more applications or scripts, also supports faster development. There
are also differences between particular environments that are used to flash and develop the application with
Arduino core. The Arduino IDE and Eclipse have similar values of the indicator, but VSC needs double more
time to flash applications. It is probably a result of different flashing speed set directly in the environment.
Table 2. Flashed file size in bytes
Test No. Test Name C++ Lua MP C
#1 Blink LED 261856 242 144 145664
#2 Serial 266448 89 75 149244
#3 ADC 267312 194 141 144288
#4 Brightness 263072 371 138 151104
#5 Servo 263408 421 158 151120
#6 DHT22 268784 323 199 154304
#7 OLED 282656 662 436 (5930)* 425984
#8 Server 316800 444 442 270336
*This application required an additional library to interface OLED display which is not
included in the firmware. The value in parentheses is a summary of the script and the
library.
Table 3. Flashing time in seconds
Test No. Test Name C++
(Arduino IDE)
C++
(VSC)
C++
(Eclipse)
Lua MP C
#1 Blink LED 10.0 22.3 10.6 < 1 1 10.8
#2 Serial 10.2 22.2 11.4 < 1 1 11.1
#3 ADC 10.3 22.6 13.7 < 1 1 10.7
#4 Brightness 10.2 22.8 13.5 < 1 1 11.2
#5 Servo 10.3 22.0 13.5 < 1 1 11.2
#6 DHT22 10.6 22.9 13.2 < 1 1-2 11.3
#7 OLED 13.5 23.4 13.8 < 1 1-2 39.0*
#8 Server 20.0 26.0 14.5 < 1 1-2 25.0*
* The applications have been implemented using OPEN RTOS SDK where the others use official ESP8266 RTOS SDK.
The last test was to check the number of FPS that can be reached by particular languages on the OLED
display – Table 5. It uses the SSD1306 controller and I2C communication protocol. The results are presented
in Table 4 and they prove the thesis that MP is slower than other solutions. It allows us to get only 8 FPS
whereas Arduino core reaches up 35 FPS. In that case, the C language is slower than C++, because RTOS has
to switch the threads. The available library could be also better written and optimized in C++ which affects the
results. The Lua does not allow for using the while loop, which causes those users cannot do things as fast as
they wish. The task waits for the appropriate event such as timer interrupt. Any try to create an infinity loop
will cause a panic error and the board will be restarted by the watchdog. The board will be suspended and the
only way to fix it is to reflash all firmware. The task which refreshes the display must be included in the
callback function which is called by the registered timer. When the time was set to 500 ms (after which the
function is executed) we obtained the expected 2 FPS. Then when we were reducing the time, the FPS was not
growing up. For timer set to 200 ms we did not get the 5 FPS but 2/3 FPS. After reducing to a very small
period, we got maximally 4 FPS. This value is much below the expectations, so we leave it as an open problem
where more research is suggested. The good score reached by the Arduino core does not prove that it is the
most powerful platform. The efficiency of the Lua and RTOS SDK will be noticeable only in more complex
projects. The FPS test consisted of displaying one inscription and clearing the display as fast as possible. When
the application has to do more tasks, the FPS drop in the case of the Arduino core could be higher.
Users, who decided to use the C++ language should also consider which programming environment
they want to use. The Arduino IDE is the poorest of the three tested programs. Visual Studio Code and Eclipse
allow setting the dark mode which is desired by the developers. They include also additional features that help
users during programming. One of them is code autocompletion and syntax prompting which speed up the
coding. They also allow us to divide the window horizontally or vertically and open in a new window another
8. ISSN: 2722-3221
Comput. Sci. Inf. Technol., Vol. 2, No. 2, July 2021: 77 – 86
84
source code file. VSC and Eclipse help users in navigating in the code and they highlight errors instantly. Table
5 summarizes the above-mentioned languages. For each language, the pros and cons have been listed.
Table 4. Display refreshing frames per seconds
Language FPS
C++ 35
Lua 4*
MP 7 to 8
C 27
* Due to the asynchronous and event-driven programming style in Lua
language, it is impossible to use while loop and to refresh display as fast as it is
possible.
Table 5. Features of tested languages
Language Advantages Disadvantages
C++ supported by several environments
availability of many examples
easy way to start working with ESP
require only elementary knowledge
size of the flashed file is not optimal
Lua short programming codes
internal file system which can store more scripts
the small size of scripts size
fast execution of the code
require to build firmware by user
different programming style
easy to go out of free RAM
programs executed in RAM if users do not use LFS
hard to debug
a very bad description of code errors
a small number of examples
MP short programming codes
the small size of applications
users can use REPL
run application without flashing them
internal file system which can store more applications
much slower than rest languages
applications that require tight timings may not work
it is an interpreted language
use more memory
require firmware
C work with RTOS
allow developing more complex applications
predictable working
better memory management
availability of several examples
require an advanced knowledge
hard to get started
longer codes than in other languages
5. CONCLUSION
The conducted researches prove that there is no perfect and unique solution for programming language
choice. Every language has its advantages and disadvantages. The new knowledge that comes from the
performed analysis allows us to answer the questions stated in the Introduction. It brings information for new
users about efficiency and also allows the comparison of the particular language. This comparison gives the
opportunity to choose a proper solution by a certain kind of developer. Previously it was not obvious which
solutions should be used and it also was impossible to find a comparison of the given platforms. The users of
the microcontrollers can be categorized by their knowledge and their developing experience. We decided to
split them up into 3 groups: beginners, intermediate and advanced developers. Unambiguously, we can state
that the best choices for beginners are MP and C++. They both do not require advanced knowledge about
programming. MP is characterized by keeping code as short as it possible and it is not intended for a complex
application. From the FPS tests, we conclude that the Arduino core is much more powerful than MP and allows
more advanced development. MP will be also a good choice for users who are already familiar with Python
language and their purpose is not to build complex applications with tight timings. It is also easy to get started
working with these languages, which is desired by beginner users.
The intermediate developers are users, who worked previously with other microcontrollers and have
already gained basic knowledge in embedded development. They can decide to use Lua, but we mark that not
every user will be able to work with an event-driven programming style. The Lua keeps also code short but
better efficiency and faster work differ Lua from MP. This platform is desired for users who want to create
more complex applications but during conducting the benchmarks we also got unpredictable working and
crashes. The users should stay aware and use LFS for official releases of the applications. We also suggest that
C++ might be a good choice because it gives a lot of useful examples and the FPS test proved that its efficiency
does not stand out from other solutions. For users who are very advanced developers and have knowledge
about RTOS, the C programming language is intended. The ESP8266 RTOS SDK is desired to build very
complex applications that require RTOS to handle all tasks. It is a very powerful tool and it is unnecessary to
9. Comput. Sci. Inf. Technol.
Comparison of ESP programming platforms (Filip Rak)
85
use that SDK to develop some simple applications. The better choice will be to use C++ or MP which are very
easy to get started in opposite to Lua and RTOS SDK.
Another new knowledge result from the researches and tests is the possibility to adopt the proper
solution for the users’ aim. It leads to the second approach which is to categorized users by their project goals.
We have distinguished three levels of the projects: Do It Yourself (DIY) projects, more complex applications
but not intended for sale, and very complex applications desired for sale. For small applications and DIY
projects, the C++ or MP should be used, because they offer the fastest way to get started and fast development.
Due to the better efficiency of LUA and C++, we suggest to use them in more complex applications which use
more modules and have to handle more tasks. For users who are building more complex devices that can be
intended for sale, the C with RTOS and LUA languages are recommended. The RTOS provides stable and
predictable work that is desired in these devices. The analysis of the result and summary based on the
previously performed analysis led to clear conclusions that offer concrete solutions for specific users. They
suggest which platform should be used and give the view for all languages in one work. Every user based on
the conducted researches can regard given indicators and base their choice on them. The basic general work
has been done and we encourage readers to continue our researches by testing more deeply the efficiency of
the particular platforms. The next work should be more targeted at performing the speed tests and specify the
conclusions about efficiency. We encourage to especially test the NodeMCU firmware and to solve the open
problem with LUA available at https://github.com/MrHause/OLED_FPS_LUA.
ACKNOWLEDGEMENT
This work was funded by the Polish Ministry of Science and Higher Education.
REFERENCES
[1] A. Patel, P. Devaki. “Survey on NodeMCU and Raspberry Pi: IoT,” International Research Journal of Engineering
and Technology, vol. 06, no. 4, pp. 5101-5105, 2019.
[2] J. Mesquita, D. Guimarães, C. Pereira, C. Santos, L. Almeida, "Assessing the ESP8266 WiFi module for the Internet
of Things," 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA),
Turin, 2018, pp. 784-791.
[3] A. G. Azwar, et al. "Smart Trash Monitoring System Design Using NodeMCU-based IoT," 2019 IEEE 13th
International Conference on Telecommunication Systems, Services, and Applications (TSSA), Bali, Indonesia, 2019,
pp. 67-71.
[4] K. K. Patel, S. M. Patel, “Internet of Things-IOT: Definition, Characteristics, Architecture, Enabling Technologies,
and Application, Future Challenges”. International Journal of Engineering Science and Computing, vol. 6, no. 5, pp.
6122-6131, 2016.
[5] L. K. P. Saputra, Y. Lukito, "Implementation of air conditioning control system using REST protocol based on
NodeMCU ESP8266," 2017 International Conference on Smart Cities, Automation & Intelligent Computing Systems
(ICON-SONICS), Yogyakarta, 2017, pp. 126-130.
[6] M. Gergeleit, “Autotree: Connecting Cheap IoT Nodes with an Auto-Configuring WiFi Tree Network”. 2019 Fourth
International Conference on Fog and Mobile Edge Computing (FMEC), Rome, Italy, 2019, pp. 199-203.
[7] H. Ouldzira, et al. "Remote monitoring of an object using a wireless sensor network based on NODEMCU ESP8266,"
Indonesian Journal of Electrical Engineering and Computer Science, vol. 16, no. 3, pp. 1154-1162, 2019.
[8] M. R. Sahay, M. K. Sukumaran “Environmental Monitoring System Using IoT and Cloud Service at Real-Time,”
EasyChair Preprint, no. 968, 2019
[9] S. P. Makhanya, E. M. Dogo, N. I. Nwulu, U. Damisa, "A Smart Switch Control System Using ESP8266 Wi-Fi
Module Integrated with an Android Application," 2019 IEEE 7th International Conference on Smart Energy Grid
Engineering (SEGE), Oshawa, ON, Canada, 2019, pp. 125-128.
[10] D. Bismor, "System for Vehicle Sound and Vibration Monitoring using MEMS Sensors," 2019 Signal Processing:
Algorithms, Architectures, Arrangements, and Applications (SPA), Poznan, Poland, 2019, pp. 50-55.
[11] Jenifer, D. J. Aravindhar, “Iot Based Air Pollution Monitoring System Using Esp8266-12 With Google Firebase”,
International Conference on Physics and Photonics Processes in Nano Sciences, vol. 1362, Art. no. 012072, 2019.
[12] I. Grokhotkov, “ESP8266 Arduino Core Documentation. Release 2.7.1-7-g4519db8”. 2020.
[13] A. Ara1, S. Jawaligi, “NodeMCU (ESP8266) Control Home Automation using Google Assistant”, International
Research Journal of Engineering and Technology, vol. 6, no. 7, 3644-3648, 2019
[14] S. Barai, D. Biswas, B. Sau, "Estimate distance measurement using NodeMCU ESP8266 based on RSSI technique,"
2017 IEEE Conference on Antenna Measurements & Applications (CAMA), Tsukuba, 2017, pp. 170-173.
[15] L. Shkurti, et al. “Development of ambient environmental monitoring system through wireless sensor network (WSN)
using NodeMCU and “WSN monitoring,” 2017 6th Mediterranean Conference on Embedded Computing (MECO),
Bar, 2017, pp. 1-5.
[16] R. Ierusalimschy, L. H. de Figueiredo, W. Celes, “The evolution of Lua”, Proceedings of the third ACM SIGPLAN
conference on History of programming languages. 2007, pp. 2-1 – 2-26.
10. ISSN: 2722-3221
Comput. Sci. Inf. Technol., Vol. 2, No. 2, July 2021: 77 – 86
86
[17] J. Ch. Herman, "Beginning Lua Scripting." in Beginning Game Development with Amazon Lumberyard. Apress,
Berkeley, CA, 2019, pp. 167-190.
[18] M. Soldevila, B. Ziliani, B. Silvestre, D. Fridlender, F. Mascarenhas, "Decoding Lua: formal semantics for the
developer and the semanticist," Proceedings of the 13th ACM SIGPLAN International Symposium on Dynamic
Languages, 2017, pp. 75-86.
[19] J. T. P. Wibowo, B. Hendradjaya, Y. Widyani, "Unit test code generator for lua programming language," 2015
International Conference on Data and Software Engineering (ICoDSE), Yogyakarta, 2015, pp. 241-245, doi:
10.1109/ICODSE.2015.7437005.
[20] Ch. Bell, “MicroPython for the Internet of Things”. Apress 2017.
[21] M. Khamphroo, N. Kwankeo, K. Kaemarungsi, K. Fukawa, "MicroPython-based educational mobile robot for
computer coding learning," 2017 8th International Conference of Information and Communication Technology for
Embedded Systems (IC-ICTES), Chonburi, 2017, pp. 1-6.
[22] S. Plamauer, M. Langer, "Evaluation of MicroPython as Application Layer Programming Language on CubeSats,"
ARCS 2017; 30th International Conference on Architecture of Computing Systems, Vienna, Austria, 2017, pp. 1-9.
[23] R. K. Kodali, K. S. Mahesh, "Low cost ambient monitoring using ESP8266," 2016 2nd International Conference on
Contemporary Computing and Informatics (IC3I), Noida, 2016, pp. 779-782.
[24] K. Dokic, B. Radisic, M. Cobovic. "MicroPython or Arduino C for ESP32-Efficiency for Neural Network Edge
Devices." International Symposium on Intelligent Computing Systems. 2020, pp. 33–43.
[25] R. Goyette, “An Analysis and Description of the Inner Workings of the FreeRTOS Kernel”, Carleton Univ. 2007.
[26] L. Bogdano, R. Ivanov, "Flash Programming Low Power Microcontrollers over the Internet," 2019 IEEE XXVIII
International Scientific Conference Electronics (ET), Sozopol, Bulgaria, 2019, pp. 1-4.
BIOGRAPHIES OF AUTHORS
Filip Rak was born in Poland in 1996. He received the Eng. degree in Automation and Robotic
from Silesian Technical University in 2019. Currently a M.Sc. student in Automation and Robotic
with Robotic specialization at the same university. His major research interests are the Internet of
Things, embedded systems, and software development.
Józef Wiora is a professor at the Silesian University of Technology, Gliwice, Poland. He obtained
his MSc, Eng. (2000) in Electronics, Ph.D. (2006), and D.Sc. (2019) in Automatic Controls and
Robotics, all at the same university. His research focuses on improvement in measurement quality,
optimization in measurement procedures, microcontroller-based measurement circuits. Currently
also works at Bombardier Transportation, Katowice, Poland where deals with the European Train
Control System.