Next social Meetup – 20th November 2022

Come and join us at our next social meetup which will be held on Sunday 20th November. Mike will be learning how to make games using the Godot Game Engine. Other members will be building circuits using Arduino’s and Raspberry Pis. Don’t be shy. Come along and see what we are all about.

FREE tickets can be obtained using the link below. Join us in person or virtually using Skype.

Next social Meetup – 9th October 2022

Come and join us at our next social meetup which will be held on Sunday 9th May 2022. Mike will be learning how to make games using the Godot Game Engine. Other members will be building circuits using Arduino’s and Raspberry Pis. Don’t be shy. Come along and see what we are all about.

FREE tickets can be obtained using the link below. Join us in person or virtually using Skype.

Game Development using the Godot Game Engine

Recently our leader Mike has been getting back into game development using the Godot Game Engine after learning it a year or so ago. Godot uses a node based system with scriptable objects meaning each object in the game can be programmed with its own script to make it do something, e.g. player, background, enemies, power-ups, etc.

The language Godot uses is called GDScript which is very much like Python in its syntax. It is easy to learn and intuitive.

At the moment Mike is trying to recreate some classic games using Godot such as Space Invaders and Centipede. If you wish to see what Mike is up to or to learn game development yourself using Godot then come and see us at our next social meetup (Click the events tab). Tickets are free.

TailQuest: Defense by Kivano Games made with Godot

New meetup dates for 2022 added

We’ve added some new dates for the 2022 meetups. From January onwards the meetups will now be held on the THIRD Sunday of each month, with additional meetups advertised when we get volunteers to host a meetup at their house.

You can find all of the new dates on Eventbrite HERE.

Medway Makers Tech Meetup – 9th May 2021

Our next social tech meetup will be held on Sunday 9th May 2021. Please come and join us, even if you just wants a non-tech related chat you are welcome.

We have members joining us from all over the world now with regulars in Italy, California, Italy, Portugal and Belgium.

If you want a FREE ticket to join us in our next online Zoom call then go to Eventbrite and sign up…

Next Online Event- 24th Jan 2021

Happy New Year everyone. Our next online tech social event will be held viz Zoom on Sunday 24th January starting at 11am and going on for 2-3 hours.

Everyone is welcome, no matter who you are. You don’t need to bring anything or have any prior knowledge of anything, this is mainly a social gathering with a tech slant. Sign up for free below:

Kerbal Space Program: 10 Axis Controller with Arduino Mega.

by Declan Heard

How about a custom 10 Axis Controller?

Kerbal Space Program is a brilliant game/Space Flight Simulator, it teaches the basics of rocket science, and aerodynamics, and lets you test out crazy contraptions that only exist in science fiction and never before realised concepts.

The scope for this project was to replace the typical keyboard game controls, with a far more interactive, intuitive and fun Analogue Stick control layout. I wanted to be able to assign different controls depending on whether a Rocket is being flown to orbit, a Spaceplane was lining up on final approach to a runway, or a Rover was being driven across the surface of The Mun.

The controller runs off an Arduino Mega 2560 and uses the Kerbal SimPit Mod installed in the Game Data folder of Kerbal Space Program. The ready-made Arduino library, Kerbal SimPit is available from the Arduino Library Manager, and this handles all the communication between the controller and the game.

Functions:

As well as the typical flight controls, Pitch, Yaw, and Roll, the controller also handles translation controls, i.e. movement in the X, Y and Z direction when the Reaction Control Thrusters (RCS) are enabled and Rover Wheel commands, Throttle and Steering when in Rover Mode.

To be able to control each of these parameters in unison, I used two 3 axis joysticks that would operate most of the main flight controls, and two 2 axis joysticks to cover rudders in plane mode and some of the RCS translation controls. This is way more options than is really needed, but it gives the pilot scope to adapt the controls to suit different vehicles and flying styles.

A simple slide pot enables fine control of the Main Engine Throttle, which makes precise landing burns easy and fun to pull off. No more need for parachutes, just make sure you have enough fuel to complete your suicide burn!

A large Staging button in the centre of the console takes the place of the spacebar. Press this button to go to space. Always make sure you check your staging before hitting the go button.

