Category Archives: Posts

Here will post many things.

Night sky – photos and videos – timelapse

Sky at night

Sky at night is a series of timelapses, photos and videos made mostly at night. Just recently discovered my passion about capturing this things. So far, I am using Xiaomi Yi action camera, Firefly 7s, Canon EOS 20D (now broken), and very soon I will got Sony A6300 – beautiful mirrorless camera that can ‘see’ better in low light condition – less noise.

Night videos

Some things are uploaded on my YouTube channel “”:

Another things are uploaded on my old channel “Milan Karakas”, but most people know this channel as “WildMania”. I gave up and change name back from all that weird names into my first and last name.

Here are some videos so far on the ‘dark’ sky:

Recently someone bring name “Astro-Lapsing”, or “AstroLapsing”, “AstroLapse” and similar – that is Astro-Photography made by ‘zillion’ photos taken at night and ‘connected’ together into relatively short timelapse video.

I think I am not the only one who love to see slow things moving faster, so for this reason it is name “time lapse” or “timelapse”. Other thing is fast moving things slowing down, but this require specialized high speed camera, which cost a lot, and I am afraid – I can’t afford it. So, aside other fields, time lapses remains my favorite hobby so far.

Aside electronic, arduino programming, making and flying quadcopters and airplanes – when weather permits, I am almost whole night outdoor looking for new and exciting night sky scenery. Sometimes full moon may ruin some photos and videos, but sometimes it just provide an ‘auxiliary’ light that on long exposure photos looks as if it is lit by sun, except – there are stars in background.

Although this is blogpost, it will be updated constantly with new things. So, stay tuned, and consider visiting my YouTube channels:

Milan Karakas


P.S. There is already one post containing videos with similar or the same content, but randomly chosen. Look at the SKY

Handsfree camera mount with Mobius

Handsfree camera mount

Handsfree camera mount is easiest to make than you think. I saw many people on YouTube struggling with using various cameras, ranging from smartphones to GoPro cameras, and sometimes really big cameras. Sometimes people using tripod, which is between them and the object of interest. Tripod is fine, but it is great obstacle for free movement. So, idea is not new – but for some reason people are not aware of this possibilities. For this reason I made this page and next video about how handsfree camera mount should looks like.

Video about Mobuis camera mount:

Why exactly Mobius camera?

Because it is slim, it has lens at ‘proper place’, can record up to 2 hours, and it is lightweight. Video quality is excellent – 1080p, 30 fps, which is good for everything. Just charge battery, insert microSD card (can be up to 64 GB with ‘exFAT’ setting, or 32 GB with ‘standard’ FAT setting), and record your video. Price for the Mobius camera is affordable, it cost about $70 US. Just need to add some nice microSD card, preferably class 10 or better.

Camera is upside-down

Yes. In the mSetup, chose video setting and 180 degree rotation:


Now, video will be automatically rotated 180 degrees, so no need to do anything special in post-processing of the video. For better video quality, you may chose ‘video data rate’ high, but I found that everything from ‘low’, ‘standard’ up to ‘high’ works fine. It is not so drastic improvement, but anyway I am using ‘high’ if possible.

Video example:

How to fix camera holder under baseball hat

All you need your favorite baseball hat, nylon thread and some strong needle. Since this thread is very strong, you no need too much of it, just be sure that it is firmly fixed, and that camera is exactly in the center and oriented correctly, so that video is not angled. Using nylon thread is just one suggestion, you may use what is handy to you.

Some pictures – so simple:


Handsfree Mobius camera is ready for filming


Happy filming!

DPS3005 Digital Power Supply

DPS3005, 0-30 V, 0 – 5 A Laboratory power supply

DPS3005 is 30V, 5A adjustable power supply. It has great options as is: over-voltage protection, over-current protection and overpower protection. This setting is for maximum ratings that you apply before anything else. For example, if you read datasheet for some electronic product, and it says has some maximum voltage and/or current ratings, you may set this values as a maximum values – where PSU will cut off power in the case that those limits are reached.


