Voja Antonic – Hackaday https://hackaday.com Fresh hacks every day Tue, 14 Apr 2020 21:38:17 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 156670177 Buyer Beware: This LED Bulb Sold as Germicidal Doesn’t Emit UV-C https://hackaday.com/2020/04/15/buyer-beware-this-led-bulb-sold-as-germicidal-doesnt-emit-uv-c/ https://hackaday.com/2020/04/15/buyer-beware-this-led-bulb-sold-as-germicidal-doesnt-emit-uv-c/#comments Wed, 15 Apr 2020 08:01:13 +0000 https://hackaday.com/?p=408142 Germicidal lamps are designed to destroy viruses and bacteria using ultraviolet light. But not just any UV light will work, and I came across an example of a lamp that …read more]]>

Germicidal lamps are designed to destroy viruses and bacteria using ultraviolet light. But not just any UV light will work, and I came across an example of a lamp that was advertised as germicidal but a few things just weren’t right about it.

This is an actual UV-C LED made by CEL (PDF) that emits 275nm. Note the clear glass that covers the LED.

I ordered the UV-C germicidal LED lamp on Amazon, and received it a few days ago. It felt the suspicion from the first moment: playing around with a lot of different UV LEDs, I’ve learnt how the parasitic visible light from different UV ranges should look like to human eye. Also, proper UV-C LED lenses like the one shown here are made of quartz glass. Compare that to the image at the top of the article of the bulb I received that has a soft plastic lens, which is possibly opaque and degradable in the far UV range. The most important clue that something was wrong was the price. It’s hard to imagine that a UV-C LED lamp with the 253.7nm wavelength, made of more than 200 LEDs and in such a robust metal case, can cost only $62.99.

Although there was the risk of being unjust, I decided to return the product. In my message I bluffed that I measured the spectra of the lamp with a spectral emission meter, and that its output was not in the UV-C range. The next day I received confirmation that the bluff paid off: the seller replied that they advertised the product according to information from the supplier, and that the incorrect information was caused by their lack of understanding of product information. They also attached the official datasheet with the measured wavelength: it was not 253.7 nm, as advertised, but with the peak at 394.3 nm, and the dominant wavelength at 413.9 nm. It was not in the far UV-C, but in the near UV-A range and not at all useful for destroying germs! The seller promised that the product would be removed from their store, and kept the promise.

If you are thinking about buying a UV-C LED lamp, maybe you should get the good old CFL germicidal lamp. I don’t think that viruses care too much about the new technology.

]]>
https://hackaday.com/2020/04/15/buyer-beware-this-led-bulb-sold-as-germicidal-doesnt-emit-uv-c/feed/ 131 408142 sold-as-germicidal-but-only-emits-UV-A-featured
Reading Bingo Balls with Microcontrollers https://hackaday.com/2017/06/07/reading-bingo-balls-with-microcontrollers/ https://hackaday.com/2017/06/07/reading-bingo-balls-with-microcontrollers/#comments Wed, 07 Jun 2017 14:01:34 +0000 http://hackaday.com/?p=257409 Every once in a while a project comes along with that magical power to consume your time and attention for many months. When you finally complete it, you feel sorry …read more]]>

Every once in a while a project comes along with that magical power to consume your time and attention for many months. When you finally complete it, you feel sorry that you don’t have to do anything more.

What is so special about this Bingo ball reader? It may seem like an ordinary OCR project at first glance; a camera captures the image and OCR software recognizes the number. Simple as that. And it works without problems, like every simple gadget should.

But then again, maybe it’s not that simple. Numbers are scattered all over the ball, so they have to be located first, and the best candidate for reading must be selected. Then, numbers are painted onto a sphere rather than a flat surface, sometimes making them deformed to the point where their shape has to be recovered first. Also, the angle of reading is not fixed but somewhere on a 360° scale. And then we have the glare problem to boot, as Bingo balls are so shiny that every light source reflects as a saturated bright spot.

So, is that all of it? Well, almost. The task is supposed to be performed by an embedded microcontroller, with limited speed and memory, yet the recognition process for one ball has to be fast — 500 ms at worst. But that’s just one part of the process. The project includes the pipelined mechanism which accepts the ball, transports it to be scanned by the OCR and then shot by the public broadcast camera before it gets dumped. And finally, if the reading was not reliable enough, the ball has to be subtly rotated so that the numbers would be repositioned for another reading attempt.

Despite these challenges I did manage to build this system. It’s fast and reliable, and I discovered some very interesting tricks along the way. Take a look at the quick demo video below to get a feel for the speed, and what the system “sees”. Then join me after the break to dive into the details of this interesting embedded build.

Initially, I thought I would have to employ a neural network for the recognition process, but it turned out the recognition is actually the simplest part of the project, and that it would be much easier and faster to do it algorithmically. The tough part is determining what’s what on the whole image, locating the best number, the line under it, and measuring how much it should be rotated. Starting with nothing more than a bitmap image, the processor has to do a lot of math even before it can be sure if the number consists of one or two digits.

Simplified schematic of OCR section

VGA During Development

To make the development, maintenance and adjustments easier, the same MCU is used for VGA signal generation in addition to image fetching and processing. It doesn’t only display the scanned image, but also includes some current parameters and RAM contents. The controller board has a VGA connector, but it should not be used during the normal operation of the unit. VGA monitor has nothing in common with broadcast monitors in the Bingo hall, as there are two independent cameras and lighting systems.

VGA signal generation consumes a lot of processor time, so it is switched off during image fetch and processing, which is about 500 ms during each ball reading cycle. Sync signals are transparently generated by the internal PWM peripherals and they are active all the time, so that picture restore after RGB signal establishing is fast.

In this case, 16-bit microcontroller PIC24EP512GP806 was used, with 586/52 K of program/data memory and 60 MIPS execution speed.

Fetching the Image

The low-cost analog “cube” camera was used in the first phase of development, but was later substituted by a digital cube camera. Both were similar in price and performance, but the latter one came with the lens which has higher focal length, so the distance could be higher and the camera could see the larger area of the ball.

For such a small object, the best light source should be white LEDs, but the glare was quite bad with the shiny ball surface. I performed some experiments with diffusers, but with no luck. The eventual solution came from a quite different approach: very bright and sharp reflection, but with double exposure which uses different light sources. During the second image fetch process, the MCU selects the lower value for every pixel.

As the hotspots never match, they will be canceled and the resulting image (the third photo from the left) is evenly lit and glare-free. As an added bonus, the background light reflections were canceled in the process as well.

