Delicious Vector Game Console Runs Pac-Man, Tetris, and Mario

The only question we have about [mitxela]’s DIY vector graphics game console is: Why did he wait five years to tell the world about it?

Judging by the projects we’ve seen before, from his tiny LED earrings to cramming a MIDI synthesizer into both a DIN plug and later a USB plug, [mitxela] likes a challenge. And while those projects were underway, the game console you’ll see in the video below was sitting on the shelf, hidden away from the world. That’s a shame, because this is quite a build.

Using a CRT oscilloscope in X-Y mode as a vector …read more

Continue reading Delicious Vector Game Console Runs Pac-Man, Tetris, and Mario

Delicious Vector Game Console Runs Pac-Man, Tetris, and Mario

The only question we have about [mitxela]’s DIY vector graphics game console is: Why did he wait five years to tell the world about it?

Judging by the projects we’ve seen before, from his tiny LED earrings to cramming a MIDI synthesizer into both a DIN plug and later a USB plug, [mitxela] likes a challenge. And while those projects were underway, the game console you’ll see in the video below was sitting on the shelf, hidden away from the world. That’s a shame, because this is quite a build.

Using a CRT oscilloscope in X-Y mode as a vector …read more

Continue reading Delicious Vector Game Console Runs Pac-Man, Tetris, and Mario

Clever Wedges That Will Increase Your PCB Assembly Yield

If there’s one thing that will bring down the yield of your PCB assembly, it’s your solder paste. Put too much on, and you’ll get bridged leads. If you don’t put enough on, that pad might not make good contact. [ScalarElectric] has an amazing trick that’s sure to astonish and astound. Just use wedges and you’ll get better yield with fine-pitched components.

The trick here is to define the cream/solder paste layer of each package as a wedge on each pad instead of the usual rectangle. This gives a few benefits, the largest being the increased gap between paste shapes. …read more

Continue reading Clever Wedges That Will Increase Your PCB Assembly Yield

From Dev to InfoSec Part 4: Buffer Overflows Made My Brain Hurt

While I’ve written a lot of code in my time, I don’t think I’ve ever firmly appreciated how complex it can be to write secure code. We go about our lives taking for granted that our apps will just work, and hopefully the programmers u… Continue reading From Dev to InfoSec Part 4: Buffer Overflows Made My Brain Hurt

Learn to Optimize Code in Assembly… for Android

When programming a microcontroller, there are some physical limitations that you’ll come across much earlier than programming a modern computer, whether that’s program size or even processor speed. To make the most use of a small chip, we can easily dig into the assembly language to optimize our code. On the other hand, modern processors in everyday computers and smartphones are so fast and have so much memory compared to microcontrollers that this is rarely necessary, but on the off-chance that you really want to dig into the assembly language for ARM, [Uri Shaked] has a tutorial to get you …read more

Continue reading Learn to Optimize Code in Assembly… for Android

A Close Look at the Prusa i3 MK3

The Prusa i3 MK3 is, for lack of a better word, inescapable. Nearly every hacker or tech event that I’ve attended in 2018 has had dozens of them humming away, and you won’t get long looking up 3D printing on YouTube or discussion forums without somebody singing its praises. Demand for Prusa’s latest i3 printer is so high that there’s a literal waiting list to get one.

At the time of this writing, over a year after the printer was officially put up for sale, there’s still nearly a month lead time on the assembled version. Even longer if you …read more

Continue reading A Close Look at the Prusa i3 MK3

Why does my stack contain the return address to __libc_csu_init after main is initialised?

I wrote a simple program in C, compiled it, opened it in gdb, set a breakpoint at line 11 and inspected the stack.

1 #include<stdio.h>
2
3 int main(int argc, char *argv[]){
4 char arr[4] = “AABB”;
5 i… Continue reading Why does my stack contain the return address to __libc_csu_init after main is initialised?