#embedded programming
Explore tagged Tumblr posts
Text
I couldn't find my little ring stitch counter thing so I threw this together

Only after did I realize it would have been easier to just write something for my computer, but this is definitely cooler looking
4 notes
·
View notes
Text
Normally I just post about movies but I'm a software engineer by trade so I've got opinions on programming too.
Apparently it's a month of code or something because my dash is filled with people trying to learn Python. And that's great, because Python is a good language with a lot of support and job opportunities. I've just got some scattered thoughts that I thought I'd write down.
Python abstracts a number of useful concepts. It makes it easier to use, but it also means that if you don't understand the concepts then things might go wrong in ways you didn't expect. Memory management and pointer logic is so damn annoying, but you need to understand them. I learned these concepts by learning C++, hopefully there's an easier way these days.
Data structures and algorithms are the bread and butter of any real work (and they're pretty much all that come up in interviews) and they're language agnostic. If you don't know how to traverse a linked list, how to use recursion, what a hash map is for, etc. then you don't really know how to program. You'll pretty much never need to implement any of them from scratch, but you should know when to use them; think of them like building blocks in a Lego set.
Learning a new language is a hell of a lot easier after your first one. Going from Python to Java is mostly just syntax differences. Even "harder" languages like C++ mostly just mean more boilerplate while doing the same things. Learning a new spoken language in is hard, but learning a new programming language is generally closer to learning some new slang or a new accent. Lists in Python are called Vectors in C++, just like how french fries are called chips in London. If you know all the underlying concepts that are common to most programming languages then it's not a huge jump to a new one, at least if you're only doing all the most common stuff. (You will get tripped up by some of the minor differences though. Popping an item off of a stack in Python returns the element, but in Java it returns nothing. You have to read it with Top first. Definitely had a program fail due to that issue).
The above is not true for new paradigms. Python, C++ and Java are all iterative languages. You move to something functional like Haskell and you need a completely different way of thinking. Javascript (not in any way related to Java) has callbacks and I still don't quite have a good handle on them. Hardware languages like VHDL are all synchronous; every line of code in a program runs at the same time! That's a new way of thinking.
Python is stereotyped as a scripting language good only for glue programming or prototypes. It's excellent at those, but I've worked at a number of (successful) startups that all were Python on the backend. Python is robust enough and fast enough to be used for basically anything at this point, except maybe for embedded programming. If you do need the fastest speed possible then you can still drop in some raw C++ for the places you need it (one place I worked at had one very important piece of code in C++ because even milliseconds mattered there, but everything else was Python). The speed differences between Python and C++ are so much smaller these days that you only need them at the scale of the really big companies. It makes sense for Google to use C++ (and they use their own version of it to boot), but any company with less than 100 engineers is probably better off with Python in almost all cases. Honestly thought the best programming language is the one you like, and the one that you're good at.
Design patterns mostly don't matter. They really were only created to make up for language failures of C++; in the original design patterns book 17 of the 23 patterns were just core features of other contemporary languages like LISP. C++ was just really popular while also being kinda bad, so they were necessary. I don't think I've ever once thought about consciously using a design pattern since even before I graduated. Object oriented design is mostly in the same place. You'll use classes because it's a useful way to structure things but multiple inheritance and polymorphism and all the other terms you've learned really don't come into play too often and when they do you use the simplest possible form of them. Code should be simple and easy to understand so make it as simple as possible. As far as inheritance the most I'm willing to do is to have a class with abstract functions (i.e. classes where some functions are empty but are expected to be filled out by the child class) but even then there are usually good alternatives to this.
Related to the above: simple is best. Simple is elegant. If you solve a problem with 4000 lines of code using a bunch of esoteric data structures and language quirks, but someone else did it in 10 then I'll pick the 10. On the other hand a one liner function that requires a lot of unpacking, like a Python function with a bunch of nested lambdas, might be easier to read if you split it up a bit more. Time to read and understand the code is the most important metric, more important than runtime or memory use. You can optimize for the other two later if you have to, but simple has to prevail for the first pass otherwise it's going to be hard for other people to understand. In fact, it'll be hard for you to understand too when you come back to it 3 months later without any context.
Note that I've cut a few things for simplicity. For example: VHDL doesn't quite require every line to run at the same time, but it's still a major paradigm of the language that isn't present in most other languages.
Ok that was a lot to read. I guess I have more to say about programming than I thought. But the core ideas are: Python is pretty good, other languages don't need to be scary, learn your data structures and algorithms and above all keep your code simple and clean.
#programming#python#software engineering#java#java programming#c++#javascript#haskell#VHDL#hardware programming#embedded programming#month of code#design patterns#common lisp#google#data structures#algorithms#hash table#recursion#array#lists#vectors#vector#list#arrays#object oriented programming#functional programming#iterative programming#callbacks
19 notes
·
View notes
Text
Discover the Basics of the Raspberry Pi Along with Multiple Projects
The Raspberry Pi has become incredibly popular among computer hobbyists and businesses for a variety of reasons. It consumes very little power, is portable, has solid-state storage, makes no noise, and offers extension capabilities, all at a very low price.
4 notes
·
View notes
Text
Understanding Embedded Computing Systems and their Role in the Modern World
Embedded systems are specialized computer systems designed to perform dedicated functions within larger mechanical or electrical systems. Unlike general-purpose computers like laptops and desktop PCs, embedded systems are designed to operate on specific tasks and are not easily reprogrammable for other uses. Embedded System Hardware At the core of any embedded system is a microcontroller or microprocessor chip that acts as the processing brain. This chip contains the CPU along with RAM, ROM, I/O ports and other components integrated onto a single chip. Peripherals like sensors, displays, network ports etc. are connected to the microcontroller through its input/output ports. Embedded systems also contain supporting hardware like power supply circuits, timing crystal oscillators etc. Operating Systems for Embedded Devices While general purpose computers run full featured operating systems like Windows, Linux or MacOS, embedded systems commonly use specialized Real Time Operating Systems (RTOS). RTOS are lean and efficient kernels optimized for real-time processing with minimal overhead. Popular RTOS include FreeRTOS, QNX, VxWorks etc. Some simple devices run without an OS, accessing hardware directly via initialization code. Programming Embedded Systems Embedded Computing System are programmed using low level languages like C and C++ for maximum efficiency and control over hardware. Assembler language is also used in some applications. Programmers need expertise in Microcontroller architecture, peripherals, memory management etc. Tools include compilers, linkers, simulators and debuggers tailored for embedded development. Applications of Embedded Computing Embedded systems have revolutionized various industries by bringing intelligence and connectivity to everyday devices. Some key application areas include: Get more insights on Embedded Computing
Unlock More Insights—Explore the Report in the Language You Prefer
French
German
Italian
Russian
Japanese
Chinese
Korean
Portuguese
Alice Mutum is a seasoned senior content editor at Coherent Market Insights, leveraging extensive expertise gained from her previous role as a content writer. With seven years in content development, Alice masterfully employs SEO best practices and cutting-edge digital marketing strategies to craft high-ranking, impactful content. As an editor, she meticulously ensures flawless grammar and punctuation, precise data accuracy, and perfect alignment with audience needs in every research report. Alice's dedication to excellence and her strategic approach to content make her an invaluable asset in the world of market insights.
(LinkedIn: www.linkedin.com/in/alice-mutum-3b247b137 )

#Embedded Computing#Embedded Systems#Microcontrollers#Embedded Software#Iot#Embedded Hardware#Embedded Programming#Edge Computing#Embedded Applications#Industrial Automation
0 notes
Text
#automotive embedded engineer#automotive engineer#embedded systems course#automotive industry#automotive embedded system course in pune#embedded programming#futureofai#neuailabs
0 notes
Text

OPT4048 - a "tri-stimulus" light sensor 🔴🟢🔵
We were chatting in the forums with someone when the OPT4048 (https://www.digikey.com/en/products/detail/texas-instruments/OPT4048DTSR/21298553) came up. It's an interesting light sensor that does color sensing but with diodes matched to the CIE XYZ color space. This would make them particularly good for color-light tuning. We made a cute breakout for this board. Fun fact: it's 3.3V power but 5V logic friendly.
#opt4048#lightsensor#colortracking#tristimulus#ciexyz#colorsensing#texasinstruments#electronics#sensor#tech#hardware#maker#diy#engineering#embedded#iot#innovation#breakoutboard#3dprinting#automation#led#rgb#technology#smartlighting#devboard#optoelectronics#programming#hardwarehacking#electronicsprojects#5vlogic
84 notes
·
View notes
Text
My worker firmware works! It flashed itself over, now just to add some roll back, security, and validation features. But effectively this means I never have to plug in another ESP32 to send them firmware. I can just tell them to post to MQTT from the worker firmware for logging and post the firmware binary to my local file server. This makes my life so much easier while building out this mesh of meshes multi-protocol com lib. Hell yeahhh
#trans#queer#transgender#tech#esp32#maker#computer#programming#c++#arduino#embedded software#firmware
7 notes
·
View notes
Text
If you fuck up in JS you get a dumb "couldn't read property of undefined".
If you fuck up in Cpp you get a cool glitch effect from reading bad sections of your memory for free!
12 notes
·
View notes
Text
i've gotta program something soon...
#my posts#gets computer science degree#proceeds to do no programming for 4 months#i have like a few programming ideas but starting things is hard#i want to play with godot more it seems fun#i should probably also learn C++ for job reasons since i want to get into lower level/embedded stuff and only know C and rust#i guess the problem there is i'd have to like come up with a project to learn it with#preferably something lower level#maybe finally do that make your own file system project i skipped?#or like something with compression and parsing file formats#that's all pretty involved though so something like playing with godot would probably be better to get myself back in the programming mood#some sort of silly 2d game probably#i've had thoughts of making a silly little yume nikki-like for my friends to play that could be fun#or just any silly little game for just my friends idk#starting with gamemaker kinda made using other game engines a bit weird for me#so getting used to how more normal game engines work would probably be useful#i also want to mess with 3d games that seems fun too#but see the problem with all of this is that i suck at starting projects#and am even worse at actually finishing them#well i guess we'll see what happens?#also hi if you read all of this lol
16 notes
·
View notes
Text
SOMEONE GIVE ME A BLOODY INTERNSHIP 😭
#upcoming electronics engineer#proficient in embedded system in c. c++. c. python. and dsa in c++. and programming micro controllers like arduino uno and stm32.#PLEASE HIRE ME PAID OR NOT.
2 notes
·
View notes
Text
this report is about to be the worst work of my degree thus far
#that's not true it can't get worse than the embedded programming exam#but wow the information is contradicting#emailed the professor for help and he replied at 9pm on a sunday#??#but what he said wasn't very helpful#also condescending#'it should be simple to figure out that...' no it's not#was going to push on since i'm behind on my schedule but#it's half 10#very tired#and feeling like i want to end it all#or maybe hit something#or drop out#this stuff would be manageable if it had clear instruction and wasn't a mess spread over#10 different lectures and documents and powerpoints etc
4 notes
·
View notes
Text
I'm in too deep to get out (college)
#5 projects this semester#i'm gonna juggle between game programming embedded programming circuit designing and whatever tf#like wtf
2 notes
·
View notes
Text
2 notes
·
View notes
Text
ESP32 Embedded Development with Cellular Technologies: A Technical Report
Explore comprehensive insights into ESP32 embedded development with cellular technologies, including LTE, NB-IoT, and LTE-M integration, hardware options, software stacks, real-world projects, and best practices for IoT applications.
1 note
·
View note
Text
Should I actually make meaningful posts? Like maybe a few series of computer science related topics?
I would have to contemplate format, but I would take suggestions for topics, try and compile learning resources, subtopics to learn and practice problems
#computer science#embedded systems#linux#linuxposting#arch linux#gcc#c language#programming#python#infosecawareness#cybersecurity#object oriented programming#arduino#raspberry pi#computer building#amd#assembly#code#software#software engineering#debugging#rtfm#documentation#learning#machine learning#artificial intelligence#cryptology#terminal#emacs#vscode
4 notes
·
View notes
Text
Cutting-Edge Embedded Course for Tech Enthusiasts
Explore the frontier of technology with our embedded course, designed to delve deep into the intricate workings of hardware-software integration. Master the art of programming embedded systems to unlock limitless possibilities in robotics, IoT, and beyond.
#embedded system course#embedded course#embedded programming#automotive engineer#automotive industry#automotive embedded engineering#automotive embedded systems#automotive embedded system course in pune#neuailabs#futureofai
0 notes