ELE000042C Programming and Digital Interfacing

School of Physics, Engineering and Technology

[ELE000042C] [Programming and Digital Interfacing] 

Assessment 2024/25 

Summary Details 

This assessment (Coding and interfacing project and brief report) contributes 100% of the assessment for 

this module.

Submission is via VLE. The deadline is 1400 on Monday 13/01/25. Please try and submit early as any late 

submissions will be penalised. Assessment information including on late penalties is given on the School of 

PET Student Information Community Site

Academic Integrity

It is your responsibility to ensure that you understand and comply with the University’s policy on academic 

integrity. If this is your first year of study at the University, then you also need to complete the mandatory 

Academic Integrity Tutorial. 

Please note:

● Unless the coursework specifies a group submission, you should assume that all submissions are 

individual and should therefore be your own work.

● All assessment submissions are subject to the Department’s policy on plagiarism and, wherever 

possible, will be checked by the Department using Turnitin software. 

Contents

Summary Details.................................................................................................................................................. 0

Academic Integrity ............................................................................................................................................... 0

1 Assessment brief................................................................................................................................................ 2

2 Assessment requirements .................................................................................................................................. 3

2.1 Specifications and Restrictions ..................................................................................................................... 3

2.2 Submission requirements............................................................................................................................. 4

2.2.1 Report.................................................................................................................................................. 4

2.2.2 Project folder and functionality proof..................................................................................................... 4

3 Suggestions and guidelines................................................................................................................................. 5

3.1 Hardware connection guidelines................................................................................................................... 5

3.2 Basic to advanced software implementation ................................................................................................. 5

3.3 Making the submission on time and getting lab sign-offs................................................................................ 6

3.4 Tips on working........................................................................................................................................... 6

4 Indicative marks breakdown............................................................................................................................... 7

Appendix ............................................................................................................................................................. 7

A.1 Nucleo G071RB pinout................................................................................................................................ 7

A.2 Marking criteria in more detail..................................................................................................................... 8

A 2. 1 Notes.................................................................................................................................................. 8

A.3 Marking Rubric (Indicative).......................................................................................................................... 9

1

1 Assessment brief

90% of your module mark is achieved through submitting a code and a report on the task described below. Remaining 

10% of your module mark is gained, as the module progresses, by providing evidence of being signed-off for the 

successful completion of each of the assessed lab activities1 listed in section 3.3. 

Your task, outside the lab activities, is to:

1. Write a program, using the Mbed OS environment and the Nucleo board provided (Nucleo G071RB), to display 

the letters of your first and last name, in a scrolling fashion, on a single 7 segment display (provided in your kit

is the common cathode variant and is the one you must use) when a button specifically assigned (by you) is 

pressed to trigger the display of each name. See figure 1 for pin-out of the 7 seg unit.

2. Write a short description of your code development process (more on this in section 2)

Figure 1: A 7-segment LED display pin information

This is an individual coursework and that means all the work must be your own. Collusion and plagiarism will attract 

zero marks.

Read this document carefully and get back to me with any questions or concerns you may have via email or ask me 

during the lab sessions. Please do not ask the GTAs about the assessment and do not rely on your peers for accurate 

information.

1 10% of the module mark: Gained by READING the lab sheets BEFORE coming to the lab and making the necessary effort to 

ATTEND each lab and COMPLETE DIRECTED TASKS and getting SIGNED-OFF. You do not need to submit any work arising from 

your lab sheets, but you will need to declare having successfully completed the sign-off activities (which will then be verified). 

2 Assessment requirements

2.1 Specifications and Restrictions

1. First 5 Letters* of your first name must be displayed when a button is pressed once by the user, and

First 5 Letters* of your last name must be displayed when another button is pressed once by the user. 

E.g., For my (Rohan Kakade) first and last name, the outputs sequence would be as shown in figure 2 (1s inter letter gap is assumed here, but it can be anything reasonable). Click here for example videos.

Figure 2: Sample output for a system that display my first and last name

*Important note: If your first or last name contains less than 5 letters, then append any number(s) of your 

choice to make it 5 characters each.

e.g., if your first name is “Tate” and your last name is “Sefe”, then you can display Tate1 Sefe2 or you can display 

Tate3 Sefe8 etc. Hope you get the idea! If not, ask me.

2. Each lettermust be displayed for a suitably long time such that its comfortable for the user to read (you decide). 

1s would be typical.

