www.tindie.com Open in urlscan Pro
54.149.246.94  Public Scan

Submitted URL: http://bit.ly/3yfnPdS
Effective URL: https://www.tindie.com/products/arturo182/bb-q20-keyboard-with-trackpad-usbi2cpmod/
Submission: On February 05 via manual from US — Scanned from DE

Form analysis 10 forms found in the DOM

https://www.tindie.com/search/

<form action="https://www.tindie.com/search/">
  <div class="input-group">
    <div class="input-group-addon">
      <svg class="icon icon-search-white">
        <use xlink:href="https://www.tindie.com/icons.svg#icon-search-white"></use>
      </svg>
    </div>
    <input autocomplete="off" class="form-control" spellcheck="false" type="text" name="q" aria-label="Search products" id="search-tindie-mobile" placeholder="Search products">
    <div class="input-group-btn">
      <button class="btn btn-primary btn-sm" type="submit">Go</button>
    </div>
  </div>
</form>

https://www.tindie.com/search/

<form action="https://www.tindie.com/search/">
  <span class="algolia-autocomplete" style="position: relative; display: inline-block; direction: ltr;"><input class="search-tindie aa-input" autocomplete="off" spellcheck="false" type="text" aria-label="Search products" name="q" id="search-tindie"
      placeholder="Search products" role="combobox" aria-autocomplete="both" aria-expanded="false" aria-owns="algolia-autocomplete-listbox-0" dir="auto" style="position: relative; vertical-align: top;">
    <pre aria-hidden="true"
      style="position: absolute; visibility: hidden; white-space: pre; font-family: effra, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: 400; word-spacing: 0px; letter-spacing: 0px; text-indent: 0px; text-rendering: auto; text-transform: none;"></pre>
    <span class="aa-dropdown-menu" role="listbox" id="algolia-autocomplete-listbox-0" style="position: absolute; top: 100%; left: 0px; z-index: 100; display: none; right: auto;">
      <div class="aa-dataset-1"></div>
      <div class="aa-dataset-2"></div>
      <div class="aa-dataset-3"></div>
    </span>
  </span>
  <button type="submit">Search</button>
</form>

https://www.tindie.com/search/

<form action="https://www.tindie.com/search/">
  <input class="search-tindie" autocomplete="off" spellcheck="false" type="text" name="q" aria-label="Search products" id="tablet-search-tindie" placeholder="Search products">
  <button type="submit">Search</button>
</form>

POST /notifyme/create/

<form action="/notifyme/create/" method="post"> <input type="hidden" name="csrfmiddlewaretoken" value="9EodB7hi3jC8KBGVNPoPrtFFIkOMON2dRoJLpD7g9jFIVlV1wjXi9PoTgwOVUTBN">
  <div id="div_desired_quantity" class="form-group"> <label for="desired_quantity" class="control-label  requiredField"> Desired Quantity<span class="asteriskField">*</span> </label>
    <div class="controls "> <input type="number" name="desired_quantity" value="1" required="" min="1" max="25" class="numberinput form-control" id="desired_quantity">
      <div id="hint_desired_quantity" class="help-block">Please message the seller directly if your desired quantity is very large.</div>
    </div>
  </div>
  <div id="div_email" class="form-group"> <label for="email" class="control-label  requiredField"> Email<span class="asteriskField">*</span> </label>
    <div class="controls "> <input type="text" name="email" required="" class="textinput textInput form-control" id="email"> </div>
  </div>
  <div class="hide" aria-hidden="true">
    <div id="div_extra_info" class="form-group"> <label for="extra_info" class="control-label "> More Info </label>
      <div class="controls "> <input type="text" name="extra_info" class="hide textinput textInput form-control" maxlength="10" id="extra_info"> </div>
    </div>
  </div>
  <input type="submit" name="save" value="Join Waitlist" class="btn btn-primary" id="submit-id-save"> <input type="hidden" name="product" value="26774" required="" id="product">
</form>

<form id="create-shipping-request" data-create-request-url="/products/arturo182/bb-q20-keyboard-with-trackpad-usbi2cpmod/shipping-requests/" data-bind="hidden: hasRequested">
  <input type="hidden" id="id_shipping_request_country" name="shipping_request_country" data-bind="value: country" value="">
  <input type="text" id="id_shipping_request_other" name="shipping_request_other" placeholder="Other Info" value="" class="hide">
  <div class="row">
    <div class="col-md-6">
      <div class="form-group mb0">
        <div class="input-group">
          <input class="form-control input-sm" type="email" data-bind="value: notifyEmail, bootstrapErrors: notifyEmail" name="requester_email" aria-label="Your Email" placeholder="Your Email" id="id_requester_email"
            title="Please enter your email address." data-orig-title="">
          <div class="input-group-btn">
            <button class="btn btn-info btn-sm" data-bind="click: submitNotifyEmail">Submit</button>
          </div>
        </div><span class="help-block" style="font-weight: bold; display: none;"></span>
        <span class="help-block"></span>
      </div>
    </div>
  </div>
  <div class="hide" aria-hidden="true">
    <div id="div_id_extra_info" class="form-group">
      <label for="id_extra_info" class="control-label ">More Info</label>
      <div class="controls ">
        <input type="text" name="extra_info" id="id_extra_info" class="hide textinput textInput form-control" maxlength="10">
      </div>
    </div>
  </div>
</form>

