#embedded software project
Explore tagged Tumblr posts
emblogicsblog · 1 day ago
Text
Embedded Systems Software Engineering Course
Embedded systems are at the heart of modern technology, powering devices ranging from smartphones to industrial machines. If you're a BE or B. Tech students looking to master this fascinating field, an Embedded Systems Software Engineering Course is the perfect choice. This course equips you with the knowledge and practical skills to design, develop, and deploy embedded software solutions.
Tumblr media
Training in embedded systems focuses on the integration of hardware and software to create efficient, reliable systems. In locations such as Noida, Texas, Cambridge, Chicago, Sydney, Perth, Tampa, Brisbane, Melbourne, New York, Quebec, British Columbia, Ontario, Calgary, Alberta, and Yorkshire, these courses are tailored to meet the needs of students and professionals aiming to excel in embedded software development.
What You’ll Learn:
Basics of embedded systems architecture.
Programming with C and C++ for microcontrollers.
Real-time operating systems (RTOS) and their applications.
Debugging, testing, and deploying embedded software.
Hands-on experience with project development.
Practical Project Training
The best way to learn embedded software is through hands-on practice. Courses include real-world projects like developing IoT devices, robotics systems, and automotive controls. These projects give you a deep understanding of embedded systems and boost your confidence to work on advanced applications.
Global Opportunities
Embedded systems professionals are in demand worldwide. Whether you're in Cambridge, Chicago, or Sydney, training in this field opens doors to exciting job roles in industries like automotive, healthcare, and consumer electronics.
Embark on your journey in embedded systems software engineering today, and pave the way for a rewarding career in cutting-edge technology!
embedded software project, Embedded systems software engineering, embedded software training, embedded software course, embedded software noida, Texas, Cambridge, Chicago, Sydney, Perth, Tampa, Brisbane, Melbourne, embedded Cambridge, New York, Quebec, British Colombia, Ontario, Calgary, Alberta, Yorkshire.
0 notes
learnandgrowcommunity · 1 year ago
Text
youtube
Use this trick to Save time : HDL Simulation through defining clock
Why is this trick useful? Defining a clock in your simulation can save you time during simulation because you don't have to manually generate the clock signal in your simulation environment. Wanted to know how to define and force clock to simulate your digital system. Normally define clock used to simulate system with clock input. But I am telling you this trick for giving values to input ports other than clock. It will help you to save time in simulation because you do not need to force values to input ports every time. Lets brief What we did - gave some clock frequency to input A, like we gave 100. Than we made Half the frequency of clock to 50 and gave it to Input B. In similar way if we have 3rd input too we goanna half the frequency again to 25 and would give to next input.
Subscribe to "Learn And Grow Community"
YouTube : https://www.youtube.com/@LearnAndGrowCommunity
LinkedIn Group : https://www.linkedin.com/groups/7478922/
Blog : https://LearnAndGrowCommunity.blogspot.com/
Facebook : https://www.facebook.com/JoinLearnAndGrowCommunity/
Twitter Handle : https://twitter.com/LNG_Community
DailyMotion : https://www.dailymotion.com/LearnAndGrowCommunity
Instagram Handle : https://www.instagram.com/LearnAndGrowCommunity/
Follow #LearnAndGrowCommunity
2 notes · View notes
blockverse-infotech · 10 months ago
Text
IoT Development; A Complete Guide, on Bringing Devices from Idea to Implementation
Tumblr media
In todays paced tech world, the Internet of Things (IoT) has emerged as a game changer transforming the way we engage with our environment. At Blockverse Infotech Solutions we recognize the power of devices providing customized solutions to bring ideas to life and seamlessly integrate them into the digital realm.
The Internet of Things (IoT) has evolved from a buzzword to an aspect of contemporary technology influencing various facets of our everyday routines. From homes and wearable gadgets to automation and healthcare systems IoT enables us to connect and empower ourselves like never before. However transitioning from conceptualization to implementation of solutions can be overwhelming without guidance.
Conceptualization marks the phase, in IoT development. It entails identifying the problem or opportunity that can be addressed through technology and envisioning how interconnected devices can improve efficiency, convenience or safety. At Blockverse Infotech Solutions we work closely with clients to brainstorm ideas grasp their needs and devise IoT solutions tailored specifically for them.
Once the concept is solidified, the development phase begins. This involves designing and prototyping IoT devices, selecting appropriate sensors and connectivity protocols, and developing the software infrastructure to collect, analyze, and act upon data generated by the devices. Our team of skilled developers and engineers at Blockverse Infotech Solutions leverages cutting-edge technologies to build robust and scalable IoT solutions that meet the highest standards of performance and reliability.
Testing and validation are integral parts of the development process, ensuring that IoT devices function as intended and deliver the desired outcomes. Through rigorous testing procedures and simulation environments, we identify and rectify any issues or vulnerabilities, ensuring that the deployed IoT solutions operate seamlessly in real-world scenarios.
Deployment marks the culmination of the IoT development journey, as the solutions are implemented and integrated into existing systems or environments. From device provisioning and network configuration to data management and security protocols, our experts at Blockverse Infotech Solutions handle every aspect of the deployment process with precision and care, ensuring a smooth transition from development to operation.
Post-deployment support and maintenance are essential for ensuring the long-term success and sustainability of IoT solutions. At Blockverse Infotech Solutions, we offer comprehensive support services, including monitoring, troubleshooting, and software updates, to keep IoT devices running smoothly and efficiently.
In conclusion, navigating the complex landscape of IoT development requires expertise, innovation, and a comprehensive understanding of the technology. With Blockverse Infotech Solutions providing tailored solutions for IoT devices, businesses and organizations can embark on their IoT journey with confidence, knowing that they have a trusted partner to guide them from concept to deployment and beyond.
0 notes
iiesbangalore · 2 years ago
Text
Embedded Systems Course For Beginners
Embedded systems have permeated nearly every aspect of modern technology. From the smartphones we use to the cars we drive, embedded systems are responsible for powering many of the devices we rely on daily. If you're looking to gain an understanding of embedded course in Bangalore and how to work with them, you might want to consider taking a beginner's course at the Indian Institute of Embedded Systems (IIES).
Tumblr media
Introduction
Embedded systems are integrated computer systems designed to perform specific tasks without human intervention. They are widely used in industries such as automotive, healthcare, home automation, and more, and are becoming increasingly popular as the Internet of Things (IoT) continues to grow. A beginner's course at IIES is an excellent way to get started with embedded systems and learn about the fundamental concepts, tools, and techniques used in the industry.
Why Take a Beginner's Course on Embedded Systems?
Taking a beginner's course on embedded systems has several benefits, including:
Understanding the Fundamentals
A beginner's course at IIES can help you understand the foundational concepts of embedded systems, including hardware and software components, communication protocols, and programming languages commonly used in the industry.
Developing Practical Skills
The course is designed to provide a hands-on approach to learning, allowing you to work with real-world hardware and software platforms, including the Arduino and Raspberry Pi. This practical experience will give you the confidence and skills you need to build embedded systems on your own.
Career Opportunities
As the use of embedded systems continues to grow, so does the demand for professionals in the field. Completing a beginner's course at IIES can open the door to a wide range of career opportunities, including embedded system engineer, IoT developer, and more.
Course Curriculum
The beginner's course offered at IIES covers a comprehensive range of topics, including:
Introduction to Embedded Systems
This section provides a comprehensive overview of embedded systems. It covers the basics of hardware and software components, communication protocols, and programming languages.
Microcontrollers and Microprocessors
Learn about the various microcontrollers and microprocessors used in the industry, including AVR, ARM, and PIC microcontrollers.
Programming Languages
Gain an understanding of the programming languages used in embedded systems development, including C and Python in embedded system.
Real-time Operating Systems
This section covers the basics of real-time operating systems, including scheduling algorithms, task management, and inter-task communication.
Hardware Interfacing and Peripheral Control
Learn how to interface with various hardware components, such as sensors, motors, and displays, and control them using programming languages and microcontrollers.
Projects and Workshops
The course offers several practical workshops and projects that allow students to work with real-world projects and gain hands-on experience.
Indian Institute of Embedded Systems (IIES)
IIES is one of the most reputed institutes for embedded systems training in India. The institute offers a wide range of certificate and diploma programs in embedded systems, including the beginner's course mentioned above.
Expert Trainers
IIES has a team of experienced trainers who are experts in their field. They provide practical training sessions, enabling students to gain skills that are relevant to industry standards.
Industry Partnerships
Keeping up with the current industry trends is essential to gaining expertise in a field; IIES has partnered with various companies such as Altair, Tiempo Labs, and many more reputed firms. This collaboration helps to keep the students updated about industry trends and expectations.
Advanced Facilities
IIES has cutting-edge infrastructure and world-class facilities, providing students with access to the latest hardware and software technologies and practical hands-on learning experiences.
Course Duration and Cost
The beginner's course offered by IIES is of 3 months' duration and offers flexible batch timings. The fee structure is reasonable and affordable, making it accessible to anyone interested in learning about embedded systems.
Conclusion
A beginner's course on embedded systems offered by IIES can be an excellent way to learn about this fascinating field. The program provides a comprehensive overview of embedded system concepts, tools, and techniques while also offering practical hands-on learning experiences. Completing the course can be a great career opportunity in a field where the demand for professionals continues to grow. And with IIES's expert trainers and state-of-the-art facilities, you can be confident that you're learning from the best. So, enroll today and start your journey into the exciting world of embedded systems!
0 notes
reliableembeddedsystems · 2 years ago
Text
28 Mar: Last Minute - public/private (TBD), online, DE/EN (TBD), book until: 25 Feb rlbl.me/yocto-r-en-pdf #yocto #yoctoproject #yoctoizing #embeddedlinux #openembedded #linux #developer #embedded #coding #programming #software #embedsys @yoctoproject @yoctotraining https://video.twimg.com/ext_tw_video/1627583905338470402/pu/vid/1280x720/bhOlaJimgo3lyrcT.mp4?tag=12
0 notes
techav · 2 months ago
Text
On Multitasking
Sharing a Computer with Friends
Tumblr media
The Motorola 68030 was a decently powerful microprocessor for its day. It is a fully 32-bit processor with 16 general-purpose registers, separate instruction & data caches, memory management unit, 18 addressing modes, over 100 instructions, pipelined architecture, and was available rated up to 50MHz. It was used in computers by Apple, Amiga, NeXT, Sun, Atari, and saw further life embedded in devices such as printers, oscilloscopes, and network switches. It was the kind of microprocessor used for desktop publishing, 3D CAD & animation, photo & video editing, etc.
In short, the 68030 is a microprocessor that can do some serious work. That's part of why I like it so much. It's a real workhorse chip but as far as 32-bit microprocessors go, it's dead simple to build with.
But running a single quick & simple BASIC program hardly seems like an adequate exercise for such a capable chip.
There is a prevailing claim that the 68000 architecture was heavily inspired by that of the PDP-11 or VAX minicomputers — powerhouses of the previous generation of computing. These machines ran entire businesses, at times servicing many simultaneous users. Surely the 68030 with similar capabilities but significantly faster instruction throughput than the decade-older machines would be more than capable of handling such a workload.
As I've mentioned before, one of my end goals for my 68030 projects is to run a proper operating system. Something like System V, BSD, or Linux; a true multi-user system befitting of the 68k's architectural heritage. My programming skills are limited, and getting such a complex project running is still outside my reach. But I am learning, and slowly inching myself closer to that goal.
Recently I built an expansion card for my Wrap030 project to add another four serial ports to it. In the context of the old minicomputers, another serial port means another terminal, which means the ability to serve one more user. My new 4-port serial card should give me the ability to add four new user terminals.
If only I had software capable of doing so.
Excluding symmetric multiprocessing and today's multi-core behemoths, supporting multiple user processes on a single computer processor means dividing time between them. The computer will run one user's program for a little while, then stop and run another user's program for a little while. Do this fast enough and neither user might ever notice that the computer is paying attention to someone else — especially since the computer spends much of its time just waiting for user input.
There are a few ways to accomplish this, but the simplest is to just make sure that every user program is written to cooperate with the others and periodically yield to the next user program ("Cooperative Multitasking"). A good time to do this is whenever the program needs to wait for input from the user or wait for a device to be ready to accept output.
Enhanced BASIC (68k EhBASIC), which I have been running on all of my 68k computer builds, was written in such a way that lends itself well to this sort of cooperative multitasking. It runs a tight loop when waiting for input or output, and while running a BASIC program, it stops at the end of each line to see if the user has pressed Ctrl-C to stop the program. This means that EhBASIC never goes too long without needing to check in with slow I/O devices. All that would needed is a simple kernel to set things up and switch to another user's processes whenever each time one of them is waiting for I/O.
So I set about creating such a minimal multi-user kernel. On startup, it initializes hardware, sets up some data tables for keeping track of what each user program is doing, loads BASIC into RAM, then starts running BASIC for that first user. Whenever a user process needs to read data from or write data to its terminal, it asks the kernel to handle that I/O task for it. The kernel will save the state of the user program to the data table it set up in the beginning, then switch to the next user to let it run until it too asks for assistance with an I/O task.
The kernel works through all user processes round-robin until it loops back around to the first user. After restoring the state of the user's process the kernel will service the I/O task that user process had originally requested, and return to let that user process run for a little while again. So all of the other user processes get their chance to run while one is waiting on data, and each process makes sure to allow the others a chance to run for a while when they are in the middle of running their own program.
I was able to throw together a quick proof of concept using the EASy68K simulator. What followed was days of catching all of the tiny mistakes I made, such as saving register A0 to the memory location reserved for register A1, overwriting the value previously saved for A1 and effectively losing both in the process — an error which resulted in BASIC printing only the first three characters of its startup header followed by a long string of null characters.
Tumblr media
Debugging was tricky. I was starting from the bottom. No standard library, no existing structure or frameworks to rely on. The kernel process relied on the very same registers the user programs were using. Any changes to register contents by the kernel would affect the user processes. I ended up adding assembly macros to print short statements and register contents to the kernel console to try to get some insight into what was happening. I was able to track when registers came out of the user context save/restore process different than when they went in to find where I had bugs in that process.
This was a challenging project resulting in nearly a thousand lines of very low-level 68k assembly code, all of which I wrote and rewrote multiple times before figuring everything out. I've written small pieces of assembly code over the years, but none which required such deep dives into the CPU documentation to discern fine details of how the chip operates. I got there eventually though and now I have an 8MHz 68030 homebrew computer with 2MB of RAM that can run four BASIC programs simultaneously.
I'm going to need more terminals.
157 notes · View notes
communistkenobi · 8 months ago
Text
I’m downloading shapefiles (basically geographic files, in this case the polygons of every country) for a mapping project I’m doing and while most countries have an ISO code column in their file (which is a 2 letter abbreviation of their country name), Canada, the UK, and the US do not. The US doesn’t even have a country column, it just listed the states. Now these are official shapefiles made by the vendor of the software I’m using (Esri, which is one of if not the dominant global distributor of mapping software) and are treated as the authoritative copies. Like if you wanted to download the outline of the US and all its states you would download Esri’s copy of it. And the reason I noticed this discrepancy is because I’m trying to combine individual country files to a global world file and I first had to edit the US & UK & Canada shapefiles and manually add in their ISO codes so they would join the world file properly. Notably countries like Argentina already have country & ISO code embedded in its shapefile.
And what I’m taking away from this is that there is an epistemic assumption happening where western countries can stand alone - they do not need to be combined or compared with other countries, they are complete units that constitute their own global file. Their data lack an “international character,” they are not set up for comparison or combination with other country data. The assumption being made by excluding these (extraordinarily trivial and easy to include) datapoints is that the only reason you would be downloading shapefiles for the US or Canada is to study these countries in isolation, while countries in the Global South are structured to accommodate the act of comparison
286 notes · View notes
utopicwork · 6 days ago
Note
Out of curiousity, how did you get into doing this sort of computer work? Especially more low level stuff. :]
How can other people get into it / what would you like to see people make in the future in this area?
- Aspiring Programmer
I was an extremely poor kid, in middle school I learned about piracy which led to me getting into FOSS software for media conversion so I could load a bunch of media onto my psp. A short time later I learned about cfw, custom firmware, for psps when I was trying to figure out how pirating games for the system worked, that led to my first hardware hacking, at the time you needed to make a "magic battery" in order to save money on hacking the system which luckily for me I was able to do with a busted battery. That was really my big start because it was so exciting to be a poor kid with access to tons of games and media all of a sudden. Since then I've been very interested in firmware work and embedded systems, though I definitely didnt know thats what it was at the time.
For getting into software/hardware hacking/programming in a similar way I'd seriously recommend getting a cheap SBC, something like a Raspberry Pi Zero or just a Raspberry Pi is a good place to start especially since there are tons of projects for those boards that you can hack on and tons of very useful programs like pi-hole which does DNS ad blocking.
As to what I'd like to see people do: more projects dealing with media on these kinds of systems, video djing, glitch art, etc, because usually you're limited to something like VLC for media.
35 notes · View notes
kyokosasagawa · 1 year ago
Text
I started writing "4 srs" this month and I like how free and accessible writing is, so I'm recommending free software I've experimented with that might help people who want to get into the hobby!
“Specifically Created for Writing Stories”
-------------------------------
Manuskript – Story organizer / word processor. Has an outliner and index card function, along with distraction free mode. Lets you switch between different templates such as a non-fiction mode or a short story.
Bibisco – Novel writing software that includes writing goals, world-building, distraction free mode, and a timeline.
“I Just Want to Write”
---------------------------
LibreOffice – Microsoft 365 alternative, but free! LibreOffice Writer is what I wrote this tumblr post in before I posted it. Also if you copy & paste the text into the Rich Text Editor on AO3, it seems that it actually converts it properly. Nice! No need for scripts.
Note-Taking
-------------------------------
Zim Wiki - note taking application that is very, very lightweight (1.1mb). It functions with a tree structure, so I’d personally recommend it for world-building and character bios. There are built-in plugins that also turn it into a good software for task management (it even has a article on how to use it for GTD) and journalling. See also: CherryTree (2mb), which is a more outdated-looking app, but functions similarly.
Obsidian MD – The Big Boy. markdown note editor that has been adopted by personal knowledge management fans---if it doesn’t do something you want it to do, just look in the community plugins to see if someone has already done it. Some unique non-word processing related usages I’ve found is the ability to create a table of contents dashboard, a image gallery for images, embedding youtube videos and timestamping notes, so forth.
Logseq – A bullet point based markdown note editor that also has PDF annotations, Zotero integration, flashcard creation, and whiteboards. Best used for outlining projects due to the bullet point structure.
Joplin – A modern app comparable to Zim Wiki, it’s basically just a note-taking software that uses folders and tags to sort easier. Looks prettier than Zim Wiki and Cherry Tree
Notion – An online-only website that allows usage of different database types. Free for personal use. Note: I dislike the AI updates that have been making the app lag more. I prefer the others on this list.
Mind Maps
-------------------------------
Freeplane – So much goddamn features, including a ton of add-ons. Looks somewhat ugly, but it works for anyone willing to spend a while learning how to use it.
Mermaid – Text-based diagram creator. Can be used in apps like Joplin, Notion, and Obsidian.
Obsidian’s Canvas – A core plugin for Obsidian, it deserves its own mention in that it allows you to create embedded notes of the mindmap nodes. Thus, if you want to create a 20-page long note and have it minimized to the size of a penny on the mindmap, you could.
Other Things That Might Be Of Interest
Syncthing - A free software that allows you to sync between two or more computers. Have a desktop but also laze around on a laptop in bed, coming up with ideas?? This is your buddy if you don't want to use a online software.
109 notes · View notes
moose-mousse · 1 month ago
Text
Finally fucking happened! Straight up stared at the boss with my mouth open while he was telling me something. I was saying we need to turn compiler optimization from the weird 01 with extra restrictions to 03. Functions that needs lower can then specify that with #pragma statements. But since those can only LOWER the compiler optimization we need it set to max per default. Boss then told me that we can never increase the compiler optimization level BECAUSE THEN THE COMPILER SOMETIMES CREATES WRONG MACHINE CODE!!! ... there is a limit... on how easy the code I can write I can write code... based on incompetence... Fuck Renesas micro-controllers! And screw my workplace for not starting to move to other micro-controllers the second they realized this!
No_inline means that any function I write will incur the cost of calling the function when the production code runs Normally I can break everything down into tiiiiny functions. 20 lines of code max. Everything is just... SO easy to read, understand, test and modify. And I can write them so they always get optimized away But nope. Cannot do that on an embedded system with no_inline Have to write giant impossible to read piece of shit function with 3-10 levels of abstraction jumps in them. Good luck you poor barstard that have to read my code later. Because I am now on another project. But it is taking a long time for some reason, because the code is unreadable. Anyway, good luck understanding my unreadable code! And then the boss claims we don't have money to change microcontrollers. And I am claiming, we cannot fucking afford to NOT pay for different micro-controllers. Software costs MILLIONS of dollars to develop. We are pissing MILLIONS out the window... So we can save several thousand dollars... Just... "Headdesks"
9 notes · View notes
shikantazaart · 6 months ago
Text
From Retro Roots to Modern Marvels: The Rebirth of the Pirate Menu Aesthetic
Tumblr media
Ahoy, Nostalgia!
If you were a computer geek in the 80s or 90s, you probably remember the thrill of booting up a freshly acquired piece of software and being greeted by a "pirate menu." These were no ordinary start screens; they were vibrant, animated showcases, often accompanied by chiptune music, that hackers and crackers used to flaunt their digital prowess. These menus were as much a demonstration of skill as they were a distribution method for cracked software and games. It was a unique blend of artistry and rebellion, a way to connect with like-minded individuals in a pre-internet world.
The aesthetics of these pirate menus were distinctive and unforgettable. Neon colors, pixel art, and scrolling text formed the backbone of their visual appeal. They were DIY masterpieces, created in bedrooms and basements, meant to dazzle and entertain. Beyond their flashy exteriors, these menus communicated messages, credits, and even embedded jokes, forming a subculture that was as much about the community as it was about the content.
Tumblr media
Shikantaza Art: Reviving the Rebel Spirit
Fast forward to today, and the digital nostalgia is real. Shikantaza Art has tapped into this rich vein of retro coolness, bringing the pirate menu vibe into the modern art world. By blending old-school aesthetics with contemporary design, Shikantaza is crafting pieces that evoke the same sense of wonder and excitement that those old pirate menus did. The work is a fusion of pixel art and modern graphics, often featuring animated elements and interactive components and linking to original works by consent and with collaboration of their creators.
We're not just creating art, and we're not just showcasing art; we're reviving a movement, a culture, and a way of connecting with audiences that feels both fresh and familiar.
THE FAEWAVE MENU Project: An Ode to the Past, A Beacon for the Future
Enter the FAEWAVE MENU project, our latest brainchild aiming to capture the spirit of the pirate menu era. This project is a digital platform that curates art, music, and independent video games, presenting them with the same visual flair and rebellious spirit of the old-school pirate menus. FAEWAVE MENUS are like stepping into a time machine that propels you forward, blending nostalgic aesthetics with cutting-edge content.
Tumblr media
The project doesn’t just mimic the look and feel of the past; it harnesses it to create a community-driven space where creators can share their work in a visually engaging way. The menus are interactive, featuring music tracks, games, and art showcases that harken back to the days of floppy disks and CRT monitors. Yet, they are designed for the digital age, accessible from any desktop device with an internet connection.
Tumblr media Tumblr media Tumblr media
FAEWAVE MENUS are more than a project; it’s a movement that resonates with both the old guard who lived through the original pirate scene and the new generation discovering its charm for the first time. It’s a testament to the timeless appeal of creative rebellion and the power of digital art to bring people together.
Check out THE FAEWAVE MENUS so far...
If you have work you'd like to feature on a FAEWAVE MENU, get in touch in the comments here, or on X.
12 notes · View notes
nitte-university-blog · 15 days ago
Text
Essential Skills Every Electronics Engineer Should Master
Electronics engineering is an exciting and constantly evolving field. With new technologies emerging every day, the need for skilled professionals has never been greater. If you're pursuing a B Tech in Electrical and Electronics Engineering or exploring options at B Tech colleges for Electrical and Electronics, it's crucial to know which skills can set you apart in this competitive domain.
Let’s dive into the essential skills every aspiring electronics engineer should master.
Strong Foundation in Circuit Design
Circuit design is at the heart of electronics engineering. Understanding how to create, analyze, and optimize circuits is a must-have skill. Whether you’re designing a simple resistor network or a complex integrated circuit, mastering tools like SPICE and PCB design software can make your designs efficient and innovative.
Programming Proficiency
Electronics and programming often go hand in hand. Languages like Python, C, and MATLAB are widely used to simulate electronic systems, automate processes, and even build firmware for devices. Engineers proficient in programming can troubleshoot problems effectively and add versatility to their skill set.
Knowledge of Embedded Systems
Embedded systems are everywhere—from your smartphone to your washing machine. As an electronics engineer, understanding microcontrollers, sensors, and actuators is crucial for creating devices that work seamlessly in our daily lives. Hands-on experience with platforms like Arduino and Raspberry Pi can be a great way to start.
Problem-Solving and Analytical Thinking
Electronics engineers often face unique challenges, such as debugging faulty circuits or improving system performance. Strong problem-solving and analytical thinking skills help them identify issues quickly and find effective solutions. To cultivate these skills, tackle real-world projects during your coursework or internships.
Familiarity with Power Systems
As the world moves toward renewable energy and smart grids, knowledge of power systems is becoming increasingly important. Engineers in this field should understand how electrical power is generated, transmitted, and distributed and how to design energy-efficient systems.
Effective Communication Skills
Electronics engineering often involves working in teams with other engineers, designers, or clients. Communicating your ideas clearly—whether through reports, presentations, or technical drawings—is just as important as your technical skills. Strong communication ensures that your brilliant ideas come to life effectively.
Adaptability to New Technologies
Technology evolves rapidly, and staying updated is essential for electronics engineers. Whether you’re learning about IoT (Internet of Things), AI integration, or 5G communication, an adaptable mindset will ensure you remain relevant and capable of tackling emerging challenges.
Hands-On Experience
While theoretical knowledge is important, nothing beats practical experience. Participating in labs, internships, or personal projects gives you the opportunity to apply what you’ve learned and develop confidence in your skills. Employers often value hands-on experience as much as your academic achievements.
Preparing for Success in Electronics Engineering
Pursuing a B Tech in Electrical and Electronics Engineering is the first step toward mastering these skills. The best B Tech colleges for Electrical and Electronics not only provide a strong academic foundation but also opportunities for practical learning and industry exposure. By focusing on the skills mentioned above, you can position yourself as a competent and innovative engineer ready to tackle real-world challenges.
3 notes · View notes
this-week-in-rust · 1 month ago
Text
This Week in Rust 577
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on X (formerly Twitter) or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Official
This Month in Our Test Infra: November 2024
December 2024 Leadership Council Update
Newsletters
The Embedded Rustacean Issue #34
Rust Trends Issue #55
Project/Tooling Updates
Dioxus 0.6
Flawless Replay
Rust9x update: Rust 1.84.0-beta
What's new in SeaQuery 0.32.x
Observations/Thoughts
Rust Macros: A Cautionary Tale
Running teloxide bots cheaply on Fly.io
Speeding up Ruby by rewriting C… in Ruby
Memory-safe PNG decoders now vastly outperform C PNG libraries
State of the Crates 2025
Comparing Rust Database Crates
Rust Walkthroughs
Parsing MIDI messages in Rust
Drag & Drop Images into Bevy 0.15 on the web
Missing iterable traits and how to introduce them effortlessly
EuroRust: Introduction to Diesel: basic and advanced concepts in practice
Miscellaneous
My Rust Story
November 2024 Rust Jobs Report
[video] How to Integrate C++ and Rust
[video] 2024 LLVM Developers' Meeting - Rust ❤️ LLVM
Crate of the Week
This week's crate is include-utils, a more powerful replacement for the standard library's include_str macro.
Thanks to Aleksey Sidorov for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
RFCs
No calls for testing were issued this week.
Rust
No calls for testing were issued this week.
Rustup
No calls for testing were issued this week.
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Rustup
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
No Calls for participation were submitted this week.
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
No Calls for papers or presentations were submitted this week.x
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
Updates from the Rust Project
462 pull requests were merged in the last week
dataflow_const_prop: do not eval a ptr address in SwitchInt
fn_sig_for_fn_abi should return a ty::FnSig, no need for a binder
rust_for_linux: -Zreg-struct-return commandline flag for X86
actually walk into lifetimes and attrs in EarlyContextAndPass
add allocate_bytes and refactor allocate_str in InterpCx for raw byte…
add context to "const in pattern" errors
add lint against function pointer comparisons
add more info on type/trait mismatches for different crate versions
avoid opaque type not constrained errors in the presence of other errors
avoid fetching the anon const hir node that is already available
deeply normalize when computing implied outlives bounds
do not implement unsafe auto traits for types with unsafe fields
don't suggest restricting bound with unstable traits on stable and mention it's unstable on nightly
don't use a SyntheticProvider for literally every type
fix MutVisitor's default implementations to visit Stmt's and BinOp's spans
fix suggestion when shorthand self has erroneous type
gate async fn trait bound modifier on async_trait_bounds
handle --json-output properly
hide errors whose suggestions would contain error constants or types
implement checks for tail calls
improve TagEncoding::Niche docs, sanity check, and UB checks
include LLDB and GDB visualizers in MSVC distribution
introduce default_field_values feature
lint against Symbol::intern on a string literal
lint: change help for pointers to dyn types in FFI
make CoercePointee errors translatable
make sure to record deps from cached task in new solver on first run
move most tests for -l and #[link(..)] into tests/ui/link-native-libs
no need to create placeholders for GAT args in confirm_object_candidate
only allow PassMode::Direct for aggregates on wasm when using the C ABI
parse guard patterns
reduce false positives on some common cases from if-let-rescope lint
reimplement ~const trait specialization
structurally resolve in adjust_for_branches
structurally resolve in probe_adt
unify sysroot_target_{bin,lib}dir handling
use correct hir_id for array const arg infers
miri: cleanup: avoid passing byte slice to anonsocket_read
miri: fix SC fence logic
miri: fix weak memory emulation to avoid generating behaviors that are forbidden under C++ 20
miri: implement simd_relaxed_fma
extend Miri to correctly pass mutable pointers through FFI
remove polymorphization
introduce MixedBitSet
stabilize const_collections_with_hasher and build_hasher_default_const_new
stabilize const_{size,align}_of_val
stabilize noop_waker
stabilize std::io::ErrorKind::CrossesDevices
stabilize std::io::ErrorKind::QuotaExceeded
add core::arch::breakpoint and test
implementation of fmt::FormattingOptions
add Extend impls for tuples of arity 1 through 12
cargo: docs(fingerprint): cargo-rustc extra flags do not affect the metadata
cargo: feat(build-rs): Add the 'error' directive
cargo: fix(add): Don't select yanked versions when normalizing names
cargo: fix(build-rs): Correctly refer to the item in assert
cargo: fix(build-std): determine root crates by target spec std:bool
cargo: fix(fingerprint): Don't throwaway the cache on RUSTFLAGS changes
cargo: fix(fix): Migrate workspace dependencies
cargo: test(build-std): make mock-std closer to real world
cargo: fix(build-rs)!: remove meaningless 'cargo_cfg_debug_assertions'
cargo: refactor: use Path::push to construct remap-path-prefix
cargo: semVer: add section on RPIT capturing
rustdoc: remove eq for clean::Attributes
rustdoc: rename issue-\d+.rs tests to have meaningful names (part 10)
rustdoc: rename set_back_info to restore_module_data
rustdoc: always display first line of impl blocks even when collapsed
improve code for FileName retrieval in rustdoc
clippy: doc_lazy_continuation: Correctly count indent with backslashes
clippy: extend precedence for bitmasking and shift
clippy: new lint for as *const _ and as *mut _ pointer casts
rust-analyzer: add Configurable Option to Exclude Trigger Characters for Typing Assists
rust-analyzer: add implict unsafety inlay hints for extern blocks
rust-analyzer: add typing handler for param list pipe
rust-analyzer: complete derive helper attributes
rust-analyzer: complete diagnostics in ty lowering groundwork and serve a first diagnostic 🎉
rust-analyzer: extend reported unsafe operations
rust-analyzer: support AsyncFnX traits
rust-analyzer: fix parsing of parenthesized type args and RTN
rust-analyzer: better parser recovery for paths
rust-analyzer: coerce two FnDefs to fn pointers even if they are the same, if they are subtypes
rust-analyzer: disable < typing handler again
rust-analyzer: do not report warnings from proc macros, ever
rust-analyzer: fix a bug when synthetic AST node were searched in the AST ID map and caused panics
rust-analyzer: fix parser getting stuck for bad asm expressions
rust-analyzer: fix parsing of dyn T in generic arg on 2015 edition
rust-analyzer: fix parsing of integer/keyword name refs in various places
rust-analyzer: fix shadowing of record enum variant in patterns
rust-analyzer: fixed another bug with glob imports
rust-analyzer: map new replacement nodes to their mutable equivalents in SyntaxEditor
rust-analyzer: non-exhaustive structs may be empty
rust-analyzer: panic when displaying generic params with defaults
rust-analyzer: parse lifetime bounds in lifetime param into TypeBoundList
rust-analyzer: resolve generic parameters within use captures
rust-analyzer: temporarily disable completion resolve support for helix and neovim
rust-analyzer: improve heuristics for on typing semicolon insertion
rust-analyzer: make bracket typing handler work on more things
rust-analyzer: migrate add_turbo_fish to SyntaxEditor
rust-analyzer: migrate introduce_named_generic Assist to Use SyntaxFactory
rust-analyzer: migrate sort_items Assist to Use SyntaxFactory
rust-analyzer: vscode: only show status bar item in relevant files
Rust Compiler Performance Triage
A pretty quiet week, with both few PRs landed and no large changes in performance.
Triage done by @simulacrum. Revision range: 490b2cc0..1b3fb316
0 Regressions, 0 Improvements, 7 Mixed; 4 of them in rollups 25 artifact comparisons made in total
Full report here
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
RFCs
No RFCs entered Final Comment Period this week.
Tracking Issues & PRs
Rust
[disposition: merge] Add --doctest-compilation-args option to add compilation flags to doctest compilation
Cargo
[disposition: merge] fix(cargo-rustc): stabilize higher precedence trailing flags
Language Team
No Language Team Proposals entered Final Comment Period this week.
Language Reference
No Language Reference RFCs entered Final Comment Period this week.
Unsafe Code Guidelines
No Unsafe Code Guideline Tracking Issues or PRs entered Final Comment Period this week.
New and Updated RFCs
[new] Drop type destructuring
[new] #[must_use = false]
[new] RFC: Partial Types (v3)
Upcoming Events
Rusty Events between 2024-12-11 - 2025-01-08 🦀
Virtual
2024-12-11 | Virtual (Vancouver, BC, CA) | Vancouver Rust
egui
2024-12-12 | Hybrid: In-Person and Virtual (Seattle, WA, US) | Seattle Rust Meetup
December Meetup
2024-12-12 | Virtual (Charlottesville, NC, US) | Charlottesville Rust Meetup
Crafting Interpreters in Rust Collaboratively
2024-12-12 | Virtual (Nürnberg, DE) | Rust Nuremberg
Rust Nürnberg online
2024-12-13 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2024-12-17 | Virtual (San Francisco, CA, US) | Blockchain Center SF
Rust in Web3: Developer Series
2024-12-17 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
Rust Source Code Reading: The thousands crate (Virtual, English)
2024-12-17 | Virtual (Washington, DC, US) | Rust DC
Mid-month Rustful
2024-12-19 | Virtual (Berlin, DE) | OpenTechSchool Berlin + Rust Berlin
Rust Hack and Learn | Mirror: Rust Hack n Learn Meetup
2024-12-19 | Virtual (Mexico City, DF, MX) | Rust MX
Posada 2024
2024-12-20 | Virtual (Jersey City, NJ, US) | Jersey City Classy and Curious Coders Club Cooperative
Rust Coding / Game Dev Fridays Open Mob Session!
2024-12-24 | Virtual (Dallas, TX, US) | Dallas Rust
Last Tuesday
2024-12-26 | Virtual (Charlottesville, NC, US) | Charlottesville Rust Meetup
Crafting Interpreters in Rust Collaboratively
2024-01-02| Virtual (Berlin, DE) | OpenTechSchool Berlin + Rust Berlin
Rust Hack and Learn | Mirror: Rust Hack n Learn Meetup
2025-01-04 | Virtual (Kampala, UG) | Rust Circle Kampala
Rust Circle Meetup
Asia
2024-12-14 | Bangalore/Bengaluru, IN | Rust Bangalore
December 2024 Rustacean meetup/workshop
Europe
2024-12-11 | Reading, UK | Reading Rust Workshop
Reading Rust Meetup
2024-12-12 | Amsterdam, NL | Rust Developers Amsterdam Group
Rust Meetup @ JetBrains
2024-12-12 | München, DE | Rust Munich
Rust Munich 2024 / 4 - Hacking Evening
2024-12-12 | Vienna, AT | Rust Vienna
Rust Vienna - December | at Sentry.io 🦀
2024-12-17 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
Secret Santa in Rust: Unwrapping Property Testing
2024-12-18 | Ghent, BE | Systems Programming Ghent
Launch of new community for Rust and C++ developers
North America
2024-12-12 | Hybrid: In-Person and Virtual (Seattle, WA, US) | Seattle Rust User Group
December Meetup
2024-12-12 | Mountain View, CA, US | Hacker Dojo
RUST MEETUP at HACKER DOJO
2024-12-16 | Minneapolis, MN, US | Minneapolis Rust Meetup
Minneapolis Rust Meetup Happy Hour
2024-12-17 | San Francisco, CA, US | San Francisco Rust Study Group
Rust Hacking in Person
2024-12-26 | Mountain View, CA, US | Hacker Dojo
RUST MEETUP at HACKER DOJO
Oceania
2024-12-16 | Collingwood, AU | Rust Melbourne
December 2024 Rust Melbourne Meetup
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
Memory-safe implementations of PNG (png, zune-png, wuffs) now dramatically outperform memory-unsafe ones (libpng, spng, stb_image) when decoding images.
Rust png crate that tops our benchmark shows 1.8x improvement over libpng on x86 and 1.5x improvement on ARM.
– Shnatsel on /r/rust
Thanks to Anton Fetisov for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
3 notes · View notes
quacheta · 8 months ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
So a few months ago, there was at least one (1) person who got permission to, and started, the project of bookbinding AmevelloBlue's The Ghost in the Shell. And when they tried to print it, it was like 700-800 pages. Which is... a lot.
So I figured, since (1) I also love Ghost in the Shell, (2) I do typesetting semi-professionally, and (3) why the heckers not, I could probably get it down to a more reasonable size.
And I did. And then AmevelloBlue gave me permission to share it here, so.
The Drive Folder With All the Files.
File-specific information below. :)
(Please, for the love of Donnie's banana pancakes, read it. I am trying to answer as many technical questions in advance as I can, so people don't get overwhelmed or confused or frustrated.)
(But also it is a LOT of information, so if you need clarification please ask. This is for to be fun! Not scary!)
There are three parts.
GitS.p8: This is the straight PDF export, done in pages and not spreads. That means each page is its own page (a spread has 2+ to a page) and the pages are in order. If you want a pretty PDF to read on a device, this is what you want. If you want to run it through your own imposition software, this is also what you want.
GitS.p8_typeset: This is the imposition. That means the pages have been rearranged into signatures and spreads for bookbinding. There are 16 pages, or 8 spreads, or 4 sheets of paper (printed double-sided) to each signature. Each signature gets stacked, folded into a booklet, and then stacked on top of the next signature for sewing the book block. THIS IS THE WHOLE BOOK. If you want ONE file to send to the printer, in one straight run, this is what you want.
signatures (folder): These are INDIVIDUAL SIGNATURES. That means each signature is a separate file. If you want to do a test print of a single signature, this is what you want. If you want to run different signatures through different printers, this is what you want. If you want to do this piecemeal for any other reason, this is what you want.
(The last three signatures are three sheets of paper, not four. This is for the sake of balancing page count against structural integrity in the bound book.)
Why would you want different printers, you ask?
Because color printing is expensive. And I used color in the typeset.
The entire thing is designed to still be readable (and pretty!) in a regular, black-and-white printer. Because I wanted this to be accessible to everyone, not just people who can afford color printing. But if you want to split it, and send the signatures-with-colored-bits to a color printer, and save money by NOT sending the whole book, these are the signatures with colored bits:
0, 5, 7, 11, 13, 14, 25, 26, 28, 35
And if that's too many pages still, here are the signatures with the most important colored bits (i.e., the title pages and the illustrations):
0, 7, 35
All of the files are PDFs. All of them, specifically, are PDF/x-1a(2003), which means the color profile is CMYK only and all the fonts are embedded. So nothing should go screwy-whompus when you download it or send it to the printer.
TRIM SIZE: the pages are 5x7.5. This is (1) to allow printing on letter-sized paper more easily, and (2) to also allow for trimming of the book block without screwing over the margins. The imposition and the signature files have trimming / cutting guides (the little lines) for your convenience.
There are 36 signatures total, or 560-something pages (less than 200 sheets of paper, before folding, if printed double-sided). This is still a big book. Big enough that you will need to know about spine swell, and possible rounding and backing, if you decide to do the binding. Please keep that in mind as you plan your project.
EPUB: some people like to convert PDF book files to ePUBs for eBook reading. Due to how I designed the typeset, this is not going to be pretty if you try it with these. I am currently in the final stages of making the eBook for GitS, and will upload the ePUB to the drive folder as soon as it's done. It will not have the pretty background / border illustrations of the print file, but it will be neat and tidy and include the pretty title pages.
I... think that's everything?
7 notes · View notes
siliconsignalsblog · 1 month ago
Text
Configuring Zephyr: A Deep Dive into Kconfig
We presented The Zephyr Project RTOS and illustrated a personal best practice for beginning with "Zephyr" in an earlier blog post. A custom West manifest file is a great way to guarantee that your code is always at a known baseline when you begin development, as you saw in that blog post. Following the creation of your custom manifest file and the establishment of your baseline repositories using West, what comes next in your Zephyr journey?
Tumblr media
Enabling particular peripherals, features, and subsystems is one of the first steps in putting embedded software into practice. Some MCU manufacturers, like STM32, Microchip, and TI, have tools in their IDEs that let developers add subsystems to their codebase and enable peripherals in their projects. These tools, however, are closely related to the MCUs that the vendors sell. Applying these tools' functionality to other MCUs is challenging, if not impossible.
However, we can enable a specific MCU subsystem or feature using a vendor-neutral mechanism provided by The Zephyr Project RTOS. For people like me who don't like GUIs, this mechanism can be used with a command line. The name of this utility is "Kconfig." I'll go over what Kconfig is, how it functions, and the various ways we can use it to incorporate particular features and subsystems into our Zephyr-based project in this blog post.
WHAT IS KCONFIG?
Kconfig is still utilized today as a component of the kernel compilation process, having been initially created as part of the Linux kernel. Kconfig has a particular grammar. Although fascinating, the specifics of how Kconfig is implemented in the Linux kernel are outside the purview of this blog post. Alternatively, if you're interested, you can read my article here: (https://www.linux-magazine.com/Issues/2021/244/Kconfig-Deep-Dive), which walks through the Kconfig source code. However, after seeing an example, it's simple to become familiar with the format of a "Kconfig"—the slang term for a specific configuration option. The Kconfig system consists of three primary components.
First, there is the collection of Kconfig files scattered across different OS codebase directories. For example, if we look under "drivers/led" within the Zephyr codebase, we see a file named Kconfig with the following contents:  menuconfig LED     bool "Light-Emitting Diode (LED) drivers"     help      Include LED drivers in the system configurationif LED...config LED_SHELL    bool "LED shell"    depends on SHELL    help      Enable LED shell for testing.source "drivers/led/Kconfig.gpio"...endif # LED
Using the if statement, the line that begins with "menuconfig" tells the Kconfig system that "LED" contains a number of feature options that are only visible if the "LED" feature is enabled. The user can then activate the "LED_SHELL" option if the "LED" feature is enabled. The result of this configuration option is a Boolean, which determines whether this feature is enabled or disabled, as the line that follows shows. If a configuration option refers to a particular configuration parameter, the result can also be an integer in addition to a Boolean. The line that starts with "depends" indicates that in order for the "LED_SHELL" feature to be visible, the "SHELL" feature needs to be enabled. As a result, only after the "LED" and "SHELL" features have been enabled will the "LED_SHELL" feature become visible. A more detailed explanation of the feature can be found in the two lines that begin with "help". Last but not least, the final line before the "endif" lets us refer to additional Kconfig files, which aids in classifying components. As though they were copied and pasted, the features of the referenced file are present in the current file. It is crucial to remember that the path to "source" comes from the Zephyr codebase's root.
HOW SHOULD YOU USE KCONFIG?
A collection of applications that enable users to enable or disable the features listed in all Kconfig files make up the second component of the Kconfig infrastructure. Zephyr provides a Visual Studio Code extension that enables users to carry out this task with a graphical user interface. For command line enthusiasts like myself, the VS Code extension provides an alternative to utilizing a graphical user interface. In order to configure Zephyr appropriately, the extension can accept a file, which is the final component of the Kconfig infrastructure and contains a set of configuration options that can be turned on or off. The following snippet shows an example. CONFIG_BT=yCONFIG_BT_PERIPHERAL=yCONFIG_BT_GATT_CLIENT=yCONFIG_BT_MAX_CONN=1CONFIG_BT_L2CAP_TX_MTU=250CONFIG_BT_BUF_ACL_RX_SIZE=254
There is nothing complicated about the file format. "CONFIG_" appears at the start of each line, and then the configuration option's name. After the "=" symbol, the line either ends with a "y" to activate the feature or a "n" to deactivate it. In the example above, we configure the stack parameters and activate the Bluetooth stack in Zephyr along with specific stack features. "prj. conf," which contains user-defined features, is the default file in the majority of Zephyr-based applications.
 
CONCLUSION
The Zephyr Project RTOS provides a robust, vendor-neutral mechanism called the Kconfig infrastructure that allows us to fully configure our entire application. It can be used to control particular subsystems and peripherals within the MCU in addition to turning on or off individual stacks within the RTOS and setting configuration parameters.
Ready to bring your embedded systems to life with optimized configurations and robust solutions? We specialize in hardware design and software development tailored to your project needs. Whether you're configuring peripherals or diving deeper into Kconfig for your Zephyr-based applications, our experts are here to support you every step of the way.
👉 Contact Us Today and let's transform your embedded ideas into reality!
2 notes · View notes
reliableembeddedsystems · 2 years ago
Text
28 Mar: public/private (TBD), online, DE/EN (TBD), book until: 25 Feb rlbl.me/yocto-r-en-pdf #yocto #yoctoproject #yoctoizing #embeddedlinux #openembedded #linux #developer #embedded #coding #programming #software #embedsys @yoctoproject @yoctotraining https://video.twimg.com/ext_tw_video/1625228378730012697/pu/vid/1280x720/AJNfpXIZCDoaY3A2.mp4?tag=12
0 notes