PIC-Powered Game Console Is Blocky Goodness

Picking up new skills in the electronics field is often best served by the classic mantra – “learn by doing”. [Juan] and [Leo] did just that, deciding to build a handheld game console for a University project, and delivering the PGC-32.

Built as a final project for the Digital Systems Design course at Cornell University, the PGC-32 takes on a daunting chunk of functionality, and pulls it off in time to get the grades. The team coded a basic block-based game for the hardware, and control is switchable between the analog stick and a built-in accelerometer. Gameplay is displayed on a 320 x 280 color TFT display. Learning to code a basic game is useful, as it teaches student engineers to consider important concepts like timing, race conditions, interrupts, and display routines.

As a university project, it is well documented and the team step through each detail in their code with explanations as to how and why things are done. The internals are particularly neat, too, with a tidy PCB layout and 3D printed case holding everything together.

We’ve seen plenty of work from Cornell’s courses before, too – like this sleep quality monitor.  Video after the break.

Continue reading “PIC-Powered Game Console Is Blocky Goodness”

Rickroll The Masses With A Coin Cell Throwie

If there is one educational institution that features on these pages more than any other, it may be Cornell University. Every year we receive a pile of tips showing us the engineering term projects from [Bruce Land]’s students, and among them are some amazing pieces of work. Outside the walls of those technical departments though, we suspect that cool hacks may have been thin on the ground. English Literature majors for example contain among their ranks some astoundingly clever people, but they are not known for their handiness with a soldering iron or a lathe.

We’re happy to note then that someone at Cornell who is handy with a soldering iron has been spreading the love. In the form of coin cell powered throwies that intermittently Rickroll the inhabitants of the institution’s halls of residence. We have few technical details, but they seem to be a simple affair of a small microcontroller dead-bug soldered to a coin cell and a piezoelectric speaker. If we were embarking on such a project we’d reach for an ATtiny of some description, but similar work could be done with a PIC or any number of other families.

The Cornell Daily Sun write-up is more a work of investigative journalism detailing the perplexed residents searching for the devices than it is one of technical reference. We’re pleased to note that the university authorities have a relaxed attitude to the prank, and that no action will be taken against the perpetrator should they be found.

Thus we’d like to take a moment to reach out to the Cornell prankster, and draw their attention to our Coin Cell Challenge competition. There is still time to enter, and a Rickrolling throwie would definitely qualify. This isn’t the first tiny Rickrolling prank we’ve shown you on these pages.

Thanks [Simon Yorkston] for the tip.

Final Project for Better Sleep

It’s that time of year again, and students around the world are scrambling (or have already scrambled) to finish their final projects for the semester. And, while studying for finals prevents many from sleeping an adequate amount, [Julia] and [Nick] are seeking to maximize “what little sleep the [Electrical and Computer Engineering] major allows” them by using their final project to measure sleep quality.

To produce a metric for sleep quality, [Julia] and [Nick] set out to measure various sleep-related activities, specifically heart rate, motion and breath frequency. During the night, an Arduino Nano mounted to a glove collects data from the various sensors mounted to the user, all the while beaming the data to a stationary PIC for analysis and storage. When the user awakes, they can view their sleep report on a TFT display at the PIC base station. Ideally, users would use this data to test different habits in order to get the best nights sleep possible.

Interestingly, the group chose to implement their own heart rate sensor. With an IR transmitter, IR phototransistor and an OP amp, the group illuminates user’s fingers and measure reflection to detect heartbeats. This works because the amount of IR reflected from the user’s finger changes with blood pressure and blood oxygen level, which also happen to change when the heart is beating. There were some bumps along the road when it came to the heartbeat sensor (the need to use a finger instead of the wrist forced them to use a glove instead of a wristband), but we think it’s super cool and totally worth it. In addition to heart rate, motion is measured by an accelerometer and breath is measured by a flex sensor wrapped around the user’s chest.

With all of their data beamed back by a pair of nRF24L01s, the PIC computes the sleep “chaos” which is exactly what it sounds like: it describes just how chaotic the user slept by looking for acyclic and sudden movement. Using this metric, combined with information from breathing and heart rate, the PIC computes a percentage for good sleep where 100% is a great night and 0% means you might have been just as well off pulling an all-nighter. And, to top it all off, the PIC saves your data to an SD card for easy after-the-fact review.

The commented code that powers the project can be found here along with a parts list in their project write-up.

This device assumes that sleeping is the issue, but if waking up if your problem, we’ve already got you covered, aggressive alarm clock style. For those already on top of their sleep, you might want some help with lucid dreaming.

