Saigonauticon

joined 1 year ago
MODERATOR OF
[–] Saigonauticon@voltage.vn 3 points 7 months ago

Yeah, I hate that. Forcing me to input special characters makes my password slightly less secure. Of course I'll include them by default, but now an attacker can eliminate all passwords without special characters. Most people just put the number 1 or a period at the end of their existing, frequently re-used password anyway. Or capitalize the first or last letter. So it doesn't make it really harder to crack dumb passwords.

It's like we've optimized passwords to be hard for humans to remember, but easy for humans to guess!

[–] Saigonauticon@voltage.vn 4 points 7 months ago

Well, you can create your own job, if you like. It's not for everyone, but it is flexible -- there's no employer looking to squeeze every ounce of productivity out of your hours. I can describe a little bit what that would look like in case it's helpful.

I think most businesses at their core have one of a limited set of problems. For the people I encounter, it's either content, marketing, sales, or customer service. Even though I operate a tech company, the problem is almost never technology (probably there's a lesson somewhere in that). Sales and customer service often don't leave you much downtime if it's a busy company, so let's ignore them.

Marketing: A lot of businesses just need someone reliable to set up Google Adwords and stuff. You won't make a fortune, but it's easy to learn how to do, and once it's set up there is very little maintenance. We're not talking Coca Cola here -- small businesses that need some help getting local search traffic by paying for search ads. One of my clients just hired someone to do exactly that, who walked into their business and just outright suggested it -- although they've been pretty awful at it to be honest. Anyway, the bar is pretty low and Google wants you to do this so there's tons of learning material out there.

You can identify customers by walking down the street and searching for every small business, and seeing which ones are hard to find.

Content: Businesses that sell online often need a bunch of product photography and website updates that they don't have time to do. Often this is non-technical work -- there's a UI you add the photo and description to, then press 'update'. Often their business profile isn't set up right on google maps and stuff and they need help fixing it.

Content can also be copy writing, video reviews, social content... but honestly I find all of these harder sells than just "your website is out of date, want to pay me a small fee to fix it, then keep it current?".

Put together a list of services and print it out so you look organized. Don't worry about looking like a fool -- it's OK to look like a fool sometimes, as long as you also sometimes succeed.

Try to avoid charging minimum wage. Start with a more moderate cost and work downward if you need to. The customers that pay the least, typically demand the most. I'd structure it as a setup fee and then a fixed amount per month, paid quarterly in advance, for maintenance. Send them a report of what you did every month (google adwords makes this easy).

I've got a couple of people I do this for and I bill 250$ a month, paid quarterly in advance, for 10 hours a month. You might earn less than this at the start and that's OK -- I'm just volunteering a data point. It's not rocket surgery, it's boring stuff, but it keeps my bills paid while I harass bigger clients to pay theirs.

[–] Saigonauticon@voltage.vn 6 points 7 months ago* (last edited 7 months ago) (6 children)

Sure. You can either increase the dictionary of possible words, or increase the number of words or both. Eventually it will become unwieldy. I don't bother with passphrases though.

I generate passwords of sufficient entropy (random ASCII), store them securely (encrypted, key memorized, on dedicated hardware), and never re-use them. I don't trust password managers unless open-source. I don't need convenience -- to some extent, it's my job to manage other people's secrets. Since I'm being paid, no need for shortcuts.

[–] Saigonauticon@voltage.vn 10 points 7 months ago

Dear police officers: I'm sure you're excited to begin your journey learning all about electronic engineering and product design!

If you have any questions, drop by any time and I'll be happy to help. I hope you find these hobbies as rewarding as I do.

[–] Saigonauticon@voltage.vn 25 points 7 months ago

Being able to chalk off the often embarrassing or cruel lessons of childhood as something personal, rather than something someone saved in video, to hound you with for the rest of your life.

[–] Saigonauticon@voltage.vn 1 points 7 months ago

Neat! Despite immigrating here 12 years ago, I've only been to Ha Noi once! Everyone here in HCMC made a big fuss about warning me about scams, but everyone I met was fine, and no such thing occurred. Perhaps ironically, my inlaws hometown is near Ha Noi :P

