Customizable Hexadecimal String Encoder

Customizable Hexadecimal String Encoder

thingiverse

Disclaimer: This is my first ever OpenSCAD creation. I may have done mistakes I don't know of just yet. Please excuse the lack of quality, if any. I built this to encode passwords and secret keys in a physical object that would not be too easy to decode and would also stand the test of time. This is an encoder that takes any hexadecimal (small case) representation of data and converts it into a flat rectangle of about 1 cm height. There is a small 10 x 5 x 10 box that indicates the orientation of the bytes. Its height also represents an "unused bit". Each character of the hex string is converted into two "chunks" with 4 levels of depth each. This way, there are 2 ^ 4 = 16 combinations of heights to get all 16 characters of the hex alphabet. For each letter in the string, a number between 0-15 is assigned. It is after that split with the following formula: X = H1*4 + H2, where X is the number, H1 is the "unit" size of the first chunk and H2 of the second. Each unit is (as currently designed) 0.25 mm. This way, number 5 takes two blocks, 1 and 1. The heights are encoded by cutting into a rectangular shaped box from the top, so if the box is 1 cm high, then a column that is shorter by 0.25cm than the total height of the box will represent a "0", 0.5 cm represents "1", 0.75 cm represents "2" and 1 cm represents "3". The base block has a 3 mm thick bottom for added rigidity. Thus 5 will be encoded in two blocks, one of 0.5 cm and the other of 0.5 cm. 4 would be encoded in a 0.5 cm block and a 0.25 cm block (4 = 1*4 + 0). Following the direction indicated by the non-square box that is stuck to a side, you can decode the text encoded in the block.

Download Model from thingiverse

With this file you will be able to print Customizable Hexadecimal String Encoder with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on Customizable Hexadecimal String Encoder.