draft0 - a shared blog by just some people

Menu

Entries tagged 'cat:Electronics'

WAMP 2023 - Close-Up Shots Of Things Lying Around And Stuff But Not People

I brought a camera to WAMP last year. The resulting pictures are very underwhelming. But because I was there and my brain has experiences and memories connected to them, I deem them worthy of being here. These are close-up shots of things lying around and stuff but not people. There is a separate entry with macro shots of things lying around and stuff but not people.

File Attachments (21 files)

Comment via email

WAMP 2023 - Macro Shots Of Things Lying Around And Stuff But Not People

I brought a camera to WAMP last year. The resulting pictures are very underwhelming. But because I was there and my brain has experiences and memories connected to them, I deem them worthy of being here. These are macro shots of things lying around and stuff but not people. There is a separate entry with close-up shots of things lying around and stuff but not people.

File Attachments (30 files)

Comment via email

As a child I used to play with old PCs, take them apart, assemble different parts to new PCs, etc. One day when I was 12 I was carrying a 486 Desktop PC to a friend's house, who lived in a different part of the town. On my way there a man stopped me and asked me if I'm interested in computers. He told me he has lots of computers and computer parts at home and I could look at them, pick anything I wanted and take it home to keep. I just had to come home with him and I'd get all the computer parts I wanted. Sadly I couldn't, because my freidn was waiting for me and expected me to bring the 486. So the man gave me his phone number and told me to definitely call because he would soon have to through away good comuter parts if I wouldn't take them.

Back at home I told my mother about the man. For some reason she thought that it was a strange thing to stop a child in the street for and that I shouldn't call him. I replied "He's liek 80 or 90 or something and he said he has to throw the stuff away if I don't take it." I'm not entirely sure whether it was more the age esitmation or my fear of good tech getting thrown away that let her give him a chance to explain himself. So, I called him, took a train to his house and you may guess what happened there, or continue reading, or both.

He lead me to his basement. It was huge. It seemed larger than the already large house. And every single room of it, including the hall in the center, was filled with PCBs, monitors, PCs, racks, more PCBs and cards, software packages (those thick ring binders with manual, diskettes and sometimes printed source code or other notes ticked in an even thicker cardboard box), ICs and other small parts in transparent boxes, empty boards and all the chemicals needed to make your own PCBs, some unfinished projects, home-grown microcomouters, printers, cables, and so on. A retro computer fan's paradise! He was in my home town because he visited a medical specialist. I'm guessing that he knew or suspected that he didn't have much time to get his hobby stuff into the hands of somebody who'd appreciate it. The latter was certainly his goal and did appreciate the tech, which seemed to make him very happy. But I only realised many years later how much more there would have been to appreciate. Back then I wasn't interested in ISA memory extension cards. They were slow and small compared to even SIMM modules. I didn't care for his software collection at all. And I didn't see what I couldn't have done with a custom build computer for which no software existed except what you write yourself. I had no use for his chemical laboratory, hard disks with less than 100 MB of space or electronic parts like logic gates. An 8086 PC was just a worthless piece of too slow hardware to get any fun out of it. I used an MFM drive solely to open it up and take it apart to see how they built these things.

Recently I was thinking, that old man met me too early. My interest in computers was not developed enough at the time. But he did die soon after I visited his house. So for getting some of his computer stuff to somebody who'll at least do something with it before it gets thrown out it was just the right time. I didn't know him, just met him once after his suspicious chat-up. But his wife actually thanked me after he had died. So maybe I didn't come across as greedy or too selfish.

Comment via email

3mm LEDs (Macro Picture)

CC0 licence logo
To the extent possible under law, steeph has waived all copyright and related or neighboring rights to this work.

Just a photo of 3mm LEDS that I took a while a go. I like it for it's simple techness, rainbowness, high resolution and general look (glow).

File Attachments (1 file)

Comment via email

Phones people say don't exist but they do

