Making a Better Remote Control Library
August 11, 2023

When we first launched the Skip 1s, we thought it was clear that the state of the universal remote control industry was lacking. We listed many problems, but the most prominent one was that the existing marketplace didn’t understand the power of the community.

If you’ve recently visited the forum, you may have noticed a growing community of people who have found most of their devices showing up and working just fine with the existing Skip App Library. However, there might be a small problem with an existing entry, like a device that’s missing a button.

Before the latest release, the Skip App could only import new devices. This could result in duplicate entries in your local database, which didn’t really address the problem mentioned above. But with the most recent 0.9.93 Beta, we’ve taken steps to address that. Now, you can make changes to your existing devices locally and share them with the community, and it’s really easy.

How to Add and Remove Buttons from a Device

Before proceeding, make sure you’re familiar with our JSON file formats for adding custom devices. When added, these devices seamlessly appear in our software.

Adding, removing, or modifying existing devices is extremely easy. You can do this on two levels: the device level and the button level.

A prerequisite is to first match the Manufacturer and Device fields exactly for this feature to work.

“collision”: “DELETE” || “REPLACE” || “MERGE”, // Default is “MERGE”

Device Level

  • Delete – will remove the entry from the database entirely. If you have buttons defined below this field, they wont matter. They are removed.
  • Replace – This essentially removes the entry in our software and replaces it with yours. Any buttons defined in our original entry, will no longer show up. Only yours shows up.
  • Merge – This puts all the buttons it finds in both entries into one list. Any buttons in the imported file that are identically named will get the entry from the imported file, essentially overwriting our entry.

Below is an example of a Device Level JSON file that would remove the Apple TV Gen 4 from the library.

A Skip JSON file that removes a device

Button Level

  • Delete – will remove the button entry from the database entirely. If the button is not found in our entry, nothing happens.
  • Replace – This essentially removes the button entry in our software and replaces it with yours.

Below is an example of a Button Level JSON file that would replace the POWER button on a Topping PRE90 device.

A Skip JSON file that replaces a button

Don’t worry. Even without this field at either the device level or button level, imports will still work. We will apply the specified defaults, which is the least destructive approach.

Smarter Updates

Prior to v0.9.93, adding and updating existing devices was extremely cumbersome. The process involved importing a JSON file and then walking through the wizard to update codes on your remote, even if these codes were already assigned to buttons.

However, this is no longer the case. Now, if the existing manufacturer/device is currently assigned to any remote in your ‘cubby’, you will be prompted to update these codes directly.

Next Steps

We plan to provide better and easier tools within the Skip app for recording new devices, modifying existing devices, creating your own devices, and directly sharing and receiving feedback from the community. However, the next major update in development aims to unlock learning without the need to create and import files. Like everything else, we are working hard to simplify what has always been a challenge. As always, thank you for the support, feedback, and stay tuned.

When we first launched the Skip 1s, we thought it was clear that the state of the universal remote control industry was lacking. We listed many problems, but the most prominent one was that the existing marketplace didn’t understand the power of the community. If you’ve recently visited the forum, you may have noticed a […]

Flirc Just Got a Shit Load Cooler

Long Presses and Macros Released

By far the coolest update for flirc, was today. Everyone’s flircs just got a lot cooler. Today, I’m happy to announce the addition of long presses and macros. Two features that I’ve been planning on for quite some time, and they are definitely worth the wait.

Macros

Macros allow you to assign more than one function to a single remote control button. Basically, I can have a string of text or a bunch of commands, etc, all execute when I press a single button on my remote. That’s now possible with todays firmware. There is currently no limit on the amount of buttons, but you might see some issues with anything more than 16. We can always change that, the limit is artificial right now.

Long Presses

Some of my favorite remotes don’t have a lot of buttons. Specifically, the apple remote. This update will allow you to assign a second function on any remote control button if you hold it down for more than half a second. Tapping on the button as normal will do the first function, holding it for half a second will not send out the first function, but send out the second.

Long Presses + Macros

You can also combine the two features. Press a button and have a single action, press and hold that same button, and do a macro. Check out the short demo video

 

Worthy Notes

  1. There is currently no GUI support for these two features. This is going to be quite tricky to do, so although the software and API’s are all well thought out, I’ll need a bit of time before these can be standard in the GUI. For now, you’ll need the command line utility, and documentation on how to do these features can be found in the current manual.
  2. To do a long press, you have to hold down the button for half a second, this is currently hard coded, might change this in the future
  3. Macros keys are all sent out as soon as possible, may update this so users can change these timings
  4. Deleting a key that has macros or long press functionality will delete every single key associated with that remote control button.

 

Other Updates

Plugin Support

One of the coolest silently released features was plugin support. All thanks to Yawor who did all the work. He did a fantastic job, and has posted a few items on the forums. This will be formalized into the release soon, and more documentation will be created. Basically, this allows you to create an SVG and XML file, and the graphics and functionality will be dynamically loaded into the GUI. Users will be able to share theirs to help other setup unique setups.

General GUI Improvements

Also thanks to Yawor, a lot of the important GUI items have been re-written to be a bit more dynamic and cleaned up a lot of issues. I’m in debt for his help, he’s a fantastic engineer.

Hosting Updates

I’m giving up on hosting packages. It’s a pain in the ass and took a lot of time and work. I found packagecloud and they take a lot of the work out all the security related issues. If you have the old repo in your distro, make sure you remove that and install the new ones. You can find instructions on the downloads page.