Please note that the system is embedded, without a screenshot function, so the images come from a VGA monitor being shot with a camera.

The light source is composed of 16 white LEDs, so that eight LEDs are active at a time. The image on the far right-hand side represents LED arrangement from the camera’s point of view. LEDs are colored red and blue here to help differentiate between groups for the first and second exposure.

This makes the process significantly slower, as now we have not only two exposures, but also the dummy frame time between two exposures, to allow the recovery and accomodation of the CMOS sensor after the lighting changes. That’s why the whole imaging process takes almost 100 ms.

The resolution of the scanned image is 220×220 pixels, with 8-bit pixel depth. The analog grayscale image consists of only six bits, with the remaining two bits being used for blue and red color representation on the monitor, as the grayscale is actually greenscale. Those extra pixels are used as special flag pixels between processing steps, visible in the single step mode, as blue and red areas. This turned out to be very useful during program development and debugging.

The whole process is divided into 17 steps, which can also be executed in single-step mode for development and debugging purposes. The step number is displayed at the top left corner of the screen (see below), and the current state of the stopwatch with 1 ms resolution at the top right. This way it was easy to follow the execution time and optimize each step.

Ball Location and Stretching

To locate the ball precisely, X, Y coordinates for centroid (geometric center) are calculated, using formulas Cx = ∑CixAi / ∑Ai and Cy = ∑CiyAi / ∑Ai, where Cx, Cy are X, Y coordinates and A is the value of every pixel. As the background is predominantly black before this step, Cx, Cy will be approximately in the center of the ball. Then the whole frame buffer is moved as a 2D block, so that centroid is at coordinates X=110, Y=110, which is at the center of the frame. The center is marked with 2×2 red pixels (bit 7) only for developer’s convenience, as the processing firmware in most cases ignores bits 6 and 7.

Next, the ball diameter is measured, calculating the average pixel value on the perimeter for different diameters. Then, the background (every pixel that’s outside the diameter) is set to “white” or, more specifically, green (value 0x3F), to ensure better isolation of black areas. The background will be set to white or black a few times more during processing, each time the selection of black (ink) or white (paper) areas is required.

Flawlessly transforming a sphere to a flat surface is impossible, but the shape can be improved if the image is non-linearly deformed, like on the step 3 image. Small 16-bit microcontrollers don’t have an arithmetic coprocessor, and using standard trigonometric libraries would consume too much processor time. That’s why trigonometric lookup tables were used, and you can see on the stopwatch (top right blue digits) that, in this case, the execution time for the stretching procedure was only 11 ms. You can also see that the central part of the ball is mostly unchanged, and the edges are non-linearly stretched so that spherical deformations are minimized.

In step 4, similarly to the Unsharp Mask function in Photoshop, a new, blurred image is created. As there is not enough RAM space for another full frame buffer, it is performed on the auxiliary image which is scaled down to the resolution 44×44. The function of the unsharp mask is very important, as it ensures better selecting of “ink” pixels relative to “paper” pixels. Selecting means “setting of bit 7”, which will result in red areas on the VGA screen.

Now there are two images in the same frame buffer, the grayscale one (bits 0-5) and the binary one (bit 7). The latter is used in the preprocessing step 6, where small holes and scratches are eliminated. The selected image is first expanded and contracted, and then the process is repeated with the order of operations reversed — which results in the edges being smoothly rounded and garbage-free.

Component Manipulation

After a couple more preprocessing steps, more serious operations take place. The first one is known as “connected components”, where the isolated areas are selected and parameters for each one are acquired. This includes X and Y dimensions, X and Y center coordinates, number of pixels selected, and the Euclid’s distance from the center of the frame. This will help sort every component as a digit, the big circle, the underline or background. At this stage, it also becomes clear if the number contains one or two digits.

This step takes a lot of processing time, about 200 ms. Another problem was that the standard algorithm for connected components requires an auxiliary frame buffer of the same size, so I had to create a new algorithm which utilizes the same frame buffer, plus a small table for temporary coordinates.

At this point it is easy for the processor to choose the best candidate for recognition — it is the circle with the smallest Euclid’s distance from the center of the ball. Connected components inside this circle are taken into account, and everything else is expunged.

The balls in question are special OCR balls with underlined numbers, so that the angle of rotation can be measured. Now that the center of the circle is known, the program rotates the virtual “T” form, which corresponds to the underline shape, in 512 steps around the 360° circle, counting how many “ink” pixels it contains. The highest rated count dictates the angle of rotation, then the 2D block of the frame buffer is moved to the bottom right corner of the image (step 12 on the leftmost image), and the rotation is performed, moving the bitmap to the opposite corner of the frame buffer. Thanks to logarithmic lookup tables, this group of operations takes only 50 ms.

It keeps getting better with every step. Digits are selected with different colours, then one digit is moved to the safe distance, and then each digit is scaled to the known resolution of 30×46.

Recognition

As this reader was my first OCR project, I naively thought the recognition process would be the toughest part to solve. After each step was fully debugged and checked one by one, I reached the 17th and final step. As I already pointed out, my initial plan was to go for a neural network, but then I tried a simple algorithm and played around with it. I tested it with a few balls and you can’t imagine how shocked I was when I saw it works perfectly! At last the bitmap was properly rendered to two ASCII numbers.

The algorithm is quite simple. The bitmap for each digit was virtually divided in three parts, first horizontally, and then vertically. Then active pixels were counted at every column or row, and histograms created. There is also an added 7th histogram, which is slanted to help better detection of the crosscut lines at digits 4 and 7.

It took only 3 ms to build seven histograms for each digit and to compare them with prerecorded tables, calculate the sum of mean squared errors and sort the results. To make the development and debugging easier, all histograms are plotted to the screen.

After the results of the comparison are sorted, we get the winner for each digit (in this case 8 and 5), but our job isn’t done until one more thing takes place. The quality of reading has to be rated, so that the controller can estimate if the result is reliable enough.

If the number on the ball has only one digit, the table of errors for each digit (0…9) is sorted and the “winner” is compared with the second one (nearly-the-winner). If the ratio is high, that means that the recognition is successful. In our case it was 147%, which means that the second rated candidate has 147% more errors than the best one. For instance, the first one had 100 “error units” and the second one had 247. This is a good rating, although most ratings are north of 300%. Generally, ratings higher than 80% should be considered safe enough.

But what if there are two digits? A chain is only as strong as its weakest link, so the program will ignore the more successfully recognized digit (the one with higher ratio) and use the weaker one to make the final decision on success.