<form class="set-country" data-bind="hidden: selectedCountry">
  <input type="hidden" name="csrfmiddlewaretoken" value="9EodB7hi3jC8KBGVNPoPrtFFIkOMON2dRoJLpD7g9jFIVlV1wjXi9PoTgwOVUTBN">
  <div class="row">
    <div class="col-sm-6">
      <label for="id_set_country">Change Destination Country:</label>
      <div class="select-container select-container-small">
        <select id="id_set_country" name="country" class="form-control input-sm country-select" data-bind="value: country">
          <option value="">Select Your Country...</option>
          <option value="AF">Afghanistan</option>
          <option value="AL">Albania</option>
          <option value="DZ">Algeria</option>
          <option value="AS">American Samoa</option>
          <option value="AD">Andorra</option>
          <option value="AO">Angola</option>
          <option value="AI">Anguilla</option>
          <option value="AQ">Antarctica</option>
          <option value="AG">Antigua and Barbuda</option>
          <option value="AR">Argentina</option>
          <option value="AM">Armenia</option>
          <option value="AW">Aruba</option>
          <option value="AU">Australia</option>
          <option value="AT">Austria</option>
          <option value="AZ">Azerbaijan</option>
          <option value="BS">Bahamas</option>
          <option value="BH">Bahrain</option>
          <option value="BD">Bangladesh</option>
          <option value="BB">Barbados</option>
          <option value="BE">Belgium</option>
          <option value="BZ">Belize</option>
          <option value="BJ">Benin</option>
          <option value="BM">Bermuda</option>
          <option value="BT">Bhutan</option>
          <option value="BO">Bolivia</option>
          <option value="BQ">Bonaire, Sint Eustatius and Saba</option>
          <option value="BA">Bosnia and Herzegovina</option>
          <option value="BW">Botswana</option>
          <option value="BV">Bouvet Island</option>
          <option value="BR">Brazil</option>
          <option value="IO">British Indian Ocean Territory</option>
          <option value="BN">Brunei</option>
          <option value="BG">Bulgaria</option>
          <option value="BF">Burkina Faso</option>
          <option value="BI">Burundi</option>
          <option value="CV">Cabo Verde</option>
          <option value="KH">Cambodia</option>
          <option value="CM">Cameroon</option>
          <option value="CA">Canada</option>
          <option value="KY">Cayman Islands</option>
          <option value="CF">Central African Republic</option>
          <option value="TD">Chad</option>
          <option value="CL">Chile</option>
          <option value="CN">China</option>
          <option value="CX">Christmas Island</option>
          <option value="CC">Cocos (Keeling) Islands</option>
          <option value="CO">Colombia</option>
          <option value="KM">Comoros</option>
          <option value="CG">Congo</option>
          <option value="CD">Congo (the Democratic Republic of the)</option>
          <option value="CK">Cook Islands</option>
          <option value="CR">Costa Rica</option>
          <option value="HR">Croatia</option>
          <option value="CW">Curaçao</option>
          <option value="CY">Cyprus</option>
          <option value="CZ">Czechia</option>
          <option value="CI">Côte d'Ivoire</option>
          <option value="DK">Denmark</option>
          <option value="DJ">Djibouti</option>
          <option value="DM">Dominica</option>
          <option value="DO">Dominican Republic</option>
          <option value="EC">Ecuador</option>
          <option value="EG">Egypt</option>
          <option value="SV">El Salvador</option>
          <option value="GQ">Equatorial Guinea</option>
          <option value="ER">Eritrea</option>
          <option value="EE">Estonia</option>
          <option value="SZ">Eswatini</option>
          <option value="ET">Ethiopia</option>
          <option value="FK">Falkland Islands (Malvinas)</option>
          <option value="FO">Faroe Islands</option>
          <option value="FJ">Fiji</option>
          <option value="FI">Finland</option>
          <option value="FR">France</option>
          <option value="GF">French Guiana</option>
          <option value="PF">French Polynesia</option>
          <option value="TF">French Southern Territories</option>
          <option value="GA">Gabon</option>
          <option value="GM">Gambia</option>
          <option value="GE">Georgia</option>
          <option value="DE">Germany</option>
          <option value="GH">Ghana</option>
          <option value="GI">Gibraltar</option>
          <option value="GR">Greece</option>
          <option value="GL">Greenland</option>
          <option value="GD">Grenada</option>
          <option value="GP">Guadeloupe</option>
          <option value="GU">Guam</option>
          <option value="GT">Guatemala</option>
          <option value="GG">Guernsey</option>
          <option value="GN">Guinea</option>
          <option value="GW">Guinea-Bissau</option>
          <option value="GY">Guyana</option>
          <option value="HT">Haiti</option>
          <option value="HM">Heard Island and McDonald Islands</option>
          <option value="VA">Holy See</option>
          <option value="HN">Honduras</option>
          <option value="HK">Hong Kong</option>
          <option value="HU">Hungary</option>
          <option value="IS">Iceland</option>
          <option value="IN">India</option>
          <option value="ID">Indonesia</option>
          <option value="IQ">Iraq</option>
          <option value="IE">Ireland</option>
          <option value="IM">Isle of Man</option>
          <option value="IL">Israel</option>
          <option value="IT">Italy</option>
          <option value="JM">Jamaica</option>
          <option value="JP">Japan</option>
          <option value="JE">Jersey</option>
          <option value="JO">Jordan</option>
          <option value="KZ">Kazakhstan</option>
          <option value="KE">Kenya</option>
          <option value="KI">Kiribati</option>
          <option value="KW">Kuwait</option>
          <option value="KG">Kyrgyzstan</option>
          <option value="LA">Laos</option>
          <option value="LV">Latvia</option>
          <option value="LB">Lebanon</option>
          <option value="LS">Lesotho</option>
          <option value="LR">Liberia</option>
          <option value="LY">Libya</option>
          <option value="LI">Liechtenstein</option>
          <option value="LT">Lithuania</option>
          <option value="LU">Luxembourg</option>
          <option value="MO">Macao</option>
          <option value="MG">Madagascar</option>
          <option value="MW">Malawi</option>
          <option value="MY">Malaysia</option>
          <option value="MV">Maldives</option>
          <option value="ML">Mali</option>
          <option value="MT">Malta</option>
          <option value="MH">Marshall Islands</option>
          <option value="MQ">Martinique</option>
          <option value="MR">Mauritania</option>
          <option value="MU">Mauritius</option>
          <option value="YT">Mayotte</option>
          <option value="MX">Mexico</option>
          <option value="FM">Micronesia (Federated States of)</option>
          <option value="MD">Moldova</option>
          <option value="MC">Monaco</option>
          <option value="MN">Mongolia</option>
          <option value="ME">Montenegro</option>
          <option value="MS">Montserrat</option>
          <option value="MA">Morocco</option>
          <option value="MZ">Mozambique</option>
          <option value="MM">Myanmar</option>
          <option value="NA">Namibia</option>
          <option value="NR">Nauru</option>
          <option value="NP">Nepal</option>
          <option value="NL">Netherlands</option>
          <option value="NC">New Caledonia</option>
          <option value="NZ">New Zealand</option>
          <option value="NI">Nicaragua</option>
          <option value="NE">Niger</option>
          <option value="NG">Nigeria</option>
          <option value="NU">Niue</option>
          <option value="NF">Norfolk Island</option>
          <option value="MK">North Macedonia</option>
          <option value="MP">Northern Mariana Islands</option>
          <option value="NO">Norway</option>
          <option value="OM">Oman</option>
          <option value="PK">Pakistan</option>
          <option value="PW">Palau</option>
          <option value="PS">Palestine, State of</option>
          <option value="PA">Panama</option>
          <option value="PG">Papua New Guinea</option>
          <option value="PY">Paraguay</option>
          <option value="PE">Peru</option>
          <option value="PH">Philippines</option>
          <option value="PN">Pitcairn</option>
          <option value="PL">Poland</option>
          <option value="PT">Portugal</option>
          <option value="PR">Puerto Rico</option>
          <option value="QA">Qatar</option>
          <option value="RO">Romania</option>
          <option value="RW">Rwanda</option>
          <option value="RE">Réunion</option>
          <option value="BL">Saint Barthélemy</option>
          <option value="SH">Saint Helena, Ascension and Tristan da Cunha</option>
          <option value="KN">Saint Kitts and Nevis</option>
          <option value="LC">Saint Lucia</option>
          <option value="MF">Saint Martin (French part)</option>
          <option value="PM">Saint Pierre and Miquelon</option>
          <option value="VC">Saint Vincent and the Grenadines</option>
          <option value="WS">Samoa</option>
          <option value="SM">San Marino</option>
          <option value="ST">Sao Tome and Principe</option>
          <option value="SA">Saudi Arabia</option>
          <option value="SN">Senegal</option>
          <option value="RS">Serbia</option>
          <option value="SC">Seychelles</option>
          <option value="SL">Sierra Leone</option>
          <option value="SG">Singapore</option>
          <option value="SX">Sint Maarten (Dutch part)</option>
          <option value="SK">Slovakia</option>
          <option value="SI">Slovenia</option>
          <option value="SB">Solomon Islands</option>
          <option value="SO">Somalia</option>
          <option value="ZA">South Africa</option>
          <option value="GS">South Georgia and the South Sandwich Islands</option>
          <option value="KR">South Korea</option>
          <option value="SS">South Sudan</option>
          <option value="ES">Spain</option>
          <option value="LK">Sri Lanka</option>
          <option value="SD">Sudan</option>
          <option value="SR">Suriname</option>
          <option value="SJ">Svalbard and Jan Mayen</option>
          <option value="SE">Sweden</option>
          <option value="CH">Switzerland</option>
          <option value="TW">Taiwan</option>
          <option value="TJ">Tajikistan</option>
          <option value="TZ">Tanzania</option>
          <option value="TH">Thailand</option>
          <option value="TL">Timor-Leste</option>
          <option value="TG">Togo</option>
          <option value="TK">Tokelau</option>
          <option value="TO">Tonga</option>
          <option value="TT">Trinidad and Tobago</option>
          <option value="TN">Tunisia</option>
          <option value="TR">Turkey</option>
          <option value="TM">Turkmenistan</option>
          <option value="TC">Turks and Caicos Islands</option>
          <option value="TV">Tuvalu</option>
          <option value="UG">Uganda</option>
          <option value="AE">United Arab Emirates</option>
          <option value="GB">United Kingdom</option>
          <option value="UM">United States Minor Outlying Islands</option>
          <option value="US">United States of America</option>
          <option value="UY">Uruguay</option>
          <option value="UZ">Uzbekistan</option>
          <option value="VU">Vanuatu</option>
          <option value="VE">Venezuela</option>
          <option value="VN">Vietnam</option>
          <option value="VG">Virgin Islands (British)</option>
          <option value="VI">Virgin Islands (U.S.)</option>
          <option value="WF">Wallis and Futuna</option>
          <option value="EH">Western Sahara</option>
          <option value="YE">Yemen</option>
          <option value="ZM">Zambia</option>
          <option value="ZW">Zimbabwe</option>
          <option value="AX">Åland Islands</option>
        </select>
        <i class="icon-select-arrows"></i>
      </div>
    </div>
  </div>
