Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Product Development: Build Your Own Interactive WijiBoard
Rating: 5.0 out of 5(5 ratings)
39 students

Product Development: Build Your Own Interactive WijiBoard

Master Electronics, Mechanical Design & Coding to Create Your Own Functioning WijiBoard from Scratch
Created byRyan Kelly
Last updated 9/2025
English

What you'll learn

  • Master PCB Design and Electronics Basics: Understand circuits and design custom PCBs, applying electronics skills to interactive, practical projects.
  • Learn Multi-Language Programming for Embedded Systems: Build coding skills in C++, JavaScript, HTML, and CSS for practical, hands-on embedded projects.
  • Design Mechanical Parts in 3D CAD: Gain expertise in 3D modeling and assembling custom mechanical components, integrating them seamlessly into projects.
  • Follow a Complete Product Development Workflow: Learn every stage, from concept to final product, including testing and troubleshooting, to launch projects conf

Course content

4 sections21 lectures3h 8m total length
  • Introduction and a Note on Abstraction1:13

    Hello I’m Ryan!

    On its face, this is a course on how to build this thing — a WijiBoard, made from a small computer, motors, and some 3D prints, that can be controlled via a web browser on your phone.


    First, let’s address the elephant in the room: I know how to spell Ouija, but this is Wiji. It’s a common misspelling (SEO BAYBEEE!). It's how most people would sound out the pronunciation of Ouija, and it’s a play on the acronym "WiFi," which is how it works. Also, Ouija is a protected intellectual property, this is distinctly different. That one "works" with spirits & Ether (and Copyright lawyers). This one works with WiFi (and Internet Memes).


    Throughout this course, we’re going to be talking about how I outlined, designed, prototyped, and built this device. The intention is not just to instruct you on how to build this specific device, but to introduce you to the skills and ways of thinking that I used so you can use them for your own projects as well. The goal is to give insight into the real-world interplay of the design process — the parts that can’t be Googled. This isn’t a tutorial on how to use software like Fusion 360 or KiCad, but a guide on how to leverage those tools to build a product.

    Quick Note on Abstraction

    I didn't know where to put this section, so I'll put it right at the top.

    TL;DR: Abstraction helps us manage complexity by focusing on the most relevant aspects of a system. In this course, we’ll navigate through different levels of abstraction to ensure a comprehensive yet comprehensible understanding of the topics at hand.

    Abstraction allows us to interact with systems without fully understanding how they work. It lets us specialize and focus on relevant tasks without getting bogged down in the details. A classic example is driving a car. To turn a car on, you put the key in the ignition, turn it, operate the pedals and steering wheel, and you end up at your destination. The mechanical functions of the car are abstracted away; they're a black box in the background, functioning as intended. This lets you focus on the higher-level task of driving the car instead of the air-fuel mixture of the engine, the stresses of the metallurgy in the chassis, or the voltage of the electronics charging your phone.


    Abstraction in This Course

    When designing something new, having a less abstract view of how the components function allows you to troubleshoot more effectively. You can work inside the black box instead of just interfacing with the inputs and outputs. Balancing your available focus to avoid getting lost in the weeds is essential.

    All of this is to say, in this course, I’m going to abstract some things and dive deeper into others. This is a subjective call, and I encourage feedback. I’ll lean towards one or two layers down: “When you turn the key, the starter motor engages, which spins the engine and engages the fuel pump and electrical system, kickstarting the internal combustion cycle.” Instead of, “When you turn the key, the key has grooves that interface with pins in the ignition system. Once the correct key is verified mechanically, the key turns, moving past a switch that engages the electrical system. Finally, the key reaches the 'start' position, sending current to the coils of a small DC motor with a spring-loaded clutch. This motor, upon spinning up, pushes a gear forward into a large gear on the crankshaft, which starts the engine…”

    While the detailed explanation is interesting, it’s typically not necessary for understanding the basics or diagnosing most car issues. Everything has infinite complexity if you look hard enough. The more realistic a model of a system, the harder it is to work with. I’ll strive to provide a reasonably deep level of insight without overdoing it. But this is subjective, so please provide feedback if you have thoughts!

  • Project Origin and Course Structure3:16

    Project Origin and Outcome

    This project started as a joke, but it had the perfect combination of whimsy and technical challenge to really hook me. It ended up being a massive learning experience, requiring hours of research through forums and videos. My goal for this course is to distill that learning process into something useful and concise for you.

    My hope with this project, and with future ones, is to provide a full overview of the entire project — warts and all. Instead of focusing on just bits and pieces, I want to show how various disciplines come together to create something complete. I’ll explain not only what I did, but why I did it, so it’s useful for anyone building their own projects.

    I find that I learn best when I have context and something "finished" to work towards, and I hope to provide that same sense of completion in this course.

    This project definitely hit a few dead ends, which made it take longer than expected (as usual), but the final result, in my opinion, is worth it.

    Course Structure and Content

    In the next section, I’ll go into more detail on those dead ends and the lessons learned along the way. After that, I’ll walk you step-by-step through the final design so you can feel comfortable working on or with it.

    To accommodate different learning styles, I’ll present the course material as a mix of text and video. Both formats will cover the same information, but because video takes longer to produce, consider text as the default source of information.

    I’ve broken the text into sections based on the different disciplines involved in the project, mirroring the structure of the main video. I’ve also done my best to provide a top-down overview of all the necessary background information. Often, the small details skipped in other tutorials can become major roadblocks when learning something new, and I want to avoid that here.

    PLEASE(!) if something isn’t clear, or if you need more examples to understand a concept, don’t hesitate to reach out! If you’re struggling with it, there’s a good chance someone else is too.

  • Dead Ends (Ideas that didn't work)2:23

    Dead Ends

    In this section, I’ll discuss the project's dead ends — the parts of the project that, in retrospect, could have been skipped and led to significant amounts of "lost" time. It’s important to remember, however, that this time isn’t truly lost; mistakes are a crucial part of gaining experience. The process of moving past mistakes helps build intuition and instincts about what will and won’t work, contributing to good progress on the project of your development.

    Etch-A-Sketch Idea

    The single largest dead end in this project was my initial idea of trying to make it work like an Etch-a-Sketch. It was one of the first concepts I had, and I ran with it.

    How it works:

    An Etch-A-Sketch works by stringing two independent cables around a tortuous path and back to two knobs that act as a system input. My original intent was to replace these knobs with servos and use that as the method of moving the planchet. I figured, "This system has stood the test of time."

    The fatal flaws in this idea were twofold:

    1. Torque Requirements

    2. The torque required to move the pointer is really high. In the Etch-A-Sketch, the input knobs are geared down, so you have to twist them several full rotations to move the pointer across the screen. I can buy high-torque servos to overcome this, but they have a finite range. If I gear up the output to increase the range, I reduce their precision and torque. It’s a solvable problem, but it’s not a great use of a servo.

    3. Cable Direction Changes (Capstan Equation)

    4. There are about 16 changes in the direction of the cables to make this work. The Capstan Equation says that the more a cable wraps around a post, the harder it is to pull — friction parasitically steals energy. This equation is cumulative (all the changes in direction add up) and exponential. For example, if one wrap around a post provides 1 lb of resistance, two wraps could give 12 lbs of resistance, depending on the coefficient of friction.

    • The solution is to use bearings, which roll and don’t transmit torque, avoiding the Capstan Equation. However, they’re precision parts, and 16 bearings quickly add up in cost.

    Early Design Oversight

    I could have done this initial mental assessment of the limitations of this idea right when I came up with it, but I was too focused on feeling like I was making progress rather than actually making progress.

    While patience and iteration might have made this version work, 16 bearings and multiple days of printing were not feasible for a reproducible design. It would have been prone to mechanical failure, and I probably would have only ever made one.

    Additionally, the issue with gearing up the servos would be present with any design. Most servos (with some exceptions) move up to 270 degrees. Converting that rotating motion into linear motion introduces its own set of challenges.

    Servo Gear Issue

    Imagine attaching a wheel to the front of the servo and wrapping a string around it. Rotating the servo will either take up or pay out some amount of string, and the circumference of the wheel determines this.

    For the WijiBoard, which is 11 x 14 inches with the thinnest part being 0.75 inches, I’d need a wheel of about 4.5 inches to "move" that much (C = 2πD). Since the servos are lying on their side, I’d need to add a 90-degree drive to change the input axis. This is exactly what I attempted: I created a 0.75-inch wheel on the servo, then geared it up to a 4.5-inch wheel in the plane of the Etch-A-Sketch mechanism. This resulted in a 6:1 gear ratio.

    You can see the servos on their sides in the image below, with a small wheel attached and a larger wheel nearby.

    Problems with Gearing and Direction Changes

    The issue with this setup is twofold:

    • A. Direction Changes: Every time the motion changes direction, some of the energy is lost. You can follow the highlighted cable in the image to see how many changes of direction are involved.

    • B. Servo Gearing: Gearing up the servo reduces both torque and accuracy. If I ask the servo to move the small wheel 10 degrees, the larger wheel will move 60 degrees, magnifying any positional error by 6x — which is, simply put, bad.

    Torque and Efficiency Loss

    Together, these factors are problematic from a torque perspective. If I choose a 20 kg/cm servo (considered very strong for its size), the output torque is immediately cut by 6x to 3 kg/cm.

    If we assume one axis is in focus and we’re using 8 of the 16 bearings, each bearing has an efficiency of about 95%. This means the torque is reduced by another 95%^8, bringing our powerful 20 kg/cm servo down to a piddly 2 kg/cm.

    Considering that this is the stall torque, and you generally want to run servos at about one-third of their stall torque to avoid damage, we’re far away from a functional system.

    Key Takeaway

    I knew all of these factors before setting pen to paper, yet I spent time developing something that was doomed from the beginning. The lesson here is to be critical of early design decisions. Optimizing and designing something destined to fail is not fun.

    Now, onto the project...

Requirements

  • Basic Computer Skills: Familiarity with installing software, navigating files, and using a code editor.
  • Beginner Understanding of Electronics: Knowledge of basic electronic components (resistors, capacitors, etc.) is helpful but not essential.
  • Interest in Hands-On Projects: Willingness to learn by doing, experiment, and troubleshoot through practical application.
  • Access to Required Tools and Materials: Access to a soldering kit, simple hand tools, and a compatible computer for programming and design tasks is recommended.

Description

Dive deep into the world of product design and development with Build Your Own Interactive WijiBoard! This course offers a comprehensive, hands-on approach to creating a fully functional WijiBoard from scratch. Throughout the course, you’ll explore all the essential skills that go into interactive product design, covering mechanical design, electronics, software development, and motion control.

Starting with an overview of the product development process, you’ll learn to plan and design custom parts in CAD software, modeling components that bring your project to life. From there, we’ll dive into the electrical side of things, where you’ll gain practical knowledge in circuit theory, PCB design, and soldering techniques. By learning to create custom circuitry, you’ll be able to confidently power and control your WijiBoard’s unique features.

On the software side, you’ll get hands-on experience coding in C++, JavaScript, HTML, and CSS to program the WijiBoard’s embedded system, adding functionality, responsiveness, and interaction. Lastly, we’ll delve into kinematics, covering the basics of motion planning to ensure your WijiBoard moves with precision and smoothness.

Perfect for beginners and intermediate learners, this course provides the foundational skills and creative inspiration needed to tackle future projects. By the end, you’ll have a fully operational WijiBoard and a toolkit of versatile skills to apply to any product development journey. Join us, and let’s bring your ideas to life!

Who this course is for:

  • This course is perfect for DIY enthusiasts, makers, and hobbyists interested in learning electronics, coding, and mechanical design to create interactive projects. It's ideal for beginners wanting a hands-on, guided experience in building a complex product or intermediate learners looking to deepen their understanding of PCB design, programming, and product development. If you’re passionate about learning how to bring creative ideas to life through engineering, this course will give you the skills and confidence to make it happen!