Build Updates

I’ve migrated all the build and release to travis, which although a bumpy start, was absolutely the right thing to do. It’s not a great idea to do build releases on a development machine for many reasons, but I held all the tools on my laptop. No other employee or partner could do a release without me, that’s no longer the case.

SDK Fallen Behind

Because we have everything built on Travis now, the SDK library build and release tools have fallen behind. I should have these built into travis by next week or shortly after.

Raspberry Pi Version Behind

Not quite sure how to do pi release yet on travis, so those have fallen behind. I’ll manually update these versions soon.

Happy Holidays

A very happy holidays and a happy and healthy new years to everyone. Feel free to leave comments, shoot me emails, or start forum discussions.

 

Long Presses and Macros Released By far the coolest update for flirc, was today. Everyone’s flircs just got a lot cooler. Today, I’m happy to announce the addition of long presses and macros. Two features that I’ve been planning on for quite some time, and they are definitely worth the wait. Macros Macros allow you […]

Behind The Scenes

It’s probably easy to assume that there isn’t much going on with Flirc. The website doesn’t get updated much, I’ve fallen silent on the blogs, etc. Usually when this happens, I’m hard at work and don’t have a second for an update. Things are finally settling down. I mentioned I had a bug in my latest bootloader, I will publish the blog post detailing this. I’ve fixed that, and was hard at work for over two months re-writing a lot of code. Check out the git activity. Nearly every day I was pushing a substantially large amount of code to the main repo.

Github TrafficPlease remember, I’m nearly doing everything alone. I have a couple friends that help but their support is minimal. I work full time, and am also a new father. Every second of free time I have goes to this company. I know all my work has been mostly behind the scenes, but things will start to be a bit more obvious soon.

Two new products coming out that are variants of flirc will make a splash in the markets they were created for.

I’ve certainly learned a lot since Flirc has been created. I couldn’t have dreamed of the scaling problems that I’ve had. It hasn’t all been on manufacturing and the physical product aspect. I’ve had that under control for quite a while now. It’s been on the software side. I didn’t imagine how the firmware and code base would grow. It started out as some firmware with a sister application. It’s grown to a massive amount of code with shared libraries between products, abstraction to take care of different versions, and a build system that would make any huge company jealous. Deploying packages is easy now that I’ve integrated a tool called bart.

It’s been fun, and I can’t wait to show off what I’m working on.

 

It’s probably easy to assume that there isn’t much going on with Flirc. The website doesn’t get updated much, I’ve fallen silent on the blogs, etc. Usually when this happens, I’m hard at work and don’t have a second for an update. Things are finally settling down. I mentioned I had a bug in my […]

555 Timer Guts and Kit

The 555 timer is a staple in electronics. From hobbyists to evil mad scientists, it’s simplicity of internal components allows for a wide array of complex use cases that has all of us engineers using the device over and over again. Universities design courses around it because it demonstrates the amazing things you can do with the simple fundamentals of electronics.

Eric, my good friend, partner, and founder, teamed up with some folks at Evil Mad Scientists to design a board made of discrete components. Since the 555 timer is made of a simple logical blocks, it’s still hard for a student or hobbyist to figure out what’s going on inside those blocks. Here is a block diagram:

F12QE7IH6MF005C.LARGE

Their idea is wonderful. Expose the guts of the device, give the engineer access to the good stuff so they can probe every point in the circuit.

1

They had the clever idea of making the device look like a blown up version of the chip. Absolutely brilliant, and for those wanting to get into electronics, this would fit beautifully into any educational building block.

 

The 555 timer is a staple in electronics. From hobbyists to evil mad scientists, it’s simplicity of internal components allows for a wide array of complex use cases that has all of us engineers using the device over and over again. Universities design courses around it because it demonstrates the amazing things you can do with […]

Customers, Need Your Help with Sleep Issue

I’m calling out for your help regarding an issue effecting a small amount of users. I have been unable to make any progress on some of the other firmware features because there is one major bug that I can not re-produce, and can not solve. I’m spending all my time on this one, so I’m asking for your help.

When you wake your computer up from sleep, and your flirc no longer works and requires you to unplug/plug, then please leave in the comments section the following:

1. Operating System [Linux/Windows/Mac]

2. Operating System Version [Lion/Snow Leopard/Hardy Heron/Vista/etc] (32/64 bit as well)

3. Your Motherboard Manufacturer (If you don’t know, leave your PC Model)

Even if I have talked to you previously, please post a note in the comments section. I need help narrowing this down and will most likely purchase an identical unit.

I’m calling out for your help regarding an issue effecting a small amount of users. I have been unable to make any progress on some of the other firmware features because there is one major bug that I can not re-produce, and can not solve. I’m spending all my time on this one, so I’m […]

Great Find to help with development

As well as things are going development wise and as much as I want to share what I’m doing, I can’t until the release.

But that’s not to say that I can’t  share the great finds I’m coming across.  

Here are two great sites that explain non verbosely how to quickly make a debian package from source and host in on your own website for people to get with apt-get install.

Building the source into a .deb package

Hosting your own repository

Enjoy, post questions.

As well as things are going development wise and as much as I want to share what I’m doing, I can’t until the release. But that’s not to say that I can’t  share the great finds I’m coming across.   Here are two great sites that explain non verbosely how to quickly make a debian […]

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Copyright @ 2022 Flirc.tv, Inc. All rights reserved. All your base are belong to us.