That was also the first time I had egg coffee, which I really enjoy these days. Sword lake was pretty nice too. I'd go back one day for sure!

[–] Saigonauticon@voltage.vn 1 points 7 months ago

OK, fair enough! I did not know that the size varied so much. I'll probably still keep using it though -- the Python-esque syntax means I don't have to learn a bunch of stuff I don't have the time to right now, and I'm very bad at UI, so it's a good solution for me :)

Incidentally, a lot of my best apps are very small as well. Under 1k usually (AVR Assembly).

[–] Saigonauticon@voltage.vn 2 points 7 months ago (2 children)

I've only encountered one other! I might still be the only VN Lemmy instance, but probably not. I used to be.

[–] Saigonauticon@voltage.vn 5 points 7 months ago

Well, usually competition creates more efficient prices. So I guess somehow your telecoms companies are using strategies to avoid competing somehow.

On our end, we still have quite some parts of the economy that are planned. For example, I applied for my business license according to a particular 5-year plan, and there are only certain areas of the economy I'm allowed to participate in. I can't just one day pick up and decide that I'm going to start a butter factory or something.

The best Internet provider is literally the Army, but they weren't granted a monopoly. The post office and three or four other major providers exist in every city. So there's actually quite a healthy competition for customers, it seems this too was planned for. Things don't always work out this well, but at least for Internet it worked out pretty great.

As an aside, back when there wasn't enough money to fund State organs, they would sometimes be granted profitable businesses to stay afloat. Some bits of this are left -- you can stay at a beach hotel run by the police department in at least one city. It always seemed to me a smart way to get the country out of a bad situation. This is why the Army or the Post Office are licensed to to a bunch of profitable consumer services.

[–] Saigonauticon@voltage.vn 13 points 7 months ago

Ooh, study for 14 hours straight and forget to eat! That's usually what I do. Wild times.

[–] Saigonauticon@voltage.vn 15 points 7 months ago

Well, Tunak Tunak Tun of course.

[–] Saigonauticon@voltage.vn 6 points 7 months ago

North America is insane with their internet costs.

Here in VN, I can get unlimited 4G for 40$ a year, and 100mbps symmetrical fiber for about 50$ a year. The biggest provider is the Army. Their customer service is actually pretty fast and good too!

 

I randomly found a 6V6GTA vacuum tube in the rubbish bin of a used book store. They wanted 3$ for it -- how could I not? Visually, it did not have any indication of failure, or any mechanical rattling. So it might actually be functional! They did warn me that they had no idea if this was the case though :)

Anyway, I had heard that tubes can be configured to work at much lower that the typical voltages, if you design with them differently. I've seen as low as 3.3V reported! I figured it would be fun to make a portable tube amplifier powered by a rechargeable lithium cell.

I did not have a tube socket (and was not going to buy a $$$ one from some fancypants audio store), so jury-rigged one from protoboard using a drill press and soldering directly to the tube pins. So far I've tested the heater, it draws an appropriate amount of current (~400mA @ 4.2V).

I sort of expected it to explode (implode?), burn out immediately, or otherwise fail spectacularly at this point. So I was unprepared for the apparently normal operation -- I did not have an audio source handy to test it with. That will have to be a story for another day.

It's set up as an inverting amplifier, so it might be funny to give it a gain of 1 and subtract the input from the output (e.g. digitally or via a summing amplifier). People say things like "tubes sound warmer" -- I have no idea what this means, so logically I must investigate. The difference between the two signals should give me the sound of pure warmth, right? :P

 

So, there are these great 32700 LiFePO4 batteries that showed up in my local industrial market. For like USD 2$!

However, there are no LiFePO4 chargers available. The vendors assure me I can "totally use" a 4.2V Li-ion charger, but I don't believe them (although the cells test as being in good shape).

I whipped up a 5V system with a buck converter managed by an MCU. It turns off the buck converter that charges the battery, measures the battery voltage, and if it's under 3.6V it enables the buck converter. Repeats every few 100s of milliseconds.

Did I overengineer this? Could I have just used a linear voltage regulator that outputs 3.6V (or a Zener), and a current-limited 5v power supply?