</form>

POST /notifyme/create/

<form action="/notifyme/create/" method="post"> <input type="hidden" name="csrfmiddlewaretoken" value="9EodB7hi3jC8KBGVNPoPrtFFIkOMON2dRoJLpD7g9jFIVlV1wjXi9PoTgwOVUTBN">
  <div id="div_desired_quantity" class="form-group"> <label for="desired_quantity" class="control-label  requiredField"> Desired Quantity<span class="asteriskField">*</span> </label>
    <div class="controls "> <input type="number" name="desired_quantity" value="1" required="" min="1" max="25" class="numberinput form-control" id="desired_quantity">
      <div id="hint_desired_quantity" class="help-block">Please message the seller directly if your desired quantity is very large.</div>
    </div>
  </div>
  <div id="div_email" class="form-group"> <label for="email" class="control-label  requiredField"> Email<span class="asteriskField">*</span> </label>
    <div class="controls "> <input type="text" name="email" required="" class="textinput textInput form-control" id="email"> </div>
  </div>
  <div class="hide" aria-hidden="true">
    <div id="div_extra_info" class="form-group"> <label for="extra_info" class="control-label "> More Info </label>
      <div class="controls "> <input type="text" name="extra_info" class="hide textinput textInput form-control" maxlength="10" id="extra_info"> </div>
    </div>
  </div>
  <input type="submit" name="save" value="Join Waitlist" class="btn btn-primary" id="submit-id-save"> <input type="hidden" name="product" value="26774" required="" id="product">
