{"id":508,"date":"2023-12-19T09:37:50","date_gmt":"2023-12-19T07:37:50","guid":{"rendered":"https:\/\/www.hh3dlab.fi\/blog\/?p=508"},"modified":"2023-12-19T09:38:27","modified_gmt":"2023-12-19T07:38:27","slug":"508","status":"publish","type":"post","link":"https:\/\/www.hh3dlab.fi\/blog\/innovation-course\/508\/","title":{"rendered":"The Data duelist project"},"content":{"rendered":"<h1>Introduction<\/h1>\n<p style=\"margin-top: 0; margin-bottom: 0;\">Our group members are Jonas Lemstr\u00f6m and Aku Liski. Aku has some experience with blender and 3d printing, and both of us like gaming. Jonas has some experience with game development with Unity. Our prototype is auto-battler that uses Esp32 as platform, Waveshare 7.5 inch E-Paper as screen, few leds and a NFC reader. The game\u2019s code includes functionality of the game and visual ques how the game proceeds.<\/p>\n<h1>Ideas<\/h1>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We had couple of ideas but quite quickly we fixed on kind of tabletop game, that would have some electronics and 3d printing, and we could code and get the features we\u2019d want. After handling Arduino and Esp32 during class we brainstormed a bit and thought about how to create a game that would work with Esp32 or Raspberry Pi and decided to go with Esp32. The idea of a game was something that could be easily accessible and could be played with something that anyone has. That\u2019s when we came up with using NFC cards as player toons taking inspiration from things like Nintendo\u2019s Amiibo.<\/p>\n<h1>What did you need to learn<\/h1>\n<p style=\"margin-top: 0; margin-bottom: 0;\">First we learned some innovation methods to flesh out ideas and collect them. From the ideas we landed on the one we liked and continued to develop it.<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We\u2019d need to think first what parts we need and then we could start to learn them. We started going from piece to piece. So first we ended up with ESP32 because it is a little bit simpler than Rasbery pi, and no need to learn a new OS just for this project.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We needed to learn about esp32 and all of its components and their code. One of the biggest things we learned about Esp32 was it\u2019s limitations. Using E-Paper with NFC reader and having game\u2019s code itself in the Esp32 made it run quite slowly. What was surprising was that how slow E-Paper was updating it\u2019s screen with new imported images. When trying E-Paper solely the refresh rate was about 5-6 seconds with simple functions, but when integrating E-Paper\u2019s code into the full code the refresh rate became 15-20 seconds. To make the game more functional we would have to import whole project to Rasberry Pi or make radical changes to our code for esp32 and use more networking.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We also learned a lot about innovating and problem solving like how to make NFC\u2019s nametag work as generated character. First, we had to translate hexadecimal names of the NFCs into numbers and translate them into statistics of a player toon.<\/p>\n<h1>The building phases<\/h1>\n<p style=\"margin-top: 0; margin-bottom: 0;\">First we tried to flesh out our idea. We also identified what components we could need (esp32, rfid reader\/writer, nfc tags, display, leds and buttons).<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">Starting the project, we tried to get every component to work by itself and then starting to link them together. All of the components code we found from the internet. There are good resources for every component, so you need to find them, get them to work, and then modify it to suit your project. First we got the NFC reader to work and after that we moved to the e-display.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"width: 675px; height: 543px;\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/12\/932ebee9f23915f9b43bc3a69fe467ab.png?w=640&#038;ssl=1\" border=\"0\" \/><\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">(First values read with NFC reader)<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">The screen was a little bit difficult to get to work, but eventually we got there. The hurdle was to get the first print to the screen, after that the screen worked as we liked. We even managed to get pictures imported to the machine and printed to the screen, but the upload time to esp32 was ridiculously long and so we put pictures on backlines and focused on the game logic.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"width: 968px; height: 1291px;\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/12\/a76ccef8234afcde32a22045b209e703.jpeg?w=640&#038;ssl=1\" border=\"0\" \/><\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">(First printing to the e-paper)<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We could code even without the hardware from home with website wokwi.com. There you can setup your esp32 platform and try code. It helped a lot on the coding side, as the code uploading was much faster and easier. We highly recommend this to anyone who is coding with esp32. There is even possibility to add sensors and other components but that requires more setup, but it might be worth it.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"width: 2543px; height: 1287px;\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/12\/94c1c9c298527f48188701044025fd95.png?w=640&#038;ssl=1\" border=\"0\" \/><\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">(with Wokwi.com we could try the code even at home without hardware)<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">After wo got the components to work on their own, we started to put them together. The wire mess was stressing, but it go better as we hot glued them to their places so we could move anything without being afraid of wires coming loose.<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"width: 1187px; height: 1583px;\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/12\/4dfeddd330944749bcbc0e726f4fe012.jpeg?w=640&#038;ssl=1\" border=\"0\" \/><\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">(Everything wired and working together)<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"width: 1238px; height: 1651px;\" src=\"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/12\/260554a117fb73736873262a15bc8b78.jpeg?w=640&#038;ssl=1\" border=\"0\" \/><\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">(Final product in a box. NFC scanner is in front of the box and the button is to reset the player tags so you can play again.)<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">Link to video demonstration:<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">\n<div class=\"jetpack-video-wrapper\"><iframe loading=\"lazy\" title=\"Data Duelist prototype demo\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/i6x5shhyuhI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">Link to the source code:<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">https:\/\/github.com\/Akkel-i\/Data_Duelists\/tree\/main\/Data_Duelist_Game<\/p>\n<h1>The outcome<\/h1>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We learned a lot about creating our own prototype from scratch using creative ways to making a working game. The course also thought us about using C and C++ through Arduino IDE and create things that don\u2019t have ready tutorials online.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"margin-top: 0; margin-bottom: 0;\">We still have bunch of ideas how to make Data Duelist even better. Importing the game to Rasberry Pi or using networks to transfer game to internet rather than using E-Paper. If we had unlimited time to work on this project there could be possibilities to even create an app for phone.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Our group members are Jonas Lemstr\u00f6m and Aku Liski. Aku has some experience with blender and 3d printing, and both of us like gaming. Jonas has some experience with game development with Unity. Our prototype is auto-battler that uses Esp32 as platform, Waveshare 7.5 inch E-Paper as screen, few leds and a NFC reader. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[50],"tags":[],"class_list":["post-508","post","type-post","status-publish","format-standard","hentry","category-innovation-course"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":596,"url":"https:\/\/www.hh3dlab.fi\/blog\/iot\/snake-and-pong-games-on-an-esp32\/","url_meta":{"origin":508,"position":0},"title":"Snake and Pong games on an ESP32","author":"Lab Student","date":"28.10.2025","format":false,"excerpt":"Introduction Hi, our team is formed with three members Roope Rajahalme, Rasmus Rautakallio and Phong Phan. Before this course our background in programming and electronics was quite basic. We had some experience with Java programming projects but had never worked with displays or games before. We all had deep love\u2026","rel":"","context":"In &quot;ESP32&quot;","block_context":{"text":"ESP32","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/esp32\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2025\/10\/b7f9bdbb5cfd3042dea94ae15f62ccff-1024x768.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2025\/10\/b7f9bdbb5cfd3042dea94ae15f62ccff-1024x768.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2025\/10\/b7f9bdbb5cfd3042dea94ae15f62ccff-1024x768.jpeg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":491,"url":"https:\/\/www.hh3dlab.fi\/blog\/innovation-course\/medication-dispenser-project\/","url_meta":{"origin":508,"position":1},"title":"Medication dispenser project","author":"Heikki Hietala, lab admin","date":"1.6.2023","format":false,"excerpt":"Introduction\u00a0 I have only taken Introduction of Programming course before and basically have no background of coding, neither in 3D printing. This course is a total new experience for me to combine the 3D printing and programming together and the first time to get to know about ESP32 and Arduino.\u00a0\u2026","rel":"","context":"In &quot;Innovation course&quot;","block_context":{"text":"Innovation course","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/innovation-course\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2023\/06\/image-25.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":295,"url":"https:\/\/www.hh3dlab.fi\/blog\/madrid-2022\/team-5-writing-to-the-web-with-esp32\/","url_meta":{"origin":508,"position":2},"title":"Team 5 &#8211; Writing to the Web With ESP32","author":"Madrid Team 5","date":"12.4.2022","format":false,"excerpt":"In this part, our team is going to guide you how to use the ESP32 to write data to the remote server. This guide assumes that you have a PHP API up and running that at least have a POST route to receive data and a ESP32 with you. Our\u2026","rel":"","context":"In &quot;ESP32&quot;","block_context":{"text":"ESP32","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/esp32\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2022\/04\/IMG_20220328_161500-scaled.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":524,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/524\/","url_meta":{"origin":508,"position":3},"title":"Person counter for the 3D + Robo Lab","author":"Heikki Hietala, lab admin","date":"16.4.2024","format":false,"excerpt":"Introduction Hello! Our team consists of four students who worked together on a project for our 3D and Robotics course at Haaga-Helia. Although the four of us come from different backgrounds, we managed to combine our strengths to work together to get this project done. In our team we have\u2026","rel":"","context":"In &quot;3D&quot;","block_context":{"text":"3D","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d\/"},"img":{"alt_text":"First test device","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2024\/04\/upload1-225x300.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":643,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/643\/","url_meta":{"origin":508,"position":4},"title":"The Smart Gardener \u2013 A Connected Plant Pot","author":"Heikki Hietala, lab admin","date":"20.3.2026","format":false,"excerpt":"By Florent Gilli\u00e9ron, Julien Mignon & L\u00e9on Ehrwein Introduction We are three students taking the IoT Experimental Project - DIG008AS3AE-3004. Our backgrounds are quite different. Florent and Julien had some prior experience with coding and web development and worked with microcontrollers and physical sensors before. L\u00e9on had no experience at\u2026","rel":"","context":"In &quot;3D + Robo Lab&quot;","block_context":{"text":"3D + Robo Lab","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d-robo-lab\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-643-2.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-643-2.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-643-2.jpeg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":658,"url":"https:\/\/www.hh3dlab.fi\/blog\/3d-robo-lab\/the-weatherslayeaer-project\/","url_meta":{"origin":508,"position":5},"title":"The Weatherslayeaer project","author":"Heikki Hietala, lab admin","date":"25.3.2026","format":false,"excerpt":"Introduction We are a team of three second\u2011year students from different areas of digital and technical studies, each bringing our own strengths into this 3D and Robotics course. Hey there! I\u2019m Saana, and I\u2019m currently in my second year of studying digital services. When I started the IoT course, I\u2026","rel":"","context":"In &quot;3D&quot;","block_context":{"text":"3D","link":"https:\/\/www.hh3dlab.fi\/blog\/category\/3d\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.hh3dlab.fi\/blog\/wp-content\/uploads\/2026\/03\/word-image-658-6.jpeg?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/comments?post=508"}],"version-history":[{"count":3,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/508\/revisions"}],"predecessor-version":[{"id":517,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/posts\/508\/revisions\/517"}],"wp:attachment":[{"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/media?parent=508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/categories?post=508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hh3dlab.fi\/blog\/wp-json\/wp\/v2\/tags?post=508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}