The controller has two basic modes of operation. In the fast mode, there is only one reading, which gets repeated (after the ball rotation) only if the first reading wasn’t rated well enough. In the slower (“safe”) mode, there are two readings whose results must match.

The reader was tested in Belgrade, in Eleks-M company, which produces casino equipment. The test was performed with one extra still camera which automatically recorded every ball reading, then the images (with filenames which contained nothing but the recognized ball number) were sorted alphabetically and the final check was performed manually.

The entire test lasted for 240 hours, which would help stress-test the durability of the Bingo blower in addition to the reader. After 10 days and 115,000 balls read, there was only one erroneous reading (ball 37 was read as 7), with the reader being set to fast mode. Testing in safe mode would be meaningless, as an error would probably never occur.

Mechanical Concept

The physical path for Bingo balls is circular, with a stepper motor rotating the carousel by 90° for each ball cycle. There are four pipelined steps: ball in, OCR reading, broadcast recording, and ball out. Bingo blowers have followed the same functional pattern for decades. In the past, the balls were human-read (probably from the broadcast camera), then we got the Bar-code (left), then RFID reader (middle) and, finally, optical character recognition (right).

There is another stepper motor which rotates the ball under the OCR camera after scanning, to make it ready if another reading is required. The controller contains two equal MCUs: one scans the image, recognizes the number, controls LED lighting and generates VGA signal, and the other one drives stepper motors, communicates with the server and controls all parts of the blower.

The enclosure and mechanical parts are made of FR4, using the process described in my previous guide. The only exception is the carousel, which is made of laser cut acrylic. The main stepper motor rotates the carousel directly, and four magnets with one Hall sensor are responsible for home positioning.

If the controller decides that another reading is necessary, the small stepper motor rotates the ball slightly, in order to reposition numbers. The controller can also control the third stepper motor, which is used inside the blower unit, to open the entrance gate at the beginning of the game.

To make the unit more compact, the controller board is attached to the enclosure, so the only external cables are 12 VDC supply and RS232, for communication with the server. For very long distances, there’s a galvanically isolated current loop. There is also a USB version of the controller, but the limited length of the cable makes it hard to implement in some cases.

Two older versions of the project are described at

At last, the firmware (for OCR microcontroller only) took nearly 80 K bytes of lookup tables and about 6,000 lines of assembly language code, excluding comments. You heard well — it’s all assembly language. I’m a hardware guy and I like to keep everything under my control.

I forgot to add one more thing, but you probably guessed it by now: doing projects like these is a blast.

]]>
https://hackaday.com/2017/06/07/reading-bingo-balls-with-microcontrollers/feed/ 38 257409 headline
Design and Hacking Drilldown: SuperCon Badge https://hackaday.com/2016/10/17/design-and-hacking-drilldown-supercon-badge/ https://hackaday.com/2016/10/17/design-and-hacking-drilldown-supercon-badge/#comments Mon, 17 Oct 2016 17:01:12 +0000 http://hackaday.com/?p=227065 One can imagine a political or business conference without an interactive badge — but not a hacker conference. Does this make the case for hackers being a special breed of …read more]]>

One can imagine a political or business conference without an interactive badge — but not a hacker conference. Does this make the case for hackers being a special breed of people, always having something creative to show for their work? Yes, I think it does.

Following the Hackaday Belgrade conference in April of this year, we met at the Supplyframe offices to discuss the badge for the Hackaday SuperConference that will happen in Pasadena on 5+6th of November. The Belgrade conference badge (which was fully documented if you’re curious) was surprisingly popular, and I was asked to design the new one as well.

I was prepared to come up with something completely new, but [Mike Szczys] suggested keeping with the same basic concept for the project: “No reason to change anything, we have a badge that works”. To which I responded: “Well, the next one will also work”. But then I realized that “works” does not stand for “being functional”. The key is that it was embraced by visitors who played with it, coded on it, and solved a crypto challenge with it.

The World Doesn’t Have Enough LEDs

led-modules-versus-smdFast forward six months — here are the modifications made to the basic concept. First, the existing LED matrix, which was composed of two compact 8×8 blocks, was replaced by 128 discrete SMD LEDs. It was a much needed change to help scale down the dimensions and clunkiness, but also to avoid another painful experience of trying to purchase and have the matrix displays shipped, which seriously threatened the production of the previous badge.

It’s a long story which I discussed in my Belgrade talk — it turned out we did not manage to get enough common anode (CA) displays from all distributors in the whole world. We had a plan B, which also fizzled, leaving us with the plan C which actually included two “C”s: Common Cathode. We cleaned up all the supplies at five distributors, and managed to get 122 CA red, 340 CC red and 78 CA green displays (enough for only 270 badges) — the entire world supply. After that, you couldn’t get any 38 mm Kingbright’s display for months! The only problem was that there were two different versions of PCBs, one for CA and the other for CC displays, but luckily only one version of software, as it could autodetect the display type.

accelerometer-on-the-boardMotion and Expansion

So, what else was new in the concept? In the Belgrade version, the badge supported an accelerometer module and included an unpopulated footprint in case you decided to install it, but now the badge has the MEMS chip LIS3 as an integral part. There are nine pads (with five I/O ports, driven directly from the MCU) to which you can add a 9-pin expansion connector. There will be a number of these connectors at the Design Lab, so that anyone can expand their badge for their convenience, on the spot.

The Visual Design

The biggest change was in the visual design. What we came up with ended up being a fair bit smaller, lighter, with a more convenient shape, and less than half the thickness of the previous one. After we had scrapped quite a few ideas during the development process (including stylized skull, frog, etc), we were left with a couple of options which you can see on the image below. The wireframe drawing on the left hand side is the Belgrade badge, shown here for a size comparison. At this point the locale and date of the conference weren’t yet definitive, which is why you see San Francisco written on the images.

design-options-2016-supercon-badge

Design number 4 prevailed, so the PCB layout could begin. I don’t like autorouted PCBs, so I was in for quite a rough time trying to solve the routing manually having only 2 layers on the board at my disposal.

Routing a Compact LED Matrix

The LED matrix is so dense that there was virtually no room on the LED layer, so most of the tracks on the component layer had to be routed as if it was a single layer PCB. To make matters worse, the LED layer is routed as a matrix, with a bunch of horizontal and vertical tracks, otherwise a good reason to use a 4-layer PCB. To stay inside the budget, everything had to be placed on 2 layers, and that’s why the final result seems so confusing at the populated area between batteries:

led-matrix-layout-2016-supercon-badge

That pretty much covers the changes — the badge is virtually the same as the previous one in all other aspects. It includes an infrared optical port, which uses the existing UART on the MCU, so it is easy to implement in user programs. Communication range is several meters, and as long as you are in a room with white walls and ceiling, you don’t have to worry about the direction of the transmitter and receiver. Every badge has its unique serial number, and the default infrared UART routine will receive only messages which contain the matching number in the address field of the header.

Hacking the Badge

The badge was presented in a video we published last month. We plan to have a lot of fun with this hardware throughout the weekend. SuperConference visitors will be challenged to use their badges to solve the special puzzle task, which will be composed of several layers. And we want everyone to give badge hacking a try, with firmware, hardware, or both.

Here is the schematic diagram for the new badge:

schematic-2016-supercon-badge

The badge is hacking friendly, as there is a USB port and bootloader, so the programming is fast and easy, even without a separate hardware programmer. All you need is your computer and one Micro-B USB cable, and you’re all set for hacking at the SuperConference.

bothThe firmware is more or less the same as the Belgrade badge but the bootloader has been updated. Our friends at Microchip adapted their Xpress board bootloader for us so that the Hackaday SuperConference badge acts as a USB mass storage device. Simply plug in the USB cable, hold power while pressing reset, and drag your HEX file to the drive that appears on your computer.

There is a kernel in protected bootloader space which covers all BIOS functions. LED matrix scan is fully supported, so all you have to do in your software is write 0’s and 1’s to the 16-byte frame buffer in the Data RAM. All other services (keyboard scan, low power sleep ON-OFF, brightness adjust, infrared serial reception and pause screen) are also located inside the Timer Interrupt routine, so the user does not have to deal with low-level hardware if they don’t want to. Some more routines (32-bit pseudorandom number generator and Accelerometer support) are also available in kernel.

Choose Your Hacking Difficulty:

I Can Blink

Even those who have never touched a bare PCB can still easily get this badge to do their bidding. Start with the example in the C framework. Play around with which LED turns on and how to change the timing, then build your skills from there.

Bring It On

You fancy yourself a programmer? Show us what you can accomplish in one weekend. The low-level hardware servicing is completely handled for you, which means the rest is up to your creativity. Program a clever and creative user experience to claim your moment of glory.

Hurt Me Plenty

You are a wizard of embedded development. Read the schematic, grab a few datasheets, and take this to bare metal. Completely bypass the kernel in one of two ways. Start with the C framework but remove the “goto” assembly commands that send interrupts back to the kernel, giving you full hardware control. Or bring your own PIC programmer and completely blow out the bootloader and kernel. We only saw one person do this in Belgrade, but it was epic!

We have just published a C framework for badge hacking. You have your choice of installing MPLAB X and using the GitHub repo, or using the cloud IDE version called MPLAB Xpress.

Full documentation of the badge has begun. Follow along on the Hackaday.io page.

Will this be enough for a good time at Pasadena in November? That depends on you. If you plan on coming charged with some positive and creative energy, and even bringing some ideas with you — then there should be no room left for doubt in the answer!

]]>
https://hackaday.com/2016/10/17/design-and-hacking-drilldown-supercon-badge/feed/ 18 227065 2016-hackaday-supercon-realbadge-fakebackground led-modules-versus-smd accelerometer-on-the-board design-options-2016-supercon-badge led-matrix-layout-2016-supercon-badge schematic-2016-supercon-badge both
Clearly the Best Way to Organize SMD Parts https://hackaday.com/2016/02/11/clearly-the-best-way-to-organize-smd-parts/ https://hackaday.com/2016/02/11/clearly-the-best-way-to-organize-smd-parts/#comments Thu, 11 Feb 2016 18:01:58 +0000 http://hackaday.com/?p=190559 Have some plexiglas (acrylic) leftovers lying around? Well, they could be put to good use in making this SMD organizer. It comes in handy if you deal with a lot …read more]]>

Have some plexiglas (acrylic) leftovers lying around? Well, they could be put to good use in making this SMD organizer. It comes in handy if you deal with a lot of SMD components in your work. No longer will you waste your time trying to find a 15K 1206 resistor, or that BAS85 diode… or any other component you can think of soldering on the PCB. The basic idea is fairly straightforword, which helped keep this short.

2SMD resistors are packed in thick paper tapes that don’t bend easily, and thus need larger containers than other components, which are packed mainly in flexible PE tapes. The first version of this organizer was built with a 96mm diameter space for resistors and 63mm diameter for other components, but it seems that there is no need for such large compartments. If I were to make it again, I would probably scale everything down to about 80% of it’s current size.

The best way to join all plexiglass parts is to use four M4 threaded rods. There is also a 1.5mm steel rod which holds SMD tape ends in place and helps to un-stick the transparent tape which covers the components. At the top of the organizer there is a notch for paper, used for components labels. Most SMD components are packed in 8mm wide tapes, making the optimal compartment width 10mm. It is not easy to cut the 10mm thick acrylic and get a neat edge – instead, you could use more layers of thin sheets to make the spacers. Using 5mm acrylic you can combine more layers for any width of tape, which contains wider components, like SMD integrated circuits. The only thing that you have to be careful about, is to keep the distance between the thin steel rod and acrylic, which is marked as “2-4mm” on the drawing. It is good if this space is just a few tenths of a millimeter wider than the thickness of SMD tapes.

smd_orthoThe CorelDraw file that can be used for laser cutting the acrylic parts, is available for download. If you scale the profiles, don’t forget to readjust the hole diameters and some other dimensions which have to remain intact. If you have 5mm acrylic pieces, you should probably use two layers of acrylic for every tape (red parts on the drawing). The barrier layers would be made of thin acrylic — for instance 2mm (the blue parts). Edge layers (green) are once again 5mm thick, and there are also the end pieces (yellow), glued to the previous borders and used to “round up” the whole construction and to protect your hands from the threaded rods and nuts.

While you’re building this for your bench, make a vacuum picking tool for SMDs out of a dispensing syringe with a thick needle. It’s a common trick for hackers to use an aquarium air pump, just turn the compressor unit by 180°, so that it creates vacuum instead of blowing the air outside. This process is described by R&TPreppers in the video below.

]]>
https://hackaday.com/2016/02/11/clearly-the-best-way-to-organize-smd-parts/feed/ 36 190559 1 2 smd_ortho
Critical and Creative Thinking in a Hacker’s Work https://hackaday.com/2015/12/15/critical-and-creative-thinking-in-a-hackers-work/ https://hackaday.com/2015/12/15/critical-and-creative-thinking-in-a-hackers-work/#comments Tue, 15 Dec 2015 15:01:00 +0000 http://hackaday.com/?p=180294 Imagine yourself in a labyrinth, vast – endless for all you know. You wander the corridors, stumbling upon a closed door. You could invest some effort into unlocking it to …read more]]>

