It’s a macro machine to make your input devices smarter! It can record your input devices while you use them, and play them back in concert. It can also do other tricks such as remapping your keys and running programmable output. You can customize the interface to make it look like and do whatever you want.
I see huge time and effort losses in bad interfaces. At work, I see people doing the same 10 input movements to get to an options screen that could have been simplified to a button or gesture. Paying a programmer to fix the interface would cost thousands of dollars, so the problem just stays, and is absorbed as a productivity loss. At home, I see awesome games that are hindered by horrible interfaces. Wouldn’t you like to have auto-run from your favorite MMO in your favorite FPS too? I see lots of high end keyboards and mice on the market with macro capabilities, but nothing that offers a complete solution directed at PC automation. On top of this, I am seeing lots of new devices directed at vertical market software applications, such as scrubbers for digital audio workstations. Rather than buying a new device for every application, this device can be your multi-tool for new software interfaces.
The Super Macro Bot tackles a few different problems.
1) Make your device smarter. Make your $40 keyboard smarter than a $300 keyboard. Remap keys, disable the windows button, and reconfigure on the fly.
2) Record devices that don’t normally have macro capabilities. Record your Wacom tablet or trackball. Any HID compliant device should work.
3) Save your macros. Keyboard died? No problem, all your macros are safe and sound on the Super Macro Bot. You can save your macros to your computer or even sync them to a website.
4) Create new types of controls with add-in apps. Make new types of midi controls, automation controls, and custom interfaces with the Qt framework.
5) Make context aware parametric macros. Super Macro Bot can be made to have contextual hints and take user input as variables to adjust macro output. For instance, let’s say you just made a mountain in your favorite modeling program and recorded it. You can bring that into the Super Macro Editor and have a gesture to vary the output of the script to scale the mountain size or shape.
The Super Macro Bot is based on the BeagleBone development kit which uses an ARM processor, much like a smartphone, tied to a separate microcontroller for output to a computer. The Super Macro Bot will be entirely open source. The BeagleBone was chosen as my development platform for its open source nature and its processor. The TI processor on the BeagleBone has full support and documentation for Linux, and is inexpensive in volume. Other platforms, such as the Raspberry Pi, are closed source with undocumented features and poor support.
The software platform chosen for the Super Macro Bot is Qt. Qt is open source and has excellent support for embedded environments, including the BeagleBone. Android was not chosen mainly because it has poor support for real-time event based applications. Windows CE was not chosen because of its proprietary nature.
The USB microcontroller is based on the Teensy 2.0. You get an ARM Cortex-A8 CPU coupled with an AVR AT90USB1286 microcontroller. The USB microcontroller code is written in C and C++, but is also capable of running Arduino code.
I can design the software, PCB, and case myself, but I’d like to focus on the end user experience, so I’ll be handing off the PCB design to a third party. If time becomes a problem, I’ll hand off the finalization of the case. I’ll prioritize function over form.
When completed, the device should look similar to a desktop calculator in form factor. I prefer to do my design work with 3D modeling programs as I’m more of a sculptor than a hand drawing artists. Here’s a concept design for the case:
How would I use it?
Disclaimer: this is not the final interface.
The Apps interface lists the add-in applications available to customize the device. A few basic apps will be included with the device including one to create input remapping scripts.
The Triggers interface shows all the input events that trigger output from the device. It’s sort of like a task manager.
The Scripts interface lists all your available and active macro scripts, and allows you to set the options for them.
The Buttons interface allows you to configure the physical buttons on the device.
The Settings interface allows you to configure the basic settings for the device, such as network access.
The right side of the panel is reserved for recent and favorite scripts.
I hope to have the first batch out in under a year. A PCB beta design needs to be made and then finalized; a case alpha design needs to be made and then finalized; and then manufacturers need to be selected. I have a contact for a minimum of 30,000 motherboards, with assembly, should the need arise. Otherwise, I’ll be going with lower volume production. The first software version has to be finalized before the design can go to manufacture. After the parts are manufactured, the devices will go to assembly, and then they’ll go to fulfillment. Each step in the process has its own amount of variation that can change the final release date.
Initial time table:
LCD selected and part requirements established ~ 2 weeks
First case design and PCBs ~ 8 weeks
First beta boards and cases ~ 4 weeks
If there is a serious problem with the beta boards, bug fixing can take a month per iteration. Parts or materials acquisition or shipping can delay the board runs. So we’re looking at 14 weeks if everything goes perfectly, but a more realistic number of 20 weeks. Then there’s another 4 weeks turn around for to send out for betas once the prototype is confirmed working. Then I can mail the beta rewards out.
Production time table:
Tooling, BOM supplies, and Finalizing ~ 8 weeks
Parts Manufacture ~ 1 week per 1000
Parts Shipping ~ up to 6 week lag
Kitting and Assembly ~ 1 week per 1000
Fulfillment ~ 1 week per 1000
The first units could be shipping out at about around 43 weeks. It might be shorter, but if any of the parts have to be made overseas it could take 6 weeks for ocean freight. Add about 1 week per 1000 people that order before you. If more than 10,000 rewards are ordered, I will look into higher volume production.
My name is Joshua Perlow. I’m an autodidact. I’ve been programming professionally on and off for 14 years.
I live in Greensboro, North Carolina.
Q: Why is the Super Macro Bot hardware?
A: The main reason the Super Macro Bot is hardware is so you can change your configuration with ease, since it is a dedicated control system. When you remap *all* of your input with multiple sets of controls, you can lose control of your computer. With the Super Macro Bot, you can always reset your configuration.
The second reason has to do with application vendors. If I were to make a piece of software that interacts with a third party software, many times software vendors will consider that a form of hacking or cheating. Hardware controls, on the other hand, are usually viewed as just another mechanism of operation, rather than interference. Hardware can also be made more difficult to detect and defeat when compared to software.
Third, by making it hardware, it can be used with any operating system or environment that supports USB. No need to wait on driver updates for the Super Macro Bot when a new OS comes out. Lastly, by using a dedicated processor, macro execution doesn’t depend on you computer’s processor and won’t be effected by computer lag, and your sophisticated macros won’t add to the load the on computer. It also makes it easier to make sure that macros are consistent across environments.
Q: Will all of the special features of my devices still be available when I plug them into the Super Macro Bot?
A: Not yet. Currently the Super Macro Bot can only relay your input commands. An emulation mode is in the works, where the Super Macro Bot can relay USB packets. The work around is to attach your device, record your macros, and then detach the device and plug it directly into your computer. The macros you record will still be available with the input devices detached.
Q: What if my device isn’t USB?
A: There are many USB adapters for different connection types, but if that won’t work for you the Super Macro Bot is also hardware extensible via a custom parallel bus. Example firmware will be provided. If the kickstarter is successful, future official add-on modules to talk to different systems will be considered.
Q: Only 1 support incident for $1250?!? You must be crazy!
A: Any warranty related issues or unreported bugs are handled separately, free of charge. The incidents are for you to use for any reason you see fit. Need help configuring your device? Want to know more about how a specific feature works? Want to give more direct feedback on any particular feature? Want to tell me that my device is a piece of crap and I should go die in a fire? This option is for you. You will get to talk to me directly.
Q: Can Super Macro Bot add anti-ghosting to my keyboard?
A: No, ghosting is an internal problem to keyboards.
Q: When are the source files for the Super Macro Bot going to be available?
A: As soon as the first Super Macro Bot ships.
Q: Is your Super Macro Bot related to the Super Mac Robot?
A: No, but a Super Mac Robot would be cool.
Q: What does the Super Cat Bot design look like?
If you would like to order in volume, please contact me through firstname.lastname@example.org, as I am prohibited from offering them through kickstarter.
Risks and challenges
This project is a fairly large undertaking. It has 3 separate software components and 2 distinct hardware environments that are tied together. At the minimum project goal, the device will be most expensive to produce, since I will have to use low volume production. The development and production of this device is fairly standard though, as far as electronics go. Since I already have a working prototype and a high volume manufacturing contact, the main challenge will be to fill in the details in a timely fashion.
The largest risk to you as with just about any hardware project on kickstarter, is for me to be underestimating the cost of production, which would cause me to go into a second round of financing and cause a huge, possibly indefinite delay to the project. I have a cost estimate for each of the components and production steps to minimize the chance of this happening.