Video of the project explained by [Julia] and [Nick] after the break.

Continue reading “Final Project for Better Sleep”

An Education on SoC using Verilog

[Bruce Land] is one of those rare individuals who has his own Hackaday tag. He and his students at Cornell have produced many projects over the years that have appeared on these pages, lately with FPGA-related projects. If you only know [Land] from projects, you are missing out. He posts lectures from many of his classes and recently added a series of new lectures about developing with a DE1 System on Chip (SoC) using an Altera Cyclone FPGA using Verilog. You can catch the ten lectures on YouTube.

The class material is different for 2017, so the content is fresh and relevant. The DE1-SOC has a dual ARM processor and boots Linux from an SD card. There are several labs and quite a bit of background material. The first lab involves driving a VGA monitor. Another is a hardware solver for ordinary differential equations.

Continue reading “An Education on SoC using Verilog”

Microcontroller Lectures by Bruce Land

[Bruce Land] is no stranger to Hackaday as you can see from his Hackaday.io profile, if you aren’t familiar with his work [Bruce Land] is a Senior Lecturer at Cornell University. One of the courses he teaches: Digital Systems Design Using Microcontrollers (ECE4760) was recorded in 2012 and again in 2015 and the videos are available on YouTube.

AVR to PIC32

[Bruce Land]s previous set of ECE4760 lectures (2012) used an Atmel ATmega1284 AVR Microcontroller for the laboratory portion of the course. This means the lectures are also based on the AVR and if you haven’t watched them through a few times you should do. The recently updated set of lectures is based on the Microchip PIC32, more specifically the Microstick II.

Open Curriculum

You can follow the ECE4760 rabbit hole as far as you want with all the available content provided by [Bruce Land] on his ECE4760 course webpage. You can watch the ECE4760 lectures on YouTube, try your hand at the homework assignments, and work through the labs at your own pace.

New Lectures = New Shirts

One area that [Bruce Land] is unmatched and arguably uncontested is his shirt collection, we are continuously impressed with these original works and wish they were available for purchase (wink/hint c’mon [Bruce] throw us a bone!). If you don’t know why the rest of us aren’t able to obtain the wonderful shirts [Bruce Land] wears you clearly aren’t subscribed to [Bruce Land]s YouTube channel, you should rectify that wrong and log some ECE4760 lecture hours starting with the video after the break.

Send Wireless TXT between Two TI Calculators


TI calculators with wireless circuitry

One day while sitting in class in a Cornell University schoolroom, [Will] and [Michael] thought how cool it would be to send text messages to each other via their Texas Instruments calculators.  Connecting the two serial ports with a serial cable was out of the question. So they decided to develop a wireless link that would work for both TI-83 and TI-84 calculators.

The system is powered by a pair of ATmega644’s and two Radiotronix RF Modules that creates a wireless link between the two serial ports. The serial ports are 3 wire ports, which can be used for several things, including acting as a TV out port. [Will] and [Michael] reverse engineered the port’s protocol and did an excellent job at explaining it in full detail. Because they are dealing with the lowest level of the physical protocol, there is no need for them to deal with higher levels like checksums, header packets, ext.

Be sure to stick around after the break to see a video of the project in action. It’s quite slow for today’s standards. If you have any ideas on how to speed it up, be sure to let everyone know in the comments.

Continue reading “Send Wireless TXT between Two TI Calculators”

Self-Learning Helicopter Uses Neural Network

Though this project uses an RC helicopter, it’s merely a vessel to demonstrate a fascinating machine learning algorithm developed by two Cornell students – [Akshay] and [Sergio]. The learning environment is set up with the helicopter at its center, attached to a boom. The boom restricts the helicopter’s movement down to one degree of motion, so that it can only move up from the ground (not side to side or front to back).

The goal is for the helicopter to teach itself how to get to a specific height in the quickest amount of time. A handful of IR sensors are used to tell the Atmega644 how high the helicopter is. The genius of this though, is in the firmware. [Akshay] and [Sergio] are using an evolutionary algorithm adopted from Floreano et al, a noted author on biological inspired artificial intelligences. The idea is for the helicopter to create random “runs” and then check the data. The runs that are closer to the goal get refined while the others are eliminated, thus mimicking evolutions’ natural selection.

We’ve seen neural networks before, but nothing like this. Stay with us after the break, as we take this awesome project and narrow it down so that you too can implement this type of algorithm in your next project.


Continue reading “Self-Learning Helicopter Uses Neural Network”