Charge speed is not really important in my application. Anything under 4 hours is great. Frankly, I'm just trying to phase out the less safe kinds of lithium cell in my lab.

 

I've always considered the nature of living to be to grow, to become more -- and the nature of dying to be reduced, to become less. Sort of like taking the derivative of what you are, the rate of change..

This has the unusual consequence that when people tell me to 'live a little' e.g. with idle pastimes, it feels to me like they are asking me to 'die a little'.

What do you consider the difference?

 

First off, yes my oscilloscope screen is dying. It's very old. It's a portable unit I carry around for testing, the good scope stays in my home lab.

Anyway, the particle detected here is almost certainly a β⁻ from background radiation or isotopes part of the detector itself. I would expect a muon to have more energy, the detector is not very sensitive to gamma rays at all, and in it's current configuration cannot see alpha particles at all.

The case is aluminium, technically 26Al is a β⁺ emitter with a long half live (~700,000 years). However, 26Al generally doesn't form on Earth, that half life is short compared to the age of the Earth, and I didn't buy the case offworld. So while it technically could instead be a positron, it's quite unlikely.

4
submitted 1 year ago* (last edited 1 year ago) by Saigonauticon@voltage.vn to c/vintech@voltage.vn
 

I saw this neat particle spectrometer (also works as a detector) published under CERN's open hardware license: https://scoollab.web.cern.ch/diy-particle-detector

I used to design these in grad school for fun, but I was making boards by hand in those days, so I didn't have any convenient Gerber files to send off to the local factory. I wanted to add a nuclear/quantum/modern physics component to a STEM course, so thought this would be pretty great!

There are a few things I would do differently on the board -- I'd go SMT (especially for capacitor C5), but I get that it's done this way for ease-of-assembly. I'd also maybe increase the trace width on some traces, to make sure the factory ships fewer bad boards. I also moved capacitor C8 to the other side of the board, so the distance between the radiation window and the board would be smaller.

All of these things really amount to personal preference, and overall the board is really nicely done! I might redesign the whole thing as SMT later though to reduce size and cost.

As configured, this board detects moderately penetrating particle radiation, like beta radiation. I could have configured it to detect alpha particles, but I've already built a few alpha spectrometers, so figured this would be more interesting.

The component that handles the actual 'detecting' is the array of 4 PIN photodiodes:

These are a common choice for low cost solid-state particle detectors. Incident radiation causes a tiny voltage on one end of the diode, which is amplified tremendously by the operational amplifier. The extremely high amplification required, means an extremely stable power supply (e.g. a battery) is required, and the entire device should be in a light-proof Faraday cage (e.g. a metal box).

I made 2 units, because the minimum order quantity for the boards was 5, and I'm sure I'll think of more than one use for the device. Hopefully I'll be able to detect muon radiation to demonstrate time dilation, beta particles from K-40, and perhaps even detect antimatter via rare K-40 β+ decays.

I'll try a banana as an antimatter source first, but a banana doesn't produce very much antimatter (...wow, this is an unusual sentence). Probably I'll need to go order some pure KCl, and even then low detector efficiency and the rarity of that decay mode will be a (possibly insurmountable) challenge.

 

Size is 5cm x 5cm.

Most of the issue was that the capacitor-sized tilt switches were taller than the box -- so I had to order smaller ones from overseas. I certainly wasn't going to do that for just one part, so had to wait until I needed more stuff.

Even then, common CR2032 cell holders and the new boards just barely fit in the box. I could have 3D printed a custom box, but this way it's made from ABS and is more durable (my 3D printer uses acrylic which is brittle).

I also switched the LED from red to yellow to hopefully be less evil-looking. Red looked OK for the cat, but made the duck look less than sleep-inducing. One side effect is that the battery usage is a little higher, but still enough to last several months of daily use on one CR2032 cell.

As long as the battery doesn't leak corrosive goo over the internals, it ought to function for a long, long time.

 

Taking it down for a couple of weeks.

If you message kong_ming they will store your query, but will not reply until the RNG is reconnected in October.

 

