Monthly Archives: February 2019

Enginursday: The Maker Community IRL

via SparkFun: Commerce Blog

Don't get me wrong, the internet community is awesome. Put aside most of the arguing and egos brought on by the feeling of anonymity, and it's still really cool to find and talk with people on the other side of the globe with the same interests as you. There are always the big conferences and events: Maker Faire, Hackaday Superconference, etc. But while it may seem like you live in an area void of other makers, or even those interested in technology, it's probably not the case. If it is, maybe you can be the catalyst to start such a scene.

I hope most of this is nothing new, but it's something I wish I had read years ago and learned about the local resources and community available to me. I'm lucky that Boulder and the surrounding areas have an incredible tech community, but there are plenty of areas where it might not be as apparent (I grew up in Central, PA, and the only tech company/presence I can name from there was MapQuest). If you're in an area not necessarily booming with tech, here are some places to look for like-minded individuals.

Canoe at Makerspace Exhibit Night

The Boulder Public Library recently had a showcase night for some of the projects coming out of their makerspace, BLDG 61

Hacker/Makerspaces

This is hopefully the first thing you search for. These days it's difficult to find an area that doesn't have a makerspace – in fact, more libraries are starting to include them. In addition to being a great resource for tools and space to work, a fair amount of them hold public events such as classes, open-houses, talks or meetups (more on those later). Occasionally, some are not as well-staffed, or are less able to accommodate random public drop-ins, so an email ahead of time is usually good practice if there isn't an explicit invitation.

Meetups

Even if you're not looking to meet other makers in your area (sounds like a dating site tagline), I suggest checking out the site Meetup. Meetup helps people form groups and manage attendance for events. Through Meetup I have attended recurring group discussions, talks and panels with some pretty big names – even just morning coffee sessions where it was 3-4 of us discussing current technology events. For those looking to get into giving talks about their areas of expertise, a lot of the meetup groups start or end their events with a talk, and are frequently looking for new topics.

Startup Week/Events

These days it's difficult to find a town or city not trying their best to attract tech companies - for better or worse, everyone is vying to be the next tech hub. One hallmark of this is frequent events directed at fostering a startup community (mostly catering to tech startups). Some of the next generation of tech startups - IoT especially - will likely be drawn to (more affordable) areas with real-world problems best solved by connected devices: agriculture tools, home automation and manufacturing. It makes sense that a lot of these startup events frequently border on the maker community, a group prized for their ability to create working prototypes or finished products on hobbyist budgets (great job everyone!). These events are also a good place to look for jobs where your maker skills apply, a question I receive very frequently.

Education Institutions

A lot of these events also occur on college campuses or other education institutions. Unfortunately, most are limited to students and faculty, but there are usually some events open to the public as well. If it's not readily apparent, a quick email to one of the STEAM departments might yield results. You'll find mostly talks on technology or project demos, but they can hold a lot of value if the topics pique your interest.

If None of the Above are Happening

There is a chance that none of these events are happening in your area, in which case the internet is still a way to connect with other makers, but it could also be an opportunity for you to start something yourself. Meetups are some of the cheapest and easiest ways to get a regular discussion group going; I've been to events that took place at a table in the back of a restaurant in the beginning, and are now booked to capacity. If you're looking to create a local maker scene, think about these options above as first steps.

comments | comment feed

Having Fun and VR Gaming with the Razor IMU

via SparkFun: Commerce Blog

A few years back, just after I first started at SparkFun, Jim released the SparkFun 9DoF Razor IMU M0. Like most products, this wonderful board had its own little quirks, but it got me digging into the example firmware and datasheet for the IMU. If you have never played around or used an IMU before, you should check out this According to Pete video on IMUs, and some extra research online never hurts. Since the release of the SparkFun 9DoF Razor, I have found some really cool applications for the board. I will go over my recent project and a commonly requested task from when I was in technical support.

Serial Output over TX pin and Bluetooth

These are some of the more commonly requested items for this board from technical support. Since the two can be tied together, I decided to provide an example that applies to both.

Serial Output over TX pin

If you haven't done so already, you should start with the 9DoF Razor IMU M0 Hookup Guide. Specifically, the comment in the hookup guide where my coworker Bobby has already detailed the changes needed to output serial data over the TX pin. Otherwise, you should to look over the example firmware and configuration file, and you will notice the changes that need to be made. I have also provided a modified code below for you to download. The baudrate for the serial output is set to 115200bps; this can be changed, but I am using it for the Bluetooth module in the next section.

Adding Bluetooth