Imagine yourself in a labyrinth, vast – endless for all you know. You wander the corridors, stumbling upon a closed door. You could invest some effort into unlocking it to find out what’s inside. Pretty soon you realize there are many more doors in the maze and you wish you had some sort of tool to help you see what’s behind them, and whether they are worth the effort.

If the labyrinth is a metaphor for your life or your work, then you should know that there is such a tool, and its name is Critical Thinking. It can save you a lot of time and money, sometimes your health and even your life. It can help you optimize or debug your projects, and even boost your creativity.

Why Should We Think Critically?

Even though many equate it with criticism, critical thinking is not a negative process. It keeps you open to new ideas, and at the same time it acts as a firewall against harmful ideological, political, or marketing delusions and scams, and especially against your own self-delusions. It suggests how to think, not what to think.

You can find a lot of definitions of critical thinking on the internet, and most of them are worth reading. I like the definition which [Richard Paul] gave in an informal presentation: “Critical thinking is thinking about your thinking, while you’re thinking, in order to make your thinking better”.

In a hacker’s work, critical thinking is very useful as a defense mechanism against self-delusion in problem solving, and dead ends in creative process. If you want to be a creative hacker, you have to think critically. It is even more severe in science, where the process called scientific skepticism (also spelled scepticism) involves systematic doubt – questioning every single step in scientific activity. It results in scientific method, which is not just doubt, but a set of methods for examining reality.

Here is an example in which critical thinking takes place and saves not only time and effort, but also leads to a creative result. When you start creating a concept for a new project, you get an idea and you probably like it from the beginning. That’s good, as it keeps you motivated, but the first idea is not necessarily the best one, and a process of trying out alternatives often leads to a better solution. If you know how to use critical thinking to attack your initial concept, it can help you get a better idea. To do so, you have to restart from the beginning many times, trying out a different approach each time. You will probably not have a perfect concept until you have made several modifications, some of which assume you forget everything up to that point and start fresh. It may seem like a waste of time, but it is quite the opposite – your initial concept is crucial for the final value of the project, and it is better to modify it in the early stage of the process.

Don’t despair even if you have to do it when you are already halfway through the project. In the early days of the computer era, data storage was not very safe and backing up data was slow and expensive. On several occasions I had lost all of my data and had to start from scratch. Yet every time, I was happy that it happened like that, as in redoing it I could add a new quality I hadn’t thought of before.

How to Think in a Creative Way

Critical thinking is a learned skill, that can be reinforced by habit. The same is valid for logical thinking, but we shall not discuss it here, as most hackers have already practiced logic over many years, and they surely know how to apply it in their activity. You can say that the logic is a necessary part of critical thinking.

brain_2It is hard to imagine debugging, servicing or any other form of problem solving without critical thinking, but if you are creating a project from scratch, you also have to think creatively. Creative thinking is different from critical thinking, but they share a strong bond. The creative process needs to have a critical check of ideas, and on the other hand, creative thinking can help you imagine all the possibilities when you need to pinpoint a problem.

Creative thinking is more motivating and generally brings more pleasure than critical thinking, and you can use it even when you are relaxed. While daydreaming, but still holding the problem in the back of your head, you may suddenly get a burst of creative energy and arrive at an “Aha” moment. Seems like a naive game, but it can be empowering.

If you hang around artists and designers, you can observe from how many different angles the creative process can be approached. Some of it can be applied to the hacker’s domain as well. You might, for example, start composing a new project that does not have a defined function; imagine the shape you like, define its dimensions, color, even draw it or make a 3D model. Then ask yourself – what would I like that shape to do? This inverse process can result in some pretty cool projects.

You will notice that many creative thinkers with have a small notebook on hand (not a computer, but an ordinary copybook) to write down ideas the moment they appear, so that they can be examined later. I knew a painter who held an exhibition which had no actual paintings, but a hundred of such palm-sized papers with rough sketches.

Who is a Good Critical Thinker?

Do you think that you can think critically? Let’s say someone wants to find a specific place in an unknown city. If you can give them a good, eloquent explanation, which helps them find it, you probably have the gift of critical thinking. This ability means that you can “observe” your own explanation through someone else’s mind, and the same “parallel processing” engine is used for critical thinking. If you can deliver that explanation in a witty and imaginitive way, then you are not only a good critical thinker, but also a good creative thinker.

It is much easier to recognize non-critical thinkers. They egoistically take their facts as the only relevant ones, seeing things in binary form: black or white, right or wrong, clever or dumb and so on – rather than recognizing all alternatives. They never doubt, especially when evaluating their own creations: “My idea is brilliant, because I’m a genius”.

This attitude is the worst possible basis for critical thinking; the bad news is that most likely none of us is a genius, but the good news is that even a real genius is hardly ever sure that their ideas are good. Being a genius does not mean having ideas without trying hard, but quite the opposite. So, if someone always admires their own creations and doesn’t ever doubt them, he is no genius – he simply doesn’t match the milieu.

There is one more parameter which can help us evaluate someone’s thinking qualities. If he believes that astrology, dowsing, and similar techniques are based on true facts, he is probably not very familiar with critical thinking. Not familiar enough to be a hacker that builds cool stuff anyway.

How to Become a Critical and Creative Thinker

So, how do you think we should evaluate new ideas? However appealing they might seem, they should be treated as 50/50, good/bad ab initio. Some people will tell you that’s being optimistic, as 9 out of 10 initially bright ideas turn out to be worthless. It would be prudent to expose your idea to scrutiny. Consult with someone or publish it online and read the comments, but remember to always take public commentary with a grain of salt.

Critical thinking is an unnatural act. We evolved to survive in a cruel world, not to play around with our hacks. To make things worse, we evolved in a herd, which means that we intuitively respect the authority of the leader. But we also have to be creative, so we have to respect ourselves first. Finding the right dose of self-respect is a crucial thing in creative work. Too little self-respect could destroy our motivation and creativity, and too much will interfere with our ability to estimate the value of our ideas, and can easily result in investing time, money and effort in worthless projects.