3. Both your first and last name must be displayed on the same 7 segment display i.e. you mayNOT use a second

7 segment display. 

4. Letters must be displayed only in the format dictated by figure 3. No other format permitted.

5. The names must be your names (as recorded in university records) and not your nick names or shortened 

names or your favourite person’s name etc. 

6. The system functionality should be repeatable without requiring hard reset (i.e. without using the on-board

black button). 

Figure 3: How alphanumeric characters should appear on the 7-segment display. 

2.2 Submission requirements

8 elements constitute your assessment. They are described next. Please read carefully.

2.2.1 Report

Following 6 elements must be contained in a single document submitted in PDF format.

1. Block diagram of the system (on its own page ideally)

• Diagram showing how components are interfaced to the Nucleo board

• Do not draw by hand. I recommend using this free web tool, but you can use any tool you prefer.

• Embed/include links to datasheets of each component interfaced and the datasheet of the nucleo board 

(Nucleo G071RB)

2. System schematic (on its own page ideally)

• Circuit Diagram showing how components are wired to the nucleo board that includes pin numbers and 

component values. I recommend using EasyEDA online editor2

, but you are welcome to draw these using 

any tool you like.

3. Flowchart (on its own page ideally)

• Algorithm of your final program in flowchart format. 

• Please do not draw by hand. I recommend using this free web tool, but you can use any tool you prefer.

4. Code development story (1500 words max)

• Explanation of how the program was iteratively developed to its final stage. Show that you fully 

understand what your program does and why it does it

• Do not paste in entire codes! Comment on what changes between different code versions and why these 

changes were made. 

• 1500 words max translates to about 3 pages with 1.5 line spacing and 12pt format. Length of your report 

will vary depending on complexity of your code; more words do not equal higher marks. 

5. Functionality proof (picture)

• Pictures of each letter of your name being displayed as expected (10 pictures in total; make a collage with 

2 rows and 5 columns – first row for first name, second row for second name like in figure 2).

6. Sign-off proof

• A simple declaration at the end of the report saying “I claim sign-off for xx number of assessed labs”, 

where xx is the number of assessment lab activities you have been signed-off for. The markers will verify 

your claim.

2.2.2 Project folder and functionality proof

Following two elements must be submitted along with your report. 

7. Functionality video proof (.mp4 file) 

• Short (10-30s max) video (record using your phone or any other device) that clearly demonstrates the 

functionality of your program. Should not exceed 90 MB.

• Ensure circuit connections and the Nucleo board are visible. Good wire management and neat breadboard 

connections will be awarded.

• No marks for making fancy video edits and for adding audio commentary. No cuts or breaks in the 

recording i.e. functionality demonstrated in one take

• Recording must be in .mp4 format (so that its playable on a standard video player like VLC)

8. The Mbed project folder (.tar file)

The entire Mbed project folder (must include main.cpp and any header files)

• Find and delete the file called compile_commands.json from your project to restrict the file size to under 

25MB file size limit of the VLE. Right-click your completed project and choose “Download current selection” 

OR left-click the “Download active project” menu option from the File menu.

2 If you are using EasyEDA for schematic creation, then you might need to look for the STM32G071RBT6 component in its library. 

Refer to the lecture notes (on Schematic diagrams) for guidance.

3 Suggestions and guidelines

3.1 Hardware connection guidelines

1. LEDs are rated to have a maximum forward current and exceeding this can burn them out. Each LED on the 7-

segment display has a 20 mA max forward current rating. With 2.1 V forward voltage, the series resistor used 

should be at least (3.3-2.1)/0.02 i.e. 60 Ω. I recommend using 100 Ω resistor between a nucleo pin and any 

given segment. See figure 4.

Figure 4: Suggested 7-segment display interfacing to Nucleo 

(schematic made in easyEDA) 

2. You may choose to use the blue on-board button as one of the buttons, but the second button will need to be 

connected externally. Don’t forget to configure the pull-up or pull-down resistor to avoid a floating input

condition. E.g., “DigitalIn buttonname(D0,Pullup);” will initialise digital pin D0 with a pull-up resistor. 

3.2 Basic to advanced software implementation

3. A basic implementation, for pass mark, would demonstrate functionality using very linear programming that 

simply checks each button and then turns on and off the LEDs to display a certain letter with thread_for_sleep() 

to time the scrolling through of the letters. Nothing fancy here, but it meets the assessment brief.

