Edge Step Technology

Bringing Embedded Systems to Jr. High Students, in a Dedicated Platform

The Idea Snapshots Message Us

About Edge Step

It all started while I was tinkering with one of my Arduinos one evening. The project I was working on sent commands from my computer to the board, and these would dim an LED on one of the PWM pins. I soon realized that I wouldn't stop there, for all sorts of other applications that could control an Arduino from the comfort of a GUI were suddenly possible. I immediately went to work on another project involving a broader range of commands and a much more sophisticated application for sending those commands.

I should mention that I not only have an interest and a joy for embedded systems, I also have a passion for programming languages. I was in seventh grade when I tried writing my first programming language and compiler; of course, I had no idea how to begin writing a compiler back in those days (or what it even was), so needless to say, my first language didn't get too far. But, after having taken a CSE340 (Principles of Programming Languages) class at ASU, and then graduating with a B.S. in Software Engineering from there in 2019, I now had the necessary skills to create what I figured would be a great way (and a much desired challenge) to send those commands to the Arduino: my own programming language! I couldn't wait to make it all a reality.

The moment work on my language and compiler commenced, I had an epiphany: What if this project didn't just stay a personal challenge, but actually had an application where others could use it? What if my language could help others learn how to not just code, but code with a focus on embedded development? What if this could teach KIDS how to code for embedded?

And in that moment, Edge Step was born.

Now, you're probably thinking: "Why in the world would you try and create a programming language for kids to learn embedded on an Arduino? You're sort of re-inventing the wheel here! Arduino isn't a difficult language and it's already very novice-friendly; kids can just learn embedded development with Arduino."  Well, my answer to you is: yeah, you're right...except that I'm not really re-inventing the wheel, I'm moreso redesigning it for a particular audience and for a particular goal. Besides, isn't that how advancements in technology happen? Don't get me wrong, Arduino is absolutely AWESOME and very novice-friendly, and in no way am I trying to replace Arduino; in fact, I owe Arduino many thanks for being my classroom, helping me get my hands dirty with practical circuits, and teaching me so much more about digital design and firmware development. However, a novice will quickly realize that some projects in Arduino will require more than just "digitalWrite()" and all the well-written libraries provided in the IDE. For example, to play notes on two buzzers simultaneously requires that two timers be manually programmed and dedicated (in C) to generate those frequencies, and trying to use "tone()" on two different pins will NOT make it happen (ask me how I know). For engineers and developers, this is simply a matter of research and practice, but how is a seventh grade kid gonna know how to do this without already knowing Computer Organization, Assembly, C, and having programmed for a few years (or being a genius)? Let alone, understand what the heck is actually going on with their code?

That's where Edge Step comes in. Edge Step seeks to teach kids the fundamentals of programming using embedded systems as the vehicle, with the focus being on having them understand what their program is doing and why their code is structured the way that it is. The programming language is also simple and straightforward, with as many complexities that one would normally deal with in Arduino removed so that kids can still write good programs easily and feel accomplished.

It is also worthy to note that I chose to move forward with the embedded/firmware development focus because, simply put, I couldn't find anything like it out there. There's tons of courses, camps, academies, and even languages dedicated to planting the seed and guiding kids in becoming developers and software engineers, but these are all geared toward software development, not firmware. When I did a google search for "jr high firmware developement" (because I knew that something had to be out there already), I came up with next to nothing; and the few things I did find were completely NOT Jr. High friendly (build an 8-bit computer and program it, but the instruction booklet was written so that only a college sophomore CS student could understand it? PASS). The closest thing to firmware development that I know of that already exists in schools would be Robotics; but again, the focus isn't really in digital design or firmware developement, or even software design for that matter. For these reasons, I felt (and remain) very motivated to push through with my project and keep it embedded/firmware oriented.

Lastly, good material and resources are hard to come by if you're a technology teacher. I was actually a Jr. High Technology teacher during my last year at ASU, and let me tell you that one of my biggest challenges was finding constructive, challenging, and fun content to give the kids. There were so many times where I spent days and nights creating custom content for my students because the old lesson plans were outdated, and I couldn't find anything online that fit the lesson plan or that wasn't aimed at 2nd-5th graders. My hope is that Edge Step can be an awesome, constructive, and really fun resource that teachers can use to give their students quality STEM content, while simultaneously stepping into a field not normally taught as a part of a Jr. High technology curriculum. A programming lesson in Jr. High is what really solidified my desire to become a software engineer; I have no doubt that Edge Step can do the same.

The Project

The Edge Step Platform is comprised of five parts:

  1. A Board (hardware)
  2. A Program Processor (firmware)
  3. A Command Line (software)
  4. A Programming Language (software)
  5. A Text/Script Editor (software)

The systems starts with the text/script editor, as this is where the programs are written; the program is then saved, compiled, and then converted to bytecode that can read by the program processor. The converted program is then sent via USB to the board with the help of the command line, which brokers the transaction. Finally, once the board receives the bytecode, the program processor on the board executes it upon a button press.

Contact Us

Learn more about this project by giving us a call or sending an email!
(602)-957-9500
edgesteptech@gmail.com







Copyright © 2020 Edge Step Technology. Website Created and Maintained by GeoBlaze Web, LLC.