</form>

Name: mc-embedded-subscribe-formPOST https://tindie.us5.list-manage.com/subscribe/post?u=7aa035bfbcb82bedd3f3c334b&id=bb799798bb

<form action="https://tindie.us5.list-manage.com/subscribe/post?u=7aa035bfbcb82bedd3f3c334b&amp;id=bb799798bb" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate="">
  <p class="text-center">Get our pioneering hardware picks in your inbox with Tindie Fetch.</p>
  <input aria-label="Join our mailing list" type="email" value="" name="EMAIL" class="text form-control" id="mce-EMAIL" placeholder="Join our mailing list!">
  <input aria-label="Subscribe" type="submit" class="btn btn-primary btn-submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe">
  <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
  <div class="display: none; visibility: hidden">
    <label for="pot">Ignore this text box. It is used to detect spammers. If you enter anything into this text box, your message will not be sent.</label>
    <input id="pot" type="text" name="b_7aa035bfbcb82bedd3f3c334b_bb799798bb" tabindex="-1" value="">
  </div>
</form>

POST /accounts/login/

<form action="/accounts/login/" id="login-form-modal" method="post"> <input type="hidden" name="csrfmiddlewaretoken" value="9EodB7hi3jC8KBGVNPoPrtFFIkOMON2dRoJLpD7g9jFIVlV1wjXi9PoTgwOVUTBN">
  <div data-bind="with: loginBox">
    <div class="row ">
      <div class="col-md-12">
        <div id="div_id_auth-username" class="form-group"> <label for="id_auth-username" class="control-label  requiredField"> Username or Email Address<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="text" name="auth-username" autofocus="" placeholder="Please enter your username or email address" data-bind="textInput: completeEmail, bootstrapErrors: completeEmail" autocomplete="username"
              class="textinput textInput form-control" required="" id="id_auth-username" title="Please enter your username or email" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-12">
        <div id="div_id_auth-password" class="form-group"> <label for="id_auth-password" class="control-label  requiredField"> Password<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="password" name="auth-password" placeholder="Please enter your password" data-bind="textInput: completePassword, bootstrapErrors: completePassword" autocomplete="current-password"
              class="textinput textInput form-control" required="" id="id_auth-password" title="Please enter your password" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div>
      </div>
    </div> <input type="hidden" name="auth-current_url" value="/products/arturo182/bb-q20-keyboard-with-trackpad-usbi2cpmod/" id="id_auth-current_url"> <input type="hidden" name="auth-next_url" id="id_auth-next_url">
    <div class="hide" aria-hidden="true">
      <div id="div_id_auth-extra_info" class="form-group"> <label for="id_auth-extra_info" class="control-label "> More Info </label>
        <div class="controls "> <input type="text" name="auth-extra_info" class="hide textinput textInput form-control" maxlength="10" id="id_auth-extra_info"> </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-12 login-form-wrap" data-bind="errorTooltip: $parent.loginBox.errors" data-original-title="" title=""> <input type="submit" name="login" value="Sign In" class="btn btn-primary mb15 expand-mobile disabled" id="submit-id-login"
          data-bind="css: { 'disabled': !$parent.canLogin() }, disableEnterKey: !$parent.canLogin(), preventDoubleSubmit: 'Signing In...', event: { mouseover: $root.blurAll }">
      </div>
    </div>
  </div>
  <div style="display: none;"><input name="csrfmiddlewaretoken" type="hidden" value="yqAJDUA2ITyQ4V0GVo2T0OksSIUeV0qpgaVhrqq0OTBqfFfMESBmIa3GqUUn16ZZ"></div>
</form>

POST /accounts/signup/