To add Bluetooth capability to the SparkFun 9DoF Razor IMU, I am using the BlueSMiRF Silver, a few jumper cables and the Bluetooth USB Module Mini on my PC. Again, if you haven't done so already, you should start with the Using the BlueSMiRF hookup guide. (*I used the BlueSMiRF because we had one lying around, but all modules listed in the BlueSMiRF hookup guide are essentially the same except for the pin layout and range.)

Troubleshooting Tip: Not all computers will be compatible with the BlueSMiRF modules. Mac computers can have issues with them due to the licensing required by Apple for Bluetooth devices.

With the modified code linked above, this is how I setup the hardware connections. There is no need to modify the code, because the default baudrate of the Bluetooth module is the 115200bps already. Additionally, the default password for paring the Bluetooth module is already known to be 1234.

Hardware pin connections
Hardware pin connections between the BlueSMiRF Silver and the SparkFun 9DoF Razor IMU.

Once you have paired your Bluetooth module to your computer and opened a serial terminal for the COM port of that connection, you should see a green light on the Bluetooth module. Double check that the baudrate is set to 115200bps and you should see the output from the SparkFun 9DoF Razor IMU.

Starting on a VR Headset

If you've been part of the recent first-person shooter gaming craze, then you are already familiar with the titles PUBG or Fortnite. What if I told you there was a program that allowed you to VNC to your desktop with minimal lag... and what if that program also allowed you to connect from a Raspberry Pi?

Well, Parsec, a gaming streaming company that came onto the scene a few years ago, has done just that. How does this all work? Well, the short version is that Parsec takes advantage of UDP to reduce lag or traffic needed to verify each frame in a TCP-based connection. From a gaming perspective, each frame marks only a split second on your screen – who cares if it isn't perfect, you will have a new frame in a few milliseconds anyways.

That's right... I have been playing Fortnite remotely using a Raspberry Pi! Well, at least when I don't want to drag my desktop with me. There are a few caveats to this setup: Parsec does have minimum requirements to run, the graphics settings in the game need to be on low, and the frame rates drop to about 30 fps on the Raspberry Pi. However, the game is still playable and if you are up to tweaking the settings, you can get slightly better graphic renderings and frame counts.

You can also use Parsec for other things like streaming your XBox games to your PC and over to a Raspberry Pi!!!

Mic Drop
Mic Drop!

How does this all tie into a VR headset? Well, if you are familiar with the mouse library in Arduino, then you can start to see the light at the end of the tunnel. If you aren't familiar with this library, you can the find details on the Arduino website. However, the quick and fast detail is that the SAMD21 microcontroller on the SparkFun 9DoF Razor IMU M0 can be used to emulate a mouse. Together with the IMU, this means that you can take rotational movements from your head to look around in the game.

Now this is just part of the interface you need to control your character, but it does demonstrate that it can be done with hobbyist electronics. Again, you will want to start with the example firmware code, the 9DoF Razor IMU M0 Hookup Guide and the mouse library. Unfortunately, this is about as far as I have taken this project but if you have anything you'd like to add, please let me know in the comments below; I have also made my code available below for you to continue without me. It is a modified version of Jim's original example firmware adapted to work with the mouse library.

I do have a few things to add:

  • I have only gotten Parsec to run on larger screens. I have had issues trying to run Parsec on smaller 3.5" or 5" screens with lower resolutions. However, I haven't really dug into the issue or reached out to Parsec for help yet.
  • You do need to manually adjust the mouse sensitivity in the Arduino code. I thought of using a potentiometer to possibly dial that in without constant reprogramming.
  • The code takes movements from the gyroscope to create mouse movements. I envisioned using the Euler angles to get more accurate readings without having to home the mouse position, but I would need to dig into how to define an exact mouse position on the screen and adjust for scaling.
  • Once programmed, the SparkFun 9DoF Razor IMU will move to its secondary COM port and will be unavailable for programming. To reprogram the board, you need to force it into the bootloader mode by holding the SCL pin LOW on start up. Then, you can upload new code to it using the available COM port.

To setup Parsec on your Raspberry Pi head over to their web page, or you can follow their instructional Youtube video:

They also have setup guides online:

Once you have Parsec running on your Raspberry Pi and your SparkFun 9DoF Razor IMU coded, all you need to do is plug your Razor into the Pi with a USB cable. You should start seeing the Razor act as a mouse once it is recognized as a device. I usually turn off the Razor until I am logged on to the host computer and up and running on the game. Have fun and enjoy!