Some people say things like: Phones should have bigger batteries, I don't care how thick it is. Or: Why aren't there any smartphones with screens smaller than 5 inches anymore? Or: There used to be a wider variety of phones; I'm missing keyboard phones/rugged phones/phones without a bunch of bloatware/etc. I think it is a very small group of people who feel like this strongly enough to say it. But I keep stumbling over such comments and I notice them because I have sometimes felt the same. And there's some truth about some of it. The most popular phones are all large and thin with privacy-invading bloatware that you can't uninstall and often with other malware pre-installed. They don't have keys on the front and you can't simply switch out the battery. But there is a bigger variaty of phones than there has ever bean. If you're missing a certain feature in your phone and can't find one that has it, you probably haven't looked far or long enough. I'd just like to mention a few manufacturers of not entirely mainstream phones and then maybe I'll make individual entries about some of them later with more information.

Keyboard phones

Notable options are:

F(x)tec: Flips open, keyboard in the style of late Nokia keyboard smartphones, best for thumb-typing, currently the first version is only available used and the newer version is currently shipping to Indiegogo backers. So it should be available without a long wait from the web shop soon.

Planet Computers: Different variants available, older ones are clam-shell, the latest is trying a new mechanism that leaves the touchscreen on the outside and usable when the physical keyboard is closed. Keyboard in Psion Series 5 style, best for table typing.

Unihertz: Clones of late Blackberry keyboard phones, screen above keyboard, for thumb-typing.

A used phone. Because you can still get a blackberry if you like. A few weeks or months from now you probably wouldn't be able to tell the difference between you almost new one and a refurbished one anyway. It's cheaper, you have more devices to choose from and it's better for the environment (whatever your definition of that may be). Did I miss or forget an option?

Phones with small screens

Uniherts also has started to fill this gap. Or you can get an older phone, maybe a used one. A few weeks or months from now you probably wouldn't be able to tell the difference between you almost new one and a refurbished one anyway. It's cheaper, you have more devices to choose from and it's better for the environment (whatever your definition of that may be). Did I miss or forget an option?

Phones with large batteries

If that's your one important requirement, you have many cheap phones that claim to have batteries with around 10 Ah (yes, 10.000 mAh if you prefer to see read more zeros) to choose from. Some manufacturers that I don't know anything about are: Yess, Gionee, Blackview, Ulefone. Ulefone seems to have several current models to choose from and I know somebody who is happy with theirs, whatever that tells you. I'm sure there are more brands of phones with giant batteries. But I'm personally happy with the 2 to 3 days I get out of my regular phone. I only complained about this when phones would at most last for one day without getting charged. If you're content with a battery with a capacity of around 6 or 7 Ah, you have even more to choose from and that range has actually started to enter the mainstream phone market (Huawei, Samsung, Asus, ZTE, …). You'll easily find some if you look for them. But many still don't think of searching for one. I guess this has been more of an issue 10 years ago, where phones needed more power to come through a day while at the same time no smartphones with big batteries existed. Getting an external battery that clips to the back of your phone has been more of a thing back then. That's still an option if such a product exist for your phone or you really love duct tape.

Headphone jacks, removable batteries, hardware buttons below the screen, ...

How about getting a used phone. A few weeks or months from now you probably wouldn't be able to tell the difference between you almost new one and a refurbished one anyway. It's cheaper, you have more devices to choose from and it's better for the environment (whatever your definition of that may be). Or at least I read that somewhere a few minutes ago. There are new phones with current hardware that haven't given up on these concepts. But none that I care to mention and the choice of phones with current hardware and easily removable batteries or hardware more than one hardware button below the screen doesn't appear to be good. Did I miss one?

But what about software? Security updates, free software, Google-less Android, privacy-respecting operating systems

Well, it would certainly make choosing and setting up a phone easier if you don't care about those things. But the FOSS community is producing images for many phones that otherwise would only run an Android built by the manufacture or carrier with all the usual insults like bloatware, pre-installed malware and other privacy-invading components. Using an older smartphone (maybe not a Nokia Communicator/Nokia 9xxx, but like maybe 10 years old) with current free software is certainly an option.

Comment via email

Poly Keyboard

