Planning the hardware
Objectives
Section titled “Objectives”- Compute the hardware you need
- Design a role rotation within groups
- Decide when to use remote flash
Before you start
Section titled “Before you start”- From the previous lesson, what kind of graded work must be done on a board in front of the assessor?
- From the teaching-methods lesson, which activities can be done in the emulator, and which need a real board?
See it work first
Section titled “See it work first”Open BENTO IDE, press the BENTO Emulator button, then press HW. You will see a simulated hardware panel with LEDs, buttons, a knob and a tilt pad. Every learner can use this at the same time with no board at all. This is why your course does not need one board per learner.
Concepts
Section titled “Concepts”1. One board per three to four learners; everyone has an emulator
Section titled “1. One board per three to four learners; everyone has an emulator”The recommended ratio is one board per three to four learners, and everyone uses the emulator on their own machine. Work that can be done in the emulator (understanding the API, filling in practice, designing the screen) does not need to wait its turn for a board; the board is reserved for work that genuinely needs it. This number is a guideline, not a rule. More boards are always better; with fewer, move more work into the emulator and use remote flash.
2. Rotate roles so nobody just watches
Section titled “2. Rotate roles so nobody just watches”A group with a single board often ends up with the strongest person typing the whole lab. Prevent this with roles that rotate every 15 minutes.
| Role | What they do |
|---|---|
| Driver | Types and runs on the board |
| Navigator | Reads the brief, calls out the next step, checks against the objectives |
| Tester | Runs the same code in the emulator and compares the result with the board |
| Recorder | Collects evidence, images, logs and predictions into the group’s portfolio |
3. Remote flash
Section titled “3. Remote flash”For firmware that must be flashed as a .hex file, the TESAIoT Remote Flash service lets a browser send a file to be flashed onto a board connected to a different machine.
As the service page shows it, the steps are: create a pairing code on the web page, enter the code in the TESAIoT Programmer app on the machine the board is connected to,
then choose the .hex file and start flashing. This is useful when
- All the boards are connected to machines in the lab, and learners submit work from their own machines
- Learners are studying remotely, and the institution has boards connected and ready
Before using it with a whole class, try pairing and flashing yourself once first.
4. What the emulator does not tell you
Section titled “4. What the emulator does not tell you”The emulator answers well whether a program runs to completion and what the screen looks like, but WiFi is simulated, sensor values are simulated, and some hardware limits, such as the time a board is not yet ready to answer about sensors right after power-on, never show up in a browser. Instructors should run the lab’s example on a real board first every time, and tell learners in advance where the results differ.
Worked example
Section titled “Worked example”A course has 30 learners, with a 3-hour lab each week.
- Move 1: number of boards 30 ÷ 4 = 7.5, rounded up to 8 groups, plus 2 spares, totalling 10 boards, and 12 USB data cables
- Move 2: machines Learners use their own laptops for the emulator; the lab room has 8 machines connected to boards
- Move 3: timing The first half of the lab, everyone works in the emulator; the second half rotates roles every 15 minutes on the board
- Move 4: network Test before the term starts that the lab network needs no web login and does not block the ports the MQTT lesson uses
Practice
Section titled “Practice”Copy resources/hardware-checklist.md and fill it in fully for your own course, together with a role-rotation table for one lab.
Check your understanding
Section titled “Check your understanding”Answer the questions in quiz.yaml. A score of 80% or more passes.
Going further
Section titled “Going further”The next lesson is the final module, on trainer training and the path to becoming a TQP Certified Trainer.
Reflect
Section titled “Reflect”If half your boards broke on lab day, what would your backup plan be, and which learning outcomes would learners still fully achieve?
Review questions
Answer on your own first, then open the answer.
-
A course has 24 learners, one board per four learners, plus two spares. How many boards are needed? (Objective 1)
- 6
- 8
- 12
- 24
Show answer
Answer: B. 8
24 ÷ 4 = 6 กลุ่ม บวกสำรอง 2 เป็น 8 ตัว
-
Which item is most often forgotten in the hardware list? (Objective 1)
- สาย USB ที่ส่งข้อมูลได้ ไม่ใช่สายชาร์จอย่างเดียว
- จอภาพสำรอง
- ลำโพง
- เมาส์ไร้สาย
Show answer
Answer: A. สาย USB ที่ส่งข้อมูลได้ ไม่ใช่สายชาร์จอย่างเดียว
สายชาร์จอย่างเดียวจ่ายไฟได้แต่ส่งข้อมูลไม่ได้ IDE จะหาบอร์ดไม่เจอ ทั้งที่บอร์ดติดไฟ
-
In a one-board group, what does the tester do? (Objective 2)
- พิมพ์โค้ดบนบอร์ด
- รันโค้ดเดียวกันในอีมูเลเตอร์แล้วเทียบผลกับบอร์ด
- รอจนถึงคิวของตัวเอง
- ให้คะแนนเพื่อนในกลุ่ม
Show answer
Answer: B. รันโค้ดเดียวกันในอีมูเลเตอร์แล้วเทียบผลกับบอร์ด
ผู้ทดสอบทำงานคู่ขนานในอีมูเลเตอร์ ทำให้เห็นความต่างระหว่างบอร์ดกับอีมูเลเตอร์ และไม่มีใครนั่งรอเฉย ๆ
-
Why rotate roles about every 15 minutes? (Objective 2)
- เพื่อให้บอร์ดได้พัก
- เพื่อไม่ให้คนเดียวพิมพ์ทั้งแล็บ และทุกคนได้ลงมือบนบอร์ด
- เพราะบอร์ดทำงานได้ครั้งละ 15 นาที
- เพื่อให้แล็บจบเร็วขึ้น
Show answer
Answer: B. เพื่อไม่ให้คนเดียวพิมพ์ทั้งแล็บ และทุกคนได้ลงมือบนบอร์ด
กลุ่มที่ไม่หมุนบทบาทมักจบที่คนเก่งที่สุดทำคนเดียว คนอื่นได้แค่ดู
-
Order the TESAIoT Remote Flash steps as the service page shows them. (Objective 3)
- เลือกไฟล์ .hex แล้วสั่งแฟลช
- สร้างรหัสจับคู่บนหน้าเว็บ
- ใส่รหัสในแอป TESAIoT Programmer บนเครื่องที่ต่อบอร์ด
Show answer
Correct order: B. สร้างรหัสจับคู่บนหน้าเว็บ → C. ใส่รหัสในแอป TESAIoT Programmer บนเครื่องที่ต่อบอร์ด → A. เลือกไฟล์ .hex แล้วสั่งแฟลช
จับคู่เบราว์เซอร์กับเครื่องที่ต่อบอร์ดก่อน แล้วจึงส่งไฟล์ไปแฟลช
Cite this lesson
If you teach from this lesson or reuse it in slides or documents, credit it with the text below. If you changed it, add (adapted) after the title.
"Planning the hardware" from TESA Open Knowledge by the Thai Embedded Systems Association (TESA), https://github.com/tesaiot/tesa-qualification-program, licensed under CC BY-NC 4.0
Thai attribution: "วางแผนฮาร์ดแวร์" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย (Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program สัญญาอนุญาต CC BY-NC 4.0
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
Content is licensed CC BY-NC 4.0. Reuse it non-commercially and credit the Thai Embedded Systems Association (TESA) every time. · How to cite TESA