2019-2020 ICS3U Engineering Tasks

ACES' Choice: Raymond RTC Appliance or the Matrix Equalizer Stick. For your second-to-last project of the year, you have 10 days (and 3 work periods) to put together another legacy device. Two aspects of this project that separate it from most others are,

The Raymond RTC Appliance was a legacy PCB concept developed by D. Raymond (ACES '19) for use by ACES as a UNO Appliance based on the DS1307 RTC (kind of like your own personal Gecko) The Matrix Equalizer Stick is a compact PCB designed for use by ACES to confirm their mastery over the MSGEQ7 Spectrum Analyzer and 8x8 Matrix POV coding techniques.

ACES' Choice
Raymond RTC Appliance (ATmega328p) Matrix Equalizer Stick (ATtiny84)


  1. Create EAGLE Projects from the .sch and .brd files I have supplied and look at them carefully. This will give you insight into the software that you (or your team if you are one to rely on others) must develop as shift registers form the backbone of both devices. Furthermore you may wish to modify one (or both - even a combo?) for your own purposes and have PCBs manufactured. The Matrix Equalizer Stick, for example, uses a Line In Jack for your AUX cable where you prefer to adapt it for use with a microphone.
  2. Determine which project holds more appeal and commit to it at the beginning of our class on Friday May 10.
  3. As mentioned in a previous email post to our forum, although your toolkit is somewhat depleted after almost a year's worth of projects, it still has many of the required parts for either device you choose.
  4. Indicate to Mr. D. which colour display you would prefer. Note. If you source your own display device, make sure its pin layout matches the PCB requirements. Required pin maps appear adjacent to this description. Consulting the datasheets in the links provided will assist you even further.
  5. Encasement is an option and challenge for both devices.
  6. Prepare a project report in your DER for the device and submit it to handin by midnight Monday May 20.

Time-Sensitive Mechanics. (Required Hardware: RTC+Motor+Digital Output)

Given both the variety and depth of student interest as well as inconsistent access to hardware components, this project provides significant latitude for its final form.

For this second-to-last ICS3U DER Submission (your Long ISP will be your last) you are to imagine a device that places your new mechanical experience (DC Hobby, servo or stepper motors) under time-sensitive control of your DS1307RTC, with digital monitoring of the output on either your LCD or a bank of seven segment displays. A clock is one such device, but that would simply be the first thing that comes to mind. Your imagination will likely lead you well beyond that. Could it be time for your first attempt at animatronics?


DC Motor Control. In the previous DC Motor project we focused exclusively on speed. Since motors are the core of mechanical motion, a reverse mode would not be possible without the ability to control the direction of rotation. The H-bridge transistor arrangement supports a convenient MCU context in which its digital signal can influence the motor's CW or CCW shaft rotation. Both the L293D and SN754410 are pin-compatible H-bridge ICs in your kit that will provide this support. One of these ICs is to be applied in this week's project.

In this project you are asked to leverage the H-bridge motor concepts and components in such a way as to demonstrate MCU control over your DC motor's speed and direction. Keep in mind that you also have latitude over adding a load to your motor(s) which will require a significant increase in current. This may necessitate the addition of easily customizable heat sinks to dispel excess heat. I caution you that blowing out components due to insufficiently researched and designed circuits will not help you reach your objectives.


Given the continuing (unusual) conditions we find ourselves in, and the fact that we had a pretty intense project last week, I'm going to pesent a similar format to you, that I did for the 12s this week. You will submit a video DER only that will be a maximum of 3:00 in length, and will demonstrate your comfort and creativity with the application of speed and direction control over your DC Hobby Motor. Many of you appreciate the latitude offered with our projects, especially in this environment in which access to supplies are limited. So, by Sunday night, post an email to handin, under the Subject Line: DC Motor Control, the body of which is simply a link to your video.

Looking for creativity this week. For example, software-leaning ACES may wish to redeploy their serial (or IR) communication skills in the development of a simple control panel/ dashboard in Processing where users can click on an area to achieve a specific DC motor function. How about a Speedometer? Odometer? Yikes! How inspired can you become?

DC Motor Tachometry. First, some terminology (BC: Before COVID, DC: During COVID, AC: After COVID).

So, for our first official DC project, you are asked to enter the world of mechanics. The characteristics of the hobby motor in your kit are now known to you (research from last class) and it would be a useful undertaking to affirm (or refute) the datasheet's claim that this device can achieve 6600 RPM (±10%) in a no-load context.

I would prefer if the monitoring of the rotation was carried out with your new appreciation for IR sensing and MCU interrupts, however, given the nature of our isolation, alternative strategies may need to be brought to bear. I'll leave that creativity to you.

Important Note. For THIS DC Motor project, you are asked to stick to providing varying voltage levels, of single polarity, to monitor RPM only. You are not to introduce dual polarity features to affect the direction of the spin. We'll get to that next week. Credit will be assigned based on simple, creative straightforward use of the components in your kit (and software assets any ACES can acquire for free) and withheld for the use deluxe components that you may have lying around, but others do not. Explore the concept through fundamentals :)

Hardware Tasks

  1. Using the assets available to you, creatively mount your motor securely (vibrations will likely affect performance) so that the encoder (or some other minimal indicator you design and create (cardboard and a hole punch might suffice)) attached to the shaft can be sensed at least once per rotation. Recall that those with access to a 3D printer can use one or more of Joseph's offerings (available for download from our course page) or from Thingiverse, found under Optical_Encoder.
  2. For hardware input, a trim pot, slide pot, or some form of voltage divider acts like the accelerator for your motor. This voltage is read and converted to a PWM signal that ranges from 0-5V and impressed upon the Gate pin of your MOSFET for the low-side driving of your motor.
  3. Your MCU (UNO, nano, etc.) is to receive the sensed square wave as input on (one of) its external interrupt pins and pulses accumulated through the use of interrupts.
  4. As each time interval expires, the count data is processed continuously that result in dynamic, compelling display using any number of output options: LCD screen, Serial Monitor, Serial Plotter, Processing graphic, etc. All that is required is that the output is as informative (RPM per voltage level), interesting, and inspired as possible. Angular velocity is a related conversion worth investigating and (optionally) presenting in preparation for its eventual introduction in your physics courses.

Software Tasks

  1. The preferable strategy involves your MCU (UNO) supplying a PWM signal whose duty cycle can be used as a measure of variable voltage. I would also encourage desgners to add a low-pass filter to the signal into the Gate pin of the MOSFET to smooth the input (I've never tried this put it should work).
  2. The square wave output from the IR receiver is to be captured on an MCU's External Interrupt pin in which either the RISING, FALLING, or CHANGE modes of the signal are employed. By way of consideration, use of Joseph's 8-tooth encoder would result in 8 interrupts per rotation for both RISING and FALLING, but 16 interrupts per rotation for CHANGE mode.
  3. The counts are to be reset ASAP (don't want to miss any) and processed at the end of each time interval. The time interval span over whcih interrupts are counted may require a bit of balancing depending on your choice of output.
  4. The code shell MeasuringRPM.ino is provided for you as a potential starting point.

Additional Considerations

At the outset of our ACES introduction to mechanics, it is highly informative to remember how our investigations lend conceptual and physical support to your study of mathematics and physics concepts. With this project we enter the world of Kinematics, the 'geometry of motion' as it is more commonly referred to as. Motion can be readily explored and analyzed in one, two, or three dimensions (ie. linear, planar, or spatial). There is no urgency to direct you to web references on this topic as I would prefer you to simply reflect on where you think this project, with its implications and applications, fits within the dimensional domains mentioned in the previous sentence.

Big Mouth Billy Bass

Just before the time of your birth, at the turn of the century, the world was hit with an animatronic tsunami in the form of Big Mouth Billy Bass. As if one was not nuisance enough, entire schools (?) of these mechanical poisson were assembled and mounted in homes and businesses like the image to the right of one in a (fish & chips?) restaurant.

Although perhaps too late for this year's Long ISP proposal, if you find yourself drawn to both mechanical and audio technologies, consider putting an animatronic ISP on the shelf for the future.

Finally, as if out of a Stephen King novel, check out this Motion-Sensed Billy Bass Wall.


Legacy PCB/Appliance. ACES' Alumni continue to contribute to our program through their former achievements. PB machines, Schaffer Traffic Lights, Morland Bargraphs, Reed MatrixMadeEZs, Logush nRFBreakout, and Raymond RTCs were all straightforward but brilliantly conceived devices that are instrumental in support of our current learning. Take a look through our online archive of ACES PCBs for inspiration.

To further strengthen your printed circuit board design skills and to give you an opportunity to leave your mark on RSGC's ACES program, you are tasked with the opportunity and challenge of imagining and designing a board that YOU feel would have made YOUR study of electronics a richer (and more time-efficient) experience. The best projects are simple, replace a single task you do over and over, and can be put together with a few handy parts. For my part I have created and continue to maintain a library of common THT parts we use in the DES all the time. Download the library ACES_THT.lbr and use it in your projects.

A few notable considerations to inspire your own creation in include the following,


Part 1. Due Wednesday January 8 @ START of class

  1. You've thought deeply about a simple PCB/Appliance that would have made a previous project you undertook either easier, or richer.
  2. You have created a prototype as evidence that your circuit will actually work.
  3. Launch EAGLE and add the ACES_THT.lbr file to the library folder of your EAGLE project folder.
  4. Create a NEW project, the filename of which is surname_description.sch where you change both parts accordingly. Using the components from your prototype, create your schematic, connecting the leads as your prototype suggests. Try to stay within the parts in the ACES_THT library as they have been developed with young ACES in mind.
  5. Once you're satisfied that the schematic is correct, request that EAGLE create a board file. Save both files, regularly.
  6. Arrange the components on your board in a manner that reflect your understanding of how they are accessed.
  7. Be sure to ADD YOUR NAME as text on the _112 tSilk Layer.
  8. Also, be sure to add the appropriate-sized ACES_LOGO in board view (_tSilk and _bSilk layers and TEXT/NO_TEXT variations), and position them conspicuously. Do your BEST to stay within 5cm × 5cm as cost increases with size.
  9. When you think you're ready to run the AutoRouter, first, download the ACES design rules file, ACES_THT.dru and place it in your EAGLE work folder. Now, under the Tools menu, select DRC and open the dialog. Load the ACES_THT.dru file and select CHECK. Resolve any issues that it flags. If everything is fine it will simply disappear.
  10. Now, run the Autorouter with the ACES_THT.dru design rules in place. The result is that traces are thicker, leading to higher ampacity and less vulnerable than thinner ones to manufacturing inconsistencies
  11. Add the JLCPCBs-compatible CAM Processing file, ACESTHTLegacy.cam to the cam folder in your EAGLE projects folder. Rename it to surname_ACESTHTLegacy.cam.
  12. Launch the CAM processor, open your surname_ACESTHTLegacy.cam file and review the layers you require for each Gerber file.
  13. Check the Export as Zip check box and the hit Process Job to save a ZIP file of your project's Gerber Files.
  14. Upload your ZIP file to the JLCPCB website selecting the appropriate options. Go back to earlier steps as required.
  15. Once you are confident that we will not be wasting $$$ on shallow thinking, attach your FOUR files (.sch, .brd, .cam and .zip) to an email to handin under the Subject Line: Legacy PCB/Appliance Files.
  16. In the body of your email to handin be sure to include your preference for the PCB colour if it is anything other other than BLACK.
  17. I will place the group order as early on Thursday January 9 as I can. My best guess is that they will arrive at RSGC in time for distribution in class on Friday January 25th. You will be given time in class to solder and test your device in time for your DER submission on Saturday February 8th, or earlier.
  18. While you are waiting for your ProtoPack to arrive in 14-18 days you are to,
    1. Order any necessary parts, and,
    2. Design and develop a housing/case. If you are so inclined you can export the .brd file from EAGLE as a .dxf and importing it into a CAD application of choice to make short work of hole locations, battery access points, switch locations, etc.

Part 2. Due Saturday January 11.

  1. Under the project title, Legacy PCB/Appliance you are to develop a new DER entry that consists of the sequence of steps you have engaged in this process, to this point. Sections include Reference, Inspiration, Procedure, Media, and Reflection as follows,
  2. Submit your DER summary to handin, under the Subject Line indicated on the Submissions page, by midnight.

Part 3. Due Saturday February 1

  1. The first class after the PCBs arrive (January 22) will be devoted to unboxing, examining, sharing, soldering, and testing. Unforeseen, misunderstandings and oversights will need to have workarounds developed.
  2. Develop a prototype that exploits your boards capabilities.
  3. Add a second phase to your Procedure section from January 11th that fully documents the receipt of your boards, through the assembly, testing, and encasement phases (if you've been thorough enough to create a housing)
  4. Your video should document this phase as well and demonstrate your device in an application meant to suggest what future ACES could do with your device.
  5. Add a wrap up to your Reflection as well.
  6. Submit your DER summary to handin, under the Subject Line indicated, by midnight.
  7. Bring one soldered and tested sample to our class for a quick, informal, minute-long presentation and leave it with me.

I will, hopefully, take one or more of these creations, adapt them for use in next year's courses, and secure your legacy in the process!

Project 2.5. MatrixMadeEZ. For his PCB project in Grade 11, Hugo Reed (ACES '19, Queen's '23) imagined, designed, and developed a handy PCB that future Grade 11s could exploit to hone their LED matrix animation skills. We're going to incorporate Hugo's terrific little device into a creative implementation due on Saturday December 14.

Parts List for Hugo's MatrixMadeEZ PCB (all can be found in your toolkit),

The header will enable your device to be mounted vertically in your breadboard, driven by your official (or breadboard) Arduino, or even an ATtiny84 or ATtiny85. Note. this is NOT an appliance for the UNO as there is no 5V access on the digital pin side.


  1. Many of you are hardware-driven, some are software-inspired and still more of you enjoy the design opportunities this course affords. While covering off ALL THREE domains to some extent (hardware, software, and design), feel free to push your preference for one (or two) to the limit in developing a device capable of presenting a compelling animation on your MatrixMadeEZ.
  2. My attempt to create a successor to the Gecko that uses four of the matrices, still runs in a corner of the DES and may give you some ideas for your own animated presentation.
  3. Requirements for this project's PoV animations MUST include the use of EEPROM for the storage and retrieval of image data (fonts &| graphics) and the TimerOne library for control of the frame speed.
  4. Doubling down on your planning for this project as it relates to your upcoming Medium ISP. Your choice of MCU, perma-proto layout and soldering skills from your Altoids project and your case designs can all improve the outcome of your ISP.
  5. Do NOT upload your video using your RSGC Account (use your own personal account) and submit your DER by Saturday December 14.
  6. Make Hugo proud!

Project 2.4. Altoids Arduino. (An ACES first) The goal of any embedded system designer is to engineer an in-system programmable (ISP) and functioning microcontroller, housed in a physical and electronically-stable case. This project gives you your first attempt at creating such a device (and sets your design ideas in motion for our custom PCB and CAD cases in the second and third terms...)

The graphic to the right is my simplified layout for a next-to-minimal, standalone Arduino-like device on a perma-proto half board. At the top left you'll see the RSGC ACES ISP breakout board you were supplied with that will be your means to program your in-place ATmega328P MCU (the MCU will sit in a supplied IC socket so you can remove your MCU as required). In the top right, you'll see the 5V regulation section where you may choose to provide a 7V power source or (slightly) higher as a substitute for 5V power supplied through your ISP BoB by way of your Sparkfun Pocket AVR Programmer.

Most of the additional requirements and wiring are left to you to determine from the direction and knowledge provided in class.

Adafruit's Mint Tin-Sized Perma-proto Board (front) Adafruit's Mint Tin-Sized Perma-proto Board (back)

Task 2.4.1. Breadboard ATmega328P

  1. Supplemental Parts List for 2.4.1
    # Description
    1 RSGC ACES ISP Breakout v2
    1 2x3 Male Header Pins (ISP)
    1 ATmega328P MCU DIP28
    From the datasheet link above and the ATmega328P pin mapping, familiarize yourself with as many of the details of the 28 pins on the MCU as you can.
  2. Using a combination of the parts in your kit and the supplements provided in the table to the right, create a programmable breadboard version of a standalone ATmega328P
  3. Insert an LED and (attempt to) flash the Blink sketch with your Sparkfun AVR Pocket Programmer (SAPP).
  4. Debug as necessary.
  5. You may notice the flash rate does not match expectation. This is due to the default clock source of the MCU as it leaves the factory. To set the MCU to use your external 16 MHz crystal, burn the bootloader, before flashing the Blink sketch again. The flash rate should now match the 1 Hz intention.
  6. Remove the cable from your SAPP and construct a 5V regulated power supply fed from one of your 9V power sources to confirm the blinking LED.
  7. With all embedded systems functioning, assemble and present an interesting circuit of your choosing to showcase your new capabilities and include in your video summary.
  8. Complete your DER report and submit it to handin by Saturday November 23.

Task 2.4.2. Altoids Arduino

Altoids Tin (student supplied) Adafruit's Mint Tin-Sized Perma-proto Board in Place

  1. GOAL.
    Supplemental Parts List for 2.4.2
    # Description
    1 Adafruit Mint Tin-Sized Perma-proto PCB
    1 Altoids Mint Tin (student-supplied)
    ? 1x4 Female Header Socket
    ? 1x8 Female Header Socket
    ? 1x14 Female Header Socket
    ? 2x12 Female Header Socket
    1 28-pin kinked DIP Socket
    1 Power Jack 2.1mm x 5.5mm
    1 cool mystery part for the successful
    The goal of Project 2.4.2 is to create a permanent, in-place programmable ATmega328P MCU-based prototype of your circuit in part 2.4.1, that fits inside an Altoids Mint tin, and is fully operational with the lid closed. (Kickstarter, here I come...)
  2. ACQUISITION. Acquire an Altoids tin for your use with this project (you are permitted to eat these mints in the DES for this project only :) You can pick these tins up at any corner store. Adafruit even sells generic tins that permit you to add your own design enhancements. A final option is to make a profit on the side ordering a dozen of them from Amazon and shopping them to your buddiesGeneric 'Altoids' Tins (I haven't confirmed they'll accommodate the perma-proto board you are REQUIRED to use but, at least the reviews are solid).
  3. APERTURES. This second stage of the project places a premium on the modifications of the tin to support your circuit's performance all the while with the lid closed. These might include a side-entry power jack, convenient in-place ISP support, (check out the one I used in our Binary Challenge devices), an on-off switch with LED confirmation, audio input jack or microphone, and top openings or apertures for display devices and internal visibility (I happen to think, done right, tech can be esthetically pleasing). Finally, your name must appear on the outside of the tin
  4. ASSEMBLY. An OFTEN overlooked aspect of project development is the simple assembly of the final components. I had to be conscious of this last Spring as I was designing and planning our BCD devices. For example, if components stick out from both ends of your PCB, you will not be able to insert the circuit into the case without having to remove substantial parts of the tin. Not good.
  5. PERMA-PROTO PCB. Review your Adafruit Mint Tin-Sized Perma-proto PCB thoroughly, front and back, noting in particular, which hole sets are continuous or not.
  6. FULL LAYOUT. Using a combination of the parts in your kit and some of the supplemental parts listed to the right, lay out your components on your perma-proto PCB to get a spatial sense of the device you are about to make permanent. Have respect for the openings you will have to create in your tin.
  7. SOLDERING. Solder up your device ensuring it fits well within your closed Altoids tin. Take considerable care with stage as replacement parts will not be supplied by Mr. D.
  8. You are strongly encouraged to line the internal walls of your tin with electrician's tape or other insulating material to prevent shorts caused by contact of the solder joints or components with the tin.
  9. TESTING. Upload your code with your SAPP. Debug as necessary. Remove your SAPP and supply 9V power through your DC input jack and 5V regulator to confirm your circuit's reliable performance.
  10. CASE ENHANCEMENTS. At the very least your name is to appear, conspicuously, on the OUTSIDE of the case. Further labeling and identification is encouraged.
  11. REPORT. Complete your DER report and submit it to handin by Saturday November 30.
  12. DELIVERY. You are required to bring your device to class on Monday December 2 and leave it with Mr. D for his first-hand evaluation.

Project 2.3. PoV Word. (Reference: AVR Foundations: pp.34-39). It's strange to think that our eyes perceive much of the LED lighting around us to be uniformly ON, when they are actually OFF as much as half the time (maybe this is one of the reasons LED lighting is so cost-effective?). Point your phone's camera at the digital clock in the DES and see the result when this oscillation interferes with your device. K. Fiset-Algarvio created a remarkable Persistence of Vision Globe in Grade 11 for his ISP. Unfortunately, the video is no longer available as he uploaded it to YouTube using his RSGC account, which is no longer available:( I did manage to retrieve two photos from his DER as evidence of the dramatic result.

You have been lent an LTP-3784G (a green, common cathode, dual-digit 14-segment alphanumeric display). An image of the device appears below, left, in which I have coloured a few segments to simulate a 'possible' depiction of the two-letter word AS. Click on the previous link to review the datasheet for this device and familiarize yourself with its pin layout. This component is to be driven by two SN74HC595 shift registers* and a pair of transistors (one NPN and one PNP) under control of a single square wave (bottom, right), in a Persistence of Vision scheme. See Fritzing image at end.

*Although the ATmega328p has enough pins to complete this task without using shift registers, you are required to do so, for practice.


  1. This project requires you to combine a number of recent recent hardware and software techniques introduced in class to produce a PoV display of a two-letter word entered through the Serial Monitor text box.
  2. Research the possible segment maps to define your own custom font for the uppercase letters. Note: given this device has 14 segments per character, the elements of your EEPROM map must be two bytes in width. In many CS contexts, two bytes is referred to as a word.
  3. Devise a strategy for addressing your segment maps in EEPROM so that the segment data is easily accessible based on the ASCII value of each letter. Note: the segment data for each letter is word length (unit16_t) . Write a separate sketch entitled, Write14SegASCIIEEPROM.ino to populate EEPROM with your 14 segment ASCII maps. BE sure to include this code in your DER and attach it to your email.
  4. Create the Arduino project, PoVWord.
  5. Within the project sketch of the same name, develop and execute code that will first define that data for your lookup table of segments before writing the map to EEPROM within the setup() function.
  6. Within the loop() function, solicit input from the user in the form of a single two-letter word (either case) and present it on the display device in uppercase, indefinitely. Note: lowercase letters should be converted to their uppercase equivalents, otherwise all other characters should be constrained to the closed interval ['A','Z']. For example, if the user enters ]< as input, the display should present ZA.
  7. You do not need to implement the decimal point.
  8. Be sure to fully document your (efficient and original as possible) code and attach POVWord.ino to your submission as a second file, along with your DER.docx file.

Advice (trust Mr. D's experience)

Project 2.2. Binary Button Echo. Your in-class experience with our new Binary Challenge Device has already prompted a number of students to suggest design improvements. Your second project capitalizes on your expressed interest and curiosity with a view to possibly inspiring someone to consider taking on the development a prototype for an improved training device as an ISP.

When Tim Morland (ACES '18, Queen's Eng '22) was in Grade 11, he designed version 1 of the adjacent Arduino Appliance (ACES refer to an 'appliance' as a PCB specially designed to insert directly into the female headers rather requiring unstable breadboard and wire connections) consisting primarily of a SN74HC(T)595 Shift Register and a bargraph. Your toolkit contains the SN74HC595 IC, a 16-pin IC Socket, right angle snappable male headers, and a 10-LED blue bargraph. The remaining parts, a 330 Ω 9-pin (8-resistor) bussed resistor network and Tim's PCB, will be provided to you. Only the 8 least significant LEDs are accessible. Tim's appliance will function as the output device for this project.

For input, you are to use 8 separate momentary tactile button/switches (you have a bag of 20 left over from your Grade 10 toolkit).

Task. Your task is to develop an Arduino-based prototype that has your software continuously (and correctly) monitor the state of the eight input buttons and echoing their states on your Morland Bargraph. They key to this project is how you acquire and assemble the button data input for presentation to the Shift Register output. Note: There are so many ways to do this, it is unlikely that any two ACES will accomplish this the same way...

Advice. Only those students that start EARLY on this project, thereby leaving themselves sufficient time to make mistakes, explore unique strategies or even head down to Creatron for a part or two they think might make a creative difference, will earn the deep satisfaction of personal triumph. Those that don't, won't be able to resist the temptation to cast an eye on what others are doing, thereby hindering their own growth and development.

A final word. Given that collaboration to limited extent is permitted and there are no tests to filter out who has actually mastered the skills, it typically falls to the creative and marginal differences in your prototype and DER content to determine the awarded credit.



First, make the following edits to your DER,

  1. Add ICS3U to your title page after ICS2O, separated by a comma of course. Next year you can add ICS4U :)
  2. Insert a Next Page Section Break at the end of your Grade 10 reports
  3. In the middle of the page type ICS3U, in large font, centered on the page. Be sure to suspend the display of the header and footer on this divider page.
  4. Insert another Page Break.
  5. Adjust the new header to reflect the ICS3U course code, but continue the page numbering in the footer.
  6. Begin this year's submissions with a report entitled, Project 2.1. Traffic Light.
  7. Be sure to update your ToC prior to submission.

Project 2.1. Traffic Light. Since many of you will be pursuing your driver's license in the near future, the focus of this first project is the careful soldering and QUALITY programming of a standard traffic light. When Jasper Schaffer (ACES '18, Queen's '22) was in his TEI3M year, he designed the handy little PCB pictured to the right that we'll exploit to start our year off. For the assembly aspect of this project you will solder one each of a green, yellow, and red 10mm LED and a four-pin right-angle header from your toolkit onto the Schaffer Traffic Light PCB you have been provided with. Take care as there are NO replacement parts. The male header pins allow your device to be inserted directly into adjacent female port pins on your Arduino (eliminating the need to use a breadboard and hookup wires). Be sure to document your soldering of the device through video acquisition that you can include in your report. For the testing aspect, you will include media as well as a well-planned sketch based on our discussions in class. The fully documented sketch should cycle through the LEDs continuously with the green and red remaining on for four times the duration of the yellow (amber) LED.

In your report, you are include the Purpose, Reference, Procedure, Code, Media, and Reflection subsections in Heading 2 style. A full Parts Table, with background shading consistent with your Grade 10 theme and width of 3" and should appear right-aligned within the Procedure section. Finally, ensure that no content is allowed to spill into any of the four page margins.