<form action="/accounts/signup/" id="signup-form-modal" method="post"> <input type="hidden" name="csrfmiddlewaretoken" value="9EodB7hi3jC8KBGVNPoPrtFFIkOMON2dRoJLpD7g9jFIVlV1wjXi9PoTgwOVUTBN">
  <div data-bind="with: registerBox">
    <div class="row ">
      <div class="col-md-6">
        <div id="div_id_register-first_name" class="form-group"> <label for="id_register-first_name" class="control-label "> First name </label>
          <div class="controls "> <input type="text" name="register-first_name" maxlength="30" autocomplete="given-name" class="textinput textInput form-control" id="id_register-first_name"> </div>
        </div>
      </div>
      <div class="col-md-6">
        <div id="div_id_register-last_name" class="form-group"> <label for="id_register-last_name" class="control-label "> Last name </label>
          <div class="controls "> <input type="text" name="register-last_name" maxlength="150" autocomplete="family-name" class="textinput textInput form-control" id="id_register-last_name"> </div>
        </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-6">
        <div id="div_id_register-email" class="form-group"> <label for="id_register-email" class="control-label  requiredField"> Email Address<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="email" name="register-email" maxlength="254" placeholder="Your email address" data-bind="value: completeEmail, bootstrapErrors: completeEmail" autocomplete="email" class="emailinput form-control"
              required="" id="id_register-email" title="Please enter your email" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div> <small class="help-block" style="display: none;" data-bind="visible: emailLoginHint"><a href="/accounts/login/">Do you want to log in?</a></small>
      </div>
      <div class="col-md-6">
        <div id="div_id_register-email2" class="form-group"> <label for="id_register-email2" class="control-label  requiredField"> Confirm Email Address<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="text" name="register-email2" required="" maxlength="140" data-bind="value: completeEmail2, bootstrapErrors: completeEmail2" autocomplete="email" class="textinput textInput form-control"
              id="id_register-email2" title="Please confirm your email" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-6">
        <div id="div_id_register-username" class="form-group"> <label for="id_register-username" class="control-label  requiredField"> Username<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="text" name="register-username" maxlength="150" autofocus="" placeholder="Desired username" data-bind="value: completeUsername, bootstrapErrors: completeUsername" autocomplete="username"
              class="textinput textInput form-control" required="" id="id_register-username" title="Please enter a username" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div> <small class="help-block" style="display: none;" data-bind="visible: loginHint"><a href="/accounts/login/">Do you want to log in?</a></small>
      </div>
      <div class="col-md-6">
        <div id="div_id_register-password1" class="form-group"> <label for="id_register-password1" class="control-label  requiredField"> Password<span class="asteriskField">*</span> </label>
          <div class="controls "> <input type="password" name="register-password1" placeholder="Your password" data-bind="value: completePassword" autocomplete="new-password" class="textinput textInput form-control" required=""
              id="id_register-password1" title="Please enter a password" data-orig-title=""><span class="help-block" style="font-weight: bold; display: none;"></span> </div>
        </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-12">
        <div class="form-group">
          <div id="div_id_register-mailchimp_opt_in" class="checkbox"> <label for="id_register-mailchimp_opt_in" class=""> <input type="checkbox" name="register-mailchimp_opt_in" class="checkboxinput" id="id_register-mailchimp_opt_in" checked="">
              Join our mailing list and stay updated about pioneering hardware and Tindie community activities. </label> </div>
        </div>
      </div>
    </div>
    <div class="hide" aria-hidden="true">
      <div id="div_id_register-extra_info" class="form-group"> <label for="id_register-extra_info" class="control-label "> More Info </label>
        <div class="controls "> <input type="text" name="register-extra_info" class="hide textinput textInput form-control" maxlength="10" id="id_register-extra_info"> </div>
      </div>
    </div>
    <div class="row ">
      <div class="col-md-12 signup-form-wrap" data-bind="errorTooltip: $parent.registerBox.errors" data-original-title="" title=""> <input type="hidden" name="register-current_url" value="/products/arturo182/bb-q20-keyboard-with-trackpad-usbi2cpmod/"
          id="id_register-current_url"> <input type="submit" name="register" value="Register" class="btn btn-primary expand-mobile disabled" id="id_submit"
          data-bind="css: { 'disabled': !$parent.canRegister() }, click: submitRegistration, disableEnterKey: !$parent.canRegister(), preventDoubleSubmit: 'Registering...', event: { mouseover: $root.blurAll }">
      </div>
    </div>
  </div>
  <div style="display: none;"><input name="csrfmiddlewaretoken" type="hidden" value="yqAJDUA2ITyQ4V0GVo2T0OksSIUeV0qpgaVhrqq0OTBqfFfMESBmIa3GqUUn16ZZ"></div>
</form>

Text Content

Log In
0 Cart
Go
 * Newest
 * DIY Electronics
 * 3D Printing & CNC
 * Camera Equipment
 * IoT & Smart Home
 * Robots & Drones
 * Sound
 * Supplies
 * Flea Market
 * On Sale


TINDIE


Search
 * Sell on Tindie
 * Log In
 * Register
 * 
 * 0 Cart

 * 0 Cart
 * 

Search
 * All Products
   Newest
   On Sale
   Certified Open Hardware
   Hackaday Sellers
   Browse Stores
 * DIY Electronics
   Arduino
   BeagleBoard
   Beginner
   Cases
   ESP32
   Gaming
   Lights
   Prototyping & Fabrication
   Raspberry Pi
   Teensy
   Vintage Computing
   Wearables
   Wireless
 * 3D Printing & CNC
   3D Printed
   3D Printers & Parts
 * Camera Equipment
 * IoT & Smart Home
   Clocks
   LoRa
 * Robots & Drones
   Robot Kits
 * Sound
   Amplifiers
   MIDI
   Synths
 * Supplies
   Accessories
   Batteries
   Boards and Shields
   Cables and Adapters
   Cases
   Components
   Filament
   Headers
   Kits
   Lights and Displays
   Motors
   Power
   Robots & Drones
   Sensors
   Soldering
   Sound
   Testers
   Tools
   Wireless
 * Flea Market Beta
   Adapters and Cables
   Audio and Video
   Batteries and Power
   Boards
   Books and Media
   Bulk Components
   Cases and Mounts
   Computers and Networking
   Equipment
   Fasteners
   Lights and Nixie
   RC
   Small Tools
 * More
   Robots & Drones
   Sound
   Supplies
   Flea Market

 1. Home
 2. DIY Electronics


BB Q20 KEYBOARD WITH TRACKPAD, USB/I2C/PMOD

(15 Reviews)

A BB Q20 Keyboard with trackpad in a portable format. Easily add a QWERTY
keyboard to your project!

Designed by Solder Party in Sweden
Wishlist On Wishlist Tweet Share Pin


Previous Next

$30.00 $30.00 ($30.00 USD)
Ask a Question

No shipping info available.
Set destination country to see options

Shipping to starts at $0.00 ($0.00 USD)

Free shipping is available to !

Ships from

This item does not ship to .
More Info


OUT OF STOCK

Sign up to get notified when this product is back in stock!