Once underway, its often prudent to lock the staging button until it is required again. A handy toggle switch is provided to lock the staging button, ensuring your rocket doesn’t break into different pieces at an inopportune moment.  

The other switches let the pilot raise and lower the gear, apply brakes, toggle SAS (Stability) and RCS modes, or trigger any of 10 or 20 different custom actions depending on which other mods you have installed.

Of course, any Rocket is incomplete without some way of aborting the flight and saving the cosmonauts when everything is going wrong. In case of RUD, Rapid Unscheduled Disassembly, pressing and holding the Abort Switch prompts the pilot to press the stage button to engage Abort Mode.

Once Abort Mode is engaged, there is no turning back. If you have set it up your actions correctly, your crew capsule separates, the abort motors fire, and your crew is dragged, kicking and screaming away from any impending explosions, and..…are safe. You remembered to pack parachutes, right?

Operation:

On boot up, if the Arduino finds a config file saved to the CD card it applies the last saved settings, if it cannot find a file it boots with factory settings, and creates a config file to save settings into. It then runs a self-calibration to make sure all the joysticks are outputting zero.

The OLED screen displays various actions, like which SAS mode has been triggered, and the status of Brakes and the Gear. It also lets budding Astronauts change and save the different options for each of the flight modes, Rocket, Plane and Rover, run the calibration routine, and set the SD card to restore the factory config file on bootup.

Design:
The front panel was designed in Fusion 360, and 3D printed to fit an off the shelf Hammond, although this version was measured slightly inaccurately and required a small amount of filing to get some parts to fit.

The wiring was planned using DIY Layout Creator, I wanted every connection on header pins, allowing easy maintenance and future expansion or improvements. All the power, GND and Signal wire to and from the front panels, including pull up and pull-down resistors would be over two daughterboards.

Organised Chaos. Imagine how it would look without planning.

Improvements:

Due to the limitations of the mod and the game functions, several of the switches for the SAS autopilot do not function as well as hoped and occasionally cause the game to crash when operated.

These controls are also assigned to the keyboard numpad, so a second controller could be used to handle these commands, as well as some other keyboard shortcuts the game relies on, like changing camera views and controlling the time warp functions. This could run on an Arduino Leonardo, which would show up as a keyboard or Joystick input to the computer.

I would really like to improve the front panel, possibly make it into a single PCB that can have the control labels silkscreened directly on. This could also save all of the offboard wiring, and a single ribbon cable used to connect the Arduino to the front panel.

For the source code for this project, see my GitHub repo @:

https://github.com/PanGalacticTech/Kerbal_Controller

Full instructional writeup due at some point.

The Phone of Positivity

by Tom Sparrow

I came across an old military field phone for sale in a junk shop and loved the look of the phone,. However, I wanted the phone to be functional in an interesting way and no just something to look at.

So after speaking to Mike, he gave me the brilliant idea of having the phone speak inspirational quotes. We discussed how we could go about doing this and decided to buy and mp3 module that could be triggered via a set of buttons on the phone.

So I took the MP3 module and soldered the speaker output pads to the handset of the phone, added some buttons such as play, next track/quote, pause etc. then I took an audiobook full of quotes and converted it to MP3 format, then separated each track with Audacity to have its own file which could be stored on a micro SD card and played on the MP3 module.

DSC_0014

Nixie Clock Upgrade

After making the quote speaking phone, I decided to take the project further by adding some front-facing nixie tubes soldered to a nixie clock circuit board purchased from eBay.

I made a template of the clock, taped it into position on the phone, then drilled and filed out the oval shapes that would fit the nixie tubes. Then I wired the MP3 module and nixie clock to one USB input at the back of the phone case so one power supply could be used for both functions.

A final check to make sure all cables and connections were well insulated and safe from touching the metal phone case and then the clock was fired up. It really does look great.

Controlling 2 LEDs with 1 pin

Not many people know that it is possible to control 2 LEDs individually with just a single digital output pin. See the video below for proof. These 2 LEDs are both connected to the same pin, digital pin D5 on a Wemos D1 mini.

How is this magic possible? Take a look at the circuit diagram. As you can see we have both of the LEDs connected to the same digital pin. However, one LED has its cathode (negative leg) connected to ground and the other one is connected to 5v (or 3v on a Wemos D1).

