BSE_01 Cyberdeck

Ripped straight from the lifted spec sheet found while lurking at the Black Sun.

BSE_01 Features:

  • 1 x 12.3″ Touchscreen – Waveshare
  • 1 x Raspberry Pi 4
  • 1 x 12v Battery – Talentcell 6000mAh
  • 1 x Mechanical Keyboard – Magicforce w/ Monster Keycaps
  • 2 x USB3.0 Ports
  • 1 x 3.5mm Audio Jack
  • 1 x Full Size HDMI Port
  • 2 x Custom Aluminum Case – Sendcut Send
  • 3 x Custom Acrylic Face Plates – Ponoko
  • 2 x 3d Printed Constant Force Hinges – Prusa I3 mk3
  • 12 x 3d Printed Mounts and Corners – “”
  • Latches + Handle for easy on the go hacking

Software:

  • Raspberry Pi OS themed with Arc-Dark
  • Custom Shutdown Button
  • Custom Boot Screen coming soon.

Files:

Updating soon for all parts. – Available WIP on Onshape.

Onshape Macropad code

The code for the macropad is shared in the Onshape_Macropad git repo.

It covers the basic assembly, links to the parts, and the code. The code as of 20211122 is shown below.

# SPDX-FileCopyrightText: 2021 Sandy Macdonald
#
# SPDX-License-Identifier: MIT

# A simple example of how to set up a keymap and HID keyboard on Keybow 2040.

# You'll need to connect Keybow 2040 to a computer, as you would with a regular
# USB keyboard.

# Drop the keybow2040.py file into your `lib` folder on your `CIRCUITPY` drive.

# NOTE! Requires the adafruit_hid CircuitPython library also!

import board
from keybow2040 import Keybow2040

import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
from adafruit_hid.keycode import Keycode

# Set up Keybow
i2c = board.I2C()
keybow = Keybow2040(i2c)
keys = keybow.keys

# Set up the keyboard and layout
keyboard = Keyboard(usb_hid.devices)
layout = KeyboardLayoutUS(keyboard)

# A map of keycodes that will be mapped sequentially to each of the keys, 0-15

keymap = [ #MODIFIER, KEY, COLOR
            [[Keycode.SHIFT, Keycode.FIVE], (0, 0, 255)], #0,0
            [[Keycode.CONTROL, Keycode.C], (255, 255, 0)], #1,0
            [[Keycode.SHIFT  , Keycode.F], (255, 0, 0)], #2,0
            [[Keycode.E], (0, 255, 0)], #3,0
            [[Keycode.SHIFT	, Keycode.ONE], (0, 0, 255)], #0,1
            [[Keycode.CONTROL, Keycode.V], (255, 255, 0)], #1,1
            [[Keycode.C], (255, 0, 0)], #2,1
            [[Keycode.H], (0, 255, 0)], #3,1
            [[Keycode.SPACEBAR], (0, 0, 255)],	#0,2		
            [[Keycode.D], (255, 255, 0)], #1,2
            [[Keycode.G], (255, 0, 0)], #2,2
            [[Keycode.V], (0, 255, 0)], #3,2
            [[Keycode.ESCAPE ],	(0, 0, 255)], #0,3
            [[Keycode.SHIFT, Keycode.E], (255, 255, 0)], #1,3
            [[Keycode.L], (255, 0, 0)], #2,3
            [[Keycode.I], (0, 255, 0)], #3,3]
]
# The colour to set the keys when pressed, yellow.
rgb = (255, 255, 0)

# Attach handler functions to all of the keys
for key in keys:
    # A press handler that sends the keycode and turns on the LED
    @keybow.on_press(key)
    def press_handler(key):
        keycode = keymap[key.number][0]
        print(keycode)
        key.set_led(*keymap[key.number][1])
        if len(keycode) == 2:
            keyboard.send(keycode[0],keycode[1])
        else: keyboard.send(keycode[0])
#keycode = keymap[key.number]
#keyboard.send(keycode)
#key.set_led(*rgb)

    # A release handler that turns off the LED
    @keybow.on_release(key)
    def release_handler(key):
        key.led_off()

while True:
    # Always remember to call keybow.update()!
    keybow.update()

The original layout was

3 7 b f
2 6 a e
1 5 9 d
0 4 8 c

The new layout is:

e h v i
S+F c g l
C+C C+V d s+e
S+5 S+1 SB ESC

Onshape Macropad

So a long time ago, around 2017, at a small business I was working at, I was able to upgrade our cad system from Solidworks to Onshape. I am not going to cover why we switched to Onshape as this would turn into a rant on how amazing it is, basically it’s google docs for cad. Once we switched, I found the lack of customizable keyboard shortcuts severely missing from Onshape. They have some but they are hard-coded, and coming from working in Solidworks for the past four years I got very used to my previous macro set. I decided a quick and dirty macropad was the best way to remedy this.

I designed the whole assembly in Onshape, purchased the key switches, and keycaps, and quickly got too busy to print and assembly it. After using Inventor for the past two and a half years and only using Onshape for small personal projects, I am now using it daily and need the macropad.

I built my initial proof of concept to show that it works physically and electronically close enough. I am now spec’ing out what it would take to build a more polished system that could be sold as a product as an example for the steps a device takes to be brought to market.

I recently saw this beautiful macropad on the Adafruit Blog and thought it was an awesome system. I really liked the enclosure but noticed that the cost of the whole system was going to end up around 75$ plus a lot of soldering. While the price was high, I liked the use of the separate micro controller as I had seen that they made a similar one that used the rp2040 with the same footprint. I researched and found that it supported micropython and HID input so that it shows up as a normal keyboard on all systems. Mircropython allows for the easy reprogramming via a text file with no need for a firmware programmer. The rp2040 was created by the Raspberry Pi foundation recently and supports a great educational company.