Noone is born a critical thinker, but almost anyone can become one. Think about what [Edward de Bono] said:

“The need to be right all the time is the biggest bar to new ideas. It is better to have enough ideas for some of them to be wrong than to be always right by having no ideas”.

]]>
https://hackaday.com/2015/12/15/critical-and-creative-thinking-in-a-hackers-work/feed/ 65 180294 words brain_2
Conference Badges are the Newest Form of Hardware Art https://hackaday.com/2015/10/07/conference-badges-are-the-newest-form-of-hardware-art/ https://hackaday.com/2015/10/07/conference-badges-are-the-newest-form-of-hardware-art/#comments Wed, 07 Oct 2015 14:01:57 +0000 http://hackaday.com/?p=172793 About four decades ago, many European truck drivers started placing electronic LED badges in their windshields. Most of them were simple; nothing more than an animated heart pierced by an arrow. It …read more]]>

About four decades ago, many European truck drivers started placing electronic LED badges in their windshields. Most of them were simple; nothing more than an animated heart pierced by an arrow. It became a common distraction in the highway night panorama of that time, at least until it became illegal. Most motorists became accustomed to seeing them, and the idea of the truck drivers making a statement with electronics always stuck with me. Now I have the chance to help people make a similar statement. Conference badges are not just a way to identify those who have registered, but a fashion statement and a mark of pride for conference organizers. They’ve become an art form, and engineers always want to stretch the limits of what is possible.

Every September, we have BalCCon, an international hacker’s conference at Novi Sad, Serbia. I was asked to design a badge for the 2016 event, and this is the first (well, the second) release. It is based on the PIC18LF24K50 and consists of a circle of LEDs which randomly displays pre-defined patterns. Every badge has its own infrared transceiver (LED-receiver pair), so the fun begins when two or more badges spot each other: they go from Adagio to full on Rondo, losing their default, dull visual pattern for a more dynamic, attention grabbing one, but most importantly – they synchronize. This means that, in a group of people, all badges will play the same pattern in unison. Every badge can spread the pattern code, so the whole group, however large, soon becomes synchronized. But if one of them “gets lost” somehow, it will try to learn it back from a neighbor or it might even launch into its own, randomly generated one. Sometimes it manages to spread it further and you get to witness a battle for light show domination.

This isn’t merely a story of designing badges, but of design choices that come in on budget while achieving a look that will delight those who end up wearing the hardware.

Up to the point at which this video was filmed, only eight prototypes were built and previewed at BalCCon 2K15, which was held on September 11th-13th. The reception was very positive! The algorithm is quite simple: every badge plays its own pattern, while keeping its infrared eye open for someone else’s code. If it receives it and verifies the checksum, it stops the current pattern, transmits the special acknowledge code via infrared LED and starts playing the received pattern. If nothing was received, it randomly generates a new pattern code, transmits it, looks if someone acknowledged it and then runs the pattern. If there was an acknowledge, it switches to the “fast” mode. That’s it.

More Features

The beauty of microcontroller designs is that you can always add new features later, without affecting the cost. In this case, the infrared transmitter support was implemented in hardware, so the badge got upgraded with [Mitch Altman’s] TV-B-Gone function. I took Mitch’s database for switch-off codes for several hundred different models of TV sets, and wrote a PIC driver routine to transmit them.

The first badge was released about two months ago – it’s the red one in the photo. I decided to give it another feature which would require only the addition of a USB connector to the Bill Of Material. So, the Badge now functions as a Hardware Password Manager, at almost the same cost. It also improves on the visual interest of the badge. It looks like something purposeful, and not merely a fob for hanging around your neck.

There’s plenty of time to brainstorm some more features before next September is upon us. One of the things I will certainly be adding is contact information swapping — a steadfast of conference hardware badges like the Parallax’ badge. Of course this feature will not affect the cost, as both infrared transceiver and USB interface are already present. My son has also suggested adding some form of a Rock-Paper-Scissors game. It will play automatically when two players are connected.

Every badge will have its unique serial number, which will be transmitted by request. It has yet to be defined how this feature will be used, and which kind of external units will be built, as we don’t want to disturb anyone’s privacy.

Low Budget as an Inspiration

badge_detailI’m always open, and grateful for any new idea thrown my way . The only restriction is the cost, as the project has already reached the budget limit. Only features that do not require any new hardware are acceptable. You can see that there are no displays, no large batteries and no radio or audio units.

Such a simple design has certain advantages which have contributed to comfort. There is enough space to spread the components on the PCB with some breathing room between them, making room for the 3 mm thick acrylic bezel to be glued in place, with laser cut holes for every single part on the PCB. You can comfortably hold the badge in your hands, keep it in your pocket, or even let it drop on the floor without the fear of it getting damaged. Also, all the components are on the upper layer, leaving the back of the badge flat and clean. All the electronic parts amount to an attractive look so there is no need to hide them. There are only a few pads for an in-circuit programming connector on the back side, if someone wants to play around with firmware (which is open, of course).

hal9000Originally, the hardware was not meant to be expandable, but I will probably use the bottom PCB layer, which is currently blank, to add traces and footprints for SMD peripherals. Then again, I wonder how many users really hack or expand the hardware of their badges?

I enjoy designing gadgets like these on a limited budget. With a lot of money, any designer can be tempted into overpowering the system and bloating the design with every feature imaginable. But who knows, maybe I will change my attitude some day when we get rich and I get to design a badge for BalCCon 3K45… or so.

How Can You Design a Badge with a Budget of 2€ Per Unit

Designing a badge for another conference, BIZIT 2015, was even more challenging. It is being organized by PC Press, our computer magazine publisher, on November the 3rd and 4th. It is not a hacker meeting but a business conference, but it is based on Information and Communications Technologies. The budget for the badge was as tight as 2€/unit (about $2.25 USD), based on 500 units.

I had to tap into a more common type of love for technology, since I couldn’t count on a passion for DIY or playing around with microcontrollers. I turned to science fiction, or more precisely – I ripped off Kubrick’s 2001: A Space Odyssey , which I assume most people will have seen. I made the badge resemble the iconic image of HAL 9000’s terminal. Very importantly, its elegant design was something which could be mimicked with just a few components.