Here is another project idea I never really started working on: A computer keyboard that has a small LCD in each key cap. I'm convinced that there are legitimate use cases. After all, the function of the keys changes according to context. Different applications have different shortcuts, when I press and hold the Ctrl or Super key, the whole layout practically changes. Most people don't remember useful keyboard shortcuts, if they try to memorise them in the first place (if the learn about them to begin with). It would be nice to have the markings on the keys reflect their role. In some special applications, like video editing, a completely custom keyboard layout would be useful (a cheap alternative to byuing a custom video editing interface input device). In computer games, only the useful keys could light up, as well as display what they do (which depends not only on the game, your custom layout, the current situation in the game, as well as what happened earlier in the game, e.g. what items you have in your pockets). You might want to write in different languages and need different keyboard layouts at different times. You could have icons or descriptions of key functions be displayed whenever you hold a modifying key, to see which shortcuts are available. You could have a second keyboard with an additional layout to give you access to frequently used functions, and have the keys display the relative application icons or describe what they do. And it would just look cool.

The idea has been in my head for years. I even board the electronics to build a few keys to try it out. But I never build one because I think it would have been too much work on the side to get it done well, considered I come by very well without one. Now I learned that somebody else has built a keyboard very similar to what I had/have in mind. To be honest, I never really get very deep into the keyboard building community to know whether a keyboard like this already existed. I think when I had the idea I didn't even know how big the mechanical keyboard fan community is and that DIY builds are such a big thing.

The project I stumbled over is the Poly Keyboard by thpoll. Here is an article about it in the Keyboard Builder's Digest, here is the Github repo. Apparently (according too the article) it isn't the first of its kind. But it's the only one I've seen.

Comment via email

PIN Changer

I had to change the default PINs of over 200 SIM cards once. And such a situation could arise again. So I've built a PIN changer in which I just have to insert the card, wait a few seconds and it's done.

The Card Slots

SIM cards in their natural form factor aren't as fiddly to handle as they are in the form factors most people know, which is Mini SIM, Micro SIM and Nano SIM. Classical SIM cards are the same size as other smart cards. I found a card slot with an end switch on eBay. I like it when I find industry grade parts for cheap on eBay as part of some remaining stock. Additionally I've used a slide-in mini SIM slot and another, separate end switch from my parts collection in case I to change the PINs of smaller cards.

The Baseband Processor

Other parts that I've used is an Arduino Nano sized Arduino Nano nearly-clone and an A6 modem module. There are many similar modem modules designed around different but similar ICs. Many of them are cheap and widely used for DIY IoT projects. So example code for the Arduino and other help can be easily found on the web. I don't know why I went with a module with an A6. But it works fine and there are an Arduino library for it as well as cheap modem modules with it available.

(tba:voltage supply)

The Controller

Yes, Arduino may be kind of the noob go-to board and could look up how to use microcontrollers on their own finally and even if I don't want to I could finally start to use ESP32s like everybody else. But I know Arduinos and by now I'm familiar with it and it works, so, whatever. Arduino Nano is kind of my go-to form factor now because they have integraded USB, are Uno compatible and small. Unless I need more or something very specific I use Arduino Nano almost-clones with USB-C port.

The Code

The code is a real mess. It had been a long time since I had written any even halfway serious C. It may have been the first time, actually. The sketch surely is very easily improved by somebody who knows what they are doing. I intended to improve it myself. But the project is currently abandoned and The code is doing what it should in a way I initially had in mind as the goal. But I'll leave the mess of the comments in for the case that somebody wants to make out what I was thinking.


// Funktionen umschreiben: Beim Empfangen wird erwartet: 1. der AT-Command zurück, 2. eine Antwort, 3. OK oder ein ERROR.
//                         Daher sollte abgefragt werden, bis entweder OK oder ERROR kam oder 20/50/9001(?) Abfragen lang weder OK noch ERROR an kam.
//                         Die Antwort in Variable speichern? Naja, String zurückgeben halt.
//                         Antworten, die mit "^" anfangen brauchen nicht gehandlet zu werden, da keine Kommandos, die mit AT^ beginnen gesendet werden.


#include  

SoftwareSerial A6MODULE(6,7);
int intled = 13; // Internal LED
int successled = 8; // Green LED
int failled = 9; // Red LED
int wrongpinled = 10; // Orange LED

boolean debug=true;

//String commands[5] = { "AT", "AT+CPINC2", "AT+CPIN?", "AT+CLCK=\"SC\",2", "AT+CPIN=\"3010\"" };
//int command = 0;

const byte maxmsglength = 32;
char received[maxmsglength];
boolean newData = false;
String response = "";

int i=0;