Desired Quantity*
Please message the seller directly if your desired quantity is very large.
Email*

More Info

Sold out since Nov 25, 2023
Wishlist On Wishlist Tweet Share Pin


A BB Q20 KEYBOARD WITH TRACKPAD IN A PORTABLE FORMAT. EASILY ADD A QWERTY
KEYBOARD TO YOUR PROJECT!

 * Description
 * Specs
 * Shipping
 * Volume Pricing
 * More
 * 15 Reviews

 * BB Q20 Keyboard with tra…
 * View Options and Buy

Product Description

The timeframe for a restock is currently unknown. To stay informed about the
availability of the Keyboard, please subscribe to our newsletter at
https://solderparty.substack.com. We will notify you a…

Read More…


THE TIMEFRAME FOR A RESTOCK IS CURRENTLY UNKNOWN. TO STAY INFORMED ABOUT THE
AVAILABILITY OF THE KEYBOARD, PLEASE SUBSCRIBE TO OUR NEWSLETTER AT
HTTPS://SOLDERPARTY.SUBSTACK.COM. WE WILL NOTIFY YOU AS SOON AS IT IS BACK IN
STOCK.

-> https://solderparty.substack.com <-

A BB Q20 Keyboard in USB/PMOD/Qwiic format with an injection molded clear
plastic case.

This is the evolution of our previous BBQ10 PMOD board. We took all the feedback
from that board and improved on the design in every way.

We added a Qwiic/Stemma QT connector, we added USB HID support, we changed to a
Q20 keyboard, which gave us four extra buttons, and the optical trackpad that
works as a USB HID Mouse. And we decided to put the whole thing into a
custom-designed injection molded clear plastic case for better usability and
durability, as well as that retro 90s look.


DETAILS



The board uses the Raspberry Pi RP2040 MCU to poll the keyboard and trackpad and
put the key press information into a FIFO.

You can use the I2C interface to read the FIFO, reconfigure the chip, and change
the keyboar backlight.

In addition to that, the board also has a USB Type-C socket, and when connected
to a desktop computer (Windows/Linux/MacOS), a smartphone (Android), or a SBC
(Raspberry Pi, etc), it enumerates as a USB HID Keyboard and Mouse combo!

The firmware can be configured over USB using the Vendor Class interface.

The I2C interface is compatible with the old BBQ10 module, you can use the same
libraries to interface this board: - Arduino library - CircuitPython library

Note: This board is not 5V-tolerant!


WHAT YOU GET

 * The BBQ20KBD board+keyboard assembled with an injection molded clear plastic
   case
 * Reference leaflet



Specs and Docs
 * Source Code
 * Documentation
 * Design Files
 * Open Source Hardware | [OSHW] SE000019 | Certified Open Source Hardware

Shipping Info

No country selected, please select your country to see shipping options.

No rates are available for shipping to .

Enter your email address if you'd like to be notified when BB Q20 Keyboard with
trackpad, USB/I2C/PMOD can be shipped to you:

Submit
More Info


Thanks! We'll let you know when the seller adds shipping rates for your country.

RATES TO

Update Destination
Change Destination Country:
Select Your Country... Afghanistan Albania Algeria American Samoa Andorra Angola
Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia
Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belgium Belize Benin
Bermuda Bhutan Bolivia Bonaire, Sint Eustatius and Saba Bosnia and Herzegovina
Botswana Bouvet Island Brazil British Indian Ocean Territory Brunei Bulgaria
Burkina Faso Burundi Cabo Verde Cambodia Cameroon Canada Cayman Islands Central
African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands
Colombia Comoros Congo Congo (the Democratic Republic of the) Cook Islands Costa
Rica Croatia Curaçao Cyprus Czechia Côte d'Ivoire Denmark Djibouti Dominica
Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia
Eswatini Ethiopia Falkland Islands (Malvinas) Faroe Islands Fiji Finland France
French Guiana French Polynesia French Southern Territories Gabon Gambia Georgia
Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala
Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and McDonald Islands
Holy See Honduras Hong Kong Hungary Iceland India Indonesia Iraq Ireland Isle of
Man Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kuwait
Kyrgyzstan Laos Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania
Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands
Martinique Mauritania Mauritius Mayotte Mexico Micronesia (Federated States of)
Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia
Nauru Nepal Netherlands New Caledonia New Zealand Nicaragua Niger Nigeria Niue
Norfolk Island North Macedonia Northern Mariana Islands Norway Oman Pakistan
Palau Palestine, State of Panama Papua New Guinea Paraguay Peru Philippines
Pitcairn Poland Portugal Puerto Rico Qatar Romania Rwanda Réunion Saint
Barthélemy Saint Helena, Ascension and Tristan da Cunha Saint Kitts and Nevis
Saint Lucia Saint Martin (French part) Saint Pierre and Miquelon Saint Vincent
and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal
Serbia Seychelles Sierra Leone Singapore Sint Maarten (Dutch part) Slovakia
Slovenia Solomon Islands Somalia South Africa South Georgia and the South
Sandwich Islands South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard
and Jan Mayen Sweden Switzerland Taiwan Tajikistan Tanzania Thailand Timor-Leste
Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and
Caicos Islands Tuvalu Uganda United Arab Emirates United Kingdom United States
Minor Outlying Islands United States of America Uruguay Uzbekistan Vanuatu
Venezuela Vietnam Virgin Islands (British) Virgin Islands (U.S.) Wallis and
Futuna Western Sahara Yemen Zambia Zimbabwe Åland Islands

Shipping Rate Tracked Ships From First Item Additional Items

Volume Pricing

Quantity Price 1-4$30.00 5-9$26.50 10-24$25.00 25-49$22.50 50+$21.00

Reviews (15)


REVIEW BREAKDOWN

5

10
4

4
3

0
2

0
1