comments | comment feed

Sphero Announces the New RVR KickStarter ( and SparkFun Gets to Hack It)

via SparkFun: Commerce Blog

We have always enjoyed Sphero's technology (who doesn't love BB-8?). With the release of the RVR via Kickstarter, SparkFun and Sphero saw a great opportunity for collaboration.

What is RVR?

The RVR (pronounced /ˈroʊvər/) is a robot that is drivable, programmable and customizable out of the box. Although it is great for coders of all levels, it offers advanced features that, until now, we have not seen from Sphero. The onboard sensors and control system are cool, but the expansion port allows the RVR to connect to third-party hardware like Raspberry Pi, micro:bit or Arduino, which means users can make the RVR into anything they want. Here is a look at the RVR:

Why and how is SparkFun partnering with Sphero?

Sphero and SparkFun are friends and neighbors, and we have been looking for ways to partner for years. The RVR presented the perfect opportunity.

SparkFun has always been involved in the community and has a standing commitment to STEM education. With Sphero's launch of the RVR (check it out and back it!), we were able to sponsor a reward tier where, for every RVR purchased, we would match it by donating one to a school or organization. This sold out on day two! Awesome.

We obviously could not resist playing with RVR and encouraging others to do the same. So, in addition, we are developing kits to support customization with the expansion port, empowering users to take the RVR to the next level. This means anything from adding camera vision and GPS, to building an autonomous vehicle. More to come on this...some engineers are already having fun with the RVR...

What would you do with the RVR?

We're curious about how you would modify the RVR - leave your ideas in the comments below!

comments | comment feed

Friday Product Post: It’s Time to Buzz the Tower!

via SparkFun: Commerce Blog

This week we have four new products, starting with two new Qwiic boards. First is a transparent OLED heads-up display that can be used in drone or automotive scenarios. Then we have a Qwiic Joystick board to control your next robot project, or a character in your favorite video game. We also have two new LiDAR modules.

Blah, blah, danger zone, blah...

SparkFun Transparent OLED HUD Breakout (Qwiic)

SparkFun Transparent OLED HUD Breakout (Qwiic)

LCD-15079
$99.95

Clear screens are no longer a thing of sci-fi! The Qwiic Transparent OLED HUD is SparkFun's answer to all of your futuristic transparent HUD needs. Designed for use in vehicle heads-up displays, this OLED panel is brilliant in the dark but easily visible in daylight. The display is "area colored," meaning that while no one segment can change colors, there are different colored segments on the display. The SparkFun Transparent OLED Breakout allows you to easily control the display using the I2C protocol, and includes a voltage step-up to generate the panel's 12V driving voltage from Qwiic's 3.3V bus.


It's a joy!

SparkFun Qwiic Joystick

SparkFun Qwiic Joystick

COM-15168
$9.95

Now you can easily add an HID/controller to your project! The SparkFun Qwiic Joystick combines the convenience of the Qwiic connection system and an analog joystick reminiscent of the thumbstick from a PlayStation 2 controller. The only thing that could make it better is a "smart" version, so we made one! With the pre-installed firmware, the ATtiny85 is acts as an intermediary (microcontroller) for the analog and digital inputs from the joystick. This allows the Qwiic Joystick to report its position over I2C.


Go Plus Ultra with your LiDAR options!

TFMini Plus - Micro LiDAR Module

TFMini Plus - Micro LiDAR Module

SEN-15179
$44.95

The TFMini Plus is a ToF (Time of Flight) LiDAR sensor capable of measuring the distance to an object as close as 10 centimeters (+/- 5cm up to 6m) and as far away as 12 meters (+/-1% starting at 6m)! As with all LiDAR sensors, your effective detection distance will vary depending on lighting conditions and the reflectivity of your target object, but what makes this sensor special is its size. Measuring only 35x18.5x21mm, the TFMini Plus allows you to integrate LiDAR into applications traditionally reserved for smaller sensors.


T-Minus three until lift-off!!

TF03 Long-Distance LiDAR Module

TF03 Long-Distance LiDAR Module

SEN-15180
$228.95

The TF03 is the third-generation product of the TF series, and is a ToF (Time of Flight) LiDAR sensor capable of measuring the distance to an object as close as 10 centimeters and as far away as 180 meters! As with all LiDAR sensors, your effective detection distance will vary depending on lighting conditions and the reflectivity of your target object. What makes this sensor special is its size & environmental operating range. Measuring only 44x43x32mm, the TF03 allows you to integrate LiDAR into applications traditionally reserved for smaller sensors and in harsh environments.