To light up LED 1, make the digital pin an output and make the pin HIGH. Electricity will flow from the digital pin to ground, lighting up LED 1. To light up LED 2, make the digital pin go LOW. Now the electricity will flow from the 5v (0r 3,3v) pin to ground via the digital pin that has been pulled low.

To turn both LEDs off, make the digital pin an INPUT, which will prevent the voltage from going anywhere and both LEDs now turn off.

So, how do you light up both LEDs? Well, it is not possible. However, you can trick your eye into seeing they are both on by turning each LED on in quick succession very very fast.

Take a look at the entire code below and you will see how to turn both LEDs on at the same time in the do…while loop.

unsigned long counter;

void setup() {
    pinMode(D5, OUTPUT);
}

void loop() {
    // Turn LED A on B off
    pinMode(D5, OUTPUT);
    digitalWrite(D5, HIGH);
    delay(1000);

    // Turn LED B on A off
    digitalWrite(D5, LOW);
    delay(1000);

    // Turn LED A and B on (very fast)
    counter = millis();
    do
    {

        digitalWrite(D5, HIGH);
        digitalWrite(D5, LOW);
    } while ((millis() - counter) < 1000);

    // Turn LED A and B off
    pinMode(D5, INPUT);
    delay(1000);
}

The only disadvantage to this is when both LEDs are apparently on they re slightly dimmer then when on individually. However, for the sake of saving 50% of he number of pins this is a small trade-off.

Retro Pi Radio

by Tom Sparrow

Back in 2016 Medway Makers were the first place winners in our class at the Pi Wars robotic competition at Cambridge University. Part of Medway Makers prizes for winning at PiWars was a Raspberry Pi audio amplifier hat and this device was the perfect opportunity to bring an old retro ‘Hacker’ (Yes, it really is called that)  radio up to date and into the 21st century.

DSC_0029

The radio was taken apart and I everything inside the radio that was no longer going to be used was discarded. Then, a Raspberry Pi with the amplifier hat was added inside and I soldered the output to the original radio’s speaker.

DSC_0027

There are several software choices to use for your internet radio, and I decided to use Volume IO. This was flashed to the micro SD card of the Raspberry pi. Volume IO has a nice, easy to use web interface, the official app works well, and it’s easy to add your own music collection via a USB stick.

volumio

 

BBC Master 128 Restoration

Over the Christmas period, Mike was lucky enough to be gifted a BBC Master 128 along with a 5.25″ disc drive, a load of cables and a few games on tape. The poor BBC Master had been sat in a garage for approximately 10 years with a load of wood on top of it, gathering dust and becoming a home for spiders and beetles. Obviously, the computer was in need of some essential TLC before it could be put into use.

First, the BBC Master needed a good strip down and a clean. The PSU, motherboard and keyboard were all removed from the case. The case was full of dust, dead spiders and beetles and was very dirty. The keyboard was absolutely filthy and was first to be stripped down and cleaned. All of the keys were taken off and given a good wash in soapy water, the chassis was cleaned up as best as possible with some brushes and cotton buds and then the whole thing reassembled. The final result was a massive improvement.

Next, the two sides of the clamshell case were washed in the shower with hot soapy water to remove all of the dirt. The case is very heavily yellowed with age and a future project for the summer is to carry out the retrobright process on the case to bring it back to white again. Next, the motherboard was given a vacuum and the board a brush and wipe down.

img_20200101_185507

Next, the PSU needed some work. There are three capacitors in the BBC Power Supplies that are notorious for drying out over the 30+ years it has been since they were manufactured and when they get hot they emit smoke and die. Mike purchased a capacitor replacement kit from eBay and the three offending items were replaced. The existing capacitors did look like they were in good shape, but it was better to be safe than sorry. 

Finally, the battery pack needed replacing. The pack had the original Duracell batteries from the 1980’s and they had leaked all over the place. The pack was thrown away and replaced with a newly made pack using a 3 AA battery holder, diode and resistor.

Next, it was time to install the TurboSPI ROM chip and the SD Card adapter that was purchased at the same time as the capacitor kit. This would allow instant loading of games and other programs from the SD card and allows up to 512 disc images to be loaded onto the card. This was a simple case of pushing the ROM into an empty slot and pushing the SD card PCB into the user port on the underside of the computer.

Now everything was setup and ready to go, it was time to turn the computer on and hope it all worked. Voila! Everything worked fine.

img_20200102_183625-1

After a few configuration commands were typed in to reset the configuration after it being turned off for so long and the battery pack no longer providing backup power, the Turbo MMC system was available and the contents of the SD Card could be accessed.

img_20200108_200639

On the SD Card that came with the system are well over 1000 games that can be accessed from a menu system on Disc 0. These only take up around 50% of the available 512 disc slots leaving plenty empty to load your own games or to save your own programs to. All of the classics were present.

The BBC Master 128 proved to be a big hit at the next Medway Maker social meetup on Sunday 5th January with several members getting very competitive at Pacmanand a few other games.

There are a few more upgrades on the horizon with a Raspberry Pi co-processor on its way and a ROM for a BBC Master 128 specific MAMMFS file system so that Elite can be played properly.

You can see the BBC Master in use in this timelapse movie below of the last Medway Makers session on Sunday 5th January 2020.

 

Magnetic Encoder Tests

I recently purchased some magnetic encoders to use in an upcoming project and hooked them up to a Wemos D1 Mini to try and do some basic testing. The specific magnetic encoder is the AS5048. Three wires were soldered to the PWM output pins only as this is a lot easier than soldering wires to the very slim SPI tabs. As long as the PWM output works as expected then there will be no need for using the SPI interface.

AS5048 Magnetic Encoder

To read the PWM output I uploaded a simple PWM read sketch to the Wemos and took a look at the output on a serial monitor. It was then that the output was seen to be not as expected.

The expected output was a series of numbers ranging from 0 to some other higher number as the magnet was rotated above the IC. However, the numbers seemed random and only seemed to match the expected output when the magnet was revolved around an axis that was on the edge of the magnet and not the centre. It was then that I realised that I was using the wrong kind of magnet. The standard neodymium magnets that you can buy for attaching things to your fridge etc. are magnetised with their poles on the opposite faces. Magnetic encoders are designed to work with diametrically magnetised magnets, i.e. those that have the north and south poles on the opposite edges of the magnet with a split down the middle of the face.

So some magnets were purchased from Amazon that were clearly marked as diametrically magnetised and even had in the description:

” Each magnet’s north and south pole are on opposite curved sides.
Unusually, diametrically magnetised magnets are not designed to hold the maximum possible weight for the size of the magnet but instead are used to provide rotational movement.
A diametrically magnetised magnet is magnetised across its diameter so that the north pole in on one curved side and the south pole is on the opposite curved side.
Diametrically magnetised magnets are used on the end of shafts to provide drive. “

Despite this, when the magnets arrived and were tested the output was exactly the same as a standard magnet. It was obvious to me that these were not diametrically magnetised at all. So I purchased a very small square of magnetic field view paper (really cool stuff). When it arrived I put a standard magnet and what was supposed to be the diametrically magnetised magnet under the paper. The result was this:

Not diametrically magnetised magnets

The standard magnet is on the left and the ‘diametrically magnetised’ magnet is on the right. As you can see clearly, they are identical. So I initiated a return and refund on Amazon immediately and reported the seller for selling magnets that were described as diametrically magnetised when they were not. Of course, Amazon has done f**k all about it and they are still being sold.

I then found https://www.first4magnets.com/ and spoke to a customer representative. They assured me that their magnets described as ‘diametrically magnetised’ were exactly that, so I ordered a small pack of 10 x 6mm disc magnets. When they arrived, I again tested them with the magnetic field view paper and voila!

Left – Standard magnet. Right – Diametrically magnetised magnet.

As you can see the diametrically magnetised magnet on the right has a coffee bean shape with the north and south poles emanating from the left and right sides of the disc rather than top/bottom faces. This is exactly what I wanted.

Tests with the AS5048 show a more expected output, with the only difficulty being in keeping the magnet central to the IC when holding it by hand. However, the output is going from zero up to about 900ish and then going back to zero. This is more in line with what I was expecting. So next I am going to 3D print some kind of jig to keep the magnet dead centre on the IC and the correct distance from it, so it can be tested properly. I can then use this as a test-bed for the upcoming project I intend on using these for (watch this space).

Website Built with WordPress.com.

Up ↑