Disclaimer: this is not specifically for a commercial product, but various things I design sometimes get commercialized. I mention this so that you may decide whether you want to weigh in. If it's commercialized, I will probably make very little money but a bunch of university students may get a neat STEM program in the countryside :D

That out of the way, I've designed some boards for a Wi-Fi controlled robot with mechanum wheels. So 4 independent motor drivers, one for each wheel, allow omnidirectional motion. It's built around a Pi Pico W, 4 SOIC-8 9110S motor drivers, and some buck/boost converters to give the system a 5V and 12V line. It's very basic, mostly made to be cheap. Here's a photo:

Right now it just receives UDP communications (a little app written in Godot) and activates the motors in different combinations -- very "hello world". I'm planning to add some autonomy to move around pre-generated maps, solve mazes, and so on.

I have foolishly used 2-pin JST connectors for the motors, so using motors with rotary encoders would be a pain without ordering new boards. I'll probably fix that in a later board revision or just hack it in. Also the routing is sloppy and there's no ground plane. It works well enough for development and testing though :D

What I'm thinking about right now, is how to let the robot position itself in a room effectively and cheaply. I was thinking of adding either a full LiDAR or building a limited LiDAR out of a servo motor and two cheap laser ToF sensors -- e.g. one pointed forward, the other back, and I can sweep it 90 degrees. Since the LiDAR does not need to be fast or continuously sweep, I am leaning toward the latter approach.

Then the processing is handled remotely -- a server requests that the robot do a LiDAR sweep, the robot sends a minimal point cloud back to the server, which estimates the robot's current location and sends back some instructions to move in a direction for some distance -- probably this is where the lack of rotary encoders is going to hurt, but for now I'm planning on just pointing the forward laser ToF sensor towards a target and give the instruction "turn or move forward at static speed X until the sensor reads Y", which should be pretty easy for the MCU To handle.

I'm planning to control multiple robots from the same server. The robots don't need to be super fast.

What I'm currently wondering is whether my approach really needs rotary encoders in practice -- I've heard that mechanum wheels have high enough mechanical slippage that they end up inaccurate, and designers often add another set of unpowered wheels for position tracking anyway. I don't want to add more wheels in this way though.

