Grok Rust In A Flash

Here at Hackaday, we are big proponents of using the best tool for the job (or making your own tool if required). But when all you know how to use is Java, everything looks object-oriented. Bad jokes aside, it is important to have many tools at your disposal to allow you to choose wisely. Why not spend a few minutes with [No Boilerplate] and understand the basics of Rust?

The focus of the video is to go through as much Rust as possible and teach you how to read it. The idea is that rather than work your way from basic concepts, [No Boilerplate] will go over the vast majority of what you’ll see in a Rust-based program. Whether you’re coming from an object-oriented, functional, or just plain C-based background; you’ll feel comfortable since he makes an effort to compare to what you already know. Some of Rust’s more unique features are covered such as mutability, scope, matching, and strings. However, lifetimes, closures, and traits were left out to keep the video short. These topics are covered in an excellent blog post by [Faster than lime] which this video was based on.

What isn’t discussed is running Rust in a no-std environment like a PIC32. Rust has seen exciting development over the past few years with the Linux kernel getting rusty and the compiler getting continually better. Video after the break.

Continue reading “Grok Rust In A Flash”

Will MiSTer Fool You Into Learning FPGAs?

What’s the killer app for FPGAs? For some people, the allure is the ultra-high data throughput for parallelizable tasks, which can enable some pretty gnarly projects. But what if you’re just starting out? How about 1980s style video games?

The MiSTer FPGA project created a bit of FPGA hardware that makes it easy to build essentially any old school video game or computer platform. That’s a massive clean slate. Of course, you can simply download someone else’s Atari ST or Commodore 64 setup and load it up, but if you want to learn FPGAs while recreating old-school video game machines, you’re going to want to get your hands dirty.

[Mister Retro Wolf] started up a video series last winter (trailer embedded below) where he’s embarked on a project to recreate a classic video game machine from the ground up using the MiSTer FPGA platform. In particular, he’s going to recreate the Namco Tank Battalion arcade game, from the schematics, in Verilog.

This is literally building a 6502-based video game machine from scratch (in gateware), so if you’re interested in retrocomputing or FPGAs, you’ll have something to learn here. He’s gotten through the CPU, screen, tilemap graphics, and memory so far, but it’s not done yet. To follow along, get yourself some hardware and you can probably catch up.

We’ve covered the MiSTer FPGA project before, of course, because we think it’s cool. And if a video game arcade machine is going to be your gateway drug into the seedy world of programmable gates, then so be it.

Continue reading “Will MiSTer Fool You Into Learning FPGAs?”

Advanced PCB Graphics With KiCAD 6 And Inkscape

There are many, many video tutorials about designing the functional side of PCBs, giving you tips on schematic construction, and layout tips. What is a little harder to find are tutorials on the graphical aspects, covering the process from creating artworks and how you can drive the tools to get them looking good on a PCB, leveraging the silkscreen, solder and copper layers to maximum effect. [Stuart Patterson] presents his guide for Advanced PCB Graphics in KiCAD 6.0 and Inkscape, (Video, embedded below) to help you on your way to that cool looking PCB build.

Silkscreen layers in yellow, solder mask opening in red

The first step is to get your bitmap, whether you create it yourself, or download it, and trace it into a set of vectors using the Inkscape ‘trace bitmap’ tool. If you started with an SVG or similar vector shape, then you can skip that stage.

Next simply create a PCB outline shape by deleting all the details that aren’t part of the outline. A little scaling here and there to get the dimensions correct and you’re done with the first part. [Stuart] has an earlier video showing that process.

The usability improvements in KiCAD 6.0 are many, but one greatly demanded feature is the ability to group objects, just like you do in Inkscape and any other vector graphics tool for that matter. That means you can simply import that SVG outline into the Edge.Cuts PCB layer and all the curves will be nicely tied together. Next you select the details you want for the silkscreen layer, solder mask removal layers and any non-circuit copper. In Inkscape it would be wise to use the layers feature to assign the different material types to a uniquely named layer, so they can be hidden for exporting. This allows you to handle silk, mask and copper PNG exports from a single master file, in addition to any vector details for outline, slots and holes.