/*
To check/do:
1  AT: OK?
2  is PUK required - abort
3  are less than 3 PIN attempts left? - abort AT^CPINC=?
4  is PIN disabled
       5  enable it: 0000
6  is PIN enabled
       7  unlock
8  is card unlocked
       9  change PIN: 1996
              was PIN wrong - report and leave it
*/


void setup() {
  pinMode(intled, OUTPUT);
  pinMode(successled, OUTPUT);
  pinMode(failled, OUTPUT);
  pinMode(wrongpinled, OUTPUT);
  // All LEDs turn on at the beginning and stay on during the wait period at the beginning, then turn off before communication with the A6 module starts.
  digitalWrite(intled, HIGH);
  digitalWrite(successled, HIGH);
  digitalWrite(failled, HIGH);
  digitalWrite(wrongpinled, HIGH);
  Serial.begin(9600);
  delay(500);
  digitalWrite(intled, LOW);
  digitalWrite(successled, LOW);
  digitalWrite(failled, LOW);
  digitalWrite(wrongpinled, LOW);
  A6MODULE.begin(9600);
  delay(500);
  digitalWrite(intled, LOW);
}

void loop() {
  sendtoa6("AT");
  if(getfroma6("OK")) {
//    sendtoa6("AT+CPIN?");
//    if(getfroma6("+CPIN:SIM PUK")) { fail; }         // If the required password is PUK, abort.
//    sendtoa6("AT+CPIN?");
//    if(getfroma6("+CPIN:SIM PIN2")) { fail; }        // If the required password is PIN2, abort.
//    sendtoa6("AT+CPIN?");
//    if(getfroma6("+CPIN:SIM PUK2")) { fail; }        // If the required password is PUK2, abort.

// WAIT FOR SWITCH RELEASE FIRST
    sendtoa6("AT+CPIN?");
    getfroma6("+CPIN:SIM PIN");                      // The last non-empty response will be stored in the global response variable. Problem with this: If the A6 module sends an unsolicitated message before the response to the CPIN command, nothing gets done and the card needs to be re-inserted again.
    if(strcmp(response, "OK") == 0) {                // If already no PIN is required

//      sendtoa6("AT+CLCK=\"SC\",2"); // Ist PIN-Abfrage eingeschaltet? Oder ist es "SC"?
//      if(getfroma6(???)) { PIN-Abfrage einschalten mit 0000; }

      // ENABLE PIN HERE
      d("I don't know how to enable the PIN.");

    }
    if(response = "+CPIN:SIM PIN") {                 // If the required password is PIN, continue.
      sendtoa6("AT^CPINC=?");
      if(getfroma6("^CPINC: 3")) {                   // If not exactly 3 attempts are left, abort. (should be larger than or equal to 3, shouldn't it?)
        sendtoa6("AT+CPIN=\"0000\"");                // Freischalten mit 0000
        delay(50);
        if(!getfroma6("OK")) { fail; }               // If that was not the right password, abort.
        sendtoa6("AT+CPWD=\"SC\",\"0000\",\"1996\"");// PIN ändern
        delay(500);
        if(getfroma6("OK")) { Serial.println("Looking good."); }

//      sendtoa6("AT+CMGD=0,4"); // Should delete all SMS
//      if(getfroma6(???)) { ; }
        d("I don't know how to delete SMS.");

        sendtoa6("AT+CPIN?");
        if(getfroma6("+CPIN:READY")) {
          
          // TURN OFF A& MODULE FOR SAFE CARD REMOVAL

          digitalWrite(successled, HIGH);
        }
      } else {                                         // If not exactly 3 times left
        fail;
      }
      delay(1000);
    }
  }
}

void fail() {
  digitalWrite(failled, HIGH);               // Turn red fail LED on and ...
  d("Something failed! Ending programme.");
  while(1);                                  // ... don't do anything anymore.
}

void wrongpin() {
  digitalWrite(wrongpinled, HIGH);           // Turn yellow LED on and ...
  d("Wrong PIN! Ending programme.");
  while(1);                                  // ... don't do anything anymore.
}

