A Minimum Interactive Language Toolkit
In previous posts I began to describe a minimum interactive language toolkit which could work standalone in virtually any small microcontroller. Here are the following prerequisites I stated in the previous post:
Interactive – commands may be typed at the keyboard for immediate execution Commands can be combined into programs then compiled for later execution Extensible – from a small kernel of commands, a whole application can be built No external tools required other than a serial terminal – all tools run on chip.This may appear to be a huge break from conventional wisdom, as virtually all embedded microcontroller development is done in high...
myStormMinimal Computing – some more thoughts
This post is concerned with minimal computing – a subject that is close to my heart. I write this on the day that my Employers have suffered a major ransom-ware cyber attack on their servers and IT systems, bringing the companies activities to a virtual standstill. To me this proves the fragility of the technology that we entrust for our day to day lives. There has to be a better, much simpler way……..
In the 1960s, the world of computing was evolving quickly as many new machines came on the market. For code developers at that time, this presented a problem...
myStormOsmocom jenkins test suite execution
Automatic Testing in Osmocom
So far, in many Osmocom projects we have unit tests next to the code. Those unit tests are executing test on a per-C-function basis, and typically use the respective function directly from a small test program, executed at make check time. The actual main program (like OsmoBSC or OsmoBTS) is not executed at that time.
We also have VTY testing, which specifically tests that the VTY has proper documentation for all nodes of all commands.
Then there's a big gap, and we have osmo-gsm-tester for testing a full cellular network end-to-end. It includes physical GSM modesm, coaxial distribution network, attenuators, splitter/combiners, real BTS hardware and...
LaForge's home pageMinimal CPUs – “One Page Computing”
As I continue to explore the boundaries between computing hardware, firmware and software as part of an effort to reduce the perceived complexity to something that I can understand, the idea arose for a computing platform with an artificially imposed simplicity.
Hackaday has run competitions for the best code application written in fewer that 1024 bytes of code, so this led me to think about what sort of computing machine could be constructed in fewer than 1024, 2-input NAND gates. Memory would not be counted.
It was whilst pondering this when I received a comment to a past blog post from “BigEd”...
myStormGetting started with myStorm BlackIce
Getting Started with myStorm BlackIce
Introduction
myStorm BlackIce is a unique combination of low power FPGA and ARM microcontroller designed and manufactured specifically to bring affordable FPGA open source hardware and software to Hobbyists, Makers and Students.
Working in conjunction with Clifford Wolf’s innovative open source FPGA development toolchain, known as “Project IceStorm” it allows new digital designs to be written in verilog, synthesised and programmed into the FPGA.
The features found on BlackIce offer the user access to the widest variety of devices and expansion interfaces including PMODs, microSD, SRAM, LEDs switches and buttons.
External circuits connect via the PMOD connectors – and these...
myStormIPv6 User Plane support in Osmocom
Preface
Cellular systems ever since GPRS are using a tunnel based architecture to provide IP connectivity to cellular terminals such as phones, modems, M2M/IoT devices and the like. The MS/UE establishes a PDP context between itself and the GGSN on the other end of the cellular network. The GGSN then is the first IP-level router, and the entire cellular network is abstracted away from the User-IP point of view.
This architecture didn't change with EGPRS, and not with UMTS, HSxPA and even survived conceptually in LTE/4G.
While the concept of a PDP context / tunnel exists to de-couple the transport layer from the structure and type of data...
LaForge's home pageUI Gripes: Season 1
'HID' stands for 'Human Interface Device'. I don't think I have any of those, and if I do, then they're definately broken.
Halestrom.netESP8266 anti cloning system
If you are investing time and money in developing a new module you want to have confidence that no one will clone it.
Assuring the authenticity of a product is a good for your brand image. No one wants that his nice and cheap power socket to also mine bit coins for someone else or do a DoS attack based on an external command. So, be aware on cheap IoT devices.
Since the flash memory of ESP8266 is external to the MCU then you will need an external encryption chip ( ATSHA204 EUR 0.5) that helps to authenticate your module.
Features:
Crypto Element with...
18650 Li-Ion battery powered Wemos D1 with Wemos Battery Shield - DONE 48 days achieved
>>> For the version with a solar panel attached see this post <<<
Wemos has developed a series of shields for the Wemos D1 :
DHT Shield
Battery Shield
Matrix LED Shield
Buzzer Shield
Dual Base
SHT30 Shield
WS2812B RGB Shield
ProtoBoard Shield
1-Button Shield
Micro SD Card Shield
Relay Shield
DC Power Shield
Tripler Base
Motor Shield
OLED Shield
The good thing is that you can stack them on top of another.
Let's take a look for now to the Battery Shield that is now on version 1.2.0 and it has a retired version 1.1.0
Get the schematics from here version 1.1.0 and 1.2.0 to see the differences. An immediate visual difference is the inductor on the V1.1.0...
BMP180 and wemos D1 reading temperature, pressure and altitude
To read the pressure, temperature and altitude you can use an BMP180 cheap i2c breakout.
1. Materials:
Wemos D1USD 3.99
BMP180USD 1.97
Total:USD 5.96
2. Libraries:
Install Adafruit BMP_085 libraries from Library Manager:
3. Connections:
VCC----3V3
GND----GND
SDA----D2
SCL----D1
4. Code:
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup()
{
Serial.begin(115200);
if (!bmp.begin()) {
Serial.println(F("Could not find a valid BMP180 sensor, check wiring!"));
}
}
void loop()
{
// Wait a few seconds between measurements.
delay(2000);
Serial.print(F("Pressure: ")); Serial.println(bmp.readPressure()/100);
Serial.print(F("Temperature: ")); Serial.print(bmp.readTemperature()); Serial.println(F("*C"));
Serial.print(F("See level pressure: ")); Serial.println(bmp.readSealevelPressure());
Serial.print(F("Altitude: ")); Serial.println(bmp.readAltitude());
Serial.println(F("----------------------------------------"));
}