Microcontrollers NOT ALLOWED

(Or how to subtly troll your college instructor)

By PodeCoet - Uploaded Thursday, December 25th 2014 @ 23:47:18 ADST

WARNING

If you attempt this project, your classmates will think you're a nerd. You'll likely wind up getting your head flushed and/or balls greased.

Background

A friend and I enrolled ourselves into College a couple of years ago, with the ultimate aim of obtaining an Advanced Diploma in Electronics and Communications. Our study path starts at Certificate III, ultimately progressing through to Certificate IV, Diploma, then Advanced diploma.



One of our core subjects in Certificate III was Digital Sub-Systems, which is essentially Digital Electronics 101 - In this class we mainly covered basic Logic gates, and how to chain and assemble various gates to perform more complex tasks (for example, gate-based de-bouncers, shift registers, latches, and so on)



Our final project was a classic 'Up Counter' circuit, based on a 74LS193 BCD counter, which was to be built onto a bread board. Extra marks could be obtained by including a 'count down' function, reset, a second display, and so on.



One of the students asked the instructor if he could submit the project on an Arduino instead of a bread board, to which he received a stern but amusing NO.



I figured it'd be fun to mess with the instructor's sanity by hiding a microcontroller inside one of the logic chips, and having it briefly flash (occasionally vulgar) messages onto the seven segment display when left idle



UPDATE 01/01/15:



Many of you have asked - While I received full marks for the project, the hack was unfortunately not discovered. On the up-side I got away with it, despite slightly messing up the displayed segments for the numbers 6, 7 and 9



We are currently on Summer holidays until the 26th of January - I've emailed a link to this page to the campus, and will post an update if I get a response (assumingit still exists by then, thanks Tony Maggot Abbott!)



UPDATE 02/01/15:



Got an out-of-the-blue response moments ago, "Thanks for the info and all the best" - absolutely no fucks given.



Code posted due to complaints about not posting code

tl;dr / How it works

We'll be physically removing the 'core' of an SN74LS47N display driver, and replacing it with a PIC16F1503 microcontroller.



The PIC firmware will emulate the functions of the original SN74LS47N, and also mess with the instructor's sanity by briefly flashing messages onto the display when left idle.

All designs are provided as freeware for non-commercial use

[Download] Schematic Diagram

[Download] Microcontroller pin assignments

[Download] Datasheet - SA555P Timer IC

[Download] Datasheet - SN74LS14N Hex Schmitt Trigger Inverter

[Download] Datasheet - SN74HC08N Quad 2-Input AND gate

[Download] Datasheet - SN74LS193 4-Bit BCD up/down counter

[Download] Datasheet - SN74LS47N BCD to 7-SEG decoder/driver

[Download] Datasheet - PIC16F1503 microcontroller

[Download] Firmware - Rev A (binary) *

[Download] Firmware - Rev A (source) **





* Rev A firmware displays 'HELLO', 'PENIS', 'ASS', 'BALLS' and 'POOP' after approximately 20 idle seconds.



** The code is exceptionally shitty, inefficient, uses ints instead of chars on occasion, "LOL he's using 8 bits to store 1 bit of data", etc etc.

Final Notes

If you're asking yourself why there's so much silicon for such a simple design (ie: unnecessary/redundant parts), all parts handed to us had to be used in some way.



I was lazy, so everything became a debouncer. Realistically using the 555 timer for auto-increment/decrement would've been awesome

Let's get started!

Ensure you start with a super-clean and sterile workbench

Prepare your anus SN74LS47N chip

Place it into a vice-grip (or a plain vice, but vice-grips are preferred)

Carefully use a routing bit to route a cavity into the chip

Keep routing until you get a nice rectangular cavity happening.

Looking good! We just need to go a little deeper so that our hack is hidden

FUCK.

It's okay, we've only killed three so far.

Fourth time lucky.

Prepare the microcontroller

Flip it upside-down, and start bending the pins as shown

This is how it'll look with all the pins fully bent

Apply some adhesive, and insert the microcontroller into the cavity (so that Pin 1 aligns with the 74LS47's notch)

Wrap the pins in Polyimide tape - this will prevent the solder form 'wicking up' and foiling our plot (we need it to look factory stock at first glance)

Post-mask shot, you only need one layer of polyimide, ensure it's stuck firmly onto all of the pins

Use a sharp blade to slit the mask between the pins, this will make both removal and soldering much easier

We're now ready to start soldering!

Lightly tin the pins of the micro-controller

...And also tin the the SN74LS47 pins (lightly!)

Remove the sheath of some fine hook-up wire

Pile the wire (within reach) onto your filthy bench

Squirt some paste flux onto something disposable

Dip the end of a wire into the flux

Solder said wire onto one of the IC pins

Carefully use a pair of tweezers to form the wire, and solder it in place

Halfway there, you can use bits of Polyimide to insulate wires from one-another

Wiring is completed, lots more Polyimide than expected

Use tweezers to remove the Polyimide from each pin

How it looks with all Polyimide removed

How it looks on the bread board (almost stock!)

How it looks in-circuit

The completed circuit





Stay safe!



-PodeCoet

Click here to get in-touch or check out my other write-ups