The Ultimate FRCS Revision Resource.
Sign Up
An ever growing database of SBAs to check and reinforce your learning.
Comprehensive coverage of every topic.
Handy explanations for each question follows every answer.
A collection of notes on a wide range of topics to help you focus your revision.
Written by those who've passed the exam.
Links to evidence, images, graphs and tables throughout.
Track how well your revision is going with a personalised breakdown of each topic.
See how long it takes for you to answer questions to help with time management.
Focus on the areas you need to succeed.
FRCS Urol works great on desktop as well as mobile devices, allowing you to revise anywhere.
Built from the ground up to adapt to your device.
Questions and knowledge sections looks great on any device.
The site adapts to your devices for comfortable viewing day and night.
Questions and knowledge sections are updated regularly to stay up to date.
Your stats are stored in the cloud and accessible on all devices.

Try out a few of our questions now.
3 months
The Blynk Joystick is a virtual, 2-axis analog controller available within the Blynk IoT app (Legacy or Blynk 2.0). Unlike simple "Forward/Stop/Back" buttons, the joystick provides variable control. It mimics the behavior of a PlayStation or RC transmitter joystick, sending a range of values (typically from 0 to 255 or -100 to 100) for both the X-axis (horizontal) and the Y-axis (vertical).
This is not a visual gimmick. By sending analog data rather than simple digital "on/off" signals, the Blynk Joystick allows for nuanced control. Want your robot to move slowly through a narrow doorway? Tilt the stick slightly. Need it to sprint across the living room? Slam it to the edge.
Don’t send every tiny movement. Use a simple conditional:
if (abs(x - last_x) > 10 || abs(y - last_y) > 10) Blynk.virtualWrite(V1, x, y);
This reduces network traffic and jitter.
The Blynk Joystick is a user interface widget available within the Blynk mobile application. It visually resembles a classic gaming controller stick. When you drag your finger across the pad, it generates two sets of data:
Unlike physical joysticks that require analog pins and debouncing, the Blynk Joystick is purely virtual. It sends this data directly to your hardware via the internet (Wi-Fi, Ethernet, or Cellular). blynk joystick
The Blynk Joystick shines brightest in three specific scenarios:
1. The DIY WiFi Robot Car The classic use case. By pairing a Blynk Joystick with an L298N or L293D motor driver, you can build a car that navigates your backyard from 3,000 miles away. No expensive radio transmitters needed—just Wi-Fi.
2. Smart Home Camera Controls Instead of moving a robot, move the camera. Connect the joystick to two servo motors (Pan & Tilt). You get a smooth, analog security camera you can aim with your thumb.
3. Industrial IoT (IIoT) In warehouses, operators use Blynk Joysticks to control overhead cranes or conveyor belt diverters from a tablet, keeping the human out of dangerous "red zones." The Blynk Joystick is a virtual, 2-axis analog
#define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h>char auth[] = "YourAuthToken"; char ssid[] = "YourWiFiSSID"; char pass[] = "YourWiFiPassword";
// Joystick virtual pins #define JOY_X V0 #define JOY_Y V1
// Motor pins (example) int leftMotorPWM = D1; int rightMotorPWM = D2;
void setup() Serial.begin(115200); Blynk.begin(auth, ssid, pass); pinMode(leftMotorPWM, OUTPUT); pinMode(rightMotorPWM, OUTPUT); Unlike physical joysticks that require analog pins and
// Blynk reads joystick values automatically BLYNK_WRITE(JOY_X) int x = param.asInt(); // 0-1023 // Map to motor speed -255 to 255 int speedX = map(x, 0, 1023, -255, 255); controlLeftMotor(speedX);
BLYNK_WRITE(JOY_Y) int y = param.asInt(); int speedY = map(y, 0, 1023, -255, 255); controlRightMotor(speedY);
void controlLeftMotor(int spd) // Handle direction & PWM
void loop() Blynk.run();
Get in touch.