To stay within the budget, I simplified the badge as much as possible. Luckily, almost all of the physical aspects of the design can be achieved through currently available PCBs. The front surface should be black, so I ordered a black 2-layer PCB. The shiny metal surface on HAL 9000’s terminal is simulated by HAL PCB (don’t be confused – it does not stand for HAL 9000, it is an abbreviation for Hot Air Levelling). The white letters (BIZIT 2015 instead of HAL 9000) are printed as the Top Overlay layer, and the lower grilled area consists of a lot of small PCB pads with no holes. The “HAL” text is originally on a light blue background, which is in this case a PCB base with copper layers and solder mask layers removed, so that it is semi-transparent. When you paint the back side with a blue marker, you get the exact blue tone that you need!

All of that is achieved with just the PCB. There are a few items left which have to be improvised, and some compromises have to be made. The price for one 5×15 cm 2-layer PCB, based on 500 pieces, is 1.5€, so I had only 0.5€ left to spend.

back9000

Kubrick originally used Nikkor Fisheye 8mm lens for HAL 9000’s eye. At the moment it costs several thousand dollars, which is significantly more than 0.5€, so I had to make a different choice. I used the laser cut acrylic bezel again, and glued it on the PCB. As simple as that! It is flat, so it doesn’t look as good as the original Nikkor lens, but it fits the budget. I also wanted to achieve the red fuzzy aura effect around the red dot, for which I sprayed some red paint through a 15 mm hole on a piece of cardboard held at about 10 mm distance from the PCB. It looks quite passable.

The one thing that I had to do right was to make HAL “alive”, which means to put the red LED in the center. I used an SMD LED in a 3528 case, placed halfway through the square hole on the PCB and soldered it on the bottom layer. It is powered by a CR2032 Lithium coin battery at the back, with an addition of SMD resistor for current limiting, bringing the expected battery life to several weeks, with no ON-OFF switch. It acts similarly to an LED throwie.

In the end, I broke the budget only by a few eurocents and everyone was happy. There was not enough money to make it talk, play chess or sing Daisy, but yet I’ll take good care not to leave it alone and unattended on my spaceship.


​​Voja_AntonicVoja Antonic works as a freelance microcontroller engineer in Belgrade. His first microprocessor projects, based on Z80, date back to 1977, just a few years after the appearance of the first Intel’s 4004. He assembled the firmware manually, by pen and paper. In 1983, he published his original DIY microcomputer project called Galaksija, which was built by around 8000 enthusiasts in the former Yugoslavia. To date he has published more than 50 projects, mostly based on microcontrollers, and released all of them in the public domain.

]]>
https://hackaday.com/2015/10/07/conference-badges-are-the-newest-form-of-hardware-art/feed/ 22 172793 badges_front badge_detail hal9000 back9000 Voja_Antonic
Beating the Casino: There is No Free Lunch https://hackaday.com/2015/08/31/beating-the-casino-there-is-no-free-lunch/ https://hackaday.com/2015/08/31/beating-the-casino-there-is-no-free-lunch/#comments Mon, 31 Aug 2015 14:01:24 +0000 http://hackaday.com/?p=167801 When you are a hardware guy and you live in a time of crisis, sooner or later you find yourself working for some casino equipment company. You become an insider …read more]]>

When you are a hardware guy and you live in a time of crisis, sooner or later you find yourself working for some casino equipment company. You become an insider and learn a lot about their tricks. I’ve been in touch with that business for about 30 years. I made a lot of projects for gambling machines which are currently in use, and I had a lot of contact with casino people, both owners and gamblers.

Now I’m sure you expect of me to tell you about the tricks they use to make you spend your money. And I will: there are no technical tricks. This isn’t because they are honest people, but because they don’t need it. Mathematics and Psychology do all the work.

Does the risk of gambling pay off? Mathematically speaking, no – but it’s up to you to decide for yourself. One thing is for certain – whether you decide to gamble or not, it’s good to know how those casino machines work. Know thy enemy.

The Typical Gambler’s Financial Chart

Let’s see how the amount of gambler’s money fluctuates over the course of a typical slot machine game. Player starts with credit S and usually has small loses, but also small gains. Sometimes he wins a larger sum, but in the long run, it’s clear that he is moving towards zero. This is just an example of an average game and while it will not always look like this, most of the time it will. Even if he wins on a good day, you can simply scale the same diagram and apply it over a longer period of his life.

diag1

The gambling machine does not “draw” this diagram in advance, it does not even plan more than one step ahead. There is no “secret plan”, but only the simple arithmetic rule which determines the amount of gain, or, in some cases, the probability of winning. When you combine it with the randomization process, you get the diagram, and that’s all.

Formally speaking, the game is fair, and in accordance with the regulations. The odds are fair for both sides, although the casino has a small edge on its side, as it has expenses to cover.

If the game is truly fair, then why are there so many rich casino owners, and even more poor gamblers? There is no special reason, we all know that a small portion of input goes to the casino, and we agreed that it’s fair, but that’s where the mathematics and psychology kick in. First, that “small” amount of money is taken from the player every time he presses the button, or runs the new cycle, whichever game he plays. That cycle can run for just a few seconds, so the cumulative effect can be significant. If you are the game development engineer, keep in mind that if the game is faster, the casino owners will love it more. Guess why?

diag2

This diagram illustrates why the game has to be fast. Let’s assume that, after the first hypothetical game, the losing/gaining chances are similar to Gaussian distribution. The greatest odds are in the center of Gaussian bell curve, but there are also the small chances for a big gain or a big loss, especially if the player has a risky style. It’s important to note that the diagram is not balanced, as the chances of losing are slightly higher.

The left hand diagram is valid only for the first game, after which the player presses the button again. After five games, the cumulative effect becomes visible, and after 30 games everything is clear. Even after that, the game goes on until the system collapses, which usually means that there’s no money left on the player’s side. He knows how this works, yet he continues playing till the end. Is it still fair? I have my doubts.

A long time ago, I was asked to make a modification for an old poker video game. After each succesful round, a player could perform an action where he had a chance of 50-50 to double or lose his last winnings. He had to push one of two buttons, guessing if the card (with the back side visible) was smaller or greater than 7. I had to reverse engineer the firmware for an 8-bit 6502 microprocessor, so I had to disassemble the code and see how it works. I was truly surprised to see that at that moment the card number still does not exist – instead, there is a decision, made by the system, whether the player will win or lose! When the player presses the button, the card number is randomly generated (inside the range of the desired result) and its bitmap gets written into the video memory.

I witnessed a lot of players who, when they would lose, shouted “Damn, why didn’t I press…”. How could I tell them that the outcome would have been the same?

Psychology of Gambling