1


AVERAGE RATINGS

Product: (4.73)

Documentation: (4.60)

Shipping: (4.60)

Communication: (4.67)

Naheel | Oct. 1, 2023

PERFECT

Does what it says, open hardware and software, same good old keyboard, easily
customizable. Highly recommended.

Jacky | Aug. 16, 2023

NEVER RECEIVED IT.

It's been a little over a month and a half. Haven't received the product. The
address was wrong and it was reshipped on priority. That was 20 days ago. Still
nothing. At this point the purpose I bought it for has long been missed.
Unfortunately I cannot comment on the product itself.

Adam | July 13, 2023

I CAN'T BELIEVE I FORGOT TO DO THIS!

This is a fantastic little keyboard! Nice and easy to use, as all BB keyboards
are, but wrapped in such a brilliant little package! I've had mine for ages but
forgot to leave a review earlier.

James | June 20, 2023

THIS IS AN AWESOME LITTLE DEVICE

I bought 2 and might buy a few more. I am attaching them to an Arduino with a
screen and a cellular board. It has good example code for connecting over I2C.
They were very helpful when I got stuck on something. A+

Adam | April 29, 2023

SMALL, CONVENIENT, KEYBOARD THAT WORKS AWESOME!

I didn't know I needed this keyboard, but I got it on a whim because I thought
it looked cool. Since I have had it, this keyboard has come in handy and is now
my "break out a keyboard" device for many moments. I have used it with a little
Android TV box, raspberry pi and other SBCs, and my home server, and I will find
even more uses in the future. It even is illuminated, and you can use it in dark
places! The mouse function works great as well.

It is your old Blackberry keyboard in a nice little package. The build quality
is pretty good, and it got here quickly. I can't find anything I don't like
about the little keyboard itself. If I did have to complain, the sticky foam
that helps hold it in place isn't sticky enough, and it can lift a little bit
off the PCB, but that is something I think I can fix if it ever becomes a real
issue. I am sure there is a reason it could not be screwed into the PCB itself
instead of using the sticky foam.

Tinkerers have lots of little devices, and sometimes you need to punch in a
password or long HTTP string, but since you don't have a keyboard connected, you
must bust out that old gigantic e-waste keyboard just to type a few lines. So
this little guy does the job in a small convenient package. Using the "alt" key,
you can punch in numbers and symbols as well! I have only had it a month or so,
but it has come in handy more than a few times.

Right now, it lives connected to my little Android TV box for when I want to
search for a youtube video or need to type a password into an app. Instead of
using my remote control with an on-screen keyboard, I can punch it in with this
little guy. It uses a standard USB keyboard driver, and I have not found
anything that it is not compatible with yet. Super convenient and fun to use
too! I highly recommend this little keyboard.

Tim | April 21, 2023

I'VE NEEDED ONE OF THESE FOR AGES, NICE PACKAGING TOO

Not believing in KVM switches for my retro computing and Rpi collection, I've
needed one of these for ages. Thanks! Even for work, I have one Windows PC and a
second Linux PC that I use for testing browser apps. Finding space on my messy
desk to fit the second keyboard and mouse... yeah, that never happened... until
this came along. Anyway, I especially liked the elegant plastic box it came in,
perfect for both shipping and storage, and of course the custom-designed,
injection-molded "half shell" that sets this apart from bare, PCB-only products.

Vincent | April 8, 2023

VERY SOLID BUILD QUALITY

The keypad arrived quickly in less than a week. The stock functionality is great
as a USB keyboard and mouse. I am hoping to make this a Bluetooth mouse/keyboard
combo in the near future. The well documented firmware will help tremendously
with making that happen.

Karol | April 4, 2023

FIVE STARS ALL THE WAY!

Using this thing is like meeting an old friend from BlackBerry times. Great
build quality. Works flawlessly. Payment process info was misleading, asked
question - instant seller contact. Fast shipping. I am extremely happy with the
concept, purchase and support.

Scott | Nov. 16, 2022

INCREDIBLE PORTABLE, PLUG-AND-PLAY KEYBOARD WITH TRACKPAD

I can't recommend this keyboard enough, especially at these prices. Shipping
overseas was under 2 weeks.

This is a great portable keyboard that is plug-and-play with USB-C. The keyboard
and trackpad are the flagship quality that one would expect from BlackBerry.
Arturo's transparent case is comfortable and the brass screw inserts are
indicative of the overall quality. The PCB layout and assembly look clean and
professional.

The BB Q20 was plug-and-play with my Windows 10 laptop. I increased the speed of
the trackpad in Windows settings. The internet is fun and comfortable sitting
back in the chair, away from the laptop's keyboard. I have a few projects in
mind.

The shaped keys make typing fast and don't require looking at the keyboard. I
haven't used a BlackBerry keyboard for ages. But after using the BB Q20 for
about 15 minutes, and looking down at the keyboard from time-to-time, I am
getting the groove back.

5 stars.

Stefan | June 30, 2022

GREAT KEYBOARD COMBO

I love the idea and recently added Bluetooth support via an Espruino BLE board
that fits nicely into the free space in the enclosure. The great i2c
implementation made that really easy to do. Also added a small usb bone-shaped
power bank and now have a pretty nice mobile tool for VR, AppleTV etc. Highly
recommended.

Dawid | June 24, 2022

GREAT, RECOMMENDED

I needed small, portable and configurable keyboard, and now i have it. :) Bought
it mainly for termux and rpi/server stuff. Even touchpad is quite useful.
Important advantage is the firmware: reconfigurable, building and flashing is
easy, so mapping custom key like Escape or Tab is no time (check github repo for
details). Maybe even QMK?

Keyboard itself is well thought for such a niche product, recommended!

Kevin | June 23, 2022

HIGHLY RECOMMEND ARTUROS BB Q20, CHANGED MY WORK DAY.