That's it for this week! As always, we can't wait to see what you make! Shoot us a tweet @sparkfun, or let us know on Instagram or Facebook. We’d love to see what projects you’ve made!

We'll be back next week with even more fantastic new products!

comments | comment feed

Using Eagle Configuration Script Files: How to Make Eagle Yours

via SparkFun: Commerce Blog

Let's talk about Eagle Configuration Scripts: how to use them, and why using your own can make your Eagle experience more enjoyable and efficient.

Let me preface this by saying that there is more I do not know about Autodesk's EAGLE PCB Design Software than there is that I do. That said, this is just a quick explainer, and there will be plenty left unsaid about using Eagle scripts.

If you are new to Eagle or unfamiliar entirely, check out these tutorials to help you get started:

What is a Configuration Script?

Put simply, it's a file used to configure an instance of Eagle with specific settings when opened.

When an instance of an Eagle editor is opened, Eagle accesses a configuration script file (eagle.scr). The configuration script contains a series of commands written in human readable text that change the settings for any instance of an Eagle editor workspace when opened. These include: BOARD Editor, SCHEMATIC Editor, LIBRARY Editor, DEVICE Editor, PACKAGE Editor and SYMBOL Editor. By changing the set of commands within the configuration script, the user can customize the settings of any of the aforementioned Eagle editors without the tedium of having to manually change the settings every time you open up an instance of Eagle.

Perhaps the most valuable feature of a personalized configuration script is the ability to setup a hotkey assignment map and workspace that caters to how you use Eagle. Whether you are designing schematics, designing boards, designing both or just reviewing designs, you can tailor the configuration of Eagle to allow you to work more efficiently.

Eagle is distributed with a default configuration script; it sets some default layers to be used, sets the unit(s) of measure, sets the grid spacing and calls some .ulp files, plus a few more things. Check it out below:

# Configuration Script
#
# This file can be used to configure the editor windows.
#
# Uncomment this if you want a set of useful default shortcuts!
#SCRIPT default-assign.scr;
#

BRD:
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;'\
    '[bin/pcb-service.svg] PCB Service : Run pcb-service.ulp;'\
;
DISPLAY = 'Preset_Top' None 1 17 18 19 20 21 23 25 39 41 51;
DISPLAY = 'Preset_Bottom' None 16 17 18 19 20 22 24 26 40 42 52;
DISPLAY = 'Preset_Standard' None 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25     26 39 40 41 42 51 52;

SCH:
Grid Default;
Change Width 0.006in;
MENU '[bin/designlink.svg] Search and order {\
                                          General : Run designlink-order.ulp -general; |\
                                         Schematic : Run designlink-order.ulp; \
                                         }'\
     '[bin/LTspice.svg] LT Spice simulation {\
                    Export: RUN ltspice.ulp /E; |\
                    Export Setup: RUN ltspice.ulp /E /S; |\
                    Export Group: RUN ltspice.ulp /E /G; |\
                    Import: RUN ltspice.ulp /I; \
     }' \
;

LBR:
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;'\
     '[bin/LTspice.svg] LT Spice simulation {\
                  Export: RUN ltspice.ulp /E; |\
                  Import: RUN ltspice.ulp /I; \
     }'\
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;' \
;

DEV:
Grid Default;
MENU '[bin/designlink.svg] Search and order : Run designlink-order.ulp -general;' \
     '[bin/LTspice.svg] LT Spice simulation {\
                  Export: RUN ltspice.ulp /E; |\
                  SpiceOrder : RUN spiceorder.ulp; |\
                  SpiceModel: ATTRIBUTE SPICEMODEL |\
                  Value2: ATTRIBUTE VALUE2 |\
                  Import: RUN ltspice.ulp /I; \
     }'\
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;'\
;

SYM:
Grid Default On;
Change Width 0.010in;
MENU '[bin/LTspice.svg] LT Spice simulation {\
                  Export: RUN ltspice.ulp /E; |\
                 SpiceOrder : RUN spiceorder.ulp; |\
                 Import: RUN ltspice.ulp /I; \
    }'\
;

PAC:
Grid Default On;
Change Width 0.005in;
Change Size 0.050in;
MENU '[bin/LTspice.svg] LT Spice simulation {\
                  Import: RUN ltspice.ulp /I; \
     }'\
     '[bin/pads-pcb.svg] PADS package import : RUN import-pads-powerpcb-v5;' \
     ;

