Category: Electronics

OneWire circuit

So I’m having thoughts of wiring my house with a bunch of sensors but would like to limit the amount of wires as much as possible. Ofcourse that would best be done with some kind of OneWire circuit. One wire for ground and one wire for data and power.

I’ve experimented in Falstad’s circuit emulator and so far this is what I’ve come up with.

fiacrop1

The 470uF capacitor keeps the remote circuit (here its just a 1k resistor) powered while the data line (A) is pulled to ground to send signals. The resistor-transistor at the power source limits the current so it won’t short-circuit. The switch will be replaced with a MCU of some sort to control the sending of data.

I’m thinking of CLR, DATA and CLK going into a 74HC164 serial-to-parallel chip. Pulling the data wire (A) to ground very briefly would latch a 1 (one) as CLK goes back high, pulling it to ground a little bit longer would drain the 4.7uF capacitor enough to register a 0 (zero) when CLK goes high and finally pulling the wire to ground long enough to drain the 10uF capacitor would make CLR go low and reset the HC164 (asynchronous active low).

Timing depends on the values of the capacitors. Ofcourse at point (B) the voltage to power the MCU would be only 3V, but an atmega or attiny will run on that. It’s even possible to have several sensor circuits on the same two wires.

Now I just have to go from drawingboard to physical circuit and make it work…

FPGA arrived

Just arrived from China, a small cheap FPGA: Altera Cyclone-II (EP2C5T144).

The device itself is the least capable of all the Cyclone II FPGAs, but its seriously cheap at only $13. And its big enough to hold a basic CPU core. This is what it looks like (9V battery included for scale):

FPGA1

The USB Blaster has to be bought separately but only costs an additional $3. Unfortunatly the DC jack is for 5V, its unregulated unlike Arduinos. Bummer. And I dont have any 5V adapter with a 5.5mm plug so I have to make one myself.

Here are the specs for the board itself (and others of the same family, its the smallest one, EP2C5):

cyclone_specs

So now Im mostly ready to start designing and testing my own CPU. Ive already started some basic designing since a couple of nights back. Gaining some insights and making early design choices.

I still havent committed to wether the data bus should be 8-bit or 16-bit. Id like to make it 16-bit but that means a whole lot of wires (since its ultimately imagined as a breadboard design). Now that I think of it maybe I should make a first test design with address bus and data bus both being 8-bit.

Sorting integrated circuits

Today I received an order of compartmentalized plastic boxes for sorting things into. And so I sorted what I have so far. Some compartments are empty because the chips are still in my shopping cart at Digikey. And some are in the mail on the way here from China (Aliexpress).

Small compartments but can pack up to 20 chips into one if its just packed well. If thats not enough then the dividers can be removed to expand compartments sideways. The horizontal dividers are fixed. Vertical dividers on the compartment right at the lock mechanism is also fixed. But all in all, a cheap, neat, easy solution for sorting integrated circuits.

logics

Link to the Aliexpress item. Shipping took 19 days from China to Sweden by China post registered air mail.

BreadLED, again

My second attempt upped the neatness factor a little bit. I also changed the resistor to 2kΩ to dim the led a bit and maybe save a bit of power.

Top one is first attempt, bottom one is second attempt.

nr2_breadled1nr2_breadled2

Chinese chip connection…

“Psst. Hey dude. Over here…”

A chinese man in the shadows beckons me to come over. When I do, he opens his coat to show me the lining covered with little bags full of INTEGRATED LOGIC CIRCUITS.

The mans name is Ali. Ali Express. And while he claims his goods are the best, straight from the factory, it can sometimes be something entirely different. But, most of the time it gets the job done.

Ali has been my supplier for a while now. Sometimes his wares are scruffy but it’s usually not an outright disappointment.

Today he dropped another small bag at our secret drop box. It was filled with… well, see for yourself. Plastic cases or foam was not included ofcourse. Alis wares usually comes wrapped in horrible kitchen plastic foil. Cringeworthy stuff having near static sensitive devices. But hey, it’s cheap.

All of this for 11 dollars, 13 cents. Shipping included. But Ali made a mistake this time, I only ordered and paid for 2x ATTINY85s, but I received 5x.

My uncle also dropped by today and left a few (three) PIC16C84-04/P chips as well. So now I’m all set up with MCUs for a while. No more excuses, it’s time to get around to doing something useful…

chipgood1

Breadboard prepped LED´s

Always with the breadboard tinkering you want to throw in an LED here and there to give visual cues about whats happening but always there is that pesky need for a current limiting resistor.

Well, here is my take on a solution for that “problem”.

First you cut one leg off the LED, solder the appropriate resistor on there, then solder the two legs onto a header pin pair; thus…

ledresist

And then, to add stability and to prevent the legs from being shorted together, enter the hot snot magic dispenser…

ledsnotted

Ofcourse this doesnt look very neat, which is why the final step is to squeeze on some heatshrink tube…

ledtubed

Ideally a speck of paint should be applied on one of the header pins to highlight the polarity of the LED but I dont have paint laying around right now, so its good enough for now.

And please dont complain about how ugly the soldering and snotting is. Im doing the best I can with only one functional hand (yes Im disabled). If you like the idea it’d be cool to hear and see if you made your own.

Optimizing the LedControl library

vlcsnap-2017-02-05-23h54m51s351.png

After hooking up eight LED matrices in series, I could see that the LedControl library wasnt up to the task. After digging through the source code I realized what a peice of junk it was.

I had to do better myself. And did. I even ended up writing my new routine in assembler. Better optimized than even the code gcc managed to produce.

Source code in the form of an Atmel Studio project,
is available here: http://joonicks.eu/arduino/LedControl.zip