Reverse engineering happens pretty often in the hacker community, but it is usually someone else's work that a hacker wants to reveal. In this case, an old recreational LED project was under investigation, but the hacker was also the creator. Twenty years ago, he built the board to impress people at a dance club, but the schematics were lost to time, and so he traced out his old circuit.
For some projects, an enclosure is too much to ask for, but something has to be done to keep junk and fingers off the microcontroller. This hack was a simple solution where the plastic lid from a food container is heated and forms over the top to keep it hidden away. I even tried this out myself and added a couple of pictures.
The Electronic Wind Chimes had a memory problem where too much junk had been stuffed into the SRAM, and a warning said it could cause unexpected operations. I already knew that the biggest culprit was a lengthy table of instrument names. The table had 128 instrument names with sixteen characters in each. Each character used eight bits, so that was 1 kilobyte. Everything in the table was moved to the program memory, and the memory error went away.
With the memory issue cleared up, the code controlling the first module could be copied to the rest of the modules. To now, only one instrument would play at a time since only one module was programmed, but it was written to copy it over, so modules two through five were operational in a day. The sound became a lot more interesting when multiple instruments started interacting.
The final programming day added the Entropy library, which was supposed to generate truly random numbers. I liked the idea of using random notes, but the library could only make them fast enough to keep up with a speed of 112 BPM. Each time the reset command is issued, the system toggles to or from using prandom numbers to using the Entropy library but the tempo adjustment caps out at 112 BPM. When the system starts, an entropic number seeds the Arduino random() function.
I wanted to make a quality video for this project, which took roughly four months. I decided to write a script rather than an off-the-cuff narrative like my usual progress videos. To jazz it up, I put some form of wordplay in every sentence. The text below has the puns in bold.
The rest of the summary posts have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information on this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.
Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
For some projects, an enclosure is too much to ask for, but something has to be done to keep junk and fingers off the microcontroller. This hack was a simple solution where the plastic lid from a food container is heated and forms over the top to keep it hidden away. I even tried this out myself and added a couple of pictures.
The Electronic Wind Chimes had a memory problem where too much junk had been stuffed into the SRAM, and a warning said it could cause unexpected operations. I already knew that the biggest culprit was a lengthy table of instrument names. The table had 128 instrument names with sixteen characters in each. Each character used eight bits, so that was 1 kilobyte. Everything in the table was moved to the program memory, and the memory error went away.
Memory efficient code
With the memory issue cleared up, the code controlling the first module could be copied to the rest of the modules. To now, only one instrument would play at a time since only one module was programmed, but it was written to copy it over, so modules two through five were operational in a day. The sound became a lot more interesting when multiple instruments started interacting.
(1:51) Five simultaneous instruments
The final programming day added the Entropy library, which was supposed to generate truly random numbers. I liked the idea of using random notes, but the library could only make them fast enough to keep up with a speed of 112 BPM. Each time the reset command is issued, the system toggles to or from using prandom numbers to using the Entropy library but the tempo adjustment caps out at 112 BPM. When the system starts, an entropic number seeds the Arduino random() function.
(0:25) Truly random notes?
I wanted to make a quality video for this project, which took roughly four months. I decided to write a script rather than an off-the-cuff narrative like my usual progress videos. To jazz it up, I put some form of wordplay in every sentence. The text below has the puns in bold.
Pun script
The rest of the summary posts have been arranged by date.
First time here?
Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All information on this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.
Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
Comments
Post a Comment