4. Next level up - A simple system. 

• This could deploy functions and set mechanisms to resolve button press conflicts and perhaps have 

different scroll through times for the first and last names. 

• It could also perhaps display some information on the serial monitor such as number of times the user 

requests displaying each name.

• You could do something fun (yet simple) like displaying a default animation which gets erased and 

written with the letter sequence invoked by the button. 

• This is not an exhaustive list!

5. At the upper end - An intermediate and advanced system

• This could employ event-driven techniques for handling button events using callbacks to make code 

more compact and efficient. 

• You could create a class for driving the 7-segment display with methods (member functions) that allow 

controlling the inter-letter times and selecting the precise letter to be displayed. There is opportunity 

to pass on all pin states as a byte array to allow writing for example something like 

“display(11111101);” to display ‘a’. 

• Even better – you could pass on a letter or entire strings. Something like “display(‘r’);” or 

“display(“rohan”);” 

• Another interesting implementation could be asking the user to enter the names to be displayed and 

then the letters of the chosen letters are displayed on button presses as before. This will require your 

program be able to display any of the 26 alphabets. 

• You could utilise interrupt service routines that allow the processor to do something else while the 

buttons are not pressed. There might be an opportunity to use multiple threads. 

• Again, this is not an exhaustive list by any means! 

6. At whatever level you write your program, its important you clearly communicate your code development (it 

carries the most marks!). Remember to save different versions of your program, so that you can present 

snippets of each while discussing how your code has evolved.

3.3 Making the submission on time and getting lab sign-offs

7. As with anything important, do not try and submit at the last hour. You do not want to lose unnecessary marks 

due to late handins. 

8. For the sign-offs, it is your responsibility to ensure you get signed-off by a member of module staff (me or the 

lab GTAs) BEFORE you leave the lab. Preparation is thus key; reading the lab brief document for the first time 

during the lab will not work! If you miss a lab, for any reason, it is your responsibility to get signed-off in the 

following lab(s). 

9. Sign-off are only permitted in-person and attempting to get all/majority of the assessed weeks’ work signed 

off in one lab will likely end in disappointment3 . Sign-offs over email will be permitted in exceptional situations 

as judged appropriate by the module leader/school office. 

10. The assessed labs (that require sign-off): Lab 3 (Functions), Lab 4 (Objects), Lab 5 (Motor control and 

accelerometer sensing), Lab 7 (Interrupts), Lab 8 (Mutexes and Semaphores), Lab 9 (Pointers), Lab 10 (Arrays)

and Lab 11 (Strings). 

3.4 Tips on working

11. Practice making a video of your circuit and check that you can upload to your university google drive and that 

you are able to generate a link to this for inclusion in your report.

12. Start working on your project during the semester, rather than telling yourself “I’ll do it over Christmas”, 

because you will likely have a hundred other things going on then (social events, exam prep, other coursework, 

holiday etc.)

a. Clone this baremetal project if you don’t plan to use multiple threads or any event-driven techniques

(faster builds). Or clone this project if you want to use concurrent techniques (slower builds). These two 

projects differ only in the contents of their mbed_app.json files, so it's easy enough to convert from one 

configuration to the other if you find you need to.

b. Create a blank word document for your report or download and edit the report template document 

available on the VLE (will save you time). If you are not using the template document, then in your 

document create 8 headings (1 block diagram, 2 schematic, 3 flowchart, 4 code development story, 5 

functionality pictures, 6 How to use guide, 7 Project planning evidence (Gantt chart) and 8 Sign-offs 

declaration) to match requirements stated in section 2.2.1 and start working on headings 7, 1, 2 and 3 in 

that order before starting to write any code and proceeding to other sections. System planning before 

implementation.

c. Unless you are informed otherwise, once your report is ready, convert it to PDF format and give it a name 

“PaDIprojectreport”

d. Once your Mbed project is ready and you are happy with the functionality

i. Record video of functionality and save it in .mp4 format. 

ii. Download .tar file of your project (i.e. the entire Mbed project folder) as indicated in section 2.2.2.

iii. Move the .tar file, your .mp4 file and report’s .pdf file into one folder called “PaDIProject” 

iv. Zip the folder and upload to the VLE submission page before the deadline

v. Celebrate! You are done! 

3 You can expect 3-4 staff for 80 students in each session. Now imagine if 10 people were trying to get signed off with a few 

saying “Can I get signed-off for the last 5 labs please?”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值