Input parameters

Input voltage should be 1.1 V above maximum wanted voltage, but not less than 6 V.  Absolute maximum voltage should be no more than 35V. So, when constructing power supply, transformer with rectifier and filter capacitors (electrolytic capacitors) should not go over that value of 35 volts. In the case of 35 V input, it can give us little bit over 32 V output. For those who want higher voltage, there is another model: DPS5005, which gives up to 50 V (little bit more). Both are 5 A output capable.

Video review

Here is one video that describes main functions of DPS3005 PSU:

Simple connections

Just provide ‘+’ and ‘-‘ wires at +Vin and -Vin, then connect wires for the output at +Vout and -Vout, and that is all. Output ripple voltage is 100 mV peak to peak. It can be further filtered by external capacitors, for example 100 nF + 100 uF capacitors paralel to Vout connectors. Ripple voltage is at relatively high frequency (not 50/60 Hz), thus easy to filter out. Some inductive coil (choke) can be added in series between Vout connectors and capacitors mentioned above for even better filtering. DPS3005 is very good protected device – even repeated short circuit at output is tolerated.

Constant voltage

For most application we want constant voltage. Just pres yellow button with V/up (arrow up), then rotate dial. Dialing button has option to select precision of increments, so push button and select steps at which it will change numbers on the display: 0.001 V, 0.01 V, 0.1 V, 1 V or 10V steps. If there are no over-voltage event, it will work fine.

Constant current

Sometimes we need constant current limitation. The same steps as with Constant voltage, but this time bottom yellow button pressed to chose constant voltage settings.

Electronic circuit breaker

There is no such thing per se, but rather interesting way to protect circuit from over-voltage, over-current and over-power protection. In the menu, selected after pressing yellow ‘SET’ button, using arrows (also yellow buttons up/down), there are options to set ‘OVP’, ‘OCP’ and ‘OPP’ protections. OVP is for over-voltage protection – sometimes may happen that our circuit is connected to other PSU, and ‘back-fire’ some higher voltage out, so this OVP will react and turn off PSU. OCP reacts exactly as circuit breaker, which just turn off peacefully whole PSU. OPP is new thing – it calculates power based on formula P=I*U (power equals current multiplied by tension), and reacts depending of our settings in the menu for OPP.


It is cheap and affordable PSU. Only what you need to add is some transformer with rectifier and filtering capacitors, or as I did use another existing non-regulated PSU and you have really good regulation, protection and accuracy. Accuracy is about 0.1% which is really good for prices less than $30 US – on Banggood, DPS3005, or DPS5005 version.

Stay tuned!

Ultralight DIY quadcopter – 45 grams only

Ultralight Do It Yourself “drone”

Ultralight quadcopter, simple and easy to build:


In order to make ultralight quadcopter, here is whole tutorial:

Why to build when anyone can buy?!

Reason is simple: by building your own ultralight “drone”, you learning how things works. Also, it may outperform manufactured drone, you may add LED lights, change antenna for longer flight range, change motors from 7 mm diameter to 8.5 mm diameter for more power, you may use any 1S battery which has decent capacity, you may add your small camera (as is Mobius or better Mobius mini), and many other reasons. Aside that, since there is not defined battery compartment, you may use one type of the battery for one flight, and another type for another one. Only one problem is that you should use electrical insulating tape or scotch tape to fix battery, but that is the ‘beauty’ of DIY work and hobby.

How long it can fly?!

It depends of ‘luck’ – on the market, there are good, medium and really bad motors. The same thing is with propellers. My earlier ultralight quadcopter had flight time of 13 minutes with 26 grams Mobius camera attached, or almost 30 minutes ‘naked’, without camera. Only bad thing here is that I have no proof – because this older version… I recorded whole long flight, but at last seconds quadcopter felt into river – then I attempted to rescue it, and I felt into water, then camera on which it is recorded felt into water and recorded video is lost – because camera is destroyed by water.

