Posts

Showing posts from January, 2006

Moving code from ESP8266 to ESP32

Image
A while ago I made a mashup of Dan Royer's code CNC 2 Axis Demo with my own code for trapezoidal motion stepper and servo control for ESP8266.

I assumed porting the code to the ESP32 would be trivial, and that was true for the most part: changes like library name being Wifi.h instead of Wifi8266.h were not a problem. UDP now does not like multicharacter writes but you can use print instead. So far so good.

However, when it came to the interrupt code I was stuck with the stepper interrupt causing an exception sometimes. And to make things weirder, the servo interrupt worked flawlessly (both of them had the IRAM_ATTR directive if you ask me).

Going little by little, I could narrow down the culprit to a floating point operation during the interrupt, that would cause problems sometimes but not always. Browsing around I found this post. Where the solution was simple: do not use floats within the interrupt routines but doubles. The reason was the float calculation would be performed by…

Virtual Linux PC

I've learned about an interesting site on the net: Cosmopod.com
What is it about? In a nutshell Cosmopod offers you a free remote KDE desktop, either using a Java-based client software or the (also free) nxclient software. I do not know how reliable the service will be in the long run, but my initial tests are very good. Although services like writely seem promising, I'm really impressed with Cosmopod. They also offer a 1GB email account with your desktop. You may like it, I do.

Running rabbits

One of my current projects requires to provide IP connectivity for an electronic system. Some power can be borrowed from the base system it will be plugged into. A small, low-power system will do it. So after considering several options (like Lantronix Xport) and provided I needed at least two serial ports, I settled with a Rabbit Semiconductor core module.
They offer different prebuilt cards you can plug into your design. Rabbit core modules can be programmed using Dynamic C. They include a TCP/IP library so you can program them using an ad-hoc sockets interface. Sample source code is provided and it generally is quite straight forward. I did have a problem when using a non specified (zero) source port for several destination ports different than 80 or 23, I do not know why.
Rabbit 2000 and 3000 processors are both successors of the ancient Z80, an eight-bit microprocessor developed by Zilog (a company founded by some former Intel engineers that decided to do a better 8080). Z80 was fo…

The laptop that could

I've never heard about a "flash sale" before, but recently I saw an ad on a local retailer's website offering a cute Toshiba laptop (M50-137) for a really low price only if you buy it on December 23rd. They take 200 Euro off the list price of 1200 Euro. I thought it was making it sweet. The system was a 1.7 Ghz Pentium M, with a WXGA Ultrabrite 14" display, 1GB RAM, 80GB HD, Wifi+Bluetooth, built-in SD-card reader, and a multistandard optical unit (DVD+-RW/DVD-RAM) weighting 2.4Kg.

I took the deal and I picked it up at the local store. It took them longer than the advertised delivery time but eventually I got it home. First impression was good, system was fast and quiet. Sorry, you cannot get along without accepting the Windows blue thing: You have to provide some user and location data so Windows gets happily installed. Till you do this, SuSE Linux repartitioning failed to work. After that, I successfully installed SuSE Linux 10.0 and it almost worked fully. I …