Once you have PNG bitmap exports for the silk, mask etc. you need to create a footprint inside a board-specific library, using the KiCAD image converter tool. It was interesting to note that you can export a new image footprint from the tool and paste it straight into the footprint editor, and tweak all the visibility details at the same time. That will save some time and effort for sure. Anyway, we hope this little tutorial from [Stuart] helps, and we will be sure to bring you plenty more in the coming months.

Need some more help with KiCAD? Checkout this tutorial, and if you want a bit more power from the tool, you need some action plugins!

Continue reading “Advanced PCB Graphics With KiCAD 6 And Inkscape”

Awesome Python Video Tutorials Keep You Motivated

Programming languages are one of those topics that we geeks have some very strong and often rather polarised opinions about. As new concepts in computing are dreamt up, older languages may grow new features, if viable, or get left behind when new upstarts come along and shake things up a bit. This scribe can remember his early days programming embedded systems, and the arguments that ensued when someone came along with a project that required embedded C++ or worse, Java, when we were mostly diehard C programmers. Fast forward a decade or two, and things are way more complicated. So much choice, so much opinion.

So it’s really nice to come across some truly unique and beautifully made Python tutorial videos, that are engaging and fun to watch. Fronted by Canadian actress [Ulka Simone Mohanty] who some may recognise from such lofty titles as the game “Magic: The Gathering Arena” and various films and TV shows, she delivers a dead-pan avatar-like presentation of the most important areas of Python. We were particularly amused by the comment “Loopus Interruptus” as the exception condition iterating off the end of a list. 

Continue reading “Awesome Python Video Tutorials Keep You Motivated”

the introduction page of "a summary of electronics"

This Electronics Overview Guides New Hackers In The Right Direction

Many of us don’t have a formal background to build off when taking on new hacks, we have had to teach ourselves complex concepts and learn by doing (or more commonly, by failing). To help new hackers get off the ground a bit easier, [PhilosopherFar3847] created a fantastic starter’s resource on electronics, The Electroagenda Summary of Electronics.

[PhilosipherFar3847] created Electroagenda with the goal of helping amateurs, students, and professionals alike better understand electronics. The Summary of Electronics, one of the more recent additions to the website, is split across 26 sections each breaking down a different electrical concept into easy-to-understand facts with no math or unfamiliar jargon. The summary covers a broad range of electronics, from simple passive components and their uses, up to the basic operating concepts of a microcontroller.

While this resource on its own will not be enough to get a fledgling hacker started making cool circuits, it does provide a very important skill; knowing how to ask the right questions. This base of knowledge provides enough context and keywords to better articulate a challenge and Google-fu a bit more effectively.

Are you the aforementioned fledgling hacker, looking to learn more? check out these nifty logic gates you can plug into each other to build a basic circuit.

[via r/diyelectronics]

Materials For Self Learners

[João Nuno Carvalho] is a passionate learner. Software engineer by day, he studies all different branches of science and engineering in his spare time. He has organized an impressive list of study / reference materials on a wide variety of subjects that interest him, from aeronautical engineering to quantum mechanics and dozens more in between. In fact, his study lists themselves became so numerous that he collected them into a list of lists, which can be found here on his GitHub repository. These include categories on “How to learn…”

  • Modern Electronics
  • Modern Linux
  • Modern Embedded Systems
  • Mathematics from the ground up
  • Physics from the ground up
  • Modern Compressive Sensing
  • Modern [C, C++, Rust, Python]
  • Modern Machine Learning
  • Modern Aeronautics and Astronautics
  • Guitar on a budget

Another interesting thing we found in his repo was a list of common electrical components. If you can’t remember off the top of your head the part number of common 100 V PNP bipolar transistor, [João]’s list will point you towards a BD136.

It’s quite an impressive list of resources, and we can’t help but wonder how large [Joã0]’s personal library is if it contains even half of the materials from these lists. Check these out if you want to brush up on a topic — they include not only text books and reference volumes, but forums, blogs, YouTube links, etc. On the topic of learning, we wrote a piece back in 2017 on how learning differs between hobbyists and students. Do you have a favorite list-of-lists that you turn to when you want to brush up or learn about a new subject? Let us know in the comments below.