Any flight example?!

Yes. Here is one video example of only 12 minutes flight without camera. Pretty short flight for such ultralight quadcopter, especially when I know that it can perform better.:


But, be careful – it is so light that can trick you and fly away:

In the case that you suspect that motors are ‘baked’ (magnets weak due to overheat:

Some good things

Recently I posted about 12 minutes flight – and that is too short for this type of the ultralight quadcopter. So I changed motors and it can fly much longer. But, as always I pushed my luck and burned few motors by lifting too heavy camera (Xiaomi Yi – which is 70 grams). Now waiting for new motors, which will arrive soon. So I will make another video example.

Stay tuned for updates!

Please help growing this page by buying over my affiliate program

ATtiny85 Bricked? No problem!

Messing with fuses may brick ATtiny85!

On Attiny85 (also on other Attiny__) chips from Atmel, I recently made mistake, not knowing exact ‘truth’ about how to set fuses properly, so that it work as expected. The problem is in online documentation and implementation in some of available programmers as is “Khazama AVR programmer”. Even online calculator is wrong – if for example you want to use 8 MHz and above external quartz crystal oscillator, then you should select CSEL = 1110, but calculator showing that three boxes should be unchecked (CSEL[3:1]), while last box (CSEL0) should be checked. THIS IS NOT TRUE!!! If you look in datasheet about Attiny85, then it is exactly 1110, but online calculators, and programmer showing confusing and contradictory messages about what enables or disables what. So, I made (not so short) video about this issue + how to ‘un-brick’ Bricked Attiny__ (in my case Attiny85).

Is there hope for bricked chip?

YES! Bricked Attiny85 simply does not accept ISP programmer, but it can be ‘rescued’ by so called “HV programming”, where high voltage is actually 12V to the reset pin (pin number 1 on Attiny85), then some weird commutation of +5V and +12V on the chip brings it into programming mode. Down below is diagram and sketch, which is not my idea, but rather I with to thanks and give credit to those people who designed it and modified so that we can rescue our favorite chips.


On the image above, there is credit to someone who made it possible, but someone else changed sketch slightly, so that it now works as is expected.

The sketch for Arduino nano:

Be careful about the “Fuse calc”!!!

You may notice that “Fuse calc” gives (for example) result of 1110 for external quartz oscillator, but boxes below are incorrectly checked! Pay attention to that. Here is my video and some conclusions about that:

Instead ugly 12V lead acid battery, consider buying this 5V to 12V step-up converter.

PWM modulation as DAC on Atmega328p

PWM or Pulse Width Modulation

It is good to have 8 ADC inputs on Atmega328p, of which last one is actually thermometer inside chip, but there are no DAC converter for making sound out of digital data. Tried one DAC chip, MCP4725, which is 12 bit DAC with I2C data transfer, but turns out that it is pretty slow even at 800 kHz I2C bus. That is because of something weird inside this chip, where time required for output signal to reach maximum, starting from zero is 6 microseconds, no matter what I do. So, I decided to use PWM as possible way to do DAC conversion.


How it works?

By using fixed frequency, but variable length of the pulses, it is possible to change output voltage from digital output (!) from zero to maximum voltage, depend of voltage which is applied to Atmega328p. If pulses are narrow, then after filtering by low pass filter (RC or LC filters) – output voltage is low. If pulses are wide, voltage is higher. So, in the case of 5V on the Atmega chip, if duty cycle is 50%, then output voltage is  2.5V.

How good is sound quality?

Not so good if PWM frequency is low. Also depends of how many bits are used. If 16 bit timer is used, in theory it is possible to use all 16 bits, which will give 65536 voltage steps, but then PWM frequency will be pretty low. For driving motors or LEDs it is not a problem, but it is problem for audio applications. Some relatively good quality for voice is possible by using 62.5 kHz PWM with 8 bit resolution on Atmega328p with quartz crystal on 16 MHz. That is because Fast PWM with timer(s) and divider of F_CPU/1 (no prescalling) require 256 counts, which can be calculated by formula: FPWM=F_CPU/256. In the case of 16 MHz crystal, this is 62500 Hz, or 62.5 kHz. This frequency is pretty good for voice audio, but not so great for music. But, this is trade-off of using inexpensive way to make DAC out of this chip.

Other way than using timer(s)?

Yes. I had problem making exactly 40 kHz for ultrasonic purpose, because of all frequencies at which PWM can work, neither one can be get by using dividers, and/or number of bit manipulations. So, I made an “PWM imitation” by using two delay loops (for (;;) ), where variable delay is obtained by changing number to where loop goes. For example: “for (i=0;i<32;i++);” together with the rest of the code gives me 12.5 microseconds, which is half of 25 microseconds needed for 40 kHz (1/25 uS = 40 kHz). There are two loops, where first one gives ON time, and second one OFF time. Sum of ON+OFF time gives duty cycle in steps depending of how much bites are used. Since whole process is relatively slow, I am forced o use just 5 bites, which is okay for voice audio. This mins that 5 bites gives duty cycles in 32 steps, from near zero to maximum (which in my case is not 100% but rather close to 80% due to other commands in the C code). One of this additional codes are ADC conversion and mathematics conversion from 10 bits to 5 bits. This just slow cycles enough so that it can’t reach 100% pulse width.

The code:

Note that I wrote “parametric speaker”, because this code is intended to do job, but I found many problems with sound quality out of ultrasonic speakers with this modulation. Still working on improvements. But, this code is good for exercise in advanced programming. Later on, I will make code for audio with PWM at 62.5 kHz for telecommunication purpose (voice over digital radio-modem). Here is video rant about this PWM stuff:


Arduino I2C Scanner

What is the I2C address?! Scanner please.

Do I need such scanner? Sooner or later, everyone stuck on some I2C device – unknown address. For example, on OLED display, there is jumper (SMD resistor with “000” – zero Ohms), and next to it: “IIC address eslect”, and two options, soldered at first one: 0x78, and can be selected another one by removing this resistor and soldering at second place: 0x7A. But, after opening example code for this OLED display, it does not works. Why?! Because it has address of 0x3C, not 0x78 as it is designated. So, here is simple sketch I found somewhere. Well known and simple sketch, but very useful:

You may use :

Most of the default examples uses 9600 bits per second, but sometimes I need it faster, so I made it “115200”.  If you have problem with your serial port (USB cable to your Arduino), then lower speed, it is up to you. Just be sure to select the same speed at Serial Monitor, bottom right corner. Else it will not work.


Instead making wiring diagram, I will just tell you that SCL and SDA of the device in question goes to SCL and SDA on your favorite  Arduino board.  Usually with numbers 4 and 5; SCL (serial clock) to pin A5 (or ADC5, or pin number 28), and SDA (seral data) to pin A4 (or ADC4, or pin number 27). Do not forget to power your device with appropriate voltage and connect ground wire. Usually it is 5V, but there may be exceptions.

It will give you info every five seconds, something like this:


DIY quadcopter: FrankenDrone

Maiden of “FrankenDrone”,  DIY quadcopter

So far, managed to record video maiden (first flight) of my new “FrankenDrone”, DIY quadcopter. It has JJ1000 controller board, gears and propellers (props) from Syma X5C, with 7×20 mm motors.

Upgrading stronger motors

Now upgraded to FY326 gearbox and motors 8.5×20 mm. My flight with Mobius camera onboard failed because microSD card has some problem with deleted files. Camera showing that it recording, but I can’t find video files on microSD card. Now, after quick format, everything works fine. Here will be updated status of the experimental flights.

The difference between gearboxes of Syma X5C and FY326 Q7

Syma X5C, as well as its clone Bayangtoys X8 has some problem with vertical “play” of the main shaft which holds props. Gearbox with motor mount and prop mount has no such problem, or it is very minimal play, maybe 0.5 mm, while Syma X5C and Bayangtoys X8 has this “movement freedom” of about 1-1.5 mm. It is not a problem during flight, since props pulling this shaft up, and gears are aligned perfectly. But, noticed that gearbox from FY326 (original designation of this quadcopter is Q7) is more silent. On Syma X5C gearbox, I can clearly hear strange noise produced by movement of pinion and gears, while on gearbox from FY326, this noise is very low.

Further improvement

Gearbox has 3 x 3 mm square profile, but I found only 3 mm round aluminium rod, and used it. The problem with this rod is that aluminium by default is hard to drill – broke 3 drills and did not make hole for screw to fix it properly. Now found better option on Aliexpress, but so far… haven’t money to buy. It will be long(ish) waiting until it happens. 🙁

Excellent carbon square,  3 x 3 mm can be found here.


For more range & installing buzzer

I already modified JJ1000 remote with “V” antenna, and should to upgrade similar antenna on the quadcopter to get maximum possible range, since I want to fly it FPV. In order to avoid duplicate post, anyone interested in extending range, can found it on my webpage here. Note that diagram on this page is for Syma X5C, and Bayangtoys X8. On JJ1000 board, installing buzzer is much simpler:

quadcopter buzzer

Just solder +ve of the buzzer on cahtode of the diode, and -ve on drain of the MOSFET which run on/off LEDs on the quadcopter. After binding, buzzer whistling all the time, and then press right “shoulder” button for 3 seconds to turn LEDs and buzzer off. Battery alarm will sounds and LEDs will blinks. In the case of lost quadcopter, just turn of remote, and buzzer will sounds, LEDs will blinks. Easier to found.

Choice of the buzzer

At first model of my FrankenDrone, I am using buzzer from some programmable LEDs which has buzzer in between, but this option is bit expensive. Then ordered buzzers from Aliexpress – little one, just 0.67 grams. But it is big disappointment – not loud enough. Reason why I wanted so light buzzers is to install it on smaller quadcopters, but this one is big and has no such issue with little bit heavier buzzer. This one from is the best option:


The rule about buzzer

For indoor flight, quiet buzzer is okay, but this makes no sense to install it when indoor flight – you always can find your quad. The louder the better. If it does not give you “instant headache” when sounds, it is not good for outdoor flight with quadcopter. Consider next situation: strong wind blows away your quadcopter, and it flyaway into some bush. The same wind may be sufficiently loud to “override” volume of some small and silent buzzers. So, louder is better. This one above is sufficiently loud, but I want more, still searching for cheap yet louder one. 🙂

Become my ‘permanent Banggood friend’ by applying this CODE if you already haven’t Banggood account. You will buy at no additional cost, and I will get some points which helps me to make more exciting projects. Thank you in advance.

Arduino altimeter

Altimeter: Another problem with losing data during lost signal:

Altimeter sketch, Tried to change library from VirtualWire.h to RadioHead.h, but memory on Arduino nano is already too much populated, working memory for variables. So… Don’t know what to do… OLED display take 1024 bytes (1 kB), maybe I should to consider different display?

Altimeter programming problemsaltimeter

Explanation about mistake in my test flight with altimeter.

Altimeter: some outdoor test is done with one big mistake…

This video is made before utilizing “second order temperature compensation” in sketch of the transmitter. It looks complicated, but it turns out that is actually simple to apply (or I become somewhat good in programming). 😀 What happens is that I set zero indoor where temperature is close to 20°C, but outdoor in early morning was just 7°C, which gives me error of about -6 meters. Now things are better, error is still present but no more than say – 3 meters. BUT (!), now this error is within ballpark of maximum -3 meters error if temperature changes dramatically, which in most situations is not the case. Problem may occur during winter time, when someone want to fly briefly, and bring outside “warm” quad with sensor at say 20°C, then begins to fly – when set zero on ground, fly, and back, on ground should be again zero. For this reason, give quad and sensor some time to accommodate to whatsoever temperature outdoor is. Sensor is temperature dependent, and between 20°C and maximum operating temperature of 85°C it has pretty linear reading. The problem begins below 20°C, and exponentially rise with lowering temperature. But, since we are not interested in correct atmospheric pressure, but rather correct measured altitude, such error of -3 meters (which is about 0.5 mb, or 0.5 hPa), is next to nothing if quad fly very high AND (!) in meanwhile temperatures drops drastically. Down below is sketch for Attiny85, which is now corrected with added additional math. In the worst case of temperature drop, error is no more than -16 meters at temperatures between -15°C and -40°C DIFFERENCE (!) between starting temperature and temperatured during flight. And, I doubt that anyone has actual will to fly on such cold and freezing butt temperature. 😀

Altimeter: transmitter under 3 grams! (2.75 g with antenna)


On this ‘remote’ altimeter, still need to add ISP connector with 6 wires for re-programming firmware. Just in case that something need to be changed. Else, it is under 3 grams, but as ‘features’ growing, it will be slightly above 3 grams. For example, this 1/4 lambda antenna is okay, but full dipole (1/2 lambda) is better for more range. Just need to finish receiver end, post it on this page, and test maximum possible range. I am hoping for 1 km or more, but will see. Also, not sure how it will looks like on the quadcopter. For rockets, there will be different version – one without transmitter, just recording max altitude in EEPROM, then red with some base station, but that is future plan. Or, maybe I will find some good and lightweight LCD display… don’t know… For quadcopters, it is good to monitor altitude dynamicaly – in flight, but for rockets… eh, it goes hight as it goes – no way to monitor it in real time.

Arduino Altimeter – first steps are done

Altimeter – Beta version works on 433 MHz, base station should be pressed “zero” to set zero of the vehicle (airplane, quadcopter…), and then it will calculate altitude by receiving data from vehicle to the base station. So far, I have some problem with OLED display and it’s library: it uses too much memory and some instability occurs when it is out of range and not used for longer period. Just need to see what may be done…


Download (PDF, Unknown)

Working day and night… not only this project, but other things as well. Just some short video:

On this video, pressure sensor MS5611-01BA01 is used. By clicking on this link, you will get datasheet if you are interested.

Another PDF file MS5611-01BA03, much detailed, where at pages 17, 18 and 19 – diagrams showing error in pressure and temperature measurements without applying “Second order temperature compensation”, where sensor below 20°C increasing interpreting pressure reading exponentially as temperature goes really low. This math correcting it as much as possible. Still some error remains, but with peak of about 1.8 mBar at temperatures between -15°C and -40°C. Without this, additional math, error at such temperatures are up to 28 mBar at -40°C. At some “normal” local atmospheric pressures of say 1000 mBar, error of 1 mBar equals 8.426 meters. As pressure goes down, this error goes down. So at very high altitude, where temperatures are low – error becomes less important. I will be more worried about LiPo battery, than about sensor.

Another changes

Changed way of displaying Actual altitude, and Maximum altitude reached, shown as A: and M: respectively. Both in feet and meters.


And got idea about barometric pressure (for altitude calculation), humidity and temperature of the base station. Later will be added another barometric sensor in the case of rapid change in weather, as is case past few days prior to rain. This second sensor together with humidity and temperature will make it almost complete meteorologic station, mobile one. Just missing wind speed, and few other parameters, but so far – it looks much better and more “rich” than before. 😀 To read meteo-data, just switch into second position, while altimeter continues to measure altitude and “remember” maximum reached. MaxAlt is done by simple code:


I wish to have better and bigger display in order to show all data at once instead changing “pages” on OLED, but here it is, what it is… New Nextion display ordered, just waiting to arrive.

Some old rant

Rant about altimeter, old video, scroll down for more info.

Work on Altimeter. Just need to add some display on receiver side, check again everything, test range and add something.

First codes for TX, test phase

So far it works as a “Packet Radio” on 433 MHz, the ISM frequency. Transmitter and sensor + Attiny85 is chosen so that whole sending device will be under 3 grams – good for any vehicles. Unfortunately, it can’t work as altimeter not as vario + altimeter as planed. The main problem is in receiver side; if I combine relative slow transmission, some 24 packets maximum, tone sounds crazy and has delay. So, later version of the Arduino altimeter will has switch to chose altimeter or vario with the same circuit. For now, I did only altimeter, everything else will be added later (for those who found this page before end of test or beta phase of developing).

Some errors corrected

In the example below, initial idea is used from Arduino Vario by Rolf R. Bakke. He made initial code in such way that pressure is with OSR (OverSampling Ratio) for pressure, which is 4096 , so that resulting RMS (Root Mean Square) is 0.012 mBar (the lower number – the more precision). But (!), because higher OSR requires longer conversion inside MS5611 sensor chip, this value requires delay of 9.04 ms (minimum 7.40 ms, typical value is 8.22 ms and maximum value is 9.04 ms), So, for sake of ‘safety margins’, he uses 10 ms delay for pressure reading, since ADC need this time in OSR mode 4096. But, he uses OSR for temperature of just 256, which is equivalent of RMS of 0.012 °C, which is okay for vario, but not for altimeter – numbers jumping up and down too much. He probably made this decision because vario should be very fast, and already present delay of 10 ms + 1 ms at another command, adding more delay may result in too slow vario to be useful for sailplanes or gliders. The more samples per second – the faster the response.

Vario is one thing, altimeter another

For this reason, I changed call function from “D2 = getData(0x50, 1);” to “D2 = getData(0x58, 10);”, which has RMS of 0.002 °C – much better temperature correction data (six time better temperature correction than in the case of OSR 256, which gives RMS of 0.012 °C), but ten times longer to read (instead 1 ms, it needs over 9 ms to complete oversampling). The same as above for pressure, I am using 10 ms for good measure to prevent error(s). Anyone who want to experiment, try change from 10 ms to 1 – terrible error occur, instead some ‘reasonable’ pressure of say 1010 mbar, there is nonsense, something like -2.5 mbar. ADC converter just can’t cope with that speed, and reading sensor ends in big, really big error.

Why then in Attiny85 code is 1000 instead 10 ms?!

This is mystery to me. I had no time to investigate, but I suspect that library ‘VirtualWire’ resulting in such strange thing. It is actually good to have tens of microseconds (!) instead of thousands, or 1 ms (1000 µs = 1 ms). Since this strange thing is there, anyone who want to change some delay should multiply wanted value by factor of 100 to get proper delay in milliseconds. For example ‘delay(1000)’ usually means 1 second, but in example below, it will be delayed just 10 ms. So, for whole second, it should be ‘delay(100000)’. There is some limit, where delay can’t be set to high value, but instead should be used ‘for/to/next’ loop for more delay, if needed. For example 12 seconds: “for (i=1;i<=12;i++) {delay(100000)}”. This will be delay of 1 second repeated 12 times – 12 seconds. But, this is out of scope for this altimeter.


Base station

Base station has OLED display for now, because found only this one. Later will consider make various options; OLED, TFT, numeric LCD, graphic LCD…

Just need time… First code for base station is here (sorry, no diagram yet, working whole night – for those who found this page in the meanwhile):


The same MS5611 sensor is used in Arduino variometer. And it is cheaper than ever on

This is all for now

Come back soon, will be updated… Escpecially diagram and videos… Spring time requires hard work in my backyard, but also I did now and then some job for money, and this is main reason of delay of everything.