This default Eagle configuration script by no means makes Eagle unusable, but you are stuck with some pretty basic configuration settings. We have a SparkFun Eagle Settings GitHub repository, which includes an Eagle configuration script that provides a good starting point for understanding how these scripts are used, and for personalizing your own.

If you are new to GitHub, below are a couple tutorials explaining what it is, and how it is used:

Below is a simple demo configuration script to use as an example. Let's quickly break down some of the script so that you can get started making or modifying your own!

# Demo Startup Configuration Script 
# This file is used to configure the editor windows.

##############GLOBAL Instructions##############
#Assign GLOBAL workspace specific hotkeys
Assign F7 'NAME';

##############BOARD EDITOR specific Instructions##############
BRD:
#Assign BRD workspace specific hotkeys
Assign F7 'MOVE';

#Setup Grid
Grid inch 0.05 on;
Grid alt inch 0.005;

#changes background color of board to black
SET PALETTE BLACK;

#add layers
LAYER 227 xtra_ref;

#Layer colors
#Set top layer to dark red
Set color_layer 1 4;   
#Set xtra_ref layer to blue-green
Set color_layer 227 11;  

# When opening, hide all layers, then show layers 1 2 15 16 17 18 19 20 21 22 23 24 45 51 227 228 229 230 231
display none; display 1 2 15 16 17 18 19 20 21 22 23 24 45 51 227 228 229 230 231; 

#Assign BRD workspace specific hotkeys
Assign F8 'move';


##############SCHEMATIC EDITOR specific Instructions##############
SCH:

#Assign SCH workspace specific hotkeys
Assign F9 'Net';

#net definitions
CLASS 1 8_mil 8mil;
CLASS 2 10_mil 10mil;
CLASS 3 12_mil 12mil;
CLASS 4 15_mil 15mil;
CLASS 5 20_mil 20mil;
CLASS 6 25_mil 25mil;
CLASS 7 30_mil 30mil;


##############LIBRARY EDITOR specific Instructions##############
LBR:

#Assign LBR workspace specific hotkeys
Assign F10 'Grid inch 0.05 on; Grid alt inch 0.0001;';

#Set LBR workspace specific grid sizing
Grid mm 1 on;
Grid alt mm 0.1;

##############DEVICE EDITOR specific Instructions##############
DEV:

Grid Default;

##############SYMBOL EDITOR specific Instructions##############
SYM:

Grid Default On;
Change Width 0.010;

##############PACKAGE EDITOR specific Instructions##############
PAC:

Grid Default On;
Change Width 0.005;

Anatomy of a Configuration Script

The configuration script is broken into a section for each variation of an Eagle editor, and each type is denoted by an editor-specific label. These labels instruct Eagle to run only the portion of the script that is between the editor type label being opened and the next editor label. This means the user can customize unique configuration settings for each editor type, most importantly hotkeys.

Eagle Editor Script Labels

Editor Type Editor Label
Schematic SCH:
Board BRD:
Library LBR:
Device DEV:
Symbol SYM:
Package PAC:

The portion of the script that lies above all labels is considered global. These instructions will run for any editor type opened, and will run before the instructions under the editor-specific label are run. Instructions under an editor label will supersede any global instructions that were run prior to the editor label.