On the other hand, it would probably be easier to tell the MCU to "move forward X rotary encoder pulses at a velocity defined by Y pulses per second, and then check position and correct at a lower speed" than to use a pure LiDAR approach (e.g. even if rotary encoders don't give me accurate position, on small time scales, they give me good feedback to control speed). I could possibly even send a fairly complex series of instructions in one go, making the communications efficient enough to eliminate a local server and control a ton of robots from a cloud VPS or whatever.

Anyone have some experience with encoders + mechanum wheels that can offer a few tips my way? At this stage the project doesn't have clear engineering goals and this is mostly an academic exercise. I've read that using a rigid chassis and minimizing the need for lateral motion can reduce slippage, reading through a few papers didn't get me any numerical indication of what to expect.

1
submitted 1 year ago* (last edited 1 year ago) by Saigonauticon@voltage.vn to c/vintech@voltage.vn
 

The original board was too large. So I redesigned it to be about 12mm x 45mm. I can get a panel of 12 of these for about 3$ and cut out the individual units myself. So that's about 0.25$ per board which is pretty good!

The battery holder extends past the board. Not much I can do about that!

The light and tilt switch can be soldered directly in, or attached via JST header. There are also 2 spots for a current-limiting resistor for the LED, in case I want it brighter but don't have a 500 ohm 0402 resistor around (closest I usually keep in stock is 1k).

Near Q1, there's also a junction that connects the signal out to an optional MOSFET -- designed to control at most 2A of current. In this case, the power supply is not a CR2032, but something else soldered in, and the light is connected between VCC and the extra pad just above the transistor. This way the circuit can be used to make a powerful flashlight as well as a nightlight.

One small thing I could have done better -- I designed it as a single sides PCB to save costs. However, the cost different is minimal, and the manufacturer doesn't plate the holes in the board if it's single sided! This makes the connections less mechanically robust, and presents fewer options for how the board can be populated (presently through-hole components can only be populated from the verso).

Given the minimal cost savings, future revisions of the board should use double-sided board even if it's unused. Although perhaps I can think of additional features to put there, e.g. a TP4056 lithium battery controller or a spot for a full-size MOSFET.

One neat thing! The manufacturer seems to have put a thicker layer of solder mask on this board (as well as on the other unrelated boards I ordered at the same time). This actually really makes them look and feel high-quality. So if any manufacturers out there are listening, it's a bit of a value-add!

1
submitted 1 year ago* (last edited 1 year ago) by Saigonauticon@voltage.vn to c/vintech@voltage.vn
 

So, we started with this:

It arrived looking like this:

And then I populated it by hand:

(on the verso is the tilt switch and the CR2032 holder)

Some lessons learned!

  1. When putting a current limiting resistor in place for an LED, put space for another in parallel. That way, if you only have one part, you can double the brightness without ordering new parts.
  2. Swapping the position of the tilt switch and the LED is possible, this would have made a slightly smaller board. I could also have made it properly 2-layers, but this is more expensive without making it much smaller -- although it does let me place the CR2032 cell more freely on the board, instead of only exactly where it is.
  3. I thought I could just solder an LED to the board and bend the leads so it fits into a hole in a case. This turns out not to be a good idea, mainly because the LED is too far from the center of the board, most LED leads are shorter than I remembered, and it can needlessly place strain on the LED leads. This makes the board require a bigger case than it otherwise would have. A better solution would have been to use a JST header and just plug the LED in -- it is worth the small extra cost. Thankfully, I made the pads a little bigger than they needed to be and can implement this by just drilling the holes off-center. The JST header will be on the verso of the board though, which is mildly suboptimal as the cable has to be passed back around the board for most lamp designs. This would still be a big improvement for most lamp designs, as the inconvenience is minor.

As much as I tried to think of these things in advance, I guess I can't think of everything! So it was really instructive to go through the experience of getting the boards professionally made, and assembling by hand.

Also wow, soldering surface mount is way easier when there's solder mask. It's way easier and cleaner than through hole stuff. It feels practically like cheating.

 

So I decided to try out a local board manufacturer (thegioiic.com). Their online order form was pretty good (with instant quote), and I could just send them the Gerber files from KiCAD.

I optimized this board to be single-sided, and decided to drill the holes myself, as I don't really need vias in this design. The battery, LED, and tilt switch mount from the verso, so the pads are fine as-is without plating the through-holes.

The board quality was consistently good overall. A few very minor cosmetic scratches (and I'm being really picky here), but nothing that would affect performance.

Also importantly, it cost about 450k VND (20$ USD) for 10 units delivered to my door, pre-cut, tinned, etc. I chose the slowest (and cheapest) service, and the boards arrived exactly 16 days later as promised.

The staff communicated via Zalo, but thankfully had very few questions (my Vietnamese is not very good). Mostly they wanted to be absolutely sure that I wanted black color boards, as the price of dying them black had gone up significantly. I took their advice and switched to green :D

This board is very simple -- I wanted to see the quality and service level firsthand before trusting them with something more complex or time-sensitive. They've passed the challenge and I'll surely use them again in the future.

I'm still not sure if I'll make a minor product out of this board someday. I rather like it, and I think it was neat to try and engineer a product that could last 100 years. So we'll see -- certainly I'll need to factor in ROHS compliance and CE certification. The latter can be expensive, but for something this simple (and that uses no high frequency signals) I can investigate the possibility of self-certifying.

 

You those software projects that have no defined scope, budget, or timeline? Yet somehow land on your desk?

For those times, I built a Lemmy bot that does an I Ching divination (https://en.wikibooks.org/wiki/I_Ching) using a hardware random number generator.

It doesn't help, but it makes me feel better.

If it would make you feel better too, you can use it too by sending a DM to @kong_ming@voltage.vn.

The message can't be length zero. You should not consider the messaging secure :D

It also may break, bug out, catch on fire, get unplugged, or get overloaded with requests. If none of those things happen, you'll get a response in a couple of minutes.

It's also literally build from scrap, and is sitting precariously on the edge of my desk in Vietnam. Still, it's the state-of-the-art in software consulting!

view more: next ›