Everyone who has spent some time in a casino, knows that every gambling machine reacts very theatrically to winning, with loud music and jingling sounds, and every loss is quiet and promply followed by an invitation for the next game. Great winnings are remembered and frequently mentioned for a long time, and the losses are forgotten. That’s how the illusion that gambling pays off is created. This feature is called selective exposition, and it plays an important role, not only in gambling addiction, but also in the belief in the supernatural, psychic ability, astrology, quackery and so on.

Look again at the first chart. There are a lot of good winnings, which are marked with smileys. Each of them brought pleasure and hope to the player, and only the last one brought him dissatisfaction. The gains are great and come by surprise, and losings are small and gradual – you could say they are hardly noticeable. Does it pay off, to feel a lot of happiness and only a little bit of discomfort? It’s up to the gambler to decide, but the delusion obviously works, as he never sees himself as a loser, even when he had lost everything. He knows that, as soon as he gets more money, he will come again and it will, undoubtedly, be his lucky day.

Looking at the first chart, it’s hard to resist the feeling that he should have ended the game at the moment his credit was twice of what he had at the start. Looking back, it would be clear to the player as well, but it was the heat of the moment – he got his dose of serotonin (hormone of happiness), and it’s not a good thing to be high on when you have to make a smart decision. It has led to the narrowing of his consciousness, he experienced it as his “lucky moment”, which is a trap for every gambler. Did you ever wonder why there is no daylight and no clock in the casino? The time has stopped in the whole world and all you have to do is to gamble.

Very few players can tell when it’s wise to quit gambling. It is really hard to stop when it has just started going well, and when the new gain is just around the corner. There is only one situation when the player gets the idea to stop playing, other than running out of money: when he gets the super jackpot. Then it’s time to enjoy, not to play. He takes his money and leaves, but there is always tomorrow, when he comes to take more. Of course, with a larger bet, as he is a high stakes player now. He won’t settle until he gives back everything he had won.

Recently I was installing some equipment in a nice casino in southern Macedonia which sees a lot of Greek visitors. Everyone got excited when a Greek woman won a 24.000 € jackpot. My first thought was that, if she is clever enough, she will leave and never step into the casino ever again. When I was there again after two weeks, the staff from the casino told me that she had already “returned” about half of the sum. Another two weeks passed, and her count was way below zero.

I’m Not Superstitious, It Brings Bad Luck

Most, if not all, gamblers are superstitious. They have their lucky day, lucky garment, lucky number, whatever – there’s always an obvious reason for winning or losing. So, the good winning from the first chart was because of a player’s lucky t-shirt (it was blue, his lucky colour), but everything went wrong when he crossed his legs unintentionally. Also, he must not forget to do his lucky ritual tomorrow before entering the casino.

Being superstitious usually means being bad at mathematics and logic, and especially at critical thinking. After all, if passionate gamblers knew how to think critically, they would probably never step into the world of gambling.

As the illiterates in the theory of probability, gamblers are frequent victims of the logical paradox known as the “Gamblers Fallacy”, expecting that a series of the same results will correspond with the opposite outcome. For example, if a roulette wheel lands on black for a number of times in a row, they expect it to land on red. It’s also amusing how the players of bingo and lottery games often draw the opposite conclusion – if a certain number had been drawn more frequently than others, that means it is predestined to be drawn, and it should be used even more.

These two “schools of thought” mutually exclude each other and, of course, both of them are wrong. If the roulette wheel lands on red 10 times, the next turn has the exact same odds of landing on red or black. As the mathematicans say, dice has no memory.

Many gamblers that try to hack the lottery, casino or online games, create numerous betting systems. Unfortunately for them, mathematic algorithms in most games are very simple, which makes it hard to find any weak point which could be exploited for a gambling strategy.

When a gambler scores a large win, which is just a step short of the “superbingo”, that step appears to be much smaller than it really is. For instance, if he plays the 7/39 Lotto (translated) and has 6 numbers matched, he feels he was very close to the ultimate prize, but in fact he was pretty far. There are 224 possible 6’s and only one 7, which is 99.6% versus 0.4%. Doesn’t look so “very close” anymore!

The human brain is good at making snap estimations in a lot of real life situations, but when it’s about the probability theory and large numbers, it easily gets fooled. If you combine it with selective exposition, it can lead to very bad evaluation and then to bad decisions. Someone who organizes gambling events of any kind, knows this and he tries to spread the story about winners, and never mentions thousands, or even millions of people who got nothing for their money.

Can You Hack the Casino?

But, never say never! The well known exception to everything that was said here, is the blackjack game. Players can use tactics to gain a certain edge in the game, but it assumes using either illegal devices, or special mental techniques, which include intensive memorization and computation, with a risk of being permanently blacklisted. Some players are also hunting for bugs in online games, but it is more likely that they will lose a lot of money experimenting, rather than finding a viable weak point.

Do you think you can hack the casino, even an online one? To accomplish this, be prepared to outsmart a team of well paid professionals, who spent a lot of time and resources to make sure you don’t. You probably won’t score with one simple project, but if you have a solid knowledge background and spend a lot of time studying the problem, you might stand a chance.

The most vulnerable gambling machines are those with mechanical randomizers and automated reading. Optical readers (bar-code or cameras with OCR software) may be fooled by excess light (modified laser pointer or similar device), and RFID readers with 125 KHz or 13,56 MHz jammers. Anyone who knows how to use it, can sabotage the machine with the device, if he does not like the ball or dice which was just drawn. I have seen a lot of casinos that are not equipped with sensors which could prevent this kind of attack. Anyhow, it is too dangerous to use this idea in its raw form, so an attacker would need to carefully consider his approach, and of course, keep an eye out for surveillance cameras.

Albert Einstein once said: “No one can possibly win at roulette unless he steals money from the table while the croupier isn’t looking.” He was probably the greatest hacker of all times, but everybody has the right to be wrong.

[Illustration by Bob Zivkovic]


​​Voja_AntonicVoja Antonic works as a freelance microcontroller engineer in Belgrade. His first microprocessor projects, based on Z80, date back to 1977, just a few years after the appearance of the first Intel’s 4004. He assembled the firmware manually, by pen and paper. In 1983, he published his original DIY microcomputer project called Galaksija, which was built by around 8000 enthusiasts in the former Yugoslavia. To date he has published more than 50 projects, mostly based on microcontrollers, and released all of them in the public domain.

]]>
https://hackaday.com/2015/08/31/beating-the-casino-there-is-no-free-lunch/feed/ 84 167801 dice_med-featured diag1 diag2 Voja_Antonic