To add a comment to your script, insert a pound symbol (#) followed by the text for your comment. Each new line of comments will require a new preceding pound symbol. A comment can live on the same line as a command, assuming it is stated after the command.

Eagle Commands

Eagle utilizes a built-in set of text commands that tell it to do anything from setting a layer's color to setting default wire widths. These commands can be used in place of any of the toolbar buttons, and the command structure and syntax is standardized within Eagle. Conviniently, the commands that can be entered into the command line field of an editor workspace are identical to those that are used to populate an Eagle configuration script.

  • As a side note - To utilize a command in a workspace, simply enter the command into the Eagle command line field with proper syntax and press enter. It should be said that some commands are specific to a certain type of editor, for example, a command specific to the schematic editor may return an error if entered into the command line of a board editor. This is also true of commands in a configuration script.

Lets look at a basic Eagle command used under the BRD: label in the above demo configuration script, and discuss the syntax and function. Checkout the command:

Grid inch 0.05 on;

This command tells Eagle to configure three settings:

  • inch - sets the unit of measure to be used for the grid to inches
  • 0.05 - sets the grid spacing to 0.05 units
  • on - sets the grid to be visible to the user

The command is "Grid," and the parameters are: "inch," "0.05" and "on." The semi-colon ";" tells Eagle that there are no more parameters. Remember, this command lives under the BRD: label, which dictates that this command will only be used when opening an instance of the board editor.

You can easily chain together parameters for one command by listing them separated by a space, and terminating the command by adding the semi-colon at the end. Here's another example:

DISPLAY 1 16 17 18 19;

This tells Eagle to make layers 1, 16, 17, 18 and 19 visible to the user. It's pretty intuitive. Interestingly, one could design an entire schematic with a string of text using Eagle's built-in commands.

Writing and Editing a Configuration Script

Eagle contains a built-in text editor that can be used for writing/editing SCRIPT and ULP files, but you can use any text editor that allows you to choose the file extension when saving your file. Eagle script files have a .scr file extension, which can create an issue when using Windows and an external text editor. Windows views a .scr file as a screensaver file, which means users may have trouble opening this file with a text editor. To fix this, go into the default apps setting menu (WINDOWS 10) or Program settings (WINDOWS 7) and set the default app for .scr files to whichever text editor you prefer.

Another point to take note of is that the configuration script file must be named "eagle.scr", and must live in the directory that is specified in the Directories: Scripts field.

Setting the Directory for your Configuration Script

To change/set any of the directory paths that Eagle uses to look for files, open up an instance of the Eagle Control panel, click on Options in the menu bar and click once more on Directories... in the drop-down. This will open the directories window, which houses the fields to set the file paths to the directories that contain files that you and Eagle want to use together. The Scripts field is where you set your configuration script file path.

alt text

For a detailed list of built-in Eagle commands, command descriptions and command usage examples, check out the Editor Commands section of the Eagle help utility, and for more information about Eagle scripts, check out the SCRIPT sub-section of the the Editor Commands section.

Eagle has a great built in HELP utility; it's an invaluable resource for novice and expert users alike. The HELP utility can be found on the far right of the menu bar on any main Eagle workspace window or the Eagle Control Panel.

Now go create your own Configuration Script!!!

...and be sure to let us know about your experiences using Eagle configuration scripts, plus any of your own tricks and tips, in the comments below.

comments | comment feed

Have You Seen HyperDisplay?

via SparkFun: Commerce Blog

What Is HyperDisplay?

alt text

HyperDisplay is perhaps the greatest graphics library I have ever written! And, erm, yeah I've toootally written like a lot of graphics libraries in my day...

Jokes aside, HyperDisplay is a graphics library that makes it easy to support and use new displays, and offers flexibility to users without unnecessary overhead. There are a lot of good embedded system graphics libraries out there, from the feature packed LittlevGL to the ever-popular Adafruit_GFX, but none of these libraries fit the bill of exactly what we wanted: a capable yet uncomplicated library that could easily be extended by SparkFun employees and customers alike.

Why Is HyperDisplay?

So, with that plug out of the way let's get to the personal side of the story, the part you won't hear about in the official documentation.

This summer I started working at SparkX alongside Nate, Nick, Jim and the amazing Ciara Jekel. Nate had visions of releasing a whole lot of cool new display-related technology, from RGB OLEDs to ePaper displays and touchscreen panels. Ciara and I both got started on our own products in a more or less isolated fashion - since reading datasheets is hardly a social activity. As is SparkFun fashion we also developed Arduino libraries to support our newborn products, and boy was that a process. I looked to past SparkFun products for inspiration, and also had a good time learning about some famous graphics algorithms like Bresenham's Line and the Midpoint Circle.

At some point Ciara and I started talking about our work and we realized that not only had we doubled our efforts, but we had also made it harder for users to learn our software because of the slight differences in naming, parameter arguments and even how various shapes are defined. Ciara observed that her ePaper and my RGB OLED were the same up to the point of deciding a color and passing actual signals to the device. It seemed like a no-brainer to pool our efforts and develop HyperDisplay.

How we designed HyperDisplay just wouldn't fit here -- it is worthy of its own whole discussion -- but I want to say thank you to Ciara for her invaluable input during the process. It was very rewarding to work as a team.

How to Learn HyperDisplay

A good place to start learning HyperDisplay is the tutorial that we've just released:

Everything You Should Know About HyperDisplay

There you can learn about how to use the drawing functions, easily make repeating patterns, draw in windows, and even allocate memory for persistent storage.

P.S. What's Next for HyperDisplay?

Try it out for real! HyperDisplay is for you. Though we will support our new display products, the really exciting prospect is that any person can support a new display and the possibilities are endless! I'd really like to see a display that draws in sand - so I'll leave that as a challenge to the reader. Most importantly, go start something!

comments | comment feed