This thing is so fun. I have it connected to my iMac via USB-C and I use it for
my job correspondence: email, slack, iMessage. Is your work communication
tedious? Use one of these and at least the correspondence part of your job will
be entertaining.

Brian | June 14, 2022

WORKS GREAT, FEELS GOOD!

It does what it says on the tin! Great product!

I haven't had any issues using it over USB on my computer or android phone.

Ryan | May 25, 2022

MUCH SMALLER THAN I RECALL (NOT IN A BAD WAY)

Saw a link to this guy on Reddit and IMMEDIATELY knew that I wanted it. I have
been looking for a small, WIRED, USB keyboard that I could easily use with my
various Raspberry Pi projects, or my Home Server (can finally get rid of that
huge clunky keyboard/mouse), and just to have in my EDC.

Came with a nice little plastic carrying case, which will keep it protected when
it is in my bag. The molded plastic on the keyboard itself is a nice touch as
well, gives it a premium, durable feel. I was caught off guard with how small
this was. I remember phone keyboards being that small at that time, but as a
large phone user, I had forgotten.

I'm not familiar with I2C or PMOD, but the USB works right away out of the box,
and I look forward to learning more regarding those other things.

Tamas | May 24, 2022

WONDERFUL TINY KEYBOARD WITH MOUSE FUNCTION

Just received this tiny keyboard. It works instantly by plugging in to usb port
of a laptop or computer. It has backlight and the trackpad like mouse function
which works great. I used to own a blackberry phone and its nice to recognize
the keyboard is from that brand with same quality.
Worth to buy if one needs a tiny keyboard that fits into a pocket.
The case which holds the device is high quality clear plastic (acryl?) and has a
good feeling to touch and protects the internals.

I cant comment on other features tough I do see the various connectors. I plan
to use it as a keyboard for my home server when it needs it occasionally.
Shipping was fast (received in 1 week) from Sweden, so no issues on customs
within EU.
Tiny hint, you could place some object of known size next to it so others might
be able to see its size. It is tiny!

Great product , works well , recommended.

Purchase made by the article in tomshardware.
+ Show 10 more
$30.00 $30.00 ($30.00 USD)
Ask a Question

No shipping info available.
Set destination country to see options

Shipping to starts at $0.00 ($0.00 USD)

Free shipping is available to !

Ships from

This item does not ship to .
More Info


OUT OF STOCK

Sign up to get notified when this product is back in stock!

Desired Quantity*
Please message the seller directly if your desired quantity is very large.
Email*

More Info

Sold out since Nov 25, 2023
Wishlist On Wishlist Tweet Share Pin
About Seller

SOLDER PARTY



Malmö, Skane, Sweden

Ships from Sweden.

52 Reviews  |  2,874 Orders

View Store
Contact Store

MORE FROM THIS SELLER:


RP2040 STAMP

Solder Party

$12.00


RASPBERRY PI PICO ADAPTER FOR KEYBOARD FEATHERWING

Solder Party

$3.00


3.7V/4.2V LIPO CHARGER WITH USB TYPE-C PLUG

Solder Party

$4.50


CP2102 USB TO SERIAL/UART WITH USB TYPE-C PLUG

Solder Party

$5.50


USB TYPE-C PLUG BREAKOUT - USB 3.0 ONLY

Solder Party

$2.75


USB TYPE-C PLUG BREAKOUT - USB 2.0 ONLY

Solder Party

$2.75


PMOD TO QWIIC/STEMMA QT ADAPTER W/ DAISY CHAINING

Solder Party

$3.00


RP2040 STAMP CARRIER

Solder Party

$6.50


WE THOUGHT YOU'D LIKE THESE TOO…


BLACKBERRY BB9900 USB KEYBOARD WITH TRACKPAD

ZitaoTech

$30.00


CH347 DEVELOPMENT BOARD

MuseLab

$4.80


USB TYPE-C / PIC32 DEVELOPMENT BOARD (LITE)

lophtware

$17.99


EEE KEYBOARD TO USB, WITH FIRMWARE (FOR TEENSY2.0)

FairywrenTech

$5.00


Sponsored Promotion

Get our pioneering hardware picks in your inbox with Tindie Fetch.

Ignore this text box. It is used to detect spammers. If you enter anything into
this text box, your message will not be sent.

COMPANY

 * About Tindie
 * Tindie Blog
 * Our Terms

DISCOVER

 * Newest Products
 * Popular Products
 * On Sale

BUYING & SELLING

 * Buy on Tindie
 * Sell on Tindie
 * Tindie Guarantee

HELP

 * FAQs
 * Contact Tindie
 * Community Forums

Join Us On
 * 
 * 
 * 
 * 

© 2024 Tindie, Inc. Privacy Policy | Digital Services Act
× Cookies help us deliver our services. By using our services, you agree to our
use of cookies. Learn more. OK
×
 * Register
 * Log In

Log in with Facebook
Log in with HACKADAY.IO

--------------------------------------------------------------------------------

Username or Email Address*

Password*

More Info



Forgot Password?
Register with Facebook
Register with HACKADAY.IO

--------------------------------------------------------------------------------

First name

Last name

Email Address*

Do you want to log in?
Confirm Email Address*

Username*

Do you want to log in?
Password*

Join our mailing list and stay updated about pioneering hardware and Tindie
community activities.
More Info




By clicking Register, you confirm that you accept our Terms & Conditions

×


WHAT IS A TINDARIAN?

We recognize our top users by making them a Tindarian. Tindarians have access to
secret & unreleased features.



HOW DOES ONE BECOME A TINDARIAN?

We look for the most active & best members of the Tindie community, and invite
them to join. There isn't a selection process or form to fill out. The only way
to become a Tindarian is by being a nice & active member of the Tindie
community!

× Previous Next