//boolean getfroma6(char str[32], char str1[32], char str1[32], char str1[32], char str1[32], char str1[32]) { // Returns true if the passed (expected) message was received, false if anything else was received.
boolean getfroma6(char str[32]) { // Returns true if the passed (expected) message was received, false if anything else was received.
  boolean asexpected = false;
    for (i = 1; i < 9; ++i) {
    receivelinefroma6();
//    d("d1 "+response);

    if(received[0] == '\0') {                            // If the received message is empty
      continue;
    } else {
      response = received;
    }
    if(strstr(received, "ERROR") != NULL) {              // If the received message contains "ERROR"
      d("Received an error: "+response);
      fail;
    }
    if(received[0] == '+') {                             // If the received message starts with a "+" sign
      d("Reseived response: "+response);
    } else {
      if(strstr(received, "OK") != NULL) {               // If the received message is "OK"
        d("Received OK.");
        asexpected = true;                               // Also treat OK like the expected message. No unexpected OK should ever be sent from the A6 module. So this is fine. No, it is, really.
//        if(asexpected) { return true; }
      } else {
        if(strncmp(received,"AT",2) == 0) {              // If the received message starts with "AT"
          d("Received AT: "+response);
        } else {                                         // For any other received message
          d("Received: "+response);
        }
      }
    }
    newData = false;
    if(strstr(received, str) != NULL) {
      d("Received expected message: "+response);
      asexpected = true;
    }
  }
  if(asexpected) { return true; }
  return false;
}


//void handleresponse() {
//  response = received;
//  if(received[0] == '+') {
//    d("               Response: "+response);
//  } else {
//    if(strstr(received, "OK") != NULL) {
//      d("               It's okay.");
//    } else {
//      if(strncmp(received,"AT",2) == 0) {
//        d("               I've sent: "+response);
//      }
//    }
//  }
//  newData = false;
//}



void receivelinefroma6() {
  delay(80);
  static byte counter = 0;
  char rc;
  
  received[0] = '\0';

  while (A6MODULE.available() > 0 && newData == false) {
    rc = A6MODULE.read();

    if (rc != '\n') {
      received[counter] = rc;
      counter++;
      if (counter >= maxmsglength) {
          counter = maxmsglength - 1;
      }
    }
    else {
      received[counter] = '\0'; // terminate the string
      counter = 0;
      newData = true;
    }
  }
}

void sendtoa6(String command) {
//  Serial.println(command);
  A6MODULE.println(command);
  d("Sent: "+command);
}

void d(String line) {
  if (debug == true) { Serial.println(line); }
}

(tba:connections,assembly,photos?)

Comment via email

All Those Bike Attachements

I think bicycle accessaries are of these things that developed over time past the point where it would have been sensible to rethink how things are done. I think it would make sense the rethink how all those bike attachments are integrated.

A bicycle without any attachments is already nice. It can be used without them and none of the things are necessary all the time. So it can make sense to have them detachable. But probably most people use their bike mainly for one thing - transportation, mountain-biking, sports - and need the same combination of attachments most times the bike is used. (Minus the lights when it's not dark.) I think it's rather peculiar that people buy, attach and use all these extras without questioning the crowded state of their bicycle frame. Let me list the things that I find useful myself.

  • Bell (*)
  • Front light (*)
  • Back light (*)
  • Phone/GPS holder
  • Phone charger
  • Action camera
  • Remote for indicators (in helmet or jacket/shirt)
  • Horn

(*): required by law when driving on the street

So, in this configuration, when you get back from riding your bike, you have to turn off the front light, turn off the back light, turn off the helmet indicator, turn off the indicator remote, check the charge of the front light, the back light, the phone charger, the GPS, the helmet, the helmet control, the horn and the action cam, detach the things that need charging, bring them in the house and plug them in for charging one after another. You may also have an electronic lock, additional front lights, a breaking light, the remote control for the breaking light and a headlamp. Half of them still have a micro USB port and none of the batteries last for dozens of rides (unless you ride mostly when it isn't dark). Sure, that comes with the benefit of having these devices, people seem to think. But they don't do all of this when they get out of their car. Because it wouldn't make sense to have a separate battery for every electronic device in a modern car. Neither does it make sense on a bike.

It would be nice to have a central battery for everything on my bike and a single on/off switch. But I don't use it enough to see me investing in building it myself. Because if I'd do it, I'd want it to be safe and secure in any weather, look good and not be too clunky or heavy. So I'd have to invest time.

Comment via email
Mastodon