After figuring out what I wanted, a sixteen key macropad that had a nice enclosure (metal vs plastic or 3d printed) which runs micropython for easy reprogramming, I started looking for any that were on the market already. I quickly found Adafruit’s version and Pimoroni’s as well.

I then took a look at Tindie for other small run electronics projects. On there, I found the Hub16 that looks like it is no longer built and the Raspberry Pi Pico 4×4. The Hub16 runs an Atmega324 but has usb-c and rgb leds. The Pico 4×4 uses a separate Pi Pico board and requires the components to be soldered by the customer.

I then tracked down the enclosure source to be Kprepublic and saw that it was only $23. I then browsed around and found their customizable macropads. They have two different versions, a usb-C 4×4 and a micro-usb board which uses choc switches. Both of these require a separate firmware uploader. They also end up being around the same cost as the Pimoroni assembly once you add on switches and keycaps.

Once I found and compared all options listed previously, I toyed with designing my own pcb board similar to Adafruits break-apart one but as I have only built electronic prototypes with nothing near production, I scrapped that idea. If I had more experience I would have taken that direction and used either OSHpark or Seeed Fusion to build them.

After looking at all those options, I narrowed it down to the Pimoroni Pibow as it has usb-c, 16 key, rgb leds, and includes switches and keycaps all for a decent price.

One of my earlier asks was for a metal enclosure. I found a few on amazon and tracked one down to its website were it offers online quotes for machining. The box itself is cast aluminum so it will have a satisfying weight to it versus a plastic enclosure. When in production the CNC cost wouldn’t be prohibitive either at roughly 10$. But with a custom enclosure it would then require a way to mount the board internally with some standoffs with adhesive.

With the cost of the original enclosure from the source, it is a better option than to go the custom route. It is much less to keep up with in the long run. They also have the benefit of offering free shipping (which probably means it will take a while to get here from china).

The total cost of the system so far is 23$ for the enclosure and 56$ for the board, keyswitches, and keycaps. Throw in a cardboard box for the product for probably 5$ and it would probably cost around 85$ total. There would be minimal assembly and packaging time so markup could be 20$ to make it roughly $100 pretaxes.

There will be a part two covering the programming of it to get the colors and keyboard shortcuts that I wanted.

SDP-SI Technical Resources – Metric Gear Guide

Stock Drive Products / Sterling Instruments – SDP-SI has a great resources section on their site breaking down a whole slew of different technical articles on power transmission. They cover clutches, bearings, couplings, pulleys, belts, and gears. They are a great resources for smaller gears and pulleys, specifically smaller than 125mm or 5 inches. Below is a screen-cap of their selection of parts.

The image below shows the range of just the gears that they offer.

If a gear is out of stock then it will be queued to manufacture.

https://www.sdp-si.com/resources/elements-of-metric-gear-technology/

Formlabs guide to rapid product development

https://formlabs.com/blog/ultimate-guide-to-rapid-prototyping/

“Prototyping is a crucial part of the product developmentĀ process, but traditionally, it has been a bottleneck.

Product designers and engineers would create makeshift proof-of-concept models with basic tools, but producing functional prototypes and production-quality parts often required the same processes as finished products. Traditional manufacturing processes like injection molding require costly tooling and setup, which makes low-volume, custom prototypes prohibitively expensive.

Rapid prototyping helps companies turn ideas into realistic proofs of concept, advances these concepts to high-fidelity prototypes that look and work like final products, and guides products through a series of validation stages toward mass production.

With rapid prototyping, designers and engineers can create prototypes directly from CAD data faster than ever before, and execute quick and frequent revisions of their designs based on real world testing and feedback.

Formlabs has a great write up of the whole rapid prototyping process. They break it down to what it is (mainly 3d printing in focus), the cycle of design, build, test, repeat (iterate), and covering the differet types of prototypes. These prototypes are the proof-of-concept (early product validation) , the looks-like (where the visuals and user experience UX is refined), the works-like prototypes (refining the internals of how the product works), and the engineering prototypes (as close to the final design without cutting tooling or NRE for production parts). They cover many of the types of tools that are used during rapid product development with some basic descriptions and pros and cons to them.

Formlabs – Guide to Rapid Prototyping for Product Development

The Prepared.org

The prepared is a weekly email subscription about engineering and manufacturing world. They focus on Planning and Strategy, Making and Manufacturing, Maintenance, Repair, & Operations, Distributions, Logistics, Testing, Inspection, and Analysis, along with some weekly tangents.

I’ve been subscribed to it for the past year and find something new or interesting every week. They also have a great tool guide as shown below and a slack channel for paying members.

Send Cut Send

There are many online laser cutting services but Send Cut Send stands out in front. They have automated online quoting that is a great way to get a feel for how much a prototype would be in many different numbers. They have a wide range of available materials including many different steel and aluminium varieties along with some plastics, composites, and plywood. They also offer sheet metal bending and cnc routing.

Send Cut Send Review – The Fabricator

Sendcutsend – Instagram

Machine Shop in a Toolbox

I’m staring this out with a favorite post of mine. This is a great post from Hackaday about the tools you need to start building physical things at home or wherever. They do a great job of breaking down the tools needed to measure, modify by hand, a few basic power tools. They don’t really cover the shop safety stuff that is required though. Adding to this, I have created a quick Kit PPE list so you don’t lose a finger or an eye.

I’m going to try and break this blog into a few different categories. The first is #tools, then #services, how to videos/pages in #knowledgebase, places where you can purchase parts and materials #suppliers, and maybe a few others that I haven’t planned out yet.

hackaday.com/2016/10/21/a-machine